All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:101,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/src/fu-tool.c:102,1
    - Dst: fwupd_client_get_percentage
      Src: /src/fwupd/src/fu-tool.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - object
    - pspec
    - self
    argTypes:
    - GObject*
    - GParamSpec*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: fu_util_client_notify_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress
    - fwupd_client_get_status
    - fwupd_client_get_percentage
    linkageType: ''
    returnType: void
    signature: void fu_util_client_notify_cb(GObject *object, GParamSpec *pspec, FuUtil
      *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:116,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:118,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:119,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:121,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-tool.c:123,1
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:140,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:143,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:144,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:145,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:147,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 149
    functionName: fu_util_show_plugin_warnings
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_has_flag
    - fu_console_print_full
    - fu_engine_get_plugins
    - fwupd_plugin_get_flags
    - _
    - g_strdup_printf
    - g_ptr_array_index
    - fu_console_print
    - fwupd_plugin_flag_to_string
    - fu_util_plugin_flag_to_string
    linkageType: ''
    returnType: void
    signature: void fu_util_show_plugin_warnings(FuUtil *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:163,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:163,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-tool.c:169,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-tool.c:171,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:172,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-tool.c:174,1
    - Dst: g_open
      Src: /src/fwupd/src/fu-tool.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:178,1
    - Dst: fcntl
      Src: /src/fwupd/src/fu-tool.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:189,1
    - Dst: fcntl
      Src: /src/fwupd/src/fu-tool.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 211
    functionName: fu_util_lock
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_open
    - geteuid
    - fu_path_mkdir_parent
    - g_debug
    - g_build_filename
    - fcntl
    - fu_util_get_user_cache_path
    - getuid
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_lock(FuUtil *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:217,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: fu_util_get_systemd_unit
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_getenv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_get_systemd_unit(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_loaded
      Src: /src/fwupd/src/fu-tool.c:227,1
    - Dst: fu_util_lock
      Src: /src/fwupd/src/fu-tool.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:232,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:232,1
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:236,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:236,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:239,1
    - Dst: fu_systemd_unit_stop
      Src: /src/fwupd/src/fu-tool.c:240,1
    - Dst: fu_util_get_systemd_unit
      Src: /src/fwupd/src/fu-tool.c:240,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:241,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:247,1
    - Dst: fu_util_show_plugin_warnings
      Src: /src/fwupd/src/fu-tool.c:251,1
    - Dst: fu_util_show_unsupported_warning
      Src: /src/fwupd/src/fu-tool.c:252,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-tool.c:257,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-tool.c:259,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-tool.c:261,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-tool.c:263,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:263,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-tool.c:265,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuUtil*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 271
    functionName: fu_util_start_engine
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_show_unsupported_warning
    - fu_engine_get_loaded
    - g_prefix_error
    - getuid
    - fu_util_show_plugin_warnings
    - fu_context_get_battery_threshold
    - fu_context_get_battery_level
    - fu_engine_get_host_product
    - g_info
    - fu_systemd_unit_stop
    - g_object_set
    - g_autoptr
    - fu_engine_load
    - fu_engine_get_host_vendor
    - fu_engine_get_context
    - geteuid
    - _
    - fu_util_lock
    - fu_util_get_systemd_unit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_start_engine(FuUtil *self, FuEngineLoadFlags flags,
      FuProgress *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-tool.c:276,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:278,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: fu_util_maybe_prefix_sandbox_error
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_getenv
    - g_path_get_dirname
    - g_file_test
    linkageType: ''
    returnType: void
    signature: void fu_util_maybe_prefix_sandbox_error(const gchar *value, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:291,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:291,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-tool.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cancellable
    - user_data
    argTypes:
    - GCancellable*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: fu_util_cancelled_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - _
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_util_cancelled_cb(GCancellable *cancellable, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:299,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:300,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:301,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/src/fu-tool.c:307,1
    - Dst: fu_smbios_setup_from_file
      Src: /src/fwupd/src/fu-tool.c:308,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:310,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:310,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: fu_util_smbios_dump
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_smbios_new
    - fu_firmware_to_string
    - FU_FIRMWARE
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fu_smbios_setup_from_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_smbios_dump(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:320,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-tool.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: fu_util_sigint_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_cancellable_cancel
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_sigint_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:330,1
    - Dst: g_unix_signal_source_new
      Src: /src/fwupd/src/fu-tool.c:330,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-tool.c:331,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-tool.c:332,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: fu_util_setup_signal_handlers
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_source_attach
    - g_steal_pointer
    - g_unix_signal_source_new
    - g_autoptr
    - g_source_set_callback
    linkageType: ''
    returnType: void
    signature: void fu_util_setup_signal_handlers(FuUtil *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:340,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:342,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:344,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:346,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:348,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-tool.c:350,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-tool.c:352,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:354,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:356,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:358,1
    - Dst: g_option_context_free
      Src: /src/fwupd/src/fu-tool.c:360,1
    - Dst: g_close
      Src: /src/fwupd/src/fu-tool.c:362,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-tool.c:363,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-tool.c:364,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 365
    functionName: fu_util_private_free
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_close
    - g_ptr_array_unref
    - g_main_loop_unref
    - g_object_unref
    - g_option_context_free
    - g_free
    - g_main_context_unref
    linkageType: ''
    returnType: void
    signature: void fu_util_private_free(FuUtil *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-tool.c:380,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-tool.c:384,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-tool.c:389,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:389,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:390,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-tool.c:390,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:391,1
    - Dst: fu_console_beep
      Src: /src/fwupd/src/fu-tool.c:392,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-tool.c:396,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:397,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - client
    - request
    - self
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 398
    functionName: fu_util_update_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_request_get_kind
    - fu_console_set_progress_title
    - g_object_ref
    - fu_console_beep
    - fu_console_color_format
    - _
    - g_strdup_printf
    - fwupd_request_get_message
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_util_update_device_request_cb(FwupdClient *client, FwupdRequest
      *request, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:403,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:404,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: fu_util_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_to_string
    - g_getenv
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_util_engine_device_added_cb(FuEngine *engine, FuDevice *device,
      FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:412,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:413,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: fu_util_engine_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_to_string
    - g_getenv
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_util_engine_device_removed_cb(FuEngine *engine, FuDevice *device,
      FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - status
    - self
    argTypes:
    - FuEngine*
    - FwupdStatus
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: fu_util_engine_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress
    linkageType: ''
    returnType: void
    signature: void fu_util_engine_status_changed_cb(FuEngine *engine, FwupdStatus
      status, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:431,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/src/fu-tool.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - progress
    - percentage
    - self
    argTypes:
    - FuProgress*
    - guint
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: fu_util_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress
    - fu_progress_get_status
    linkageType: ''
    returnType: void
    signature: void fu_util_progress_percentage_changed_cb(FuProgress *progress, guint
      percentage, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:439,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/src/fu-tool.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - progress
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: fu_util_progress_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress
    - fu_progress_get_percentage
    linkageType: ''
    returnType: void
    signature: void fu_util_progress_status_changed_cb(FuProgress *progress, FwupdStatus
      status, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:445,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-tool.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 452
    functionName: fu_util_watch
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - g_main_loop_run
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_watch(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: fu_util_verfmt_sort_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_util_verfmt_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:463,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:463,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:466,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-tool.c:466,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:469,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:475,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:475,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:476,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:478,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-tool.c:479,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:481,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:487,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 492
    functionName: fu_util_get_verfmts
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - fu_util_print_builder
    - g_steal_pointer
    - g_ptr_array_sort
    - json_builder_end_array
    - json_builder_add_string_value
    - fwupd_version_format_to_string
    - fu_console_print_literal
    - g_ptr_array_index
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_verfmts(FuUtil *self, gchar **values, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:500,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:509,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:512,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:512,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:513,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:514,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:515,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:516,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:521,1
    - Dst: fu_util_plugin_to_string
      Src: /src/fwupd/src/fu-tool.c:522,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/src/fu-tool.c:522,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 527
    functionName: fu_util_get_plugins
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_plugins
    - fu_util_start_engine
    - g_ptr_array_sort
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - json_builder_begin_object
    - fu_console_print_literal
    - g_ptr_array_index
    - FWUPD_PLUGIN
    - g_autoptr
    - json_builder_end_object
    - fu_util_plugin_to_string
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_plugins(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:535,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/src/fu-tool.c:539,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:541,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:545,1
    - Dst: fwupd_device_array_filter_flags
      Src: /src/fwupd/src/fu-tool.c:548,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:557,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:559,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:563,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:564,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:566,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:571,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:579,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:579,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:581,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:582,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:585,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:586,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:590,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:590,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:592,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:598,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - self
    - devices_opt
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 600
    functionName: fu_util_prompt_for_device
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_ref
    - fwupd_device_array_filter_flags
    - fu_console_input_uint
    - _
    - fu_engine_get_devices
    - fu_device_get_id
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_device_array_ensure_parents
    - fu_device_get_name
    - fu_console_print
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_util_prompt_for_device(FuUtil *self, GPtrArray *devices_opt, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-tool.c:605,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:606,1
    - Dst: fu_engine_get_devices_by_guid
      Src: /src/fwupd/src/fu-tool.c:607,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:610,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:616,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-tool.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 624
    functionName: fu_util_get_device
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_guid_is_valid
    - g_set_error_literal
    - fu_engine_get_device
    - g_autoptr
    - fu_util_prompt_for_device
    - fu_engine_get_devices_by_guid
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_util_get_device(FuUtil *self, const gchar *id, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:629,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:629,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:630,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:631,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:632,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:636,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:638,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:642,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:644,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:647,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:651,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:652,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-tool.c:656,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:660,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:661,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:661,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:662,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:664,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:665,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 667
    functionName: fu_util_get_updates_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - json_builder_begin_array
    - fu_util_print_builder
    - fwupd_device_has_flag
    - fu_engine_get_upgrades
    - json_builder_begin_object
    - json_builder_end_array
    - FWUPD_CODEC
    - fwupd_device_get_id
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_device_add_release
    - fwupd_release_match_flags
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_updates_as_json(FuUtil *self, GPtrArray *devices,
      GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:672,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:673,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:674,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:674,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:675,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:675,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:678,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:686,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:687,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:691,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:692,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:693,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:695,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:702,1
    - Dst: fu_util_get_updates_as_json
      Src: /src/fwupd/src/fu-tool.c:708,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:710,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:711,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:713,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:714,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:715,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:719,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:720,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:722,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:726,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:727,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:732,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:734,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:737,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:739,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:742,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:742,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:745,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:746,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:750,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:750,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:756,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:759,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:761,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:762,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:762,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:766,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:769,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:771,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:772,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:772,1
    - Dst: g_node_n_nodes
      Src: /src/fwupd/src/fu-tool.c:777,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:778,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:781,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:785,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 787
    functionName: fu_util_get_updates
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_upgrades
    - g_ptr_array_new
    - fu_engine_get_devices
    - fu_console_print_literal
    - g_node_n_nodes
    - fwupd_device_array_ensure_parents
    - fwupd_device_match_flags
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_util_start_engine
    - g_ptr_array_sort
    - fwupd_device_has_flag
    - g_node_append_data
    - fu_util_print_node
    - g_ptr_array_index
    - g_strv_length
    - g_node_new
    - fwupd_device_get_id
    - g_autoptr
    - fwupd_device_get_name
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - _
    - fu_util_get_device
    - g_set_error_literal
    - fu_util_get_updates_as_json
    - fu_console_print
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_updates(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:792,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:793,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:794,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:797,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:805,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:806,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:817,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:819,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-tool.c:822,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:826,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:829,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:833,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:833,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:834,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:836,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:836,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:838,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 841
    functionName: fu_util_get_details
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_util_maybe_prefix_sandbox_error
    - fu_util_start_engine
    - g_node_append_data
    - fu_engine_get_details
    - fu_input_stream_from_path
    - fu_util_print_node
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fwupd_device_get_release_default
    - fwupd_device_match_flags
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_details(FuUtil *self, gchar **values, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:846,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:846,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:850,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:854,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:855,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:856,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:857,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 862
    functionName: fu_util_get_device_flags
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_device_flag_to_string
    - g_string_new
    - fu_console_print_literal
    - g_autoptr
    - g_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_device_flags(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:868,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:869,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:869,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-tool.c:873,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:873,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-tool.c:875,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:876,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:876,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-tool.c:877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - self
    - root
    - devs
    - dev
    argTypes:
    - FuUtil*
    - FuUtilNode*
    - GPtrArray*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 880
    functionName: fu_util_build_device_tree
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - fu_util_build_device_tree
    - g_node_append_data
    - g_ptr_array_index
    - fu_util_is_interesting_device
    - fu_device_get_parent
    - FWUPD_DEVICE
    - fwupd_device_match_flags
    linkageType: ''
    returnType: void
    signature: void fu_util_build_device_tree(FuUtil *self, FuUtilNode *root, GPtrArray
      *devs, FuDevice *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:885,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:885,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:886,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:887,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:888,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:890,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:891,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:892,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-tool.c:895,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:900,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:903,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:904,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-tool.c:908,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:913,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:914,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:914,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:915,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:917,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:918,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - devs
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 920
    functionName: fu_util_get_devices_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - json_builder_begin_array
    - fu_device_add_release
    - fu_engine_get_releases_for_device
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_release_match_flags
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_devices_as_json(FuUtil *self, GPtrArray *devs,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:925,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:925,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:926,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:929,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:937,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:938,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:940,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:943,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:946,1
    - Dst: fu_util_get_devices_as_json
      Src: /src/fwupd/src/fu-tool.c:953,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:956,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-tool.c:957,1
    - Dst: g_node_n_children
      Src: /src/fwupd/src/fu-tool.c:961,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:962,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:966,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:969,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 972
    functionName: fu_util_get_devices
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_build_device_tree
    - fu_util_start_engine
    - fu_util_get_devices_as_json
    - g_node_n_children
    - _
    - fu_engine_get_devices
    - fu_util_get_device
    - fu_util_print_node
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fwupd_device_array_ensure_parents
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_devices(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:980,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:982,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:987,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:987,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:988,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:989,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:994,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:995,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:996,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:997,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-tool.c:998,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:998,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1005,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1005,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1005,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1006,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1009,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1009,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1009,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1010,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1013,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1013,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1013,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1014,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-tool.c:1016,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:1018,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - client
    - device
    - self
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1019
    functionName: fu_util_update_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress_title
    - g_warning
    - g_debug
    - fwupd_device_has_flag
    - fwupd_status_to_string
    - _
    - g_strdup_printf
    - fwupd_device_get_composite_id
    - fwupd_device_get_status
    - g_set_object
    - fwupd_device_get_name
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_util_update_device_changed_cb(FwupdClient *client, FwupdDevice
      *device, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1029,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1030,1
    - Dst: fu_util_request_get_message
      Src: /src/fwupd/src/fu-tool.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1032
    functionName: fu_util_display_current_message
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_request_get_message
    - g_ptr_array_index
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_util_display_current_message(FuUtil *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1037,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1038,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-tool.c:1038,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1039,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1042,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1043,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1044,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1045,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1046,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1049,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1050,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:1058,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:1060,1
    - Dst: fu_release_set_stream
      Src: /src/fwupd/src/fu-tool.c:1063,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1064,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1067,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1071,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1074,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1078,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1079,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1083,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1089,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1089,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1091,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1096,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1097,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1098,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:1098,1
    - Dst: fu_engine_composite_prepare
      Src: /src/fwupd/src/fu-tool.c:1099,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:1100,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-tool.c:1105,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1108,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-tool.c:1110,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1113,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1117,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1118,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1121,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1121,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1123,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1125,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1126,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1127,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1127,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-tool.c:1128,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:1129,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1135,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1139
    functionName: fu_util_install_blob
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_get_id
    - g_signal_connect
    - fu_release_set_stream
    - g_object_ref
    - fu_progress_get_child
    - g_debug
    - fu_util_start_engine
    - fu_engine_request_get_feature_flags
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_util_display_current_message
    - fu_engine_install_blob
    - g_strv_length
    - fu_progress_set_id
    - fu_util_prompt_complete
    - G_CALLBACK
    - fu_progress_step_done
    - g_steal_pointer
    - fu_engine_composite_prepare
    - fu_release_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_engine_composite_cleanup
    - fu_util_maybe_prefix_sandbox_error
    - fu_input_stream_from_path
    - fu_util_get_device
    - g_set_error_literal
    - FU_ENGINE
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_install_blob(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1144,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-tool.c:1144,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1145,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1146,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1148,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1152,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:1161,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:1164,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:1169,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:1170,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:1170,1
    - Dst: fu_cabinet_sign
      Src: /src/fwupd/src/fu-tool.c:1175,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:1177,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:1177,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1181
    functionName: fu_util_firmware_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_cabinet_new
    - g_file_new_for_path
    - fu_cabinet_sign
    - FU_FIRMWARE
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fu_bytes_set_contents
    - fu_bytes_get_contents
    - fu_firmware_parse_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_sign(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1187,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:1187,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1188,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1191,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1192,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1193,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1194,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1198,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1207,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1208,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1217,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1221,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1223,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1226,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1230,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1231,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1235,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1240,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1240,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1242,1
    - Dst: fu_engine_firmware_dump
      Src: /src/fwupd/src/fu-tool.c:1246,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1248,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1253,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1255
    functionName: fu_util_firmware_dump
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_util_start_engine
    - fu_engine_firmware_dump
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_util_get_device
    - g_set_error_literal
    - g_strv_length
    - fu_progress_set_id
    - FU_ENGINE
    - g_bytes_new
    - g_autoptr
    - g_file_test
    - fu_bytes_set_contents
    - g_signal_connect
    - fu_util_prompt_for_device
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_dump(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1262,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:1262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1263,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1266,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1267,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1268,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1269,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1272,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1273,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1282,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1283,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1292,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1296,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1300,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1303,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1307,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1308,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1312,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1317,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1317,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1319,1
    - Dst: fu_engine_firmware_read
      Src: /src/fwupd/src/fu-tool.c:1323,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1325,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:1330,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1333,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1257
    functionDepth: 3
    functionLinenumber: 1257
    functionLinenumberEnd: 1335
    functionName: fu_util_firmware_read
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - fu_engine_firmware_read
    - fu_progress_get_child
    - fu_util_start_engine
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_strv_length
    - fu_progress_set_id
    - G_CALLBACK
    - fu_progress_step_done
    - g_bytes_new
    - g_autoptr
    - g_file_test
    - fu_bytes_set_contents
    - fu_firmware_write
    - fu_util_get_device
    - g_set_error_literal
    - FU_ENGINE
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_read(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-tool.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1343
    functionName: fu_util_release_sort_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_release_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_util_release_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1349,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1352,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1353,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-tool.c:1354,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1355,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-tool.c:1358,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-tool.c:1359,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:1361,1
    - Dst: fwupd_client_download_file
      Src: /src/fwupd/src/fu-tool.c:1362,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - perhapsfn
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1370
    functionName: fu_util_download_if_required
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_client_download_file
    - fu_path_mkdir_parent
    - g_steal_pointer
    - g_file_new_for_path
    - fu_util_get_user_cache_path
    - fu_util_is_url
    - g_strdup
    - g_file_test
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_download_if_required(FuUtil *self, const gchar *perhapsfn, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1379,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1380,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1381,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1382,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-tool.c:1384,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-tool.c:1387,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1392,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1393,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1395,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1399,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1400,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-tool.c:1400,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1401,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-tool.c:1404,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-tool.c:1405,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-tool.c:1406,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1413,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1414,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-tool.c:1415,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1417,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-tool.c:1420,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1424,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1425,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-tool.c:1426,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1428,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1428,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-tool.c:1433,1
    - Dst: fu_device_incorporate_from_component
      Src: /src/fwupd/src/fu-tool.c:1434,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1437,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1437,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:1442,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-tool.c:1446,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:1447,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1452,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1452,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1454,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-tool.c:1458,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1462,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 5
    argNames:
    - self
    - stream
    - devices
    - progress
    - error
    argTypes:
    - FuUtil*
    - GInputStream*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1465
    functionName: fu_util_install_stream
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_release_set_request
    - fu_device_incorporate_from_component
    - g_propagate_error
    - fu_device_get_id
    - g_signal_connect
    - fu_progress_get_child
    - g_debug
    - g_ptr_array_sort
    - fu_release_set_device
    - g_ptr_array_index
    - G_CALLBACK
    - fu_engine_requirements_check
    - g_steal_pointer
    - fu_engine_install_releases
    - fu_release_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - xb_node_query_text
    - fu_engine_load_release
    - fu_cabinet_get_components
    - g_ptr_array_add
    - fu_engine_build_cabinet_from_stream
    - FU_ENGINE
    - fu_device_ensure_from_component
    - fu_engine_error_array_get_best
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_install_stream(FuUtil *self,\n\t\t       GInputStream
      *stream,\n\t\t       GPtrArray *devices,\n\t\t       FuProgress *progress,\n\t\t
      \      GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1471,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1472,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1475,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1476,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1478,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1481,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1485,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1488,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1491,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:1492,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:1495,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1496,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1497,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-tool.c:1501,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:1501,1
    - Dst: fu_engine_get_devices_by_composite_id
      Src: /src/fwupd/src/fu-tool.c:1505,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:1506,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1511,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1513,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-tool.c:1521,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:1524,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:1526,1
    - Dst: fu_util_install_stream
      Src: /src/fwupd/src/fu-tool.c:1529,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1532,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1535,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1537,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1541,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1467
    functionDepth: 3
    functionLinenumber: 1467
    functionLinenumberEnd: 1547
    functionName: fu_util_install
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices
    - fwupd_device_array_ensure_parents
    - fu_util_prompt_warning_fde
    - fu_progress_get_child
    - g_debug
    - fu_util_start_engine
    - fu_device_get_composite_id
    - fu_util_install_stream
    - fu_util_download_if_required
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_util_display_current_message
    - g_strv_length
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_engine_get_devices_by_composite_id
    - g_autoptr
    - FWUPD_DEVICE
    - g_ptr_array_add
    - fu_util_maybe_prefix_sandbox_error
    - fu_input_stream_from_path
    - fu_util_get_device
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_install(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:1556,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1558,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1559,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1563,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1563,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1564,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-tool.c:1569,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-tool.c:1574,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1576,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1582,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:1583,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1585,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:1593,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-tool.c:1597,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:1599,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-tool.c:1599,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-tool.c:1600,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-tool.c:1601,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:1602,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:1603,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1604,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-tool.c:1607,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-tool.c:1611,1
    - Dst: fu_util_install
      Src: /src/fwupd/src/fu-tool.c:1613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1614
    functionName: fu_util_install_release
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_new0
    - fwupd_remote_get_filename_cache
    - g_set_error
    - fwupd_remote_get_kind
    - fwupd_device_has_flag
    - g_path_get_dirname
    - g_ptr_array_index
    - fu_util_install
    - fwupd_release_get_remote_id
    - fwupd_release_get_locations
    - fwupd_device_get_update_error
    - g_build_filename
    - fwupd_device_get_name
    - fu_progress_reset
    - _
    - g_strdup_printf
    - fu_util_is_url
    - g_set_error_literal
    - fwupd_remote_build_firmware_uri
    - g_strdup
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_install_release(FuUtil *self, FwupdDevice *dev, FwupdRelease
      *rel, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1619,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1620,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1620,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1621,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1621,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1622,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1622,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1625,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1633,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1640,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1649,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-tool.c:1650,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/src/fu-tool.c:1650,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1651,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:1662,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:1665,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:1666,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1668,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1670,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1671,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1672,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1676,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-tool.c:1678,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:1678,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1683,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-tool.c:1685,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1689,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1690,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1692,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1693,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:1696,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:1701,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1703,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1705,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-tool.c:1710,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1711,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1715,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1718,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-tool.c:1719,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-tool.c:1720,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-tool.c:1721,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-tool.c:1723,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:1727,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1728,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1731,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1736,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1739,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1741,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1742,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1742,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1746,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1749,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1751,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1752,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1752,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1756,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1760,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1762,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1763,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1763,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-tool.c:1767,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-tool.c:1769,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1772,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1779,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1783,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 107
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1616
    functionDepth: 3
    functionLinenumber: 1616
    functionLinenumberEnd: 1784
    functionName: fu_util_update
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_upgrades
    - g_ptr_array_new
    - fu_engine_get_devices
    - fu_console_print_literal
    - fwupd_device_array_ensure_parents
    - fu_device_get_id
    - fwupd_device_match_flags
    - fu_util_prompt_warning_fde
    - g_set_error
    - g_debug
    - fu_util_start_engine
    - g_ptr_array_sort
    - fwupd_device_has_flag
    - fu_util_install_release
    - fu_util_display_current_message
    - g_ptr_array_index
    - g_strv_length
    - fu_util_is_interesting_device
    - fwupd_device_id_is_valid
    - fu_util_prompt_complete
    - fu_engine_get_host_product
    - fu_console_print
    - fwupd_device_has_problem
    - g_autoptr
    - fwupd_device_get_name
    - fu_engine_get_host_vendor
    - g_ptr_array_add
    - fwupd_device_get_problems
    - fu_util_device_problem_to_string
    - fu_util_prompt_warning
    - fwupd_device_has_guid
    - _
    - g_strdup_printf
    - g_set_error_literal
    - g_strcmp0
    - fwupd_guid_is_valid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_update(FuUtil *self, gchar **values, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1789,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1790,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1791,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1793,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1794,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1801,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1809,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-tool.c:1814,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1819,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:1820,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-tool.c:1824,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:1824,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-tool.c:1825,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-tool.c:1826,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:1827,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1832,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1836,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-tool.c:1837,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1843,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1843,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1845,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:1848,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:1848,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1850,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1854,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1858,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1786
    functionDepth: 3
    functionLinenumber: 1786
    functionLinenumberEnd: 1859
    functionName: fu_util_reinstall
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_device
    - fu_version_compare
    - g_signal_connect
    - g_object_ref
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_util_start_engine
    - fu_util_install_release
    - fu_util_display_current_message
    - g_ptr_array_index
    - g_strv_length
    - fu_util_prompt_complete
    - fu_device_get_name
    - G_CALLBACK
    - g_autoptr
    - fwupd_release_get_version
    - FWUPD_DEVICE
    - fu_device_get_version_format
    - fu_util_get_device
    - g_set_error_literal
    - FU_ENGINE
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_reinstall(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1864,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1865,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1868,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1869,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1870,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1873,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1877,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1880,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1884,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1885,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1889,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:1895,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/src/fu-tool.c:1898,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1898,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1900,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1861
    functionDepth: 3
    functionLinenumber: 1861
    functionLinenumberEnd: 1902
    functionName: fu_util_detach
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_util_start_engine
    - fu_progress_add_step
    - fu_util_get_device
    - fu_device_detach_full
    - g_strv_length
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_detach(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1907,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1908,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1911,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1920,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1921,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1923,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:1929,1
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/src/fu-tool.c:1932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1904
    functionDepth: 3
    functionLinenumber: 1904
    functionLinenumberEnd: 1933
    functionName: fu_util_unbind_driver
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_device_unbind_driver
    - fu_util_get_device
    - g_strv_length
    - g_autoptr
    - fu_device_locker_new
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_unbind_driver(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1938,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1939,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1942,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1951,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1952,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1955,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1956,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1960,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:1968,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/src/fu-tool.c:1971,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1935
    functionDepth: 3
    functionLinenumber: 1935
    functionLinenumberEnd: 1972
    functionName: fu_util_bind_driver
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_util_get_device
    - g_set_error_literal
    - g_strv_length
    - fu_device_bind_driver
    - g_autoptr
    - fu_device_locker_new
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_bind_driver(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1977,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1978,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1981,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1982,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1983,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1986,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1990,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1993,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1998,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1999,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:2003,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2009,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/src/fu-tool.c:2012,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2012,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2014,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1974
    functionDepth: 3
    functionLinenumber: 1974
    functionLinenumberEnd: 2018
    functionName: fu_util_attach
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_device_attach_full
    - fu_util_start_engine
    - fu_progress_add_step
    - fu_util_get_device
    - g_strv_length
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_attach(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2023,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-tool.c:2024,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-tool.c:2024,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-tool.c:2027,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - metadata
    - idt
    - str
    argTypes:
    - GHashTable*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2030
    functionName: fu_util_report_metadata_to_string
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_list_sort
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_util_report_metadata_to_string(GHashTable *metadata, guint
      idt, GString *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2036,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2037,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2040,1
    - Dst: fwupd_codec_json_append_map
      Src: /src/fwupd/src/fu-tool.c:2043,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2046,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:2049,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:2050,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2052,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2053,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2054,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2055,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2057,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-tool.c:2060,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-tool.c:2061,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:2065,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:2066,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2066,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:2067,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:2069,1
    - Dst: fwupd_codec_json_append_map
      Src: /src/fwupd/src/fu-tool.c:2070,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:2071,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:2074,1
    - Dst: fwupd_codec_json_append_map
      Src: /src/fwupd/src/fu-tool.c:2075,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:2076,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:2078,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:2079,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:2081,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:2084,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:2085,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:2086,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2088,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:2089,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2091,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:2093,1
    - Dst: fwupd_codec_json_append_map
      Src: /src/fwupd/src/fu-tool.c:2094,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-tool.c:2095,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2096,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:2097,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:2099,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - self
    - builder
    - error
    argTypes:
    - FuUtil*
    - JsonBuilder*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2103
    functionName: fu_util_get_report_metadata_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_map
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - json_builder_begin_array
    - fu_engine_get_plugins
    - json_builder_end_array
    - json_builder_begin_object
    - fu_device_get_id
    - fu_engine_get_devices
    - fu_device_report_metadata_post
    - g_ptr_array_index
    - json_builder_set_member_name
    - fu_engine_get_report_metadata
    - g_autoptr
    - fu_device_locker_new
    - fu_plugin_get_report_metadata
    - json_builder_end_object
    - fu_device_report_metadata_pre
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_report_metadata_as_json(FuUtil *self, JsonBuilder
      *builder, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2109,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2110,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2111,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:2111,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:2114,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2115,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2116,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2119,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2121,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2124,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2128,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:2128,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:2129,1
    - Dst: fu_util_get_report_metadata_as_json
      Src: /src/fwupd/src/fu-tool.c:2130,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:2132,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:2133,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2137,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2140,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2148,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2149,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2150,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2152,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-tool.c:2155,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-tool.c:2156,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2158,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2161,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2164,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2165,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2168,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2169,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:2174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2176,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:2177,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2179,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2181,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-tool.c:2181,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2182,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2182,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2184,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2187,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2105
    functionDepth: 3
    functionLinenumber: 2105
    functionLinenumberEnd: 2191
    functionName: fu_util_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_engine_get_devices
    - fu_console_print_literal
    - fu_engine_get_report_metadata
    - fu_device_get_id
    - fu_plugin_get_report_metadata
    - fu_plugin_has_flag
    - fu_progress_get_child
    - fu_engine_get_plugins
    - fu_util_start_engine
    - json_builder_begin_object
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_util_report_metadata_to_string
    - fu_util_get_report_metadata_as_json
    - fu_progress_step_done
    - fu_device_report_metadata_post
    - g_autoptr
    - fu_device_locker_new
    - fu_device_report_metadata_pre
    - json_builder_new
    - fwupd_codec_string_append
    - fu_plugin_get_name
    - fu_util_print_builder
    - json_builder_end_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_report_metadata(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2197,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2201,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-tool.c:2202,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2204,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-tool.c:2205,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2208,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2219,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2193
    functionDepth: 3
    functionLinenumber: 2193
    functionLinenumberEnd: 2221
    functionName: fu_util_modify_config
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_engine_modify_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_modify_config(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2228,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2236,1
    - Dst: fu_engine_reset_config
      Src: /src/fwupd/src/fu-tool.c:2239,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2246,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2223
    functionDepth: 3
    functionLinenumber: 2223
    functionLinenumberEnd: 2248
    functionName: fu_util_reset_config
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_engine_reset_config
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_reset_config(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2255,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2256,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2263,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2269,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2273,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2274,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2283,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2250
    functionDepth: 3
    functionLinenumber: 2250
    functionLinenumberEnd: 2285
    functionName: fu_util_remote_modify
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_engine_modify_remote
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_remote_get_id
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_modify(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2292,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2293,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2300,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2303,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2307,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2308,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2317,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2287
    functionDepth: 3
    functionLinenumber: 2287
    functionLinenumberEnd: 2319
    functionName: fu_util_remote_disable
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_engine_modify_remote
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_remote_get_id
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_disable(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2328,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2329,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2337,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/src/fu-tool.c:2338,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:2340,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-tool.c:2350,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2352,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2354,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2359
    functionName: fu_util_vercmp
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_version_compare
    - fwupd_version_format_from_string
    - g_set_error_literal
    - g_strv_length
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_vercmp(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2367,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2374,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2377,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-tool.c:2381,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2384,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2385,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2394,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2361
    functionDepth: 3
    functionLinenumber: 2361
    functionLinenumberEnd: 2396
    functionName: fu_util_remote_enable
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_engine_modify_remote
    - fu_util_modify_remote_warning
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_remote_get_id
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_enable(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-tool.c:2401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuUtil*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2406
    functionName: fu_util_set_test_devices_enabled
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_modify_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_set_test_devices_enabled(FuUtil *self, gboolean enable,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2411,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2414,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2421,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2408
    functionDepth: 3
    functionLinenumber: 2408
    functionLinenumberEnd: 2424
    functionName: fu_util_disable_test_devices
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_set_test_devices_enabled
    - _
    - fu_util_start_engine
    - fu_console_print_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_disable_test_devices(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2430,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2432,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2438,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:2442,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2446,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-tool.c:2447,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2449,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2449,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2455,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:2457,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2468,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2468,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2426
    functionDepth: 3
    functionLinenumber: 2426
    functionLinenumberEnd: 2471
    functionName: fu_util_enable_test_devices
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_util_set_test_devices_enabled
    - fu_util_start_engine
    - _
    - fu_console_print_literal
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_autoptr
    - fu_engine_get_remotes
    - fwupd_remote_has_flag
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_enable_test_devices(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2477,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-tool.c:2477,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2478,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-tool.c:2478,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2484,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:2485,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-tool.c:2486,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-tool.c:2486,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2500
    functionName: fu_util_check_activation_needed
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_add_plugin_filter
    - g_ptr_array_index
    - fu_history_new
    - fu_device_has_flag
    - g_set_error_literal
    - g_autoptr
    - fu_device_get_plugin
    - fu_history_get_devices
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_activation_needed(FuUtil *self, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2506,1
    - Dst: fu_util_check_activation_needed
      Src: /src/fwupd/src/fu-tool.c:2509,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:2513,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2514,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2515,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2518,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2527,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2530,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2531,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2534,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:2536,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:2539,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:2540,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2542,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2551,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:2552,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:2552,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:2556,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2560,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2564,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:2565,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-tool.c:2567,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2568,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2569,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2573,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2576,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2584
    functionName: fu_util_activate
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_check_activation_needed
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_device_get_id
    - fwupd_device_match_flags
    - fu_progress_get_child
    - fu_util_start_engine
    - fu_progress_add_step
    - g_ptr_array_index
    - g_strv_length
    - fu_progress_set_id
    - fu_device_get_name
    - fu_progress_step_done
    - fu_engine_activate
    - g_autoptr
    - FWUPD_DEVICE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - _
    - fu_util_get_device
    - g_set_error_literal
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_activate(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2589,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/src/fu-tool.c:2590,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2591,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-tool.c:2591,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2592,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2595,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2596,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-tool.c:2604,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/src/fu-tool.c:2608,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2610,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/src/fu-tool.c:2611,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-tool.c:2614,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-tool.c:2618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2619
    functionName: fu_util_export_hwids
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_key_file_set_string
    - g_key_file_new
    - fu_context_load_hwinfo
    - fu_context_get_hwids
    - fu_hwids_get_keys
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - g_key_file_save_to_file
    - g_autoptr
    - fu_engine_get_context
    - fu_hwids_get_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_export_hwids(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2624,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/src/fu-tool.c:2625,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2626,1
    - Dst: fu_hwids_get_chid_keys
      Src: /src/fwupd/src/fu-tool.c:2626,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2627,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/src/fu-tool.c:2627,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2630,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2631,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-tool.c:2631,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/src/fu-tool.c:2632,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2635,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-tool.c:2637,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/src/fu-tool.c:2638,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-tool.c:2641,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2645,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2646,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2648,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/src/fu-tool.c:2649,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2652,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2653,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:2655,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2657,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2659,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2664,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2665,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2667,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:2671,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2672,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-tool.c:2675,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/src/fu-tool.c:2679,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/src/fu-tool.c:2680,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2682,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:2687,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-tool.c:2688,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2689,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2693,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2694,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2696,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:2700,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2701,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-tool.c:2704,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/src/fu-tool.c:2708,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/src/fu-tool.c:2709,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2711,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:2716,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-tool.c:2717,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2718,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2621
    functionDepth: 1
    functionLinenumber: 2621
    functionLinenumberEnd: 2722
    functionName: fu_util_hwids
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_key_file_new
    - g_key_file_load_from_file
    - fu_console_print_literal
    - fu_hwids_get_guid
    - fu_context_load_hwinfo
    - g_ptr_array_index
    - g_strv_length
    - fu_hwids_get_value
    - fu_hwids_get_replace_keys
    - g_autoptr
    - fu_engine_get_context
    - fu_strtoull
    - fu_hwids_get_chid_keys
    - g_str_has_prefix
    - g_strsplit
    - fu_hwids_get_keys
    - fu_context_get_hwids
    - g_strjoinv
    - fu_hwids_add_value
    - g_strcmp0
    - fu_console_print
    - g_key_file_get_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_hwids(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2730,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2731,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2739,1
    - Dst: fu_engine_self_sign
      Src: /src/fwupd/src/fu-tool.c:2744,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2752,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2724
    functionDepth: 3
    functionLinenumber: 2724
    functionLinenumberEnd: 2757
    functionName: fu_util_self_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - g_set_error_literal
    - fu_engine_self_sign
    - g_strv_length
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_self_sign(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-tool.c:2768,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2771,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2772
    functionName: fu_util_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_device_to_string
    - fu_console_print
    - _
    linkageType: ''
    returnType: void
    signature: void fu_util_device_added_cb(FwupdClient *client, FwupdDevice *device,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-tool.c:2783,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2786,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2787
    functionName: fu_util_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_device_to_string
    - fu_console_print
    - _
    linkageType: ''
    returnType: void
    signature: void fu_util_device_removed_cb(FwupdClient *client, FwupdDevice *device,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-tool.c:2798,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2801,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2789
    functionDepth: 1
    functionLinenumber: 2789
    functionLinenumberEnd: 2802
    functionName: fu_util_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_device_to_string
    - fu_console_print
    - _
    linkageType: ''
    returnType: void
    signature: void fu_util_device_changed_cb(FwupdClient *client, FwupdDevice *device,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2813,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - client
    - user_data
    argTypes:
    - FwupdClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2804
    functionDepth: 1
    functionLinenumber: 2804
    functionLinenumberEnd: 2814
    functionName: fu_util_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_util_changed_cb(FwupdClient *client, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-tool.c:2820,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:2824,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:2824,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:2826,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:2828,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:2828,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:2830,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:2832,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:2832,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:2834,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:2836,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:2836,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:2838,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:2840,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-tool.c:2840,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:2842,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-tool.c:2844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2816
    functionDepth: 1
    functionLinenumber: 2816
    functionLinenumberEnd: 2846
    functionName: fu_util_monitor
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - G_CANCELLABLE
    - g_main_loop_run
    - FWUPD_CLIENT
    - fwupd_client_connect
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_monitor(FuUtil *self, gchar **values, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2851,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2854,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:2861,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2861,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2863,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2864,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2867,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2848
    functionDepth: 1
    functionLinenumber: 2848
    functionLinenumberEnd: 2876
    functionName: fu_util_get_firmware_types
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - _
    - fu_console_print_literal
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fu_engine_load
    - fu_engine_get_context
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_firmware_types(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2881,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2884,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/src/fu-tool.c:2891,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2891,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-tool.c:2893,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2894,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-tool.c:2894,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2897,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2906
    functionName: fu_util_get_firmware_gtypes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_autoptr
    - fu_engine_load
    - fu_engine_get_context
    - g_array_index
    - fu_context_get_firmware_gtypes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_firmware_gtypes(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2915,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2924,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:2925,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2929,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2929,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2931,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2932,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:2935,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2935,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2937,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:2944,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - firmware_types
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2945
    functionName: fu_util_prompt_for_firmware_type
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_input_uint
    - _
    - g_ptr_array_index
    - g_set_error_literal
    - g_strdup
    - fu_console_print
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_prompt_for_firmware_type(FuUtil *self, GPtrArray *firmware_types, GError
      **error)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2950,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2952,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2953,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2958,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2958,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2959,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:2967,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2972,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2980,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2981,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:2981,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:2982,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2985,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2986,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:2986,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2987,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:2987,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2989,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2992,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2993,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2995,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:2997,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:2998,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3000,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3007,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-tool.c:3008,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3010,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3015,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3020,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3021,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:3022,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3022,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3024,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3028,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3030,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3032,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3044,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-tool.c:3045,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3046,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/src/fu-tool.c:3046,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3047,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3048,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3054,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:3056,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3056,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:3058,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3061,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3065,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3066,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 2947
    functionDepth: 2
    functionLinenumber: 2947
    functionLinenumberEnd: 3068
    functionName: fu_util_firmware_parse
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - fu_firmware_to_string
    - g_object_new
    - fu_console_print_literal
    - fu_firmware_get_images
    - g_set_error
    - g_debug
    - g_ptr_array_index
    - g_strv_length
    - fu_util_prompt_for_firmware_type
    - fu_linear_firmware_new
    - fu_firmware_parse_stream
    - fu_firmware_has_flag
    - g_autoptr
    - fu_engine_load
    - g_ptr_array_new_with_free_func
    - fu_engine_get_context
    - g_ptr_array_add
    - fu_input_stream_from_path
    - g_set_object
    - g_set_error_literal
    - g_strdup
    - g_strcmp0
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_parse(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3073,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3076,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3077,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3082,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3082,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3083,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3090,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3091,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3094,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3103,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3103,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3104,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3108,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3110,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3117,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3118,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3119,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/src/fu-tool.c:3123,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3070
    functionDepth: 2
    functionLinenumber: 3070
    functionLinenumberEnd: 3128
    functionName: fu_util_firmware_export
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_firmware_type
    - fu_context_get_firmware_gtype_ids
    - g_set_error
    - g_file_new_for_path
    - g_object_new
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - g_strdup
    - g_autoptr
    - fu_engine_load
    - fu_engine_get_context
    - fu_firmware_parse_file
    - fu_firmware_export_to_xml
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_export(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3137,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3138,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3139,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3142,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3142,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3143,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3149,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3150,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3153,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3162,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3162,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3163,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3167,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3169,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3176,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3177,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3178,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3180,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3181,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3182,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3184,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3186,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-tool.c:3189,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:3192,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:3196,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3197,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:3197,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-tool.c:3198,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3199,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-tool.c:3199,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:3200,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3201,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:3201,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3203,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3206,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3206,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3207,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3213
      start: 3130
    functionDepth: 2
    functionLinenumber: 3130
    functionLinenumberEnd: 3213
    functionName: fu_util_firmware_extract
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - fu_firmware_to_string
    - g_object_new
    - fu_console_print_literal
    - fu_firmware_get_images
    - fu_firmware_get_id
    - g_set_error
    - fu_firmware_get_filename
    - g_file_new_for_path
    - g_ptr_array_index
    - g_strv_length
    - fu_util_prompt_for_firmware_type
    - fu_firmware_get_idx
    - g_autoptr
    - fu_engine_load
    - fu_bytes_set_contents
    - fu_engine_get_context
    - fu_firmware_parse_file
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - _
    - g_strdup_printf
    - g_set_error_literal
    - g_strdup
    - fu_console_print
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_extract(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3221,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3222,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3223,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3225,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-tool.c:3225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3226,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-tool.c:3226,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3227,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3228,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3231,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3232,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:3240,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3245,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/src/fu-tool.c:3253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:3254,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3255,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-tool.c:3258,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-tool.c:3259,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3261,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-tool.c:3266,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3268,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-tool.c:3271,1
    - Dst: g_type_from_name
      Src: /src/fwupd/src/fu-tool.c:3273,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3275,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-tool.c:3283,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3286,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3286,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3288,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3296,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/src/fu-tool.c:3297,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3301,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3304,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3308,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-tool.c:3309,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3311,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3312,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3316
    functionName: fu_util_firmware_build
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - g_prefix_error
    - xb_builder_import_source
    - fu_firmware_to_string
    - g_object_new
    - fu_console_print_literal
    - fwupd_error_convert
    - g_set_error
    - g_strv_length
    - g_type_from_name
    - xb_silo_query_first
    - xb_node_get_attr
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - fu_bytes_set_contents
    - fu_engine_get_context
    - fu_firmware_parse_bytes
    - xb_builder_source_load_bytes
    - fu_firmware_write
    - xb_builder_compile
    - fu_firmware_build
    - g_set_error_literal
    - fu_bytes_get_contents
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_build(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3321,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3328,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3329,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3332,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3335,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3335,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3336,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3343,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3344,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3345,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3346,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3349,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3358,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3358,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3359,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3364,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3364,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3365,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3369,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3371,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3378,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3379,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3380,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3382,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3384,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3391,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3392,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3395,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3396,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3398,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-tool.c:3399,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3404,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3405,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-tool.c:3406,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3408,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/src/fu-tool.c:3412,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-tool.c:3413,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3417,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3420,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3422,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3423,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3318
    functionDepth: 2
    functionLinenumber: 3318
    functionLinenumberEnd: 3427
    functionName: fu_util_firmware_convert
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - fu_firmware_to_string
    - g_object_new
    - fu_console_print_literal
    - fu_firmware_get_images
    - g_set_error
    - g_file_new_for_path
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - g_strv_length
    - fu_util_prompt_for_firmware_type
    - fu_firmware_add_image
    - g_autoptr
    - fu_engine_load
    - fu_bytes_set_contents
    - fu_engine_get_context
    - fu_firmware_parse_file
    - fu_firmware_get_bytes
    - fu_firmware_write
    - g_set_error_literal
    - g_strdup
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_convert(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3433,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/src/fu-tool.c:3433,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3437,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-tool.c:3442,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/src/fu-tool.c:3445,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/src/fu-tool.c:3447,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:3449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - val
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3429
    functionDepth: 1
    functionLinenumber: 3429
    functionLinenumberEnd: 3450
    functionName: fu_util_hex_string_to_bytes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_byte_array_append_uint8
    - fu_firmware_strparse_uint8_safe
    - g_set_error_literal
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_util_hex_string_to_bytes(const gchar *val, GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3455,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3460,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3461,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3462,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3466,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3466,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3467,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3476,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3477,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:3480,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:3481,1
    - Dst: fu_util_hex_string_to_bytes
      Src: /src/fwupd/src/fu-tool.c:3486,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:3489,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3490,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3495,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3504,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3504,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3505,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3509,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3511,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3518,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3519,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3520,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/src/fu-tool.c:3524,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3527,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3530,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3532,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3533,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3537
      start: 3452
    functionDepth: 2
    functionLinenumber: 3452
    functionLinenumberEnd: 3537
    functionName: fu_util_firmware_patch
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - g_prefix_error
    - fu_firmware_to_string
    - fu_util_hex_string_to_bytes
    - g_object_new
    - fu_console_print_literal
    - g_set_error
    - g_file_new_for_path
    - g_strv_length
    - fu_firmware_add_patch
    - fu_util_prompt_for_firmware_type
    - g_autoptr
    - fu_engine_load
    - fu_bytes_set_contents
    - fu_engine_get_context
    - fu_firmware_parse_file
    - fu_strtoull
    - fu_firmware_write
    - g_bytes_get_size
    - g_strdup
    - fu_context_get_firmware_gtype_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_patch(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3543,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:3546,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:3547,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:3548,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3551,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:3555,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:3558,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3562,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:3563,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:3567,1
    - Dst: fu_engine_verify_update
      Src: /src/fwupd/src/fu-tool.c:3573,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:3574,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:3575,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:3578,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:3581,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3584
      start: 3539
    functionDepth: 3
    functionLinenumber: 3539
    functionLinenumberEnd: 3584
    functionName: fu_util_verify_update
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_util_start_engine
    - fu_progress_add_step
    - fu_device_get_id
    - fu_util_get_device
    - fu_console_print_literal
    - fu_device_to_string
    - g_strv_length
    - fu_progress_set_id
    - g_autoptr
    - fu_engine_verify_update
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_verify_update(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3589,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3590,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:3590,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3593,1
    - Dst: fu_engine_get_history
      Src: /src/fwupd/src/fu-tool.c:3601,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3607,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:3607,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:3608,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:3609,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:3610,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:3611,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3616,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3617,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3621,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:3623,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3627,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3627,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:3629,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:3632,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3636,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3636,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-tool.c:3641,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:3643,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:3646,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:3647,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:3648,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:3648,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:3650,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:3650,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3657,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:3658,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3662,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:3662,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3664,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:3664,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:3665,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3667,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3667,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3674,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3674,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:3678,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3586
    functionDepth: 3
    functionLinenumber: 3586
    functionLinenumberEnd: 3681
    functionName: fu_util_get_history
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new
    - g_propagate_error
    - fwupd_device_get_release_default
    - fwupd_device_match_flags
    - g_object_ref
    - fwupd_codec_array_to_json
    - fu_util_start_engine
    - g_node_append_data
    - json_builder_begin_object
    - fu_engine_get_releases
    - fu_util_print_node
    - g_ptr_array_index
    - g_node_new
    - fwupd_release_get_remote_id
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_get_id
    - g_autoptr
    - fwupd_release_get_version
    - g_ptr_array_add
    - json_builder_new
    - fu_util_print_builder
    - fu_engine_get_history
    - g_strcmp0
    - json_builder_end_object
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_history(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3688,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3689,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-tool.c:3692,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3693,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:3697,1
    - Dst: fwupd_remote_build_metadata_sig_uri
      Src: /src/fwupd/src/fu-tool.c:3700,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-tool.c:3703,1
    - Dst: fwupd_remote_load_signature_bytes
      Src: /src/fwupd/src/fu-tool.c:3710,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-tool.c:3714,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3715,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:3719,1
    - Dst: fwupd_remote_build_metadata_uri
      Src: /src/fwupd/src/fu-tool.c:3722,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-tool.c:3725,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:3734,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:3734,1
    - Dst: fu_engine_update_metadata_bytes
      Src: /src/fwupd/src/fu-tool.c:3735,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:3736,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuUtil*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3683
    functionDepth: 1
    functionLinenumber: 3683
    functionLinenumberEnd: 3740
    functionName: fu_util_refresh_remote
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_client_download_bytes
    - fwupd_remote_get_metadata_uri_sig
    - fu_engine_update_metadata_bytes
    - fwupd_remote_load_signature_bytes
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_remote_build_metadata_sig_uri
    - fwupd_remote_get_metadata_uri
    - g_info
    - fwupd_remote_build_metadata_uri
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_refresh_remote(FuUtil *self, FwupdRemote *remote,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3745,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3748,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:3756,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3760,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-tool.c:3761,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:3763,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-tool.c:3766,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3767,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:3768,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-tool.c:3769,1
    - Dst: fu_util_refresh_remote
      Src: /src/fwupd/src/fu-tool.c:3772,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3742
    functionDepth: 3
    functionLinenumber: 3742
    functionLinenumberEnd: 3776
    functionName: fu_util_refresh
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - g_debug
    - fu_util_start_engine
    - fwupd_remote_get_age
    - fu_util_refresh_remote
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_autoptr
    - fu_engine_get_remotes
    - fwupd_remote_has_flag
    - fwupd_remote_needs_refresh
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_refresh(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3781,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:3781,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3782,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3785,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:3789,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3800,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:3800,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:3801,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:3802,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:3803,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:3804,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3807,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3808,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3808,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:3810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3778
    functionDepth: 3
    functionLinenumber: 3778
    functionLinenumberEnd: 3813
    functionName: fu_util_get_remotes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_codec_array_to_json
    - fu_util_start_engine
    - fu_util_print_builder
    - g_node_append_data
    - json_builder_begin_object
    - fu_util_print_node
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fu_engine_get_remotes
    - json_builder_end_object
    - json_builder_new
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_remotes(FuUtil *self, gchar **values, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3820,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3821,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3822,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3823,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3824,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3829,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3833,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3838,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3841,1
    - Dst: fu_engine_get_host_security_attrs
      Src: /src/fwupd/src/fu-tool.c:3854,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-tool.c:3855,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-tool.c:3859,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:3859,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3862,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-tool.c:3866,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3867,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3870,1
    - Dst: fu_util_security_attrs_to_string
      Src: /src/fwupd/src/fu-tool.c:3873,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3874,1
    - Dst: fu_engine_get_host_security_events
      Src: /src/fwupd/src/fu-tool.c:3877,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-tool.c:3880,1
    - Dst: fu_util_security_events_to_string
      Src: /src/fwupd/src/fu-tool.c:3882,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3884,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:3888,1
    - Dst: fu_util_security_issues_to_string
      Src: /src/fwupd/src/fu-tool.c:3892,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3894,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3815
    functionDepth: 3
    functionLinenumber: 3815
    functionLinenumberEnd: 3899
    functionName: fu_util_security
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_console_print
    - fu_util_security_events_to_string
    - fu_util_start_engine
    - fu_util_security_issues_to_string
    - FWUPD_CODEC
    - _
    - fu_engine_get_host_security_attrs
    - fu_engine_get_host_security_id
    - fu_console_print_literal
    - fu_engine_get_devices
    - g_strv_length
    - g_autoptr
    - fu_util_security_attrs_to_string
    - fu_security_attrs_get_all
    - fu_engine_get_host_security_events
    - fwupd_codec_to_json_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3904,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3907,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:3910,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3914,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:3915,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3916,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3919,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:3920,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3922,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3926,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3926,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3928,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3929,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:3929,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:3932,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3932,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3934,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3940,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3901
    functionDepth: 1
    functionLinenumber: 3901
    functionLinenumberEnd: 3942
    functionName: fu_util_prompt_for_volume
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_console_input_uint
    - _
    - fu_context_get_esp_volumes
    - g_ptr_array_index
    - fu_volume_get_id
    - g_set_error_literal
    - g_autoptr
    - fu_engine_get_context
    - fu_console_print
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_util_prompt_for_volume(FuUtil *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3947,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:3948,1
    - Dst: fu_volume_mount
      Src: /src/fwupd/src/fu-tool.c:3951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3952
      start: 3944
    functionDepth: 2
    functionLinenumber: 3944
    functionLinenumberEnd: 3952
    functionName: fu_util_esp_mount
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - fu_volume_mount
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_esp_mount(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3957,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:3958,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/src/fu-tool.c:3961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3954
    functionDepth: 2
    functionLinenumber: 3954
    functionLinenumberEnd: 3962
    functionName: fu_util_esp_unmount
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - fu_volume_unmount
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_esp_unmount(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3967,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:3967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3968,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:3970,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3970,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:3974,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:3975,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:3976,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:3977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3978
      start: 3964
    functionDepth: 1
    functionLinenumber: 3964
    functionLinenumberEnd: 3978
    functionName: fu_util_esp_list_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - json_builder_begin_object
    - fu_context_get_esp_volumes
    - g_autoptr
    - fu_engine_get_context
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_esp_list_as_json(FuUtil *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3984,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3985,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3986,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3988,1
    - Dst: fu_util_esp_list_as_json
      Src: /src/fwupd/src/fu-tool.c:3991,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:3993,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/src/fu-tool.c:3996,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/src/fu-tool.c:3999,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4001,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-tool.c:4007,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4011,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 3980
    functionDepth: 3
    functionLinenumber: 3980
    functionLinenumberEnd: 4015
    functionName: fu_util_esp_list
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_volume_locker
    - fu_console_print_literal
    - g_ptr_array_index
    - fu_volume_get_mount_point
    - fu_util_esp_list_as_json
    - g_set_error_literal
    - g_autoptr
    - fu_util_prompt_for_volume
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_esp_list(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4020,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4023,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4031,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:4032,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4036,1
    - Dst: fu_engine_modify_device
      Src: /src/fwupd/src/fu-tool.c:4041,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:4041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - values
    - enable
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4042
      start: 4017
    functionDepth: 3
    functionLinenumber: 4017
    functionLinenumberEnd: 4042
    functionName: fu_util_modify_tag
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_util_get_device
    - g_strv_length
    - fu_engine_modify_device
    - g_autoptr
    - fu_device_get_id
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_modify_tag(FuUtil *self, gchar **values, gboolean
      enable, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_modify_tag
      Src: /src/fwupd/src/fu-tool.c:4047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4044
    functionDepth: 4
    functionLinenumber: 4044
    functionLinenumberEnd: 4048
    functionName: fu_util_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_modify_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_tag(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_modify_tag
      Src: /src/fwupd/src/fu-tool.c:4053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4050
    functionDepth: 4
    functionLinenumber: 4050
    functionLinenumberEnd: 4054
    functionName: fu_util_emulation_untag
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_modify_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_untag(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4059,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4062,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4063,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:4071,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4072,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4073,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4074,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4077,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:4079,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4082,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:4085,1
    - Dst: fu_engine_emulation_load
      Src: /src/fwupd/src/fu-tool.c:4088,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4090,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4094,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4095,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:4097,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:4100,1
    - Dst: fu_util_install_stream
      Src: /src/fwupd/src/fu-tool.c:4103,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:4106,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4114
      start: 4056
    functionDepth: 3
    functionLinenumber: 4056
    functionLinenumberEnd: 4114
    functionName: fu_util_emulation_load
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_util_start_engine
    - fu_util_install_stream
    - fu_engine_emulation_load
    - fu_input_stream_from_path
    - fu_progress_add_step
    - fu_engine_get_devices
    - g_set_error_literal
    - g_strv_length
    - fu_progress_set_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_load(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4116
    functionDepth: 0
    functionLinenumber: 4116
    functionLinenumberEnd: 4120
    functionName: _g_str_equal0
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_str_equal0(gconstpointer str1, gconstpointer str2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4127,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4128,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:4128,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4129,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4132,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4143,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:4144,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4146,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:4149,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4150,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-tool.c:4158,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:4158,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4164,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-tool.c:4165,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:4166,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-tool.c:4170,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:4172,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:4172,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4176,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4179,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4184,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4184,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4186,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4187,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4190,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:4194,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4194,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4196,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4202,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4206,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-tool.c:4206,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4207,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:4211,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4219,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-tool.c:4219,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4220,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4225,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4229,1
    - Dst: fu_util_switch_branch_warning
      Src: /src/fwupd/src/fu-tool.c:4234,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:4234,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:4239,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:4239,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:4241,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:4245,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:4245,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:4247,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4251,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:4255,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4256
      start: 4122
    functionDepth: 3
    functionLinenumber: 4122
    functionLinenumberEnd: 4256
    functionName: fu_util_switch_branch
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_find_with_equal_func
    - fu_device_has_flag
    - fu_device_get_id
    - g_signal_connect
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_util_start_engine
    - fu_util_install_release
    - fu_util_switch_branch_warning
    - fu_engine_get_releases
    - fu_util_display_current_message
    - g_ptr_array_index
    - fu_util_branch_for_display
    - g_strv_length
    - fu_util_prompt_for_device
    - fu_util_prompt_complete
    - fwupd_release_get_branch
    - fu_device_get_name
    - G_CALLBACK
    - fu_device_get_branch
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - FWUPD_DEVICE
    - g_ptr_array_add
    - fu_console_input_uint
    - _
    - fu_util_get_device
    - g_set_error_literal
    - g_strdup
    - FU_ENGINE
    - g_strcmp0
    - fu_console_print
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_switch_branch(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4261,1
    - Dst: fu_util_bios_settings_parse_argv
      Src: /src/fwupd/src/fu-tool.c:4261,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4266,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-tool.c:4272,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:4273,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:4274,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-tool.c:4282,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-tool.c:4283,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4286,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4286,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4289,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4295,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:4299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - input
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4300
      start: 4258
    functionDepth: 3
    functionLinenumber: 4258
    functionLinenumberEnd: 4300
    functionName: fu_util_set_bios_setting
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_util_start_engine
    - g_error_matches
    - g_prefix_error
    - _
    - fu_util_bios_settings_parse_argv
    - g_strdup_printf
    - fu_console_print_literal
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fu_util_prompt_complete
    - fu_engine_modify_bios_settings
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_set_bios_setting(FuUtil *self, gchar **input, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4306,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4310,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4314,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4315,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4320,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4324,1
    - Dst: fu_engine_fix_host_security_attr
      Src: /src/fwupd/src/fu-tool.c:4332,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4335,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4337
      start: 4302
    functionDepth: 3
    functionLinenumber: 4302
    functionLinenumberEnd: 4337
    functionName: fu_util_security_fix
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_util_start_engine
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_engine_fix_host_security_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_fix(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4343,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4347,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4351,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4352,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4357,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4361,1
    - Dst: fu_engine_undo_host_security_attr
      Src: /src/fwupd/src/fu-tool.c:4369,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4372,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4374
      start: 4339
    functionDepth: 3
    functionLinenumber: 4339
    functionLinenumberEnd: 4374
    functionName: fu_util_security_undo
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_util_start_engine
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_engine_undo_host_security_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_undo(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4379,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4380,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:4381,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4385,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-tool.c:4391,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-tool.c:4392,1
    - Dst: fu_util_bios_setting_console_print
      Src: /src/fwupd/src/fu-tool.c:4394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4397,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-tool.c:4398,1
    - Dst: fu_util_bios_setting_to_string
      Src: /src/fwupd/src/fu-tool.c:4399,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4400,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4405,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4409,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4413,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4376
    functionDepth: 3
    functionLinenumber: 4376
    functionLinenumberEnd: 4423
    functionName: fu_util_get_bios_setting
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_bios_settings_get_all
    - fu_context_get_bios_settings
    - fu_util_start_engine
    - fu_util_bios_setting_console_print
    - _
    - fu_util_bios_setting_matches_args
    - fu_console_print_literal
    - g_ptr_array_index
    - fu_util_bios_setting_to_string
    - g_set_error_literal
    - g_autoptr
    - fu_engine_get_context
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_bios_setting(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4429,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4431,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4440,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-tool.c:4441,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4445,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-tool.c:4449,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-tool.c:4449,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-tool.c:4452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4425
    functionDepth: 3
    functionLinenumber: 4425
    functionLinenumberEnd: 4453
    functionName: fu_util_reboot_cleanup
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_start_engine
    - fu_plugin_runner_reboot_cleanup
    - fu_engine_get_plugin_by_name
    - g_strv_length
    - g_autoptr
    - fu_device_get_plugin
    - fu_util_prompt_for_device
    - fu_engine_get_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_reboot_cleanup(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4458,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4460,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:4460,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:4462,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/src/fu-tool.c:4463,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/src/fu-tool.c:4464,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:4465,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/src/fu-tool.c:4466,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:4468,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:4469,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4471,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4473,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:4473,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4473,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:4474,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:4475,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:4476,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:4477,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4477,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:4478,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:4479,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:4481,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:4483,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:4484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - entries
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4455
    functionDepth: 1
    functionLinenumber: 4455
    functionLinenumberEnd: 4485
    functionName: fu_util_efiboot_info_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_int
    - fu_efivars_get_boot_next
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - g_strdup_printf
    - FU_FIRMWARE
    - g_ptr_array_index
    - fwupd_codec_to_json
    - fu_efivars_get_boot_current
    - json_builder_set_member_name
    - fu_context_get_efivars
    - g_autoptr
    - fu_firmware_get_idx
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_info_as_json(FuUtil *self, GPtrArray *entries,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4490,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:4496,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4498,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:4503,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/src/fu-tool.c:4505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4506
      start: 4487
    functionDepth: 1
    functionLinenumber: 4487
    functionLinenumberEnd: 4506
    functionName: fu_util_efiboot_next
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_efivars_set_boot_next
    - fu_efivars_get_boot_next
    - fu_context_get_efivars
    - fu_console_print
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_next(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4511,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:4512,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4513,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/src/fu-tool.c:4517,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-tool.c:4521,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4522,1
    - Dst: g_array_new
      Src: /src/fwupd/src/fu-tool.c:4528,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:4529,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:4533,1
    - Dst: g_array_append_val
      Src: /src/fwupd/src/fu-tool.c:4536,1
    - Dst: fu_efivars_set_boot_order
      Src: /src/fwupd/src/fu-tool.c:4538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4539
      start: 4508
    functionDepth: 1
    functionLinenumber: 4508
    functionLinenumberEnd: 4539
    functionName: fu_util_efiboot_order
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_efivars_get_boot_order
    - fu_console_print
    - g_array_new
    - g_strsplit
    - g_array_append_val
    - fu_efivars_set_boot_order
    - fu_context_get_efivars
    - g_autoptr
    - g_array_index
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_order(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4544,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4545,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4549,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4550,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4555,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:4560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4563,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/src/fu-tool.c:4563,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4565,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4569,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:4576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4580,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:4581,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4585,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/src/fu-tool.c:4586,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4587,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4588,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4593,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4597,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/src/fu-tool.c:4602,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4541
    functionDepth: 2
    functionLinenumber: 4541
    functionLinenumberEnd: 4608
    functionName: fu_util_efiboot_create
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_set_error
    - _
    - fu_context_get_esp_volumes
    - fu_efivars_create_boot_entry_for_volume
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - fu_volume_get_mount_point
    - fu_context_get_efivars
    - g_autoptr
    - fu_util_prompt_for_volume
    - g_strcmp0
    - fu_efivars_get_boot_data
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_create(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4613,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4617,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4621,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:4624,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/src/fu-tool.c:4628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4610
    functionDepth: 1
    functionLinenumber: 4610
    functionLinenumberEnd: 4629
    functionName: fu_util_efiboot_delete
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_efivars_set_boot_data
    - _
    - g_set_error_literal
    - fu_context_get_efivars
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_delete(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4635,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4636,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/src/fu-tool.c:4639,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4639,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:4642,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4644,1
    - Dst: FU_IS_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/src/fu-tool.c:4645,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/src/fu-tool.c:4647,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/src/fu-tool.c:4647,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-tool.c:4651,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - loadopt
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4667
      start: 4631
    functionDepth: 1
    functionLinenumber: 4631
    functionLinenumberEnd: 4667
    functionName: fu_util_efiboot_hive_check_loadopt_is_shim
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - g_pattern_match_simple
    - fu_firmware_get_image_by_idx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_hive_check_loadopt_is_shim(FuEfiLoadOption
      *loadopt, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4672,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4673,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4677,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4678,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4682,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:4687,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/src/fu-tool.c:4689,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:4696,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4700,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/src/fu-tool.c:4701,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4704,1
    - Dst: fu_util_efiboot_hive_check_loadopt_is_shim
      Src: /src/fwupd/src/fu-tool.c:4709,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/src/fu-tool.c:4713,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:4714,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4718,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-tool.c:4721,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4726,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4727,1
    - Dst: fu_efi_load_option_set_kind
      Src: /src/fwupd/src/fu-tool.c:4733,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/src/fu-tool.c:4737,1
    - Dst: fu_efivars_set_boot_entry
      Src: /src/fwupd/src/fu-tool.c:4738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4739
      start: 4669
    functionDepth: 2
    functionLinenumber: 4669
    functionLinenumberEnd: 4739
    functionName: fu_util_efiboot_hive
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print_full
    - fu_efivars_set_boot_entry
    - fu_efi_load_option_get_metadata
    - fu_util_efiboot_hive_check_loadopt_is_shim
    - fu_efi_load_option_get_kind
    - _
    - fu_efivars_get_boot_entry
    - fu_efi_load_option_set_kind
    - fu_console_print_literal
    - fu_efi_load_option_set_metadata
    - g_set_error_literal
    - g_strv_length
    - fu_context_get_efivars
    - g_autoptr
    - fu_console_input_bool
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_hive(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4745,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4746,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:4746,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/src/fu-tool.c:4749,1
    - Dst: fu_util_efiboot_info_as_json
      Src: /src/fwupd/src/fu-tool.c:4755,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/src/fu-tool.c:4757,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-tool.c:4758,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:4759,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-tool.c:4760,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4763,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4765,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:4765,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4765,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:4766,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/src/fu-tool.c:4767,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4767,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4771,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4741
    functionDepth: 2
    functionLinenumber: 4741
    functionLinenumberEnd: 4773
    functionName: fu_util_efiboot_info
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_efivars_get_boot_next
    - fu_efivars_get_boot_entries
    - FWUPD_CODEC
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_console_print_literal
    - g_ptr_array_index
    - fu_efivars_get_boot_current
    - fu_firmware_get_idx
    - fu_context_get_efivars
    - g_autoptr
    - fwupd_codec_add_string
    - fwupd_codec_string_append_hex
    - fu_util_efiboot_info_as_json
    - fwupd_codec_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efiboot_info(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4778,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-tool.c:4778,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4779,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-tool.c:4779,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4789,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4793,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:4793,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-tool.c:4794,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:4796,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-tool.c:4797,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:4797,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:4799,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:4799,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:4799,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-tool.c:4803,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-tool.c:4804,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-tool.c:4805,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-tool.c:4809,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-tool.c:4810,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4812,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-tool.c:4813,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-tool.c:4815,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-tool.c:4817,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-tool.c:4818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - self
    - files
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4819
      start: 4775
    functionDepth: 1
    functionLinenumber: 4775
    functionLinenumberEnd: 4819
    functionName: fu_util_efivar_files_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - json_builder_add_string_value
    - fu_firmware_get_filename
    - json_builder_begin_object
    - g_ptr_array_index
    - json_builder_set_member_name
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_steal_pointer
    - g_hash_table_new_full
    - fu_firmware_get_idx
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - json_builder_new
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - g_strdup_printf
    - g_strdup
    - g_hash_table_lookup
    - json_builder_end_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efivar_files_as_json(FuUtil *self, GPtrArray *files,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4824,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/src/fu-tool.c:4826,1
    - Dst: fu_util_efivar_files_as_json
      Src: /src/fwupd/src/fu-tool.c:4834,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4836,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4838,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:4838,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4839,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:4842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4821
    functionDepth: 2
    functionLinenumber: 4821
    functionLinenumberEnd: 4847
    functionName: fu_util_efivar_files
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_efivar_files_as_json
    - fu_firmware_get_filename
    - g_strdup_printf
    - g_ptr_array_index
    - fu_firmware_get_idx
    - g_autoptr
    - fu_context_get_esp_files
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efivar_files(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4852,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4853,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4856,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4857,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4861,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/src/fu-tool.c:4864,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4868,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4874
      start: 4849
    functionDepth: 1
    functionLinenumber: 4849
    functionLinenumberEnd: 4874
    functionName: fu_util_efivar_list
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_names
    - _
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - fu_context_get_efivars
    - g_autoptr
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efivar_list(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4879,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4880,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-tool.c:4880,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4883,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4884,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4889,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:4895,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4896,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4905,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:4906,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:4907,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:4910,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4911,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-tool.c:4918,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:4922,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4922,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-tool.c:4927,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4927,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:4934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4876
    functionDepth: 1
    functionLinenumber: 4876
    functionLinenumberEnd: 4935
    functionName: fu_util_build_cabinet
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_write
    - fu_cabinet_new
    - fu_cabinet_add_file
    - g_path_get_basename
    - g_bytes_get_size
    - _
    - FU_FIRMWARE
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - g_file_test
    - fu_bytes_set_contents
    - fu_bytes_get_contents
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_build_cabinet(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4940,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4944,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:4953,1
    - Dst: fu_util_project_versions_as_json
      Src: /src/fwupd/src/fu-tool.c:4959,1
    - Dst: fu_util_project_versions_to_string
      Src: /src/fwupd/src/fu-tool.c:4960,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4963
      start: 4937
    functionDepth: 3
    functionLinenumber: 4937
    functionLinenumberEnd: 4963
    functionName: fu_util_version
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_project_versions_as_json
    - fu_util_start_engine
    - fu_console_print_literal
    - fu_engine_get_report_metadata
    - g_autoptr
    - fu_util_project_versions_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_version(FuUtil *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4968,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-tool.c:4968,1
    - Dst: fu_history_remove_all
      Src: /src/fwupd/src/fu-tool.c:4969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4970
      start: 4965
    functionDepth: 1
    functionLinenumber: 4965
    functionLinenumberEnd: 4970
    functionName: fu_util_clear_history
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_history_remove_all
    - fu_history_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_clear_history(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4976,1
    - Dst: fu_console_setup
      Src: /src/fwupd/src/fu-tool.c:4979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4972
    functionDepth: 1
    functionLinenumber: 4972
    functionLinenumberEnd: 4980
    functionName: fu_util_setup_interactive
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_console_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_setup_interactive(FuUtil *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_print_error_as_json
      Src: /src/fwupd/src/fu-tool.c:4986,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:4989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4982
    functionDepth: 1
    functionLinenumber: 4982
    functionLinenumberEnd: 4990
    functionName: fu_util_print_error
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print_full
    - fu_util_print_error_as_json
    linkageType: ''
    returnType: void
    signature: void fu_util_print_error(FuUtil *self, const GError *error)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:5005,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5006,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-tool.c:5006,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5007,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5008,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5009,1
    - Dst: fu_util_cmd_array_new
      Src: /src/fwupd/src/fu-tool.c:5009,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5020,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5028,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5036,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5044,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5052,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5060,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5068,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5076,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5084,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5092,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5100,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5108,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5116,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5124,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5132,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5140,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5148,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5156,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5164,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5172,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5181,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:5190,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-tool.c:5196,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-tool.c:5199,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-tool.c:5201,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-tool.c:5202,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-tool.c:5203,1
    - Dst: g_set_prgname
      Src: /src/fwupd/src/fu-tool.c:5204,1
    - Dst: fu_util_get_prgname
      Src: /src/fwupd/src/fu-tool.c:5204,1
    - Dst: g_main_context_new
      Src: /src/fwupd/src/fu-tool.c:5208,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-tool.c:5209,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-tool.c:5210,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:5211,1
    - Dst: fu_console_set_main_context
      Src: /src/fwupd/src/fu-tool.c:5212,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-tool.c:5213,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/src/fu-tool.c:5216,1
    - Dst: fwupd_client_set_main_context
      Src: /src/fwupd/src/fu-tool.c:5217,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/src/fu-tool.c:5218,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/src/fu-tool.c:5219,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5220,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:5220,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5222,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5224,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:5224,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5226,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-tool.c:5230,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5231,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5233,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5235,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5237,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5241,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5244,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5246,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5248,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5252,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5254,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5257,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5259,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5261,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5265,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5267,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5270,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5272,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5275,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5279,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5281,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5285,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5287,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5291,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5293,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5296,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5298,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5300,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5303,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5305,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5308,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5311,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5313,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5315,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5318,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5320,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5322,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5326,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5328,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5331,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5333,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5335,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5338,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5340,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5342,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5345,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5347,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5349,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5352,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5354,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5356,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5359,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5361,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5363,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5366,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5368,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5370,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5374,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5376,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5379,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5381,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5384,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5387,1
    - Dst: C_
      Src: /src/fwupd/src/fu-tool.c:5389,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5391,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5394,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5396,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5398,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5401,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5403,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5405,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5408,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5410,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5412,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5415,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5417,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5419,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5422,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5424,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5426,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5430,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5432,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5434,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5437,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5439,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5441,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5444,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5446,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5448,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5451,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5453,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5455,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5458,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5460,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5462,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5466,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5468,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5472,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5474,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5478,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5480,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5484,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5486,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5489,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5491,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5493,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5496,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5498,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5500,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5503,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5505,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5507,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5510,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5512,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5514,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5518,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5520,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5524,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5526,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5530,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5532,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5535,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5537,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5539,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5543,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5545,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5549,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5551,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5553,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5556,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5558,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5560,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5563,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5565,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5567,1
    - Dst: C_
      Src: /src/fwupd/src/fu-tool.c:5570,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5572,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5574,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5580,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5582,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5585,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5587,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5589,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5592,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5594,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5596,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5599,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5601,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5603,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5606,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5608,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5610,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5613,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5615,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5617,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5622,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5624,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5627,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5629,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5631,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5634,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5636,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5638,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5641,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5643,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5645,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5648,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5650,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5652,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5655,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5657,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5659,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5662,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5664,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5666,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5669,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5671,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5673,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5676,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5678,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5680,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5684,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5686,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5690,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5692,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5696,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:5698,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5701,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5703,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-tool.c:5707,1
    - Dst: fu_util_setup_signal_handlers
      Src: /src/fwupd/src/fu-tool.c:5708,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5709,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-tool.c:5709,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5711,1
    - Dst: fu_util_cmd_array_sort
      Src: /src/fwupd/src/fu-tool.c:5715,1
    - Dst: fu_util_setup_interactive
      Src: /src/fwupd/src/fu-tool.c:5718,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:5719,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-tool.c:5726,1
    - Dst: fu_console_set_interactive
      Src: /src/fwupd/src/fu-tool.c:5733,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-tool.c:5736,1
    - Dst: fu_util_cmd_array_to_string
      Src: /src/fwupd/src/fu-tool.c:5737,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-tool.c:5738,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/src/fu-tool.c:5739,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5742,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-tool.c:5746,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5746,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-tool.c:5747,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-tool.c:5748,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-tool.c:5748,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-tool.c:5749,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5751,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5754,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-tool.c:5758,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:5758,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:5762,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5766,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-tool.c:5769,1
    - Dst: fu_util_parse_filter_device_flags
      Src: /src/fwupd/src/fu-tool.c:5774,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:5780,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5780,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:5781,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:5782,1
    - Dst: fu_util_parse_filter_release_flags
      Src: /src/fwupd/src/fu-tool.c:5787,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:5794,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5794,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:5795,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:5796,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-tool.c:5820,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-tool.c:5821,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5822,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:5822,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5824,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5826,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:5826,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5828,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5830,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:5830,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5832,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:5834,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:5834,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:5836,1
    - Dst: fu_util_version
      Src: /src/fwupd/src/fu-tool.c:5841,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:5842,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-tool.c:5850,1
    - Dst: fu_util_cmd_array_run
      Src: /src/fwupd/src/fu-tool.c:5853,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-tool.c:5858,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:5862,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:5864,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5865,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5868,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:5870,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:5871,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:5873,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:5874,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:5876,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:5877,1
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:5882,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:5882,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:5883,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5888,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/src/fu-tool.c:5895,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/src/fu-tool.c:5896,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:5898,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 206
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5903
      start: 4992
    functionDepth: 1
    functionLinenumber: 4992
    functionLinenumberEnd: 5903
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 1
    functionsReached:
    - fu_console_print_full
    - fu_util_print_error
    - g_auto
    - fu_console_set_interactive
    - fu_progress_traceback
    - fu_util_cmd_array_add
    - g_new0
    - fu_progress_set_profile
    - g_prefix_error
    - fu_progress_get_profile
    - getuid
    - g_option_context_set_description
    - fu_console_print_literal
    - fu_engine_new
    - setlocale
    - g_main_loop_new
    - g_signal_connect
    - fu_util_cmd_array_sort
    - g_option_context_set_summary
    - fu_util_parse_filter_device_flags
    - fu_context_new
    - fu_util_cmd_array_new
    - g_option_context_new
    - textdomain
    - fwupd_client_set_user_agent_for_package
    - g_critical
    - fu_util_cmd_array_run
    - fu_debug_get_option_group
    - N_
    - g_main_context_new
    - g_info
    - fwupd_client_set_daemon_version
    - G_CALLBACK
    - fwupd_client_set_main_context
    - fu_util_get_prgname
    - fu_console_print
    - fu_engine_request_new
    - g_error_matches
    - fu_util_cmd_array_to_string
    - fu_engine_request_set_feature_flags
    - G_CANCELLABLE
    - g_option_context_add_group
    - g_autoptr
    - g_setenv
    - g_set_prgname
    - g_ptr_array_new_with_free_func
    - g_option_context_add_main_entries
    - g_getenv
    - fu_util_version
    - fu_console_set_main_context
    - C_
    - bindtextdomain
    - bind_textdomain_codeset
    - g_option_context_parse
    - fu_console_new
    - geteuid
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_util_setup_interactive
    - _
    - g_strdup_printf
    - g_cancellable_new
    - fu_util_setup_signal_handlers
    - fu_util_parse_filter_release_flags
    - FU_ENGINE
    - FWUPD_CLIENT
    - g_set_application_name
    - fwupd_client_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:61,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:68,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - engine
    - self
    argTypes:
    - FuEngine*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: fu_dbus_daemon_engine_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_connection_emit_signal
    - fu_daemon_schedule_housekeeping
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_changed_cb(FuEngine *engine, FuDbusDaemon
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:79,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:79,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:80,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:85,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:87,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: fu_dbus_daemon_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_new_tuple
    - FWUPD_CODEC
    - g_dbus_connection_emit_signal
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_device_added_cb(FuEngine *engine, FuDevice
      *device, FuDbusDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:98,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:98,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:99,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:104,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:106,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: fu_dbus_daemon_engine_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_new_tuple
    - FWUPD_CODEC
    - g_dbus_connection_emit_signal
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_device_removed_cb(FuEngine *engine, FuDevice
      *device, FuDbusDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:117,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:117,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:118,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:123,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:125,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: fu_dbus_daemon_engine_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_new_tuple
    - FWUPD_CODEC
    - g_dbus_connection_emit_signal
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_device_changed_cb(FuEngine *engine, FuDevice
      *device, FuDbusDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:136,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:136,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:137,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - engine
    - request
    - self
    argTypes:
    - FuEngine*
    - FwupdRequest*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: fu_dbus_daemon_engine_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_connection_emit_signal
    - g_variant_new_tuple
    - FWUPD_CODEC
    - fwupd_codec_to_variant
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_device_request_cb(FuEngine *engine, FwupdRequest
      *request, FuDbusDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_variant_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:156,1
    - Dst: g_variant_ref_sink
      Src: /src/fwupd/src/fu-dbus-daemon.c:156,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:161,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:161,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:162,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:163,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:164,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:170,1
    - Dst: g_variant_builder_clear
      Src: /src/fwupd/src/fu-dbus-daemon.c:172,1
    - Dst: g_variant_builder_clear
      Src: /src/fwupd/src/fu-dbus-daemon.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - property_name
    - property_value
    argTypes:
    - FuDbusDaemon*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: fu_dbus_daemon_emit_property_changed
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - g_variant_builder_add
    - g_variant_builder_clear
    - g_dbus_connection_emit_signal
    - g_variant_unref
    - g_variant_ref_sink
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_emit_property_changed(FuDbusDaemon *self,\n\t\t\t\t
      \    const gchar *property_name,\n\t\t\t\t     GVariant *property_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:184,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:184,1
    - Dst: fu_dbus_daemon_emit_property_changed
      Src: /src/fwupd/src/fu-dbus-daemon.c:185,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuDbusDaemon*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: fu_dbus_daemon_set_status
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_emit_property_changed
    - g_variant_new_uint32
    - g_debug
    - fwupd_status_to_string
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_set_status(FuDbusDaemon *self, FwupdStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:191,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:195,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - status
    - self
    argTypes:
    - FuEngine*
    - FwupdStatus
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: fu_dbus_daemon_engine_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_stop
    - fu_dbus_daemon_set_status
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_status_changed_cb(FuEngine *engine, FwupdStatus
      status, FuDbusDaemon *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:201,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:205,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:206,1
    - Dst: fu_engine_request_set_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:210,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:211,1
    - Dst: fu_client_list_get_by_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:215,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-dbus-daemon.c:217,1
    - Dst: fu_engine_request_set_locale
      Src: /src/fwupd/src/fu-dbus-daemon.c:219,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:220,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:220,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:225,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:231,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:233,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:239,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:242,1
    - Dst: fu_engine_is_uid_trusted
      Src: /src/fwupd/src/fu-dbus-daemon.c:243,1
    - Dst: fu_engine_request_set_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:245,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - self
    - sender
    - error
    argTypes:
    - FuDbusDaemon*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 249
    functionName: fu_dbus_daemon_create_request
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_set_converter_flags
    - g_object_ref
    - g_dbus_proxy_call_sync
    - fu_engine_request_set_locale
    - fu_engine_request_new
    - g_variant_get
    - g_prefix_error
    - fu_daemon_get_engine
    - fu_client_lookup_hint
    - g_set_error_literal
    - fu_client_list_get_by_sender
    - g_autoptr
    - fu_engine_request_set_feature_flags
    - fu_client_get_feature_flags
    - fu_engine_is_uid_trusted
    - g_variant_new
    - FU_DAEMON
    linkageType: ''
    returnType: FuEngineRequest
    signature: 'FuEngineRequest *

      fu_dbus_daemon_create_request(FuDbusDaemon *self, const gchar *sender, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:257,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:257,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:258,1
    - Dst: fu_engine_config_get_show_device_private
      Src: /src/fwupd/src/fu-dbus-daemon.c:259,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:259,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - request
    - devices
    - error
    argTypes:
    - FuDbusDaemon*
    - FuEngineRequest*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 262
    functionName: fu_dbus_daemon_device_array_to_variant
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_show_device_private
    - fu_daemon_get_engine
    - fu_engine_request_get_converter_flags
    - fu_engine_get_config
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: GVariant
    signature: "GVariant *\nfu_dbus_daemon_device_array_to_variant(FuDbusDaemon *self,\n\t\t\t\t
      \      FuEngineRequest *request,\n\t\t\t\t       GPtrArray *devices,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:292,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:295,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:297,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:299,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:301,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:303,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:305,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:307,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:309,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/src/fu-dbus-daemon.c:311,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:313,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:314,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:315,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:316,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:317,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:318,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:319,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:321,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:322,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 323
    functionName: fu_dbus_daemon_auth_helper_free
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - fu_dbus_daemon_set_status
    - g_object_unref
    - g_hash_table_unref
    - g_signal_handler_disconnect
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_auth_helper_free(FuMainAuthHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-dbus-daemon.c:328,1
    - Dst: g_dbus_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: fu_dbus_daemon_method_invocation_return_gerror
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_method_invocation_return_gerror
    - fu_error_convert
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_method_invocation_return_gerror(GDBusMethodInvocation
      *invocation, GError *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:341,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:342,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:342,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:345,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:345,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:346,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-dbus-daemon.c:351,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:352,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 358
    functionName: fu_dbus_daemon_authorize_unlock_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_unlock
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_unlock_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:367,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:368,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:368,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:369,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:373,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:373,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:374,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:379,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:380,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:380,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 382
    functionName: fu_dbus_daemon_authorize_get_bios_settings_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_context_get_bios_settings
    - FWUPD_CODEC
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fwupd_codec_to_variant
    - fu_engine_get_context
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_get_bios_settings_cb(GObject *source,\n\t\t\t\t\t
      \     GAsyncResult *res,\n\t\t\t\t\t      gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:390,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:391,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:391,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:394,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:394,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:395,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:400,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:401,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: fu_dbus_daemon_authorize_set_bios_settings_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - fu_engine_modify_bios_settings
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_set_bios_settings_cb(GObject *source,\n\t\t\t\t\t
      \     GAsyncResult *res,\n\t\t\t\t\t      gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:414,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:415,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:415,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:418,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:418,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:419,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:425,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:426,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 429
    functionName: fu_dbus_daemon_authorize_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_ptr_array_index
    - g_autoptr
    - fu_engine_add_approved_firmware
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_set_approved_firmware_cb(GObject *source,\n\t\t\t\t\t\t
      \ GAsyncResult *res,\n\t\t\t\t\t\t  gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:436,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:437,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:438,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:438,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:441,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:441,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:442,1
    - Dst: fu_engine_set_blocked_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:447,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:448,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 452
    functionName: fu_dbus_daemon_authorize_set_blocked_firmware_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_set_blocked_firmware
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_set_blocked_firmware_cb(GObject *source,\n\t\t\t\t\t\t
      GAsyncResult *res,\n\t\t\t\t\t\t gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:460,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:461,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:461,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:464,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:464,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:465,1
    - Dst: fu_engine_fix_host_security_attr
      Src: /src/fwupd/src/fu-dbus-daemon.c:470,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:471,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 475
    functionName: fu_dbus_daemon_authorize_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_fix_host_security_attr
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_fix_host_security_attr_cb(GObject *source,\n\t\t\t\t\t\t
      \  GAsyncResult *res,\n\t\t\t\t\t\t   gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:483,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:484,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:484,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:487,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:487,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:488,1
    - Dst: fu_engine_undo_host_security_attr
      Src: /src/fwupd/src/fu-dbus-daemon.c:493,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:494,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 498
    functionName: fu_dbus_daemon_authorize_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_undo_host_security_attr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_undo_host_security_attr_cb(GObject *source,\n\t\t\t\t\t\t
      \   GAsyncResult *res,\n\t\t\t\t\t\t    gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:505,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:506,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:506,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:509,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:509,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:510,1
    - Dst: fu_engine_self_sign
      Src: /src/fwupd/src/fu-dbus-daemon.c:515,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:517,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:522,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 523
    functionName: fu_dbus_daemon_authorize_self_sign_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_engine_self_sign
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - g_variant_new
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_self_sign_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:528,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:529,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:530,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:530,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:533,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:533,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:534,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:538,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:539,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 545
    functionName: fu_dbus_daemon_modify_config_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_modify_config
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_modify_config_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:550,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:551,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:552,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:552,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:555,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:555,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:556,1
    - Dst: fu_engine_reset_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:559,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:560,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: fu_dbus_daemon_reset_config_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_reset_config
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_reset_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:578,1
    - Dst: fu_dbus_daemon_emit_property_changed
      Src: /src/fwupd/src/fu-dbus-daemon.c:579,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - progress
    - percentage
    - self
    argTypes:
    - FuProgress*
    - guint
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: fu_dbus_daemon_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_emit_property_changed
    - g_variant_new_uint32
    - g_debug
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_progress_percentage_changed_cb(FuProgress *progress,\n\t\t\t\t\t
      \     guint percentage,\n\t\t\t\t\t      FuDbusDaemon *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: fu_dbus_daemon_progress_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_progress_status_changed_cb(FuProgress *progress,\n\t\t\t\t\t
      \ FwupdStatus status,\n\t\t\t\t\t  FuDbusDaemon *self)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:594,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:595,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:595,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:596,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:596,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:599,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:599,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:600,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:605,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:605,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:606,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:606,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:608,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:610,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:610,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:612,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-dbus-daemon.c:616,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:617,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 623
    functionName: fu_dbus_daemon_authorize_activate_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_signal_connect
    - fu_progress_new
    - fu_progress_set_profile
    - FU_PROGRESS
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_engine_activate
    - g_autoptr
    - g_getenv
    - FU_POLKIT_AUTHORITY
    - G_CALLBACK
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_activate_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:628,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:629,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:630,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:630,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:631,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:631,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:634,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:634,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:635,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:640,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:640,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:641,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:641,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:643,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:645,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:645,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:647,1
    - Dst: fu_engine_verify_update
      Src: /src/fwupd/src/fu-dbus-daemon.c:651,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:652,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 658
    functionName: fu_dbus_daemon_authorize_verify_update_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_signal_connect
    - fu_progress_new
    - fu_progress_set_profile
    - FU_PROGRESS
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_verify_update
    - g_getenv
    - FU_POLKIT_AUTHORITY
    - G_CALLBACK
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_verify_update_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:663,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:664,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:665,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:665,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:668,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:668,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:669,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-dbus-daemon.c:674,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:679,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 685
    functionName: fu_dbus_daemon_authorize_modify_remote_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_modify_remote
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_modify_remote_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_request_has_converter_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 695
    functionName: fu_dbus_daemon_engine_request_get_authority_check_flags
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_has_converter_flag
    linkageType: ''
    returnType: FuPolkitAuthorityCheckFlags
    signature: FuPolkitAuthorityCheckFlags fu_dbus_daemon_engine_request_get_authority_check_flags(FuEngineRequest
      *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:704,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:705,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:708,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:708,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:709,1
    - Dst: fu_dbus_daemon_authorize_install_queue
      Src: /src/fwupd/src/fu-dbus-daemon.c:714,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 715
    functionName: fu_dbus_daemon_authorize_install_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_steal_pointer
    - fu_dbus_daemon_authorize_install_queue
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_install_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:721,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:722,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:724,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:724,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:728,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:728,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:729,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:730,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:730,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:731,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:732,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:736,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:739,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:744,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:744,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:745,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:745,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:747,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:749,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:749,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:751,1
    - Dst: fu_daemon_set_update_in_progress
      Src: /src/fwupd/src/fu-dbus-daemon.c:755,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:755,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-dbus-daemon.c:756,1
    - Dst: fu_daemon_set_update_in_progress
      Src: /src/fwupd/src/fu-dbus-daemon.c:763,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:763,1
    - Dst: fu_daemon_get_pending_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:764,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:764,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:765,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:769,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:773,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - helper_ref
    argTypes:
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 779
    functionName: fu_dbus_daemon_authorize_install_queue
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 1
    functionsReached:
    - fu_daemon_get_pending_stop
    - fu_progress_set_profile
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_signal_connect
    - g_object_ref
    - FU_PROGRESS
    - g_ptr_array_index
    - g_ptr_array_remove_index
    - fu_daemon_set_update_in_progress
    - G_CALLBACK
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_polkit_authority_check
    - g_steal_pointer
    - fu_engine_install_releases
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_getenv
    - FU_DAEMON
    - fu_client_get_sender
    - fu_daemon_get_engine
    - g_set_error_literal
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_install_queue(FuMainAuthHelper *helper_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-dbus-daemon.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 789
    functionName: fu_dbus_daemon_release_sort_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_release_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_dbus_daemon_release_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:798,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:798,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:799,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:799,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:800,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:801,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:804,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:805,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-dbus-daemon.c:807,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:808,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:810,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:816,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:816,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:819,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-dbus-daemon.c:823,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:824,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:825,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-dbus-daemon.c:826,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:829,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:829,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-dbus-daemon.c:834,1
    - Dst: fu_device_incorporate_from_component
      Src: /src/fwupd/src/fu-dbus-daemon.c:835,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-dbus-daemon.c:838,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:839,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:839,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:844,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:845,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:846,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:847,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:850,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:850,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:852,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-dbus-daemon.c:852,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:858,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:862,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:862,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:863,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:864,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:865,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:866,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:872,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:872,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:875,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:875,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:878,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:878,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:883,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:884,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:888,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:889,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-dbus-daemon.c:890,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:892,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:892,1
    - Dst: fu_engine_check_trust
      Src: /src/fwupd/src/fu-dbus-daemon.c:895,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:896,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:896,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:901,1
    - Dst: fu_release_get_action_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:902,1
    - Dst: g_ptr_array_find
      Src: /src/fwupd/src/fu-dbus-daemon.c:903,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:904,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:904,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:906,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:906,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 4
    argNames:
    - helper
    - component
    - device
    - error
    argTypes:
    - FuMainAuthHelper*
    - XbNode*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 911
    functionName: fu_dbus_daemon_install_with_helper_device
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_check_trust
    - g_ptr_array_find
    - fu_release_set_request
    - fu_release_set_remote
    - fu_device_incorporate_from_component
    - fu_device_has_flag
    - fu_device_get_id
    - g_object_ref
    - xb_node_query_full
    - g_debug
    - fu_release_set_device
    - fu_release_get_action_id
    - xb_query_new_full
    - fu_release_load
    - g_ptr_array_index
    - xb_node_get_silo
    - fu_engine_requirements_check
    - g_steal_pointer
    - g_error_matches
    - fu_release_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - xb_node_query_text
    - g_ptr_array_add
    - FU_DAEMON
    - fu_daemon_get_engine
    - g_strdup
    - fu_device_ensure_from_component
    - fu_release_check_version
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dbus_daemon_install_with_helper_device(FuMainAuthHelper
      *helper,\n\t\t\t\t\t  XbNode *component,\n\t\t\t\t\t  FuDevice *device,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:919,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:920,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:920,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:923,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-dbus-daemon.c:924,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:928,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:929,1
    - Dst: fu_engine_get_devices_by_composite_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:933,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:934,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:941,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-dbus-daemon.c:946,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:949,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:950,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:951,1
    - Dst: fu_engine_get_remote_id_for_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:952,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:956,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:958,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:962,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:963,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:963,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:967,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:969,1
    - Dst: fu_dbus_daemon_install_with_helper_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:971,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-dbus-daemon.c:980,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-dbus-daemon.c:984,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:985,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:990,1
    - Dst: fu_dbus_daemon_authorize_install_queue
      Src: /src/fwupd/src/fu-dbus-daemon.c:991,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:991,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - helper_ref
    - error
    argTypes:
    - FuMainAuthHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 993
    functionName: fu_dbus_daemon_install_with_helper
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    - fu_engine_get_devices
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_get_id
    - g_debug
    - fu_device_get_composite_id
    - g_ptr_array_sort
    - g_ptr_array_index
    - fu_engine_get_device
    - g_steal_pointer
    - fu_engine_get_devices_by_composite_id
    - fu_dbus_daemon_install_with_helper_device
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_engine_get_remote_id_for_stream
    - fu_cabinet_get_components
    - fu_engine_build_cabinet_from_stream
    - FU_DAEMON
    - fu_dbus_daemon_authorize_install_queue
    - fu_daemon_get_engine
    - g_strcmp0
    - fu_engine_error_array_get_best
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbus_daemon_install_with_helper(FuMainAuthHelper *helper_ref,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bus_unwatch_name
      Src: /src/fwupd/src/fu-dbus-daemon.c:1005,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1006,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1007,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inhibit
    argTypes:
    - FuDbusDaemonSystemInhibit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1009
    functionName: fu_dbus_daemon_system_inhibit_free
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_bus_unwatch_name
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_system_inhibit_free(FuDbusDaemonSystemInhibit *inhibit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1014,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1014,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:1015,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1017,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1021
    functionName: fu_dbus_daemon_ensure_system_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_context_remove_flag
    - fu_context_add_flag
    - fu_daemon_get_engine
    - fu_engine_get_context
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_ensure_system_inhibit(FuDbusDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1028,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1030,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1031,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:1032,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1035,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1040
    functionName: fu_dbus_daemon_inhibit_name_vanished_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_ptr_array_index
    - g_ptr_array_remove_index
    - g_strcmp0
    - fu_dbus_daemon_ensure_system_inhibit
    - FU_DBUS_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_inhibit_name_vanished_cb(GDBusConnection *connection,\n\t\t\t\t\tconst
      gchar *name,\n\t\t\t\t\tgpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_client_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1046,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-dbus-daemon.c:1047,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1048,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - pspec
    - helper
    argTypes:
    - FuClient*
    - GParamSpec*
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1052
    functionName: fu_dbus_daemon_client_flags_notify_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_has_flag
    - fu_client_get_sender
    - g_info
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_client_flags_notify_cb(FuClient *client, GParamSpec
      *pspec, FuMainAuthHelper *helper)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1062,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1065,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1066,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1067,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1068,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1071,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1076,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1078,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1081,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1086
    functionName: fu_dbus_daemon_invocation_get_input_stream
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_method_invocation_get_message
    - g_unix_fd_list_get
    - g_set_error
    - g_steal_pointer
    - g_set_error_literal
    - g_unix_fd_list_get_length
    - g_autoptr
    - g_dbus_message_get_unix_fd_list
    - fu_unix_seekable_input_stream_new
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_dbus_daemon_invocation_get_input_stream(GDBusMethodInvocation *invocation,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1095,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1098,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1099,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1101,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1104,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1109,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1114,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1119
    functionName: fu_dbus_daemon_invocation_get_output_stream
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_method_invocation_get_message
    - g_unix_fd_list_get
    - g_set_error
    - g_unix_output_stream_new
    - g_steal_pointer
    - g_set_error_literal
    - g_unix_fd_list_get_length
    - g_autoptr
    - g_dbus_message_get_unix_fd_list
    linkageType: ''
    returnType: GOutputStream
    signature: 'GOutputStream *

      fu_dbus_daemon_invocation_get_output_stream(GDBusMethodInvocation *invocation,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:1128,1
    - Dst: fu_daemon_get_machine_kind
      Src: /src/fwupd/src/fu-dbus-daemon.c:1130,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1130,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-dbus-daemon.c:1133,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-dbus-daemon.c:1136,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-dbus-daemon.c:1137,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-dbus-daemon.c:1140,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1141,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDbusDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1158
    functionName: fu_dbus_daemon_hsi_supported
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_build_filename
    - g_set_error_literal
    - fu_path_from_kind
    - fu_daemon_get_machine_kind
    - g_file_test
    - g_strcmp0
    - g_getenv
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbus_daemon_hsi_supported(FuDbusDaemon *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1166,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1169,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-dbus-daemon.c:1171,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1173,1
    - Dst: fu_dbus_daemon_device_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1176,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1178,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1182
    functionName: fu_dbus_daemon_method_get_devices
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_get_devices
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_dbus_daemon_device_array_to_variant
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_devices(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1190,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1190,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1193,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-dbus-daemon.c:1193,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1195
    functionName: fu_dbus_daemon_method_get_plugins
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_plugins
    - g_dbus_method_invocation_return_value
    - fu_daemon_get_engine
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_plugins(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1203,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1206,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1208,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-dbus-daemon.c:1209,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1211,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1214,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1217
    functionName: fu_dbus_daemon_method_get_releases
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - fu_engine_get_releases
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fwupd_codec_array_to_variant
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_releases(FuDbusDaemon *self,\n\t\t\t\t
      \  GVariant *parameters,\n\t\t\t\t   FuEngineRequest *request,\n\t\t\t\t   GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1225,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1225,1
    - Dst: fu_engine_get_approved_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:1226,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1230,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:1230,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1232,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1233,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:1233,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:1235,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1236,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1237
    functionName: fu_dbus_daemon_method_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_approved_firmware
    - g_variant_new_tuple
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - g_variant_builder_add_value
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_ptr_array_index
    - g_variant_new_string
    - g_variant_builder_end
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_approved_firmware(FuDbusDaemon *self,\n\t\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t\t
      \   GDBusMethodInvocation *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1245,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1245,1
    - Dst: fu_engine_get_blocked_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:1246,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1250,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:1250,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1252,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1253,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:1253,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:1255,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1256,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1257
    functionName: fu_dbus_daemon_method_get_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_new_tuple
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - fu_engine_get_blocked_firmware
    - g_variant_builder_add_value
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_ptr_array_index
    - g_variant_new_string
    - g_variant_builder_end
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_blocked_firmware(FuDbusDaemon *self,\n\t\t\t\t\t
      \  GVariant *parameters,\n\t\t\t\t\t   FuEngineRequest *request,\n\t\t\t\t\t
      \  GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1265,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1265,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1271,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1272,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-dbus-daemon.c:1274,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1276,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1279,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:1279,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1280,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:1281,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1282,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1282,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:1284,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1285,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1286
    functionName: fu_dbus_daemon_method_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_new_tuple
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - g_variant_builder_add_value
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_engine_get_report_metadata
    - g_autoptr
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_variant_builder_end
    - g_variant_new
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_report_metadata(FuDbusDaemon *self,\n\t\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-dbus-daemon.c:1295,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1296,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1298,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-dbus-daemon.c:1299,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1302,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1303,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1306,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1307,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:1308,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:1310,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1310,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1311,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1312,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1314,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1318
    functionName: fu_dbus_daemon_method_set_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - g_auto
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - g_strjoinv
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_set_approved_firmware(FuDbusDaemon *self,\n\t\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t\t
      \   GDBusMethodInvocation *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-dbus-daemon.c:1327,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1328,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1330,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-dbus-daemon.c:1331,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1334,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1335,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1337,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1338,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:1339,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:1341,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1341,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1342,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1343,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1345,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1349
    functionName: fu_dbus_daemon_method_set_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - g_auto
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - g_strjoinv
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_set_blocked_firmware(FuDbusDaemon *self,\n\t\t\t\t\t
      \  GVariant *parameters,\n\t\t\t\t\t   FuEngineRequest *request,\n\t\t\t\t\t
      \  GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1354,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1355,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1358,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1358,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1359,1
    - Dst: fu_daemon_schedule_process_quit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1364,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1364,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1366
    functionName: fu_dbus_daemon_authorize_quit_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_schedule_process_quit
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_quit_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1374,1
    - Dst: fu_engine_request_has_converter_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1377,1
    - Dst: fu_daemon_schedule_process_quit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1378,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1378,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1379,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1384,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1385,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1387,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1388,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1389,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1390,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1392,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1396
    functionName: fu_dbus_daemon_method_quit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - fu_daemon_schedule_process_quit
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - g_dbus_method_invocation_return_value
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    - fu_engine_request_has_converter_flag
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_quit(FuDbusDaemon *self,\n\t\t\t   GVariant
      *parameters,\n\t\t\t   FuEngineRequest *request,\n\t\t\t   GDBusMethodInvocation
      *invocation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1407,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1408,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1410,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1413,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:1414,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:1415,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1416,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:1417,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1419,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:1420,1
    - Dst: g_variant_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1422,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1426,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1428,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1429,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1430,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1431,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1432,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1434,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1438
    functionName: fu_dbus_daemon_method_self_sign
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_get_boolean
    - g_object_ref
    - g_debug
    - fu_dbus_daemon_set_status
    - g_variant_get
    - g_steal_pointer
    - fu_polkit_authority_check
    - g_new0
    - fu_engine_request_get_sender
    - g_variant_iter_next
    - g_variant_unref
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_self_sign(FuDbusDaemon *self,\n\t\t\t\tGVariant
      *parameters,\n\t\t\t\tFuEngineRequest *request,\n\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1446,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1446,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1448,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1449,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1451,1
    - Dst: fu_engine_get_downgrades
      Src: /src/fwupd/src/fu-dbus-daemon.c:1452,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1454,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1457,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1440
    functionDepth: 2
    functionLinenumber: 1440
    functionLinenumberEnd: 1460
    functionName: fu_dbus_daemon_method_get_downgrades
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - fu_engine_get_downgrades
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fwupd_codec_array_to_variant
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_downgrades(FuDbusDaemon *self,\n\t\t\t\t
      \    GVariant *parameters,\n\t\t\t\t     FuEngineRequest *request,\n\t\t\t\t
      \    GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1468,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1470,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1471,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1473,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-dbus-daemon.c:1474,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1476,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1479,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1482
    functionName: fu_dbus_daemon_method_get_upgrades
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - fu_engine_get_upgrades
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fwupd_codec_array_to_variant
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_upgrades(FuDbusDaemon *self,\n\t\t\t\t
      \  GVariant *parameters,\n\t\t\t\t   FuEngineRequest *request,\n\t\t\t\t   GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1490,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1490,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1491,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1493,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-dbus-daemon.c:1494,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1496,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1499,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1502
    functionName: fu_dbus_daemon_method_get_remotes
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fwupd_codec_array_to_variant
    - g_autoptr
    - fu_engine_get_remotes
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_remotes(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1510,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1510,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1512,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1513,1
    - Dst: fu_engine_get_history
      Src: /src/fwupd/src/fu-dbus-daemon.c:1515,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1517,1
    - Dst: fu_dbus_daemon_device_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1520,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1522,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1526
    functionName: fu_dbus_daemon_method_get_history
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_dbus_daemon_device_array_to_variant
    - g_autoptr
    - fu_engine_get_history
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_history(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1534,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1537,1
    - Dst: fu_dbus_daemon_hsi_supported
      Src: /src/fwupd/src/fu-dbus-daemon.c:1539,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1540,1
    - Dst: fu_engine_get_host_security_attrs
      Src: /src/fwupd/src/fu-dbus-daemon.c:1543,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1544,1
    - Dst: fu_security_attrs_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1545
    functionName: fu_dbus_daemon_method_get_host_security_attrs
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_dbus_daemon_hsi_supported
    - fu_engine_get_host_security_attrs
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_security_attrs_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_host_security_attrs(FuDbusDaemon *self,\n\t\t\t\t\t
      \     GVariant *parameters,\n\t\t\t\t\t      FuEngineRequest *request,\n\t\t\t\t\t
      \     GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1554,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1554,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1556,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1557,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1559,1
    - Dst: fu_engine_get_host_security_events
      Src: /src/fwupd/src/fu-dbus-daemon.c:1560,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1562,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1565,1
    - Dst: fu_security_attrs_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1565,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1572
    functionName: fu_dbus_daemon_method_get_host_security_events
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - g_dbus_method_invocation_return_error_literal
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_security_attrs_to_variant
    - fu_engine_get_host_security_events
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_host_security_events(FuDbusDaemon *self,\n\t\t\t\t\t
      \      GVariant *parameters,\n\t\t\t\t\t       FuEngineRequest *request,\n\t\t\t\t\t
      \      GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1580,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1582,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1584,1
    - Dst: fu_engine_clear_results
      Src: /src/fwupd/src/fu-dbus-daemon.c:1585,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1586,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1574
    functionDepth: 2
    functionLinenumber: 1574
    functionLinenumberEnd: 1590
    functionName: fu_dbus_daemon_method_clear_results
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - fu_engine_clear_results
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_clear_results(FuDbusDaemon *self,\n\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t    GDBusMethodInvocation
      *invocation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1595,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1596,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1597,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1598,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1598,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1601,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1601,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1602,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:1607,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1609,1
    - Dst: fu_engine_emulation_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:1614,1
    - Dst: g_dbus_method_invocation_return_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1615,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1625
    functionName: fu_dbus_daemon_authorize_emulation_load_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_emulation_load
    - g_dbus_method_invocation_return_error
    - fu_dbus_daemon_invocation_get_input_stream
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_emulation_load_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1634,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1636,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1638,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1639,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1641,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1642,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1644,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1645,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1647,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1651
    functionName: fu_dbus_daemon_method_emulation_load
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_emulation_load(FuDbusDaemon *self,\n\t\t\t\t
      \    GVariant *parameters,\n\t\t\t\t     FuEngineRequest *request,\n\t\t\t\t
      \    GDBusMethodInvocation *invocation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1656,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1657,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1658,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1659,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1659,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1662,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1662,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1663,1
    - Dst: fu_dbus_daemon_invocation_get_output_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:1668,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1670,1
    - Dst: fu_engine_emulation_save
      Src: /src/fwupd/src/fu-dbus-daemon.c:1675,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1676,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1682
    functionName: fu_dbus_daemon_authorize_emulation_save_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_dbus_daemon_invocation_get_output_stream
    - g_autoptr
    - FU_POLKIT_AUTHORITY
    - fu_engine_emulation_save
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_emulation_save_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1690,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1692,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1694,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1695,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1697,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1698,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1700,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1701,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1703,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1707
    functionName: fu_dbus_daemon_method_emulation_save
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_emulation_save(FuDbusDaemon *self,\n\t\t\t\t
      \    GVariant *parameters,\n\t\t\t\t     FuEngineRequest *request,\n\t\t\t\t
      \    GDBusMethodInvocation *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1716,1
    - Dst: fu_engine_modify_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:1718,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1719,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - engine
    - device_id
    - key
    - value
    - invocation
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - gchar*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1709
    functionDepth: 2
    functionLinenumber: 1709
    functionLinenumberEnd: 1723
    functionName: fu_dbus_daemon_authorize_modify_device_internal
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_method_invocation_return_value
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_modify_device
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_authorize_modify_device_internal(FuEngine *engine,\n\t\t\t\t\t\tconst
      gchar *device_id,\n\t\t\t\t\t\tconst gchar *key,\n\t\t\t\t\t\tconst gchar *value,\n\t\t\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1728,1
    - Dst: fu_dbus_daemon_authorize_modify_device_internal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1730,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1731,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1725
    functionDepth: 3
    functionLinenumber: 1725
    functionLinenumberEnd: 1736
    functionName: fu_dbus_daemon_authorize_modify_device_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_authorize_modify_device_internal
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_modify_device_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1741,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1743,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1748
    functionName: fu_dbus_daemon_method_modify_device_flag_needs_auth
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbus_daemon_method_modify_device_flag_needs_auth(const
      gchar *key, const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1760,1
    - Dst: fu_dbus_daemon_method_modify_device_flag_needs_auth
      Src: /src/fwupd/src/fu-dbus-daemon.c:1761,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1762,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1762,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1764,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1765,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1766,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1767,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1768,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1769,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1770,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1772,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1774,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1777,1
    - Dst: fu_dbus_daemon_authorize_modify_device_internal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1779,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1780,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1750
    functionDepth: 3
    functionLinenumber: 1750
    functionLinenumberEnd: 1785
    functionName: fu_dbus_daemon_method_modify_device
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_method_modify_device_flag_needs_auth
    - fu_daemon_get_engine
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    - fu_dbus_daemon_authorize_modify_device_internal
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_modify_device(FuDbusDaemon *self,\n\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t    GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1793,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1796,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1797,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1799,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-dbus-daemon.c:1800,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1802,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1805,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:1805,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1806,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1807
    functionName: fu_dbus_daemon_method_get_results
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_new_tuple
    - g_variant_get
    - FWUPD_CODEC
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_engine_get_results
    - g_autoptr
    - fwupd_codec_to_variant
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_results(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1816,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1816,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1822,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1824,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1827,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1828,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1829,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1830,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1831,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1834,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1836,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1839,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1841,1
    - Dst: fu_engine_update_metadata
      Src: /src/fwupd/src/fu-dbus-daemon.c:1846,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1847,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1848,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1851,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 1858
    functionName: fu_dbus_daemon_method_update_metadata
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_method_invocation_get_message
    - g_set_error
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_unix_fd_list_get
    - g_variant_get
    - g_prefix_error
    - fu_engine_update_metadata
    - g_dbus_method_invocation_return_error_literal
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_unix_fd_list_get_length
    - g_dbus_message_get_unix_fd_list
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_update_metadata(FuDbusDaemon *self,\n\t\t\t\t
      \     GVariant *parameters,\n\t\t\t\t      FuEngineRequest *request,\n\t\t\t\t
      \     GDBusMethodInvocation *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1867,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1868,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1870,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1873,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1874,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1876,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1877,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1878,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1879,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1880,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1882,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1886
    functionName: fu_dbus_daemon_method_unlock
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_unlock(FuDbusDaemon *self,\n\t\t\t     GVariant
      *parameters,\n\t\t\t     FuEngineRequest *request,\n\t\t\t     GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1895,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1896,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1898,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1901,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1902,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1904,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1905,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1906,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1907,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1908,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1910,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1888
    functionDepth: 2
    functionLinenumber: 1888
    functionLinenumberEnd: 1914
    functionName: fu_dbus_daemon_method_activate
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_activate(FuDbusDaemon *self,\n\t\t\t       GVariant
      *parameters,\n\t\t\t       FuEngineRequest *request,\n\t\t\t       GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1925,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1927,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1930,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1932,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1933,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1934,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1935,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1936,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1937,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1938,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1940,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1916
    functionDepth: 2
    functionLinenumber: 1916
    functionLinenumberEnd: 1944
    functionName: fu_dbus_daemon_method_modify_config
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - g_variant_get
    - g_steal_pointer
    - fu_polkit_authority_check
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_modify_config(FuDbusDaemon *self,\n\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t    GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1953,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1955,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1958,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1960,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1961,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1962,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1963,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1964,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1966,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1946
    functionDepth: 2
    functionLinenumber: 1946
    functionLinenumberEnd: 1970
    functionName: fu_dbus_daemon_method_reset_config
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - g_variant_get
    - g_steal_pointer
    - fu_polkit_authority_check
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_reset_config(FuDbusDaemon *self,\n\t\t\t\t
      \  GVariant *parameters,\n\t\t\t\t   FuEngineRequest *request,\n\t\t\t\t   GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1981,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1984,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1987,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1988,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1989,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1990,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1991,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1992,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1996,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1997,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1998,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2000,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1972
    functionDepth: 2
    functionLinenumber: 1972
    functionLinenumberEnd: 2004
    functionName: fu_dbus_daemon_method_modify_remote
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_modify_remote(FuDbusDaemon *self,\n\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t    GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2013,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2014,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2017,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2020,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2021,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2022,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2023,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2027,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2028,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2029,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2031,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2035
    functionName: fu_dbus_daemon_method_verify_update
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_verify_update(FuDbusDaemon *self,\n\t\t\t\t
      \   GVariant *parameters,\n\t\t\t\t    FuEngineRequest *request,\n\t\t\t\t    GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2043,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2043,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2045,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2046,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2046,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2048,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:2051,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:2051,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2052,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2052,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2054,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2056,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2056,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2058,1
    - Dst: fu_engine_verify
      Src: /src/fwupd/src/fu-dbus-daemon.c:2061,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2062,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2037
    functionDepth: 2
    functionLinenumber: 2037
    functionLinenumberEnd: 2066
    functionName: fu_dbus_daemon_method_verify
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_signal_connect
    - fu_progress_new
    - g_variant_get
    - fu_progress_set_profile
    - FU_PROGRESS
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_getenv
    - fu_engine_verify
    - G_CALLBACK
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_verify(FuDbusDaemon *self,\n\t\t\t     GVariant
      *parameters,\n\t\t\t     FuEngineRequest *request,\n\t\t\t     GDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2075,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2077,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2080,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2080,1
    - Dst: fu_client_set_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2081,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2083
    functionName: fu_dbus_daemon_method_set_feature_flags
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_get_sender
    - g_variant_get
    - fu_client_list_register
    - g_dbus_method_invocation_return_value
    - fu_client_set_feature_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_set_feature_flags(FuDbusDaemon *self,\n\t\t\t\t\tGVariant
      *parameters,\n\t\t\t\t\tFuEngineRequest *request,\n\t\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2093,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2094,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2096,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2097,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2097,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2098,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2099,1
    - Dst: fu_client_insert_hint
      Src: /src/fwupd/src/fu-dbus-daemon.c:2100,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2103
    functionName: fu_dbus_daemon_method_set_hints
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_get_sender
    - g_debug
    - g_variant_get
    - fu_client_list_register
    - g_dbus_method_invocation_return_value
    - g_variant_iter_next
    - g_autoptr
    - fu_client_insert_hint
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_set_hints(FuDbusDaemon *self,\n\t\t\t\tGVariant
      *parameters,\n\t\t\t\tFuEngineRequest *request,\n\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2114,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2117,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2118,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2118,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-dbus-daemon.c:2120,1
    - Dst: g_random_int_range
      Src: /src/fwupd/src/fu-dbus-daemon.c:2120,1
    - Dst: g_bus_watch_name_on_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:2122,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:2129,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2130,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2131,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2132
    functionName: fu_dbus_daemon_method_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_get_sender
    - g_random_int_range
    - g_variant_get
    - g_new0
    - g_strdup_printf
    - g_dbus_method_invocation_return_value
    - g_strdup
    - g_bus_watch_name_on_connection
    - fu_dbus_daemon_ensure_system_inhibit
    - g_ptr_array_add
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_inhibit(FuDbusDaemon *self,\n\t\t\t      GVariant
      *parameters,\n\t\t\t      FuEngineRequest *request,\n\t\t\t      GDBusMethodInvocation
      *invocation)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2141,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2146,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2148,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2151,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2154,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2155,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2156,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2157,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2158,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2162,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2164,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/src/fu-dbus-daemon.c:2165,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2168,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2169,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2171,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2172,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2174,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2175,1
    - Dst: g_variant_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2178,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:2182,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2184,1
    - Dst: fu_engine_config_get_ignore_requirements
      Src: /src/fwupd/src/fu-dbus-daemon.c:2189,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:2189,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2194,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2194,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2196,1
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-dbus-daemon.c:2196,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2198,1
    - Dst: fu_dbus_daemon_install_with_helper
      Src: /src/fwupd/src/fu-dbus-daemon.c:2200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2200,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2201,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2134
    functionDepth: 4
    functionLinenumber: 2134
    functionLinenumberEnd: 2210
    functionName: fu_dbus_daemon_method_install
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_dbus_method_invocation_return_error_literal
    - fu_engine_get_config
    - fu_engine_config_get_ignore_requirements
    - g_signal_connect
    - g_object_ref
    - g_variant_get_boolean
    - g_debug
    - fu_engine_request_get_sender
    - FU_CLIENT
    - fu_dbus_daemon_install_with_helper
    - g_variant_unref
    - G_CALLBACK
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_steal_pointer
    - fu_client_list_register
    - g_autoptr
    - g_variant_get_uint64
    - FU_DAEMON
    - fu_progress_new
    - g_variant_get
    - fu_daemon_get_engine
    - g_variant_iter_next
    - g_strdup
    - g_strcmp0
    - fu_dbus_daemon_invocation_get_input_stream
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_install(FuDbusDaemon *self,\n\t\t\t      GVariant
      *parameters,\n\t\t\t      FuEngineRequest *request,\n\t\t\t      GDBusMethodInvocation
      *invocation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2221,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2225,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2226,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2227,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2228,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2234,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2212
    functionDepth: 2
    functionLinenumber: 2212
    functionLinenumberEnd: 2241
    functionName: fu_dbus_daemon_method_uninhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_get
    - g_dbus_method_invocation_return_error_literal
    - g_dbus_method_invocation_return_value
    - g_ptr_array_index
    - g_ptr_array_remove_index
    - g_strcmp0
    - fu_dbus_daemon_ensure_system_inhibit
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_uninhibit(FuDbusDaemon *self,\n\t\t\t\tGVariant
      *parameters,\n\t\t\t\tFuEngineRequest *request,\n\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2250,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2250,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2252,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2253,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2254,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2257,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:2260,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2262,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-dbus-daemon.c:2267,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2269,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2272,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:2274,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2243
    functionDepth: 2
    functionLinenumber: 2243
    functionLinenumberEnd: 2281
    functionName: fu_dbus_daemon_method_get_details
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_get
    - fu_engine_get_details
    - g_dbus_method_invocation_return_error_literal
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fwupd_codec_array_to_variant
    - g_autoptr
    - fu_dbus_daemon_invocation_get_input_stream
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_details(FuDbusDaemon *self,\n\t\t\t\t
      \ GVariant *parameters,\n\t\t\t\t  FuEngineRequest *request,\n\t\t\t\t  GDBusMethodInvocation
      *invocation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2289,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2289,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2291,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2297,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:2298,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2298,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2299,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:2301,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:2301,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2302,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2304,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2307,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2308,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2310,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2311,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2312,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2314,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2316,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2283
    functionDepth: 2
    functionLinenumber: 2283
    functionLinenumberEnd: 2321
    functionName: fu_dbus_daemon_method_get_bios_settings
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - fu_context_get_bios_settings
    - fu_engine_request_get_feature_flags
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - FWUPD_CODEC
    - fu_daemon_get_engine
    - g_dbus_method_invocation_return_value
    - fu_engine_request_get_converter_flags
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_autoptr
    - fwupd_codec_to_variant
    - fu_engine_get_context
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_get_bios_settings(FuDbusDaemon *self,\n\t\t\t\t\tGVariant
      *parameters,\n\t\t\t\t\tFuEngineRequest *request,\n\t\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2332,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2334,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2337,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2338,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2340,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2341,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:2342,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2343,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2344,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-dbus-daemon.c:2345,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2345,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2345,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2347,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2348,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2350,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2323
    functionDepth: 2
    functionLinenumber: 2323
    functionLinenumberEnd: 2354
    functionName: fu_dbus_daemon_method_set_bios_settings
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_debug
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - g_hash_table_new_full
    - g_variant_iter_next
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_set_bios_settings(FuDbusDaemon *self,\n\t\t\t\t\tGVariant
      *parameters,\n\t\t\t\t\tFuEngineRequest *request,\n\t\t\t\t\tGDBusMethodInvocation
      *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2363,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2364,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2367,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2368,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2370,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2371,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2372,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2374,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2375,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2377,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2356
    functionDepth: 2
    functionLinenumber: 2356
    functionLinenumberEnd: 2381
    functionName: fu_dbus_daemon_method_fix_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_fix_host_security_attr(FuDbusDaemon *self,\n\t\t\t\t\t
      \    GVariant *parameters,\n\t\t\t\t\t     FuEngineRequest *request,\n\t\t\t\t\t
      \    GDBusMethodInvocation *invocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2390,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2392,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2395,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2396,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2398,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2399,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2400,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2402,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2403,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2383
    functionDepth: 2
    functionLinenumber: 2383
    functionLinenumberEnd: 2409
    functionName: fu_dbus_daemon_method_undo_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_request_get_sender
    - fu_dbus_daemon_set_status
    - g_variant_get
    - fu_polkit_authority_check
    - g_steal_pointer
    - g_new0
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_undo_host_security_attr(FuDbusDaemon *self,\n\t\t\t\t\t
      \     GVariant *parameters,\n\t\t\t\t\t      FuEngineRequest *request,\n\t\t\t\t\t
      \     GDBusMethodInvocation *invocation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2426,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2427,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2427,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2428,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2430,1
    - Dst: fu_dbus_daemon_create_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:2477,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2479,1
    - Dst: fu_engine_idle_reset
      Src: /src/fwupd/src/fu-dbus-daemon.c:2484,1
    - Dst: g_variant_print_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2487,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2488,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2491,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2492,1
    - Dst: func
      Src: /src/fwupd/src/fu-dbus-daemon.c:2493,1
    - Dst: g_dbus_method_invocation_return_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 8
    argNames:
    - connection
    - sender
    - object_path
    - interface_name
    - method_name
    - parameters
    - invocation
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gchar*
    - gchar*
    - gchar*
    - GVariant*
    - GDBusMethodInvocation*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2416
    functionDepth: 2
    functionLinenumber: 2416
    functionLinenumberEnd: 2502
    functionName: fu_dbus_daemon_method_call
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_debug
    - func
    - FU_DBUS_DAEMON
    - fu_engine_idle_reset
    - g_dbus_method_invocation_return_error
    - fu_daemon_get_engine
    - g_strcmp0
    - g_autoptr
    - fu_dbus_daemon_create_request
    - g_variant_print_string
    - G_N_ELEMENTS
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_call(GDBusConnection *connection,\n\t\t\t
      \  const gchar *sender,\n\t\t\t   const gchar *object_path,\n\t\t\t   const
      gchar *interface_name,\n\t\t\t   const gchar *method_name,\n\t\t\t   GVariant
      *parameters,\n\t\t\t   GDBusMethodInvocation *invocation,\n\t\t\t   gpointer
      user_data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2513,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2514,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2514,1
    - Dst: fu_engine_idle_reset
      Src: /src/fwupd/src/fu-dbus-daemon.c:2517,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2519,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2520,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2522,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2523,1
    - Dst: fu_engine_get_host_bkc
      Src: /src/fwupd/src/fu-dbus-daemon.c:2523,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2525,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2528,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2529,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2531,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2534,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2535,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2536,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-dbus-daemon.c:2536,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2539,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2540,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2541,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-dbus-daemon.c:2541,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2544,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2545,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-dbus-daemon.c:2545,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2547,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2548,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-dbus-daemon.c:2548,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2550,1
    - Dst: fu_engine_get_host_machine_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:2551,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2553,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2560,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2563,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:2565,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2566,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2568,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2577,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2578,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-dbus-daemon.c:2578,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-dbus-daemon.c:2578,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2580,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2581,1
    - Dst: fu_engine_config_get_only_trusted
      Src: /src/fwupd/src/fu-dbus-daemon.c:2582,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:2582,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2586,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 7
    argNames:
    - connection_
    - sender
    - object_path
    - interface_name
    - property_name
    - error
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2592
    functionName: fu_dbus_daemon_get_property
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_config
    - g_set_error
    - fu_context_get_battery_threshold
    - isatty
    - fu_engine_get_host_bkc
    - g_variant_new_string
    - fu_context_get_battery_level
    - fu_engine_get_host_product
    - FU_DBUS_DAEMON
    - fileno
    - g_variant_new_uint32
    - fu_engine_get_host_security_id
    - fu_engine_get_host_vendor
    - fu_engine_get_context
    - FU_DAEMON
    - fu_engine_idle_reset
    - fu_engine_config_get_only_trusted
    - fu_daemon_get_engine
    - fu_engine_get_host_machine_id
    - g_strcmp0
    - g_variant_new_boolean
    linkageType: ''
    returnType: GVariant
    signature: "GVariant *\nfu_dbus_daemon_get_property(GDBusConnection *connection_,\n\t\t\t
      \   const gchar *sender,\n\t\t\t    const gchar *object_path,\n\t\t\t    const
      gchar *interface_name,\n\t\t\t    const gchar *property_name,\n\t\t\t    GError
      **error,\n\t\t\t    gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_connection_register_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:2603,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDbusDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2620
    functionName: fu_dbus_daemon_register_object
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_connection_register_object
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbus_daemon_register_object(FuDbusDaemon *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2625,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2625,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2626,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-dbus-daemon.c:2626,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2627,1
    - Dst: fu_engine_idle_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2630,1
    - Dst: fu_engine_idle_uninhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2635
    functionName: fu_dbus_daemon_client_list_ensure_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_client_list_get_all
    - fu_daemon_get_engine
    - fu_engine_idle_uninhibit
    - g_autoptr
    - fu_engine_idle_inhibit
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_client_list_ensure_inhibit(FuDbusDaemon *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2640,1
    - Dst: fu_dbus_daemon_client_list_ensure_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - client_list
    - client
    - user_data
    argTypes:
    - FuClientList*
    - FuClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2637
    functionDepth: 2
    functionLinenumber: 2637
    functionLinenumberEnd: 2642
    functionName: fu_dbus_daemon_client_list_added_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_client_list_ensure_inhibit
    - FU_DBUS_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_client_list_added_cb(FuClientList *client_list,
      FuClient *client, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2649,1
    - Dst: fu_dbus_daemon_client_list_ensure_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - client_list
    - client
    - user_data
    argTypes:
    - FuClientList*
    - FuClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2644
    functionDepth: 2
    functionLinenumber: 2644
    functionLinenumberEnd: 2651
    functionName: fu_dbus_daemon_client_list_removed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_client_list_ensure_inhibit
    - FU_DBUS_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_client_list_removed_cb(FuClientList *client_list,\n\t\t\t\t
      \     FuClient *client,\n\t\t\t\t      gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:2656,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2658,1
    - Dst: fu_client_list_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2658,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2659,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2661,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2663,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2665,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:2667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - connection
    argTypes:
    - FuDbusDaemon*
    - GDBusConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2653
    functionDepth: 1
    functionLinenumber: 2653
    functionLinenumberEnd: 2669
    functionName: fu_dbus_daemon_set_connection
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_list_new
    - g_set_object
    - g_autoptr
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_set_connection(FuDbusDaemon *self, GDBusConnection
      *connection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2676,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2677,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:2680,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:2690,1
    - Dst: fu_dbus_daemon_set_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:2694,1
    - Dst: fu_dbus_daemon_register_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:2695,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:2696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2671
    functionDepth: 2
    functionLinenumber: 2671
    functionLinenumberEnd: 2699
    functionName: fu_dbus_daemon_dbus_bus_acquired_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_register_object
    - g_autoptr
    - g_dbus_proxy_new_sync
    - fu_dbus_daemon_set_connection
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_dbus_bus_acquired_cb(GDBusConnection *connection,\n\t\t\t\t
      \   const gchar *name,\n\t\t\t\t    gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2707
    functionName: fu_dbus_daemon_dbus_name_acquired_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_dbus_name_acquired_cb(GDBusConnection *connection,\n\t\t\t\t
      \    const gchar *name,\n\t\t\t\t     gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2712,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:2713,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:2714,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2715
    functionName: fu_dbus_daemon_dbus_name_lost_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_daemon_stop
    - FU_DAEMON
    - FU_DBUS_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_dbus_name_lost_cb(GDBusConnection *connection,
      const gchar *name, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-dbus-daemon.c:2724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - connection
    - remote_peer_vanished
    - error
    - user_data
    argTypes:
    - GDBusConnection*
    - gboolean
    - GError*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2717
    functionDepth: 0
    functionLinenumber: 2717
    functionLinenumberEnd: 2725
    functionName: fu_dbus_daemon_dbus_connection_closed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_info
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_dbus_connection_closed_cb(GDBusConnection *connection,\n\t\t\t\t\t
      gboolean remote_peer_vanished,\n\t\t\t\t\t GError *error,\n\t\t\t\t\t gpointer
      user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2732,1
    - Dst: fu_dbus_daemon_set_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:2733,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2734,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2736,1
    - Dst: fu_dbus_daemon_register_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:2738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - server
    - connection
    - user_data
    argTypes:
    - GDBusServer*
    - GDBusConnection*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2727
    functionDepth: 2
    functionLinenumber: 2727
    functionLinenumberEnd: 2739
    functionName: fu_dbus_daemon_dbus_new_connection_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_register_object
    - g_signal_connect
    - G_CALLBACK
    - fu_dbus_daemon_set_connection
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dbus_daemon_dbus_new_connection_cb(GDBusServer *server,\n\t\t\t\t
      \     GDBusConnection *connection,\n\t\t\t\t      gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2744,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-dbus-daemon.c:2748,1
    - Dst: g_resources_lookup_data
      Src: /src/fwupd/src/fu-dbus-daemon.c:2749,1
    - Dst: g_dbus_node_info_new_for_xml
      Src: /src/fwupd/src/fu-dbus-daemon.c:2754,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-dbus-daemon.c:2754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2755
    functionName: fu_dbus_daemon_load_introspection
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - g_dbus_node_info_new_for_xml
    - g_autoptr
    - g_bytes_get_data
    - g_resources_lookup_data
    linkageType: ''
    returnType: GDBusNodeInfo
    signature: 'GDBusNodeInfo *

      fu_dbus_daemon_load_introspection(const gchar *filename, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2763,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2764,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:2767,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:2768,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:2768,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:2769,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:2770,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:2771,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:2772,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2775,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2775,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2777,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2779,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2779,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2781,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2783,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2783,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2785,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2787,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2787,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2789,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2791,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2791,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2793,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2795,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2795,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2797,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:2799,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-dbus-daemon.c:2805,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2807,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:2810,1
    - Dst: fu_dbus_daemon_load_introspection
      Src: /src/fwupd/src/fu-dbus-daemon.c:2814,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2816,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:2819,1
    - Dst: fu_polkit_authority_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2822,1
    - Dst: fu_polkit_authority_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:2823,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:2825,1
    - Dst: g_dbus_generate_guid
      Src: /src/fwupd/src/fu-dbus-daemon.c:2829,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2830,1
    - Dst: g_dbus_server_new_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:2832,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2839,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:2842,1
    - Dst: g_dbus_server_get_client_address
      Src: /src/fwupd/src/fu-dbus-daemon.c:2842,1
    - Dst: g_dbus_server_start
      Src: /src/fwupd/src/fu-dbus-daemon.c:2843,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2844,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2846,1
    - Dst: g_bus_own_name
      Src: /src/fwupd/src/fu-dbus-daemon.c:2849,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:2859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 4
    argNames:
    - daemon
    - socket_address
    - progress
    - error
    argTypes:
    - FuDaemon*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2757
    functionDepth: 1
    functionLinenumber: 2757
    functionLinenumberEnd: 2863
    functionName: fu_dbus_daemon_setup
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_message
    - fu_polkit_authority_load
    - fu_progress_set_profile
    - g_prefix_error
    - g_dbus_generate_guid
    - g_signal_connect
    - fu_polkit_authority_new
    - fu_progress_get_child
    - g_bus_own_name
    - g_dbus_server_new_sync
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_dbus_daemon_load_introspection
    - G_CALLBACK
    - FU_DBUS_DAEMON
    - g_dbus_server_start
    - fu_progress_step_done
    - g_autoptr
    - fu_engine_load
    - g_getenv
    - fu_daemon_get_engine
    - FU_ENGINE
    - g_dbus_server_get_client_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dbus_daemon_setup(FuDaemon *daemon,\n\t\t     const gchar
      *socket_address,\n\t\t     FuProgress *progress,\n\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:2870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2865
    functionDepth: 0
    functionLinenumber: 2865
    functionLinenumberEnd: 2871
    functionName: fu_dbus_daemon_init
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_init(FuDbusDaemon *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2876,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2878,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2880,1
    - Dst: g_bus_unown_name
      Src: /src/fwupd/src/fu-dbus-daemon.c:2882,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2884,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2886,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2888,1
    - Dst: g_dbus_node_info_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2890,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2873
    functionDepth: 0
    functionLinenumber: 2873
    functionLinenumberEnd: 2893
    functionName: fu_dbus_daemon_finalize
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - g_bus_unown_name
    - G_OBJECT_CLASS
    - g_dbus_node_info_unref
    - FU_DBUS_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2898,1
    - Dst: FU_DAEMON_CLASS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDbusDaemonClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2895
    functionDepth: 0
    functionLinenumber: 2895
    functionLinenumberEnd: 2902
    functionName: fu_dbus_daemon_class_init
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DAEMON_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_class_init(FuDbusDaemonClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2907,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2904
    functionDepth: 0
    functionLinenumber: 2904
    functionLinenumberEnd: 2908
    functionName: fu_daemon_new
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_DAEMON
    linkageType: ''
    returnType: FuDaemon
    signature: 'FuDaemon *

      fu_daemon_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:28,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - feature_flags
    argTypes:
    - FuClient*
    - FwupdFeatureFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_client_set_feature_flags
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 1
    functionsReached:
    - FU_IS_CLIENT
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_client_set_feature_flags(FuClient *self, FwupdFeatureFlags
      feature_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:35,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_client_get_feature_flags
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: FwupdFeatureFlags
    signature: FwupdFeatureFlags fu_client_get_feature_flags(FuClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:42,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: fu_client_get_sender
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_client_get_sender(FuClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:49,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:49,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:50,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-client.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: fu_client_lookup_hint
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 1
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_client_lookup_hint(FuClient *self, const gchar *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:57,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:57,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:58,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:59,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-client.c:60,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-client.c:60,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-client.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuClient*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: fu_client_insert_hint
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - FU_IS_CLIENT
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_client_insert_hint(FuClient *self, const gchar *key, const
      gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:66,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:66,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:67,1
    - Dst: g_object_notify
      Src: /src/fwupd/src/fu-client.c:71,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-client.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuClient*
    - FuClientFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: fu_client_add_flag
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - G_OBJECT
    - g_object_notify
    - FU_IS_CLIENT
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_client_add_flag(FuClient *self, FuClientFlag flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:77,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:77,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-client.c:78,1
    - Dst: g_object_notify
      Src: /src/fwupd/src/fu-client.c:82,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-client.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuClient*
    - FuClientFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: fu_client_remove_flag
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - G_OBJECT
    - g_object_notify
    - FU_IS_CLIENT
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_client_remove_flag(FuClient *self, FuClientFlag flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:88,1
    - Dst: FU_IS_CLIENT
      Src: /src/fwupd/src/fu-client.c:88,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuClient*
    - FuClientFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: fu_client_has_flag
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_client_has_flag(FuClient *self, FuClientFlag flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-client.c:96,1
    - Dst: g_value_set_string
      Src: /src/fwupd/src/fu-client.c:99,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/src/fu-client.c:102,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-client.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: fu_client_get_property
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - FU_CLIENT
    - g_value_set_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fu_client_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-client.c:113,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/src/fu-client.c:116,1
    - Dst: fu_client_add_flag
      Src: /src/fwupd/src/fu-client.c:119,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/src/fu-client.c:119,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-client.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: fu_client_set_property
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - FU_CLIENT
    - fu_client_add_flag
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    - g_value_dup_string
    linkageType: ''
    returnType: void
    signature: void fu_client_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-client.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: fu_client_init
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_client_init(FuClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-client.c:136,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-client.c:137,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-client.c:138,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-client.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: fu_client_finalize
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - FU_CLIENT
    - G_OBJECT_CLASS
    - g_free
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_client_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-client.c:145,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/src/fu-client.c:152,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-client.c:157,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/src/fu-client.c:159,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-client.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuClientClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: fu_client_class_init
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_client_class_init(FuClientClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-client.c:172,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-client.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sender
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: fu_client_new
    functionSourceFile: /src/fwupd/src/fu-client.c
    functionUses: 0
    functionsReached:
    - FU_CLIENT
    - g_object_new
    linkageType: ''
    returnType: FuClient
    signature: 'FuClient *

      fu_client_new(const gchar *sender)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:29,1
    - Dst: FU_IS_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:29,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:30,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/src/fu-polkit-authority.c:30,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:31,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:32,1
    - Dst: G_TASK
      Src: /src/fwupd/src/fu-polkit-authority.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FuPolkitAuthority*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: fu_polkit_authority_check_finish
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 17
    functionsReached:
    - FU_IS_POLKIT_AUTHORITY
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_polkit_authority_check_finish(FuPolkitAuthority *self,
      GAsyncResult *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:40,1
    - Dst: G_TASK
      Src: /src/fwupd/src/fu-polkit-authority.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:41,1
    - Dst: polkit_authority_check_authorization_finish
      Src: /src/fwupd/src/fu-polkit-authority.c:43,1
    - Dst: POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:43,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/src/fu-polkit-authority.c:47,1
    - Dst: polkit_authorization_result_get_is_authorized
      Src: /src/fwupd/src/fu-polkit-authority.c:56,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/src/fu-polkit-authority.c:57,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - source_object
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: fu_polkit_authority_check_cb
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached:
    - G_TASK
    - polkit_authorization_result_get_is_authorized
    - g_task_return_new_error
    - polkit_authority_check_authorization_finish
    - g_autoptr
    - POLKIT_AUTHORITY
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: void fu_polkit_authority_check_cb(GObject *source_object, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:78,1
    - Dst: g_task_new
      Src: /src/fwupd/src/fu-polkit-authority.c:78,1
    - Dst: polkit_authority_get_owner
      Src: /src/fwupd/src/fu-polkit-authority.c:81,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:84,1
    - Dst: FU_IS_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:84,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:85,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:90,1
    - Dst: polkit_system_bus_name_new
      Src: /src/fwupd/src/fu-polkit-authority.c:90,1
    - Dst: polkit_authority_check_authorization
      Src: /src/fwupd/src/fu-polkit-authority.c:93,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-polkit-authority.c:100,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/src/fu-polkit-authority.c:107,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - self
    - sender
    - action_id
    - flags
    - cancellable
    - callback
    - user_data
    argTypes:
    - FuPolkitAuthority*
    - gchar*
    - gchar*
    - FuPolkitAuthorityCheckFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 116
    functionName: fu_polkit_authority_check
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 18
    functionsReached:
    - FU_IS_POLKIT_AUTHORITY
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - g_return_if_fail
    - polkit_authority_get_owner
    - polkit_authority_check_authorization
    - g_autoptr
    - polkit_system_bus_name_new
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: "void fu_polkit_authority_check(FuPolkitAuthority *self,\n\t\t\t  const
      gchar *sender,\n\t\t\t  const gchar *action_id,\n\t\t\t  FuPolkitAuthorityCheckFlags
      flags,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GAsyncReadyCallback callback,\n\t\t\t
      \ gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPolkitAuthority*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: fu_polkit_authority_init
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_polkit_authority_init(FuPolkitAuthority *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: polkit_authority_get_sync
      Src: /src/fwupd/src/fu-polkit-authority.c:127,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-polkit-authority.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPolkitAuthority*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: fu_polkit_authority_load
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 1
    functionsReached:
    - g_prefix_error
    - polkit_authority_get_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_polkit_authority_load(FuPolkitAuthority *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:140,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-polkit-authority.c:142,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-authority.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: fu_polkit_authority_finalize
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_POLKIT_AUTHORITY
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_polkit_authority_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-authority.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPolkitAuthorityClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: fu_polkit_authority_class_init
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_polkit_authority_class_init(FuPolkitAuthorityClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-polkit-authority.c:158,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: fu_polkit_authority_new
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 1
    functionsReached:
    - FU_POLKIT_AUTHORITY
    - g_object_new
    linkageType: ''
    returnType: FuPolkitAuthority
    signature: 'FuPolkitAuthority *

      fu_polkit_authority_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-client-list.c:36,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-client-list.c:36,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-client-list.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - client
    argTypes:
    - FuClientList*
    - FuClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_client_list_emit_added
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_client_get_sender
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_client_list_emit_added(FuClientList *self, FuClient *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-client-list.c:43,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-client-list.c:43,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-client-list.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - client
    argTypes:
    - FuClientList*
    - FuClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_client_list_emit_removed
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_client_get_sender
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_client_list_emit_removed(FuClientList *self, FuClient *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list.c:54,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-client-list.c:54,1
    - Dst: fu_client_remove_flag
      Src: /src/fwupd/src/fu-client-list.c:55,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-client-list.c:56,1
    - Dst: fu_client_list_emit_removed
      Src: /src/fwupd/src/fu-client-list.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: fu_client_list_sender_name_vanished_cb
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_client_list_emit_removed
    - g_ptr_array_remove
    - FU_CLIENT_LIST
    - fu_client_remove_flag
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_client_list_sender_name_vanished_cb(GDBusConnection *connection,\n\t\t\t\t
      \      const gchar *name,\n\t\t\t\t       gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client-list.c:66,1
    - Dst: FU_IS_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:66,1
    - Dst: fu_client_list_get_by_sender
      Src: /src/fwupd/src/fu-client-list.c:69,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-client-list.c:74,1
    - Dst: fu_client_new
      Src: /src/fwupd/src/fu-client-list.c:76,1
    - Dst: g_bus_watch_name_on_connection
      Src: /src/fwupd/src/fu-client-list.c:79,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-client-list.c:87,1
    - Dst: fu_client_list_emit_added
      Src: /src/fwupd/src/fu-client-list.c:90,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-client-list.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - sender
    argTypes:
    - FuClientList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 92
    functionName: fu_client_list_register
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 3
    functionsReached:
    - g_object_ref
    - FU_IS_CLIENT_LIST
    - g_new0
    - fu_client_list_get_by_sender
    - fu_client_new
    - g_bus_watch_name_on_connection
    - fu_client_list_emit_added
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: FuClient
    signature: 'FuClient *

      fu_client_list_register(FuClientList *self, const gchar *sender)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list.c:97,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-client-list.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client-list.c:98,1
    - Dst: FU_IS_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-client-list.c:100,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-client-list.c:101,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-client-list.c:101,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-client-list.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuClientList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: fu_client_list_get_all
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - FU_IS_CLIENT_LIST
    - g_steal_pointer
    - g_ptr_array_index
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_client_list_get_all(FuClientList *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client-list.c:109,1
    - Dst: FU_IS_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:109,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-client-list.c:111,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-client-list.c:112,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-client-list.c:112,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-client-list.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sender
    argTypes:
    - FuClientList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: fu_client_list_get_by_sender
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - FU_IS_CLIENT_LIST
    - fu_client_get_sender
    - g_ptr_array_index
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuClient
    signature: 'FuClient *

      fu_client_list_get_by_sender(FuClientList *self, const gchar *sender)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:121,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-client-list.c:124,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-client-list.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: fu_client_list_get_property
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - FU_CLIENT_LIST
    linkageType: ''
    returnType: void
    signature: void fu_client_list_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:135,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/src/fu-client-list.c:138,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-client-list.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: fu_client_list_set_property
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_CLIENT_LIST
    linkageType: ''
    returnType: void
    signature: void fu_client_list_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bus_unwatch_name
      Src: /src/fwupd/src/fu-client-list.c:150,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-client-list.c:151,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-client-list.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuClientListItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: fu_client_list_item_free
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_bus_unwatch_name
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_client_list_item_free(FuClientListItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-client-list.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuClientList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: fu_client_list_init
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_client_list_init(FuClientList *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:164,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-client-list.c:165,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-client-list.c:167,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-client-list.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: fu_client_list_finalize
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_CLIENT_LIST
    linkageType: ''
    returnType: void
    signature: void fu_client_list_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-client-list.c:174,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-client-list.c:181,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-client-list.c:186,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-client-list.c:188,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-client-list.c:189,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-client-list.c:198,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-client-list.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuClientListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 208
    functionName: fu_client_list_class_init
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fu_client_list_class_init(FuClientListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-client-list.c:214,1
    - Dst: G_IS_DBUS_CONNECTION
      Src: /src/fwupd/src/fu-client-list.c:214,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-client-list.c:215,1
    - Dst: FU_CLIENT_LIST
      Src: /src/fwupd/src/fu-client-list.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - connection
    argTypes:
    - GDBusConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: fu_client_list_new
    functionSourceFile: /src/fwupd/src/fu-client-list.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - g_return_val_if_fail
    - FU_CLIENT_LIST
    - G_IS_DBUS_CONNECTION
    linkageType: ''
    returnType: FuClientList
    signature: 'FuClientList *

      fu_client_list_new(GDBusConnection *connection)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-agent.c:52,1
    - Dst: getpid
      Src: /src/fwupd/src/fu-polkit-agent.c:54,1
    - Dst: fork
      Src: /src/fwupd/src/fu-polkit-agent.c:58,1
    - Dst: prctl
      Src: /src/fwupd/src/fu-polkit-agent.c:69,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:70,1
    - Dst: getppid
      Src: /src/fwupd/src/fu-polkit-agent.c:74,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:75,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:78,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:79,1
    - Dst: open
      Src: /src/fwupd/src/fu-polkit-agent.c:89,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-polkit-agent.c:91,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:92,1
    - Dst: dup2
      Src: /src/fwupd/src/fu-polkit-agent.c:95,1
    - Dst: dup2
      Src: /src/fwupd/src/fu-polkit-agent.c:97,1
    - Dst: close
      Src: /src/fwupd/src/fu-polkit-agent.c:99,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-polkit-agent.c:103,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-polkit-agent.c:104,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-polkit-agent.c:106,1
    - Dst: alloca
      Src: /src/fwupd/src/fu-polkit-agent.c:109,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-polkit-agent.c:112,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-polkit-agent.c:114,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-polkit-agent.c:115,1
    - Dst: execv
      Src: /src/fwupd/src/fu-polkit-agent.c:117,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FuPolkitAgent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 119
    functionName: fu_polkit_agent_fork_agent
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - alloca
    - prctl
    - dup2
    - va_end
    - open
    - execv
    - getppid
    - getpid
    - isatty
    - g_critical
    - fork
    - close
    - va_start
    - _exit
    - g_return_val_if_fail
    - va_arg
    linkageType: ''
    returnType: int
    signature: int fu_polkit_agent_fork_agent(FuPolkitAgent *self, const char *path,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-agent.c:124,1
    - Dst: close
      Src: /src/fwupd/src/fu-polkit-agent.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: fu_polkit_agent_close_nointr
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - close
    linkageType: ''
    returnType: int
    signature: int fu_polkit_agent_close_nointr(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_polkit_agent_close_nointr
      Src: /src/fwupd/src/fu-polkit-agent.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: fu_polkit_agent_close_nointr_nofail
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - fu_polkit_agent_close_nointr
    linkageType: ''
    returnType: void
    signature: void fu_polkit_agent_close_nointr_nofail(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/fwupd/src/fu-polkit-agent.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - t
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: fu_polkit_agent_fd_wait_for_event
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - poll
    linkageType: ''
    returnType: int
    signature: int fu_polkit_agent_fd_wait_for_event(int fd, int event, uint64_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-agent.c:167,1
    - Dst: waitpid
      Src: /src/fwupd/src/fu-polkit-agent.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: fu_polkit_agent_wait_for_terminate
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - waitpid
    linkageType: ''
    returnType: int
    signature: int fu_polkit_agent_wait_for_terminate(pid_t pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-agent.c:188,1
    - Dst: FU_IS_POLKIT_AGENT
      Src: /src/fwupd/src/fu-polkit-agent.c:188,1
    - Dst: g_find_program_in_path
      Src: /src/fwupd/src/fu-polkit-agent.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-polkit-agent.c:197,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:205,1
    - Dst: pipe
      Src: /src/fwupd/src/fu-polkit-agent.c:207,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-polkit-agent.c:208,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-polkit-agent.c:212,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-polkit-agent.c:217,1
    - Dst: fu_polkit_agent_fork_agent
      Src: /src/fwupd/src/fu-polkit-agent.c:218,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-polkit-agent.c:226,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-polkit-agent.c:230,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:231,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:232,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:237,1
    - Dst: fu_polkit_agent_fd_wait_for_event
      Src: /src/fwupd/src/fu-polkit-agent.c:240,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPolkitAgent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 244
    functionName: fu_polkit_agent_open
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_find_program_in_path
    - pipe
    - fu_polkit_agent_close_nointr_nofail
    - isatty
    - g_strdup_printf
    - fu_polkit_agent_fd_wait_for_event
    - g_set_error_literal
    - fwupd_strerror
    - FU_IS_POLKIT_AGENT
    - g_return_val_if_fail
    - fu_polkit_agent_fork_agent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_polkit_agent_open(FuPolkitAgent *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPolkitAgent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: fu_polkit_agent_init
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_polkit_agent_init(FuPolkitAgent *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_POLKIT_AGENT
      Src: /src/fwupd/src/fu-polkit-agent.c:254,1
    - Dst: kill
      Src: /src/fwupd/src/fu-polkit-agent.c:258,1
    - Dst: kill
      Src: /src/fwupd/src/fu-polkit-agent.c:259,1
    - Dst: fu_polkit_agent_wait_for_terminate
      Src: /src/fwupd/src/fu-polkit-agent.c:260,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-agent.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: fu_polkit_agent_finalize
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - kill
    - G_OBJECT_CLASS
    - fu_polkit_agent_wait_for_terminate
    - FU_POLKIT_AGENT
    linkageType: ''
    returnType: void
    signature: void fu_polkit_agent_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-agent.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPolkitAgentClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: fu_polkit_agent_class_init
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_polkit_agent_class_init(FuPolkitAgentClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-polkit-agent.c:277,1
    - Dst: FU_POLKIT_AGENT
      Src: /src/fwupd/src/fu-polkit-agent.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: fu_polkit_agent_new
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - FU_POLKIT_AGENT
    - g_object_new
    linkageType: ''
    returnType: FuPolkitAgent
    signature: 'FuPolkitAgent *

      fu_polkit_agent_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:47,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:47,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:49,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:49,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/src/fu-release.c:52,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-release.c:52,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/src/fu-release.c:56,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-release.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-release.c:58,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-release.c:58,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-release.c:59,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-release.c:60,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-release.c:62,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-release.c:62,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/src/fu-release.c:63,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/src/fu-release.c:64,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-release.c:65,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-release.c:67,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-release.c:69,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-release.c:70,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-release.c:71,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-release.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 72
    functionName: fu_release_to_string
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - fwupd_codec_string_append_bool
    - FWUPD_CODEC
    - fu_device_get_id
    - fwupd_remote_get_id
    - fwupd_codec_add_string
    - g_autoptr
    - fwupd_codec_string_append_hex
    - g_return_val_if_fail
    - FU_IS_RELEASE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_to_string(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:84,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:84,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - request
    argTypes:
    - FuRelease*
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_release_set_request
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 2
    functionsReached:
    - g_set_object
    - FU_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_release_set_request(FuRelease *self, FuEngineRequest *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:99,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: fu_release_get_request
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: FuEngineRequest
    signature: 'FuEngineRequest *

      fu_release_get_request(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:114,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: fu_release_get_device_version_old
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_device_version_old(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:129,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: fu_release_get_firmware_basename
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_firmware_basename(FuRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:136,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:139,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:142,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_version_old
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: fu_release_set_device_version_old
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    - FU_IS_RELEASE
    linkageType: ''
    returnType: void
    signature: void fu_release_set_device_version_old(FuRelease *self, const gchar
      *device_version_old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:156,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:156,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-release.c:159,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:161,1
    - Dst: fu_release_set_device_version_old
      Src: /src/fwupd/src/fu-release.c:162,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-release.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuRelease*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: fu_release_set_device
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 2
    functionsReached:
    - fu_device_get_version
    - g_return_if_fail
    - g_set_object
    - fu_device_convert_instance_ids
    - FU_IS_RELEASE
    - fu_release_set_device_version_old
    linkageType: ''
    returnType: void
    signature: void fu_release_set_device(FuRelease *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:176,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fu_release_get_device
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_release_get_device(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:191,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: fu_release_get_stream
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_release_get_stream(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:199,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:199,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:200,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-release.c:200,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - FuRelease*
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: fu_release_set_stream
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_set_object
    - FU_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_release_set_stream(FuRelease *self, GInputStream *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:215,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: fu_release_get_soft_reqs
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_release_get_soft_reqs(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:230,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: fu_release_get_hard_reqs
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_release_get_hard_reqs(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:245,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: fu_release_get_update_request_id
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_update_request_id(FuRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:252,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:252,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:255,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:258,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_request_id
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: fu_release_set_update_request_id
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    - FU_IS_RELEASE
    linkageType: ''
    returnType: void
    signature: void fu_release_set_update_request_id(FuRelease *self, const gchar
      *update_request_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:274,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:274,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRelease*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: fu_release_set_remote
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_set_object
    - FU_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_release_set_remote(FuRelease *self, FwupdRemote *remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:289,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:289,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - config
    argTypes:
    - FuRelease*
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: fu_release_set_config
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - FU_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_release_set_config(FuRelease *self, FuEngineConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:296,1
    - Dst: fu_engine_request_get_locale
      Src: /src/fwupd/src/fu-release.c:301,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:306,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:307,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-release.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - element
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: fu_release_get_localized_xpath
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_string_free
    - g_string_prepend
    - g_strdup_printf
    - fu_engine_request_get_locale
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_localized_xpath(FuRelease *self, const gchar *element)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:316,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:318,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-release.c:321,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:322,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:326,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-release.c:329,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-release.c:335,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:336,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/src/fu-release.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuRelease*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: fu_release_get_release_version
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_get_version_format
    - g_strstr_len
    - g_strdup
    - g_autoptr
    - fu_version_from_uint32
    - fu_strtoull
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_release_version(FuRelease *self, const gchar *version, GError
      **error)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:347,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/src/fu-release.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:350,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:354,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:355,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/src/fu-release.c:356,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/src/fu-release.c:358,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/src/fu-release.c:358,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:360,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/src/fu-release.c:362,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:363,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/src/fu-release.c:365,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:366,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:366,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-release.c:369,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:372,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:374,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/src/fu-release.c:375,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:375,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/src/fu-release.c:377,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:379,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:381,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/src/fu-release.c:383,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:384,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/src/fu-release.c:386,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/src/fu-release.c:387,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:387,1
    - Dst: fu_release_get_remote_id
      Src: /src/fwupd/src/fu-release.c:389,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/src/fu-release.c:390,1
    - Dst: fu_release_get_remote_id
      Src: /src/fwupd/src/fu-release.c:390,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:391,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:394,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:395,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:395,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-release.c:396,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:399,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:399,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:400,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:401,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:402,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/src/fu-release.c:405,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:406,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:407,1
    - Dst: fwupd_release_add_report
      Src: /src/fwupd/src/fu-release.c:412,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:412,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 414
    functionName: fu_release_load_test_result
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fwupd_report_new
    - g_date_time_new_from_iso8601
    - fu_version_compare
    - fwupd_report_add_flag
    - xb_node_query_first
    - fwupd_report_set_vendor_id
    - fwupd_report_set_vendor
    - FWUPD_RELEASE
    - g_debug
    - xb_node_get_text
    - fwupd_report_set_remote_id
    - g_ptr_array_index
    - fu_release_get_remote_id
    - fwupd_report_add_metadata_item
    - xb_node_get_attr_as_uint
    - fwupd_report_set_distro_version
    - xb_node_get_attr
    - fu_release_get_version
    - fwupd_report_set_created
    - g_autoptr
    - xb_node_query_text
    - fwupd_report_set_device_name
    - fwupd_release_add_report
    - g_strdup_printf
    - fwupd_report_set_version_old
    - fwupd_report_set_distro_variant
    - xb_node_query
    - fwupd_report_set_distro_id
    - g_date_time_to_unix
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_load_test_result(FuRelease *self, XbNode *n, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:423,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:426,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-release.c:427,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:430,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-release.c:434,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:437,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:440,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:445,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:445,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:448,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:458,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:459,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:462,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:462,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:466,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:466,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:466,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:471,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:474,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-release.c:475,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:475,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:475,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:480,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:483,1
    - Dst: fu_release_load_test_result
      Src: /src/fwupd/src/fu-release.c:484,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/src/fu-release.c:490,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:492,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:492,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - self
    - artifact
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 496
    functionName: fu_release_load_artifact
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - fu_release_load_test_result
    - g_debug
    - xb_node_query_text_as_uint
    - xb_node_get_text
    - fwupd_release_set_size
    - fu_release_set_filename
    - fwupd_release_add_location
    - xb_node_query
    - g_ptr_array_index
    - fwupd_remote_build_firmware_uri
    - fwupd_release_add_checksum
    - fu_engine_config_get_uri_scheme_prio
    - g_str_has_suffix
    - g_autoptr
    - xb_node_query_text
    - fu_release_uri_get_scheme
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_load_artifact(FuRelease *self, XbNode *artifact,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-release.c:501,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:504,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:505,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:506,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 513
    functionName: fu_release_scheme_compare_cb
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - FU_RELEASE
    - fu_release_uri_get_scheme
    - fu_engine_config_get_uri_scheme_prio
    linkageType: ''
    returnType: gint
    signature: gint fu_release_scheme_compare_cb(gconstpointer a, gconstpointer b,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:520,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:521,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-release.c:521,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:522,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 532
    functionName: fu_release_check_requirements_version_check
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - xb_node_get_text
    - g_ptr_array_index
    - g_set_error_literal
    - xb_node_get_element
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_check_requirements_version_check(FuRelease *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:537,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:539,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:540,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:541,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-release.c:544,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-release.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - verfmts
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 546
    functionName: fu_release_verfmts_to_string
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - xb_node_get_text
    - g_string_free
    - g_ptr_array_index
    - g_string_truncate
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_verfmts_to_string(GPtrArray *verfmts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - fmt_rel
    argTypes:
    - FuRelease*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: fu_release_check_verfmt_compatible
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_check_verfmt_compatible(FuRelease *self, FwupdVersionFormat
      fmt_rel)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:563,1
    - Dst: fu_release_verfmts_to_string
      Src: /src/fwupd/src/fu-release.c:568,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:569,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:579,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:580,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/src/fu-release.c:581,1
    - Dst: fu_release_check_verfmt_compatible
      Src: /src/fwupd/src/fu-release.c:582,1
    - Dst: fu_release_verfmts_to_string
      Src: /src/fwupd/src/fu-release.c:585,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:587,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-release.c:592,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-release.c:596,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-release.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - verfmts
    - flags
    - error
    argTypes:
    - FuRelease*
    - GPtrArray*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 600
    functionName: fu_release_check_verfmt
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - fu_release_verfmts_to_string
    - fu_release_check_verfmt_compatible
    - fu_device_get_version_format
    - xb_node_get_text
    - fwupd_version_format_from_string
    - fwupd_version_format_to_string
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_release_check_verfmt(FuRelease *self,\n\t\t\tGPtrArray
      *verfmts,\n\t\t\tFwupdInstallFlags flags,\n\t\t\tGError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:613,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:614,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:617,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:619,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:627,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-release.c:628,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:628,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:634,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:642,1
    - Dst: fu_release_check_requirements_version_check
      Src: /src/fwupd/src/fu-release.c:643,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-release.c:644,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:650,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-release.c:651,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/src/fu-release.c:652,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-release.c:655,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-release.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:656,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-release.c:660,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:667,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:668,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-release.c:672,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-release.c:673,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:678,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-release.c:679,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:681,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:682,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-release.c:686,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-release.c:687,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:694,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:695,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:696,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:696,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:697,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-release.c:699,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-release.c:700,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-release.c:701,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:702,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-release.c:704,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:706,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - self
    - component
    - install_flags
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 712
    functionName: fu_release_check_requirements
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_device_has_guid
    - g_string_new
    - g_prefix_error
    - fu_device_has_flag
    - fu_device_get_id
    - g_string_append_printf
    - g_set_error
    - fu_engine_request_has_feature_flag
    - xb_node_get_text
    - g_ptr_array_index
    - fu_device_get_name
    - fu_device_get_protocols
    - fu_strjoin
    - fu_device_get_branch
    - fu_release_check_requirements_version_check
    - g_autoptr
    - xb_node_query_text
    - fu_device_get_update_error
    - xb_node_query
    - g_set_error_literal
    - fu_device_has_protocol
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_release_check_requirements(FuRelease *self,\n\t\t\t      XbNode
      *component,\n\t\t\t      FwupdInstallFlags install_flags,\n\t\t\t      GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:736,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:737,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:738,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-release.c:744,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-release.c:749,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:751,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-release.c:755,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-release.c:756,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:763,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:764,1
    - Dst: fu_release_check_verfmt
      Src: /src/fwupd/src/fu-release.c:766,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-release.c:772,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:774,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:775,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:776,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:778,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:783,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:789,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:790,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:791,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:792,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:794,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:801,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:805,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:809,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:810,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:813,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:817,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 4
    argNames:
    - self
    - component
    - install_flags
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 824
    functionName: fu_release_check_version
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_engine_request_has_flag
    - fu_release_add_flag
    - fu_device_get_version
    - fu_device_get_version_format
    - fu_version_compare
    - XB_IS_NODE
    - fu_device_get_version_lowest
    - fu_release_get_version
    - xb_node_query
    - fu_device_has_flag
    - fu_device_get_name
    - g_autoptr
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_release_check_verfmt
    - FU_IS_RELEASE
    - fu_release_has_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_release_check_version(FuRelease *self,\n\t\t\t XbNode
      *component,\n\t\t\t FwupdInstallFlags install_flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:829,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 831
    functionName: fu_release_set_priority
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - FU_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_release_set_priority(FuRelease *self, guint64 priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:836,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 838
    functionName: fu_release_get_priority
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_release_get_priority(FuRelease *self)
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:871,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:873,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:874,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:875,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:876,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:877,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:879,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:879,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:880,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-release.c:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:881,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:881,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:882,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:882,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:883,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:886,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/src/fu-release.c:888,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:888,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:889,1
    - Dst: fwupd_release_set_homepage
      Src: /src/fwupd/src/fu-release.c:891,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:891,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:892,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/src/fu-release.c:894,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:894,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:895,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:896,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/src/fu-release.c:898,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:898,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:899,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:900,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/src/fu-release.c:902,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:902,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:903,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:904,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/src/fu-release.c:906,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:906,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:907,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/src/fu-release.c:909,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:909,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:910,1
    - Dst: fwupd_release_set_vendor
      Src: /src/fwupd/src/fu-release.c:912,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:912,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:917,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-release.c:918,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-release.c:918,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-release.c:924,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:926,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-release.c:934,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:938,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/src/fu-release.c:940,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:940,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:941,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-release.c:942,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/src/fu-release.c:943,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:943,1
    - Dst: fu_release_ensure_trust_flags
      Src: /src/fwupd/src/fu-release.c:946,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:950,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:952,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-release.c:954,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:957,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:959,1
    - Dst: fu_release_get_release_version
      Src: /src/fwupd/src/fu-release.c:964,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/src/fu-release.c:967,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:967,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/src/fu-release.c:969,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:969,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/src/fu-release.c:973,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:973,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:973,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:976,1
    - Dst: fu_release_load_artifact
      Src: /src/fwupd/src/fu-release.c:978,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:981,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:985,1
    - Dst: xb_node_export
      Src: /src/fwupd/src/fu-release.c:986,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:987,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:989,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:990,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:992,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release.c:998,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:998,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:1000,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:1002,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/src/fu-release.c:1010,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1010,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1012,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1012,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1013,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1017,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:1019,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:1020,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1020,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1023,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1023,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1024,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1025,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:1029,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:1030,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1030,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-release.c:1033,1
    - Dst: xb_node_query_attr
      Src: /src/fwupd/src/fu-release.c:1034,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-release.c:1036,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1038,1
    - Dst: fwupd_release_set_details_url
      Src: /src/fwupd/src/fu-release.c:1040,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1040,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1041,1
    - Dst: fwupd_release_set_source_url
      Src: /src/fwupd/src/fu-release.c:1043,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1043,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1044,1
    - Dst: fwupd_release_set_sbom_url
      Src: /src/fwupd/src/fu-release.c:1046,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1046,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-release.c:1047,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1047,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:1048,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1049,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1052,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1053,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-release.c:1055,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1055,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1056,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/src/fu-release.c:1060,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1060,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/src/fu-release.c:1061,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:1063,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1063,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/src/fu-release.c:1065,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1065,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-release.c:1066,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-release.c:1068,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:1069,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1069,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:1072,1
    - Dst: fwupd_release_set_urgency
      Src: /src/fwupd/src/fu-release.c:1074,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1074,1
    - Dst: fwupd_release_urgency_from_string
      Src: /src/fwupd/src/fu-release.c:1075,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1076,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/src/fu-release.c:1078,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1078,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1079,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/src/fu-release.c:1081,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1081,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1082,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1085,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/src/fu-release.c:1086,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1086,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1086,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1089,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1092,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/src/fu-release.c:1093,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1093,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1093,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1096,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1099,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/src/fu-release.c:1100,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1100,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1100,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1103,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/src/fu-release.c:1105,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1105,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1106,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1110,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/src/fu-release.c:1113,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1113,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/src/fu-release.c:1115,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1115,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1118,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/src/fu-release.c:1120,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1120,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1121,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/src/fu-release.c:1123,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1123,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1124,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1128,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/src/fu-release.c:1131,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1131,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/src/fu-release.c:1133,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1133,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1136,1
    - Dst: fu_release_set_update_request_id
      Src: /src/fwupd/src/fu-release.c:1138,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1141,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1143,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1144,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-release.c:1145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-release.c:1145,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-release.c:1146,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1150,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1152,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1153,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-release.c:1154,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-release.c:1154,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-release.c:1155,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-release.c:1161,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:1163,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-release.c:1165,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-release.c:1166,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-release.c:1166,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-release.c:1170,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-release.c:1173,1
    - Dst: g_object_get_data
      Src: /src/fwupd/src/fu-release.c:1179,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-release.c:1179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:1181,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-release.c:1190,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1190,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1190,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-release.c:1197,1
    - Dst: fu_release_check_requirements
      Src: /src/fwupd/src/fu-release.c:1198,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 261
    argCount: 6
    argNames:
    - self
    - cabinet
    - component
    - rel_optional
    - install_flags
    - error
    argTypes:
    - FuRelease*
    - FuCabinet*
    - XbNode*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1204
    functionName: fu_release_load
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - fu_firmware_get_stream
    - g_string_new
    - XB_IS_NODE
    - fu_release_ensure_trust_flags
    - xb_node_query_first
    - g_ptr_array_index
    - fwupd_release_set_details_url
    - fwupd_release_set_license
    - g_steal_pointer
    - g_string_prepend
    - g_autoptr
    - fwupd_release_set_id
    - fwupd_release_has_flag
    - g_strdup
    - FU_IS_RELEASE
    - fu_release_load_artifact
    - fwupd_release_add_issue
    - fwupd_release_set_version
    - fu_device_has_flag
    - fwupd_release_set_update_message
    - fwupd_release_set_install_duration
    - fwupd_release_set_appstream_id
    - fwupd_remote_get_kind
    - fu_engine_request_has_feature_flag
    - fwupd_release_get_size
    - xb_node_get_text
    - xb_node_query_text_as_uint
    - xb_query_new_full
    - fwupd_release_add_flag
    - xb_node_get_silo
    - fu_release_check_requirements
    - fu_firmware_get_image_by_id
    - fwupd_release_set_source_url
    - g_ptr_array_sort_with_data
    - FU_IS_CABINET
    - fwupd_release_add_checksum
    - xb_node_export
    - fu_strsafe_bytes
    - fwupd_release_add_category
    - fwupd_release_set_vendor
    - xb_node_query
    - fwupd_remote_build_firmware_uri
    - fwupd_release_set_name_variant_suffix
    - fwupd_release_set_description
    - g_propagate_error
    - fu_release_set_priority
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_set_error
    - g_object_ref
    - g_object_get_data
    - fwupd_release_set_detach_caption
    - G_OBJECT
    - fu_release_get_filename
    - fu_engine_request_has_flag
    - fwupd_release_get_locations
    - g_error_matches
    - fwupd_release_set_update_image
    - g_strdup_printf
    - fwupd_release_add_tag
    - fu_release_get_release_version
    - g_prefix_error
    - fwupd_release_add_location
    - FU_FIRMWARE
    - fwupd_release_set_detach_image
    - fwupd_release_set_name
    - FWUPD_RELEASE
    - fwupd_release_set_size
    - fu_release_set_filename
    - fwupd_release_set_sbom_url
    - xb_node_query_first_full
    - fu_release_get_localized_xpath
    - xb_node_get_data
    - fwupd_release_set_branch
    - fwupd_release_set_homepage
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fwupd_release_urgency_from_string
    - xb_node_query_text
    - g_bytes_get_data
    - fu_release_set_update_request_id
    - g_str_has_prefix
    - fwupd_release_set_remote_id
    - fwupd_release_get_checksums
    - fwupd_release_set_summary
    - g_set_error_literal
    - fwupd_release_set_urgency
    - fwupd_release_set_created
    - xb_node_query_attr
    - fwupd_release_set_protocol
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_release_load(FuRelease *self,\n\t\tFuCabinet *cabinet,\n\t\tXbNode
      *component,\n\t\tXbNode *rel_optional,\n\t\tFwupdInstallFlags install_flags,\n\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:1211,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:1211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:1212,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-release.c:1215,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1216,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1217,1
    - Dst: g_object_get_data
      Src: /src/fwupd/src/fu-release.c:1222,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-release.c:1222,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-release.c:1225,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-release.c:1228,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-release.c:1229,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1235,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1237,1
    - Dst: fu_release_get_flags
      Src: /src/fwupd/src/fu-release.c:1241,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:1242,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-release.c:1243,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/src/fu-release.c:1244,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1244,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1245,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1246,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1247,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1248,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - rel
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1256
    functionName: fu_release_ensure_trust_flags
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - fu_release_add_flag
    - fwupd_remote_get_kind
    - g_debug
    - g_getenv
    - g_object_get_data
    - fwupd_remote_kind_to_string
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_release_get_flags
    - fwupd_remote_get_id
    - G_OBJECT
    - g_return_val_if_fail
    - FU_IS_RELEASE
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_ensure_trust_flags(FuRelease *self, XbNode *rel,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:1270,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1271,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1272,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1276,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1282,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1283,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1290
    functionName: fu_release_get_action_id
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - fu_device_has_flag
    - fu_release_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_action_id(FuRelease *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-release.c:1304,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-release.c:1305,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1309,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1309,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1311,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1311,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1323,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1324,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1326,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1327,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:1332,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:1332,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:1333,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:1334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - release1
    - release2
    argTypes:
    - FuRelease*
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1335
    functionName: fu_release_compare
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 2
    functionsReached:
    - fu_release_get_device
    - fu_device_get_version_format
    - fu_version_compare
    - fu_release_get_version
    - fwupd_remote_get_priority
    - fu_device_get_order
    linkageType: ''
    returnType: gint
    signature: gint fu_release_compare(FuRelease *release1, FuRelease *release2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_set_flags
      Src: /src/fwupd/src/fu-release.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1341
    functionName: fu_release_init
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_release_set_flags
    linkageType: ''
    returnType: void
    signature: void fu_release_init(FuRelease *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-release.c:1346,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1348,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1349,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1350,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1352,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1354,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1356,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1358,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1360,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-release.c:1362,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-release.c:1364,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-release.c:1366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1367
    functionName: fu_release_finalize
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_RELEASE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_release_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-release.c:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuReleaseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: fu_release_class_init
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_release_class_init(FuReleaseClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-release.c:1380,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-release.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1382
    functionName: fu_release_new
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 3
    functionsReached:
    - FU_RELEASE
    - g_object_new
    linkageType: ''
    returnType: FuRelease
    signature: 'FuRelease *

      fu_release_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-uefi-backend.c:25,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-uefi-backend.c:26,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-uefi-backend.c:38,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-uefi-backend.c:39,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-uefi-backend.c:39,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-uefi-backend.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-uefi-backend.c:41,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/src/fu-uefi-backend.c:42,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-uefi-backend.c:43,1
    - Dst: fu_uefi_device_new
      Src: /src/fwupd/src/fu-uefi-backend.c:46,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-uefi-backend.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-uefi-backend.c:47,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-uefi-backend.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: fu_uefi_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_backend_get_context
    - fu_progress_set_steps
    - fu_efivars_exists
    - fu_progress_set_id
    - fu_context_get_efivars
    - g_autoptr
    - fu_uefi_device_new
    - fu_backend_device_added
    - FU_DEVICE
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-uefi-backend.c:58,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-uefi-backend.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-uefi-backend.c:59,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-uefi-backend.c:62,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/src/fu-uefi-backend.c:63,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/src/fu-uefi-backend.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-uefi-backend.c:65,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-uefi-backend.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - backend
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: fu_uefi_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_uefi_device_set_name
    - fu_uefi_device_set_guid
    - g_steal_pointer
    - g_strsplit
    - g_object_new
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_uefi_backend_create_device(FuBackend *backend, const gchar *backend_id, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: fu_uefi_backend_init
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_backend_init(FuUefiBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-uefi-backend.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: fu_uefi_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_backend_class_init(FuUefiBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-uefi-backend.c:84,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-uefi-backend.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: fu_uefi_backend_new
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_uefi_backend_new(FuContext *ctx)'
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:20,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:21,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:23,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:23,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:25,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:27,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:27,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:29,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:31,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:31,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:33,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:35,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:35,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:37,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:39,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:39,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:41,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:43,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:43,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:45,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:48,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:48,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:50,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:53,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:53,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:55,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:58,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:60,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:63,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:63,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:65,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:68,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:68,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:70,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:73,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:73,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:75,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:77,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:77,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:79,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:81,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:86,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:86,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:90,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:92,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:94,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:94,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:96,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:98,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:98,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:100,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:102,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:102,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:104,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:106,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:106,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:108,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:110,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:112,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:114,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:116,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:118,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:120,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:122,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:124,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:126,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:126,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:128,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:130,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:130,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:132,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:133,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:136,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:136,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:139,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:139,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:141,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:142,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:145,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:145,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:151,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:153,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:156,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:156,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:158,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:160,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:161,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:165,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:165,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:169,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:169,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:171,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:171,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:173,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:175,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:175,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:177,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:179,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:179,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:181,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:183,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:185,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:186,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:188,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:190,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:192,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:192,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:194,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:196,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:196,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:198,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:200,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:200,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:202,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:204,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:204,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:206,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:208,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:208,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:210,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:212,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:212,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:214,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:216,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:218,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:220,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:222,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:224,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:224,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:226,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:228,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:230,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:232,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:232,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:234,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:236,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:236,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:239,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-security-attr-common.c:239,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 152
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 240
    functionName: fu_security_attr_get_name
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_name
    - _
    - g_strdup_printf
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_get_metadata
    - g_strdup
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attr_get_name(FwupdSecurityAttr *attr)'
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:245,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:246,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:250,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:252,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:254,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:256,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:258,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:260,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:262,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:264,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:266,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:268,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:270,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:273,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:275,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:278,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:280,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:285,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:287,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:289,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:290,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:292,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:294,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:296,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:298,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:300,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:302,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:305,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:307,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:309,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:311,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:315,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:317,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:319,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:323,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:327,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:329,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:331,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:333,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:335,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:337,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:339,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:341,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:343,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:345,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:347,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:349,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:351,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:355,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:359,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:361,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:364,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:366,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:368,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:370,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:372,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:374,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:378,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:380,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:382,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:383,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:385,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:387,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:389,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:391,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:395,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:397,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:399,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:401,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:403,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:405,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:407,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:409,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:411,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:413,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:415,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:417,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:419,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:421,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:423,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:425,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:427,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:429,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 134
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 432
    functionName: fu_security_attr_get_title
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_appstream_id
    - _
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attr_get_title(FwupdSecurityAttr *attr)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:438,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:439,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:440,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:441,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:443,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:446,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:448,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:451,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:453,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:456,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:458,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:461,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:462,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:463,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:464,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:466,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:469,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:471,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:475,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:476,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:478,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:481,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:483,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:486,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:488,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:492,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:494,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:497,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:499,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:502,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:504,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:509,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:516,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:518,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:522,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:528,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:530,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:533,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:535,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:538,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:540,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:542,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:544,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:547,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:549,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:552,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:554,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:558,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:560,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:563,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:565,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:568,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:570,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:573,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:575,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:578,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:580,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:582,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:584,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:587,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:589,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:593,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:594,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:596,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:599,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:601,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:603,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:604,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:605,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:607,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:610,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:612,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:615,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:617,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:619,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:621,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:624,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:626,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:629,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:631,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 110
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 635
    functionName: fu_security_attr_get_description
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_appstream_id
    - _
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attr_get_description(FwupdSecurityAttr *attr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:23,1
    - Dst: gettext::gettext
      Src: /src/fwupd/src/fu-util-bios-setting.c:23,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - setting
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: fu_util_bios_setting_update_description
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 0
    functionsReached:
    - gettext::gettext
    - fwupd_bios_setting_get_description
    - fwupd_bios_setting_set_description
    linkageType: ''
    returnType: void
    signature: void fu_util_bios_setting_update_description(FwupdBiosSetting *setting)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:33,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:37,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FwupdBiosSettingKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: fu_util_bios_setting_kind_to_string
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_bios_setting_kind_to_string(FwupdBiosSettingKind kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:52,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/src/fu-util-bios-setting.c:54,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:57,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-bios-setting.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - setting
    - values
    argTypes:
    - FwupdBiosSetting*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: fu_util_bios_setting_matches_args
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - fwupd_bios_setting_get_name
    - g_strv_length
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_bios_setting_matches_args(FwupdBiosSetting *setting,
      gchar **values)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:70,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:70,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:71,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-bios-setting.c:73,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util-bios-setting.c:74,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-bios-setting.c:76,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-util-bios-setting.c:77,1
    - Dst: fu_util_bios_setting_update_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:78,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:79,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util-bios-setting.c:80,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:80,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:81,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util-bios-setting.c:84,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:85,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util-bios-setting.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - console
    - values
    - settings
    - error
    argTypes:
    - FuConsole*
    - gchar**
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: fu_util_bios_setting_console_print
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - fu_util_bios_setting_matches_args
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fu_util_bios_setting_update_description
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_bios_setting_console_print(FuConsole *console,\n\t\t\t\t
      \  gchar **values,\n\t\t\t\t   GPtrArray *settings,\n\t\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:96,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:96,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:98,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util-bios-setting.c:99,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/src/fu-util-bios-setting.c:100,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:101,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/src/fu-util-bios-setting.c:103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:104,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:107,1
    - Dst: fu_util_bios_setting_kind_to_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:108,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-util-bios-setting.c:110,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:112,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:115,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:115,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:118,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:118,1
    - Dst: fu_util_bios_setting_update_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:120,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:121,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:124,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:125,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/src/fu-util-bios-setting.c:127,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:129,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:132,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:135,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:135,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:139,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/src/fu-util-bios-setting.c:140,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:142,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/src/fu-util-bios-setting.c:143,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:146,1
    - Dst: fwupd_bios_setting_get_scalar_increment
      Src: /src/fwupd/src/fu-util-bios-setting.c:147,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:149,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:149,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:151,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:151,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:152,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:156,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:160,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:160,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:162,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:162,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/src/fu-util-bios-setting.c:165,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:168,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:168,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-bios-setting.c:170,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:171,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:172,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-bios-setting.c:176,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-bios-setting.c:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - setting
    - idt
    argTypes:
    - FwupdBiosSetting*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 177
    functionName: fu_util_bios_setting_to_string
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fwupd_bios_setting_get_upper_bound
    - g_string_free
    - FWUPD_CODEC
    - fwupd_bios_setting_get_lower_bound
    - g_debug
    - fwupd_bios_setting_get_description
    - fwupd_bios_setting_get_name
    - g_ptr_array_index
    - fu_util_bios_setting_update_description
    - fu_util_bios_setting_kind_to_string
    - fwupd_codec_to_string
    - fwupd_bios_setting_get_kind
    - fwupd_bios_setting_get_scalar_increment
    - g_steal_pointer
    - g_autoptr
    - fwupd_codec_string_append
    - fwupd_bios_setting_get_possible_values
    - _
    - g_strdup_printf
    - g_strdup
    - fwupd_bios_setting_get_read_only
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_bios_setting_to_string(FwupdBiosSetting *setting, guint idt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:187,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:187,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-util-bios-setting.c:188,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:190,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:190,1
    - Dst: fu_bios_settings_to_hash_kv
      Src: /src/fwupd/src/fu-util-bios-setting.c:192,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:195,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-bios-setting.c:196,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:200,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-util-bios-setting.c:204,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:205,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util-bios-setting.c:206,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:206,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - input
    - error
    argTypes:
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: fu_util_bios_settings_parse_argv
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_file_get_contents
    - fu_bios_settings_new
    - fu_bios_settings_to_hash_kv
    - fwupd_codec_from_json_string
    - FWUPD_CODEC
    - _
    - g_hash_table_new_full
    - g_set_error_literal
    - g_strv_length
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_util_bios_settings_parse_argv(gchar **input, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:32,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:32,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:32,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:34,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: fu_unix_seekable_input_stream_tell
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - g_unix_input_stream_get_fd
    - G_UNIX_INPUT_STREAM
    - g_critical
    - lseek
    - fwupd_strerror
    linkageType: ''
    returnType: goffset
    signature: goffset fu_unix_seekable_input_stream_tell(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:41,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:41,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: fu_unix_seekable_input_stream_can_seek
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - G_UNIX_INPUT_STREAM
    - g_unix_input_stream_get_fd
    - lseek
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_unix_seekable_input_stream_can_seek(GSeekable *seekable)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - GSeekType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: fu_unix_seekable_input_stream_seek_type_to_lseek
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fu_unix_seekable_input_stream_seek_type_to_lseek(GSeekType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UNIX_SEEKABLE_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:66,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:69,1
    - Dst: FU_IS_UNIX_SEEKABLE_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:70,1
    - Dst: lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:72,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:72,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:72,1
    - Dst: fu_unix_seekable_input_stream_seek_type_to_lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:76,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:78,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - seekable
    - offset
    - type
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GSeekType
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: fu_unix_seekable_input_stream_seek
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_unix_input_stream_get_fd
    - FU_UNIX_SEEKABLE_INPUT_STREAM
    - fu_unix_seekable_input_stream_seek_type_to_lseek
    - G_UNIX_INPUT_STREAM
    - fwupd_strerror
    - lseek
    - FU_IS_UNIX_SEEKABLE_INPUT_STREAM
    - g_return_val_if_fail
    - g_io_error_from_errno
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_unix_seekable_input_stream_seek(GSeekable *seekable,\n\t\t\t\t
      \  goffset offset,\n\t\t\t\t   GSeekType type,\n\t\t\t\t   GCancellable *cancellable,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: fu_unix_seekable_input_stream_can_truncate
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_unix_seekable_input_stream_can_truncate(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seekable
    - offset
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: fu_unix_seekable_input_stream_truncate
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_unix_seekable_input_stream_truncate(GSeekable *seekable,\n\t\t\t\t
      \      goffset offset,\n\t\t\t\t       GCancellable *cancellable,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - GSeekableIface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: fu_unix_seekable_input_stream_seekable_iface_init
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_seekable_iface_init(GSeekableIface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - close_fd
    argTypes:
    - gint
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: fu_unix_seekable_input_stream_new
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_unix_seekable_input_stream_new(gint fd, gboolean close_fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUnixSeekableInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: fu_unix_seekable_input_stream_class_init
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_class_init(FuUnixSeekableInputStreamClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUnixSeekableInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: fu_unix_seekable_input_stream_init
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_init(FuUnixSeekableInputStream *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SetServiceStatus
      Src: /src/fwupd/src/fu-main-windows.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dwCurrentState
    - dwWin32ExitCode
    - dwWaitHint
    argTypes:
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 46
    functionName: fu_main_svc_report_status
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - SetServiceStatus
    linkageType: ''
    returnType: void
    signature: void fu_main_svc_report_status(DWORD dwCurrentState, DWORD dwWin32ExitCode,
      DWORD dwWaitHint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-main-windows.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:52,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main-windows.c:53,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: fu_main_svc_control_stop_cb
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - fu_daemon_stop
    - g_warning
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_main_svc_control_stop_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:63,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-main-windows.c:65,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dwCtrl
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: fu_main_svc_control_cb
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - g_idle_add
    - fu_main_svc_report_status
    linkageType: ''
    returnType: void
    signature: void fu_main_svc_control_cb(DWORD dwCtrl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:76,1
    - Dst: fu_daemon_new
      Src: /src/fwupd/src/fu-main-windows.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:78,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main-windows.c:78,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main-windows.c:81,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main-windows.c:81,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main-windows.c:82,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:83,1
    - Dst: RegisterServiceCtrlHandlerA
      Src: /src/fwupd/src/fu-main-windows.c:87,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:89,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:89,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:94,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main-windows.c:95,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:96,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:99,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main-windows.c:100,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:101,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - dwArgc
    - lpszArgv
    argTypes:
    - DWORD
    - LPSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 105
    functionName: fu_main_svc_main_cb
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_option_context_new
    - g_printerr
    - fu_daemon_new
    - fu_main_svc_report_status
    - fu_daemon_setup
    - RegisterServiceCtrlHandlerA
    - g_option_context_add_group
    - fu_daemon_start
    - g_autoptr
    - fu_debug_get_option_group
    - GetLastError
    - g_option_context_parse
    linkageType: ''
    returnType: void
    signature: void fu_main_svc_main_cb(DWORD dwArgc, LPSTR *lpszArgv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:110,1
    - Dst: fu_daemon_new
      Src: /src/fwupd/src/fu-main-windows.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:112,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main-windows.c:112,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main-windows.c:115,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main-windows.c:115,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main-windows.c:116,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:117,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main-windows.c:122,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:123,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main-windows.c:126,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:127,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-main-windows.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: fu_main_console
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - g_message
    - g_option_context_new
    - g_printerr
    - fu_daemon_new
    - fu_daemon_setup
    - g_option_context_add_group
    - fu_daemon_start
    - g_autoptr
    - fu_debug_get_option_group
    - g_option_context_parse
    linkageType: ''
    returnType: int
    signature: int fu_main_console(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StartServiceCtrlDispatcherA
      Src: /src/fwupd/src/fu-main-windows.c:140,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:142,1
    - Dst: fu_main_console
      Src: /src/fwupd/src/fu-main-windows.c:143,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:144,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 1
    functionsReached:
    - StartServiceCtrlDispatcherA
    - g_printerr
    - fu_main_console
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-self-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fu_test_hang_check_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_hang_check_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:67,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:68,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-self-test.c:69,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-self-test.c:70,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-self-test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: fu_test_loop_run_with_timeout
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_null
    - g_timeout_add
    - g_main_loop_run
    - g_main_loop_new
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_run_with_timeout(guint timeout_ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-self-test.c:78,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-self-test.c:82,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-self-test.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: fu_test_loop_quit
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_main_loop_unref
    - g_main_loop_quit
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_quit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:92,1
    - Dst: fu_path_rmtree
      Src: /src/fwupd/src/fu-self-test.c:93,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-self-test.c:94,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:96,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/src/fu-self-test.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: fu_self_test_mkroot
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_assert_cmpint
    - g_mkdir_with_parents
    - fu_path_rmtree
    - g_autoptr
    - g_file_test
    linkageType: ''
    returnType: void
    signature: void fu_self_test_mkroot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:104,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:106,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-self-test.c:107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:109,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:111,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: fu_test_copy_file
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_debug
    - g_file_set_contents
    - g_assert_true
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_copy_file(const gchar *source, const gchar *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:119,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-self-test.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: fu_test_free
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_test_free(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:134,1
    - Dst: fu_client_list_new
      Src: /src/fwupd/src/fu-self-test.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:136,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:139,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:140,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-self-test.c:143,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:144,1
    - Dst: fu_client_list_get_by_sender
      Src: /src/fwupd/src/fu-self-test.c:145,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:146,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:147,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:148,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:149,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-self-test.c:152,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:153,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:154,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:155,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-self-test.c:155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:156,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-self-test.c:156,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:157,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-self-test.c:157,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:158,1
    - Dst: fu_client_has_flag
      Src: /src/fwupd/src/fu-self-test.c:158,1
    - Dst: fu_client_insert_hint
      Src: /src/fwupd/src/fu-self-test.c:159,1
    - Dst: fu_client_set_feature_flags
      Src: /src/fwupd/src/fu-self-test.c:160,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:161,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-self-test.c:161,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:162,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-self-test.c:162,1
    - Dst: fu_client_remove_flag
      Src: /src/fwupd/src/fu-self-test.c:165,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:166,1
    - Dst: fu_client_has_flag
      Src: /src/fwupd/src/fu-self-test.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 167
    functionName: fu_client_list_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_client_list_new
    - g_assert_cmpint
    - fu_client_list_register
    - fu_client_list_get_all
    - fu_client_has_flag
    - fu_client_get_sender
    - g_assert_true
    - fu_client_lookup_hint
    - fu_client_remove_flag
    - fu_client_list_get_by_sender
    - g_assert_nonnull
    - g_autoptr
    - fu_client_set_feature_flags
    - g_assert_false
    - fu_client_get_feature_flags
    - fu_client_insert_hint
    linkageType: ''
    returnType: void
    signature: void fu_client_list_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:173,1
    - Dst: fu_idle_new
      Src: /src/fwupd/src/fu-self-test.c:173,1
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-self-test.c:175,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:176,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:176,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:177,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:177,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-self-test.c:179,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:180,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:180,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:181,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:181,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-self-test.c:184,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:185,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:185,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-self-test.c:188,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:189,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:189,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:190,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:194,1
    - Dst: fu_idle_locker_new
      Src: /src/fwupd/src/fu-self-test.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:196,1
    - Dst: fu_idle_locker_new
      Src: /src/fwupd/src/fu-self-test.c:197,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:198,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:199,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:200,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:200,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:201,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:201,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:203,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:203,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:204,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-self-test.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 205
    functionName: fu_idle_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_idle_uninhibit
    - fu_idle_inhibit
    - fu_idle_reset
    - fu_idle_locker_new
    - g_assert_true
    - fu_idle_new
    - fu_idle_has_inhibit
    - g_assert_false
    - g_autoptr
    - g_assert_nonnull
    linkageType: ''
    returnType: void
    signature: void fu_idle_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:214,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:215,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:216,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:219,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:222,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-self-test.c:229,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:230,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:231,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-self-test.c:232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:233,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:234,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:237,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:241,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:242,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:243,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:244,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:245,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-self-test.c:246,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:247,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-self-test.c:250,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:251,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-self-test.c:254,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:255,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-self-test.c:256,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 258
    functionName: fu_engine_generate_md_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_load
    - g_test_build_filename
    - g_assert_true
    - fu_device_add_instance_id
    - fu_engine_get_component_by_guids
    - xb_node_query_text
    - g_assert_no_error
    - fu_engine_new
    - fu_device_new
    - g_autoptr
    - g_assert_nonnull
    - fu_bytes_set_contents
    - fu_bytes_get_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_generate_md_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:267,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:268,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:269,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:270,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:281,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:284,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:285,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:286,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:287,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:288,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:289,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:292,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:293,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:294,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:295,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:296,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:297,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 299
    functionName: fu_engine_requirements_missing_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - fu_engine_add_runtime_version
    - fu_engine_request_new
    - xb_silo_query_first
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_missing_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:308,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:309,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:310,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:311,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:322,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:325,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:326,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:327,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:328,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:329,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:330,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:333,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:334,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:335,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:336,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:337,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:341,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 343
    functionName: fu_engine_requirements_soft_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - fu_engine_add_runtime_version
    - fu_engine_request_new
    - xb_silo_query_first
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_soft_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:352,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:353,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:354,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:355,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:366,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:367,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:368,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:369,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:370,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:371,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:374,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:375,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:376,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:377,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:378,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:379,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 381
    functionName: fu_engine_requirements_client_fail_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_fail_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:390,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:391,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:392,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:393,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:405,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:406,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:407,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:408,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:409,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:410,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:413,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:414,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:415,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:416,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:417,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:418,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 420
    functionName: fu_engine_requirements_client_invalid_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_invalid_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:429,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:430,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:431,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:432,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-self-test.c:444,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:447,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:448,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:449,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:450,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:451,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:452,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:455,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:456,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:457,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:458,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:459,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:460,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 462
    functionName: fu_engine_requirements_client_pass_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_request_set_feature_flags
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_pass_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:471,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:472,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:472,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:473,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:473,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:474,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:487,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:490,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:491,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:492,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:493,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:494,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:495,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:498,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:499,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:500,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:501,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:502,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:503,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:504,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 508
    functionName: fu_engine_requirements_vercmp_glob_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - fu_context_add_runtime_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_vercmp_glob_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:516,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:517,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:518,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:519,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:520,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:533,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:534,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:535,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:536,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:537,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:538,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:541,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:542,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:543,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:544,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:545,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:546,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 548
    functionName: fu_engine_requirements_vercmp_glob_fallback_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_vercmp_glob_fallback_func(gconstpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:556,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:557,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:557,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:558,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:559,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:560,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-self-test.c:572,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:575,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:576,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:577,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:578,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:579,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:580,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:583,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:584,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:585,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:586,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:587,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:588,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 590
    functionName: fu_engine_requirements_not_hardware_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_request_set_feature_flags
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_not_hardware_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:597,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:597,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:598,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:598,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:599,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:600,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:601,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:602,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:615,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:616,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-self-test.c:617,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:618,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:619,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:620,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:621,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:622,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:625,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:626,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:627,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:628,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:629,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:630,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:633,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:634,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:635,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:636,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:637,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-self-test.c:638,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 640
    functionName: fu_engine_requirements_version_require_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_set_version_bootloader
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - g_str_has_prefix
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_require_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:647,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:647,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:648,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:649,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:652,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:665,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:666,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/src/fu-self-test.c:667,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:669,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:670,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:671,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:674,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:675,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:676,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:677,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:678,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:679,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:682,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:683,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:684,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:685,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:686,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-self-test.c:687,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:688,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:689,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-self-test.c:690,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 692
    functionName: fu_engine_requirements_version_lowest_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - fu_device_set_version_lowest
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - g_str_has_prefix
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_release_check_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_lowest_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:699,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:700,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:701,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:701,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:702,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:702,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:703,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:703,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:704,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:715,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:718,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:719,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:720,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:721,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:722,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:723,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:726,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:727,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:728,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:729,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:730,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:731,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 733
    functionName: fu_engine_requirements_unsupported_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - fu_engine_add_runtime_version
    - fu_engine_request_new
    - xb_silo_query_first
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_unsupported_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:740,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:740,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:741,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:741,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:742,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:742,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:743,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:744,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:745,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:746,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:747,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:765,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:766,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-self-test.c:767,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:768,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:769,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:770,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:771,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:773,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:774,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:775,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:776,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:779,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:780,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:781,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:782,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:783,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:784,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:787,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:788,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:789,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:790,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:791,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:792,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:793,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 795
    functionName: fu_engine_requirements_child_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_device_set_physical_id
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_set_version_bootloader
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:802,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:802,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:803,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:804,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:805,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:805,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:806,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:806,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:807,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:809,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:827,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:828,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-self-test.c:829,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:830,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:831,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:832,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:833,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:835,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:836,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:837,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:838,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:841,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:842,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:843,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:844,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:845,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:846,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:849,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:850,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:851,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:852,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:853,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:854,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:855,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:856,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-self-test.c:857,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 859
    functionName: fu_engine_requirements_child_fail_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - g_strstr_len
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - fu_device_set_physical_id
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_set_version_bootloader
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_fail_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:866,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:866,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:867,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:867,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:868,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:868,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:869,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:871,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:885,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-self-test.c:886,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:889,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:890,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:891,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:892,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:893,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:894,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:897,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:898,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:899,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:900,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:901,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:902,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 861
    functionDepth: 4
    functionLinenumber: 861
    functionLinenumberEnd: 904
    functionName: fu_engine_requirements_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check
    - fu_engine_add_runtime_version
    - fu_engine_request_new
    - xb_silo_query_first
    - g_assert_true
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_release_set_request
    - g_assert_no_error
    - fu_engine_new
    - fu_release_load
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:911,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:911,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:912,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:912,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:913,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:913,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:914,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:914,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:917,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:940,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:941,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-self-test.c:942,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:943,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:944,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:945,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:946,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:947,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:948,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:951,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:952,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:953,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:954,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:955,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:956,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:959,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:960,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:961,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:962,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:963,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:964,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:965,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:966,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:969,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:970,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:971,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:972,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-self-test.c:972,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:973,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:977,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:978,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:982,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 985
    functionName: fu_engine_requirements_device_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_release_set_device
    - g_strstr_len
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - g_clear_error
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_set_version_bootloader
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_device_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:992,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:992,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:993,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:994,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:995,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:995,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:996,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:997,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:998,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1013,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1014,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1015,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1016,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1017,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1018,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1021,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1022,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1023,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1024,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1025,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1026,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1029,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1030,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1031,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1032,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1033,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:1034,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-self-test.c:1034,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1035,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1036,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1038
    functionName: fu_engine_requirements_device_plain_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_release_get_filename
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_device_plain_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1045,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1045,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1046,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1047,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1047,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1048,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1049,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1050,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1067,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1068,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1069,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1070,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1071,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1074,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1075,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1076,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1077,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1078,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1079,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1082,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1083,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1084,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1085,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1086,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-self-test.c:1087,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:1088,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1089,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-self-test.c:1090,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1040
    functionDepth: 4
    functionLinenumber: 1040
    functionLinenumberEnd: 1092
    functionName: fu_engine_requirements_version_format_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_device_set_version
    - fu_release_set_device
    - g_strstr_len
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - g_assert_no_error
    - fu_device_new
    - fu_release_check_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_format_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1099,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1099,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1100,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1100,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1101,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1102,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1103,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1104,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1116,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1117,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1118,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1119,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1120,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1124,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1125,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1126,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1127,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1128,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1131,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1132,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1133,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1134,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1135,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-self-test.c:1136,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:1137,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1138,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-self-test.c:1138,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1140
    functionName: fu_engine_requirements_only_upgrade_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_device_set_version
    - fu_release_set_device
    - g_strstr_len
    - fu_release_load
    - fu_device_add_flag
    - g_assert_false
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_no_error
    - fu_device_new
    - fu_release_check_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_only_upgrade_func(gconstpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1148,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:1148,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1149,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-self-test.c:1149,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1150,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1151,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1152,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1160,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-self-test.c:1160,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-self-test.c:1161,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1162,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:1163,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:1166,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-self-test.c:1167,1
    - Dst: fu_device_set_progress
      Src: /src/fwupd/src/fu-self-test.c:1170,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-self-test.c:1173,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1175,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-self-test.c:1175,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-self-test.c:1176,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1178,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-self-test.c:1178,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/src/fu-self-test.c:1181,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/src/fu-self-test.c:1184,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:1189,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1190,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-self-test.c:1193,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1194,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-self-test.c:1197,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-self-test.c:1197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1198,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-self-test.c:1198,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuTest*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1202
    functionName: fu_engine_plugin_device_gtype
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_progress
    - g_object_new
    - fu_device_to_string
    - fu_device_add_security_attrs
    - g_hash_table_size
    - g_debug
    - g_strv_contains
    - g_assert_false
    - g_type_name
    - fu_device_set_plugin
    - fu_device_set_quirk_kv
    - fu_security_attrs_new
    - fu_device_report_metadata_post
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_raw
    - g_assert_error
    - fu_device_locker_new
    - fu_device_report_metadata_pre
    - fu_progress_new
    - fu_device_get_version_format
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_gtype(FuTest *self, GType gtype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1208,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1209,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1210,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-self-test.c:1210,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1211,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1221,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-self-test.c:1221,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-self-test.c:1222,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1223,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-self-test.c:1226,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:1229,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/src/fu-self-test.c:1230,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-self-test.c:1234,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:1234,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:1235,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1241,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-self-test.c:1245,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-self-test.c:1246,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1247,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-self-test.c:1247,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-self-test.c:1250,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-self-test.c:1250,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/src/fu-self-test.c:1251,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1256,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1257,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuTest*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1261
    functionName: fu_engine_plugin_firmware_gtype
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_object_new
    - FU_FIRMWARE
    - fu_firmware_get_version_format
    - g_debug
    - g_strv_contains
    - g_assert_false
    - g_type_name
    - fu_firmware_export_to_xml
    - fu_firmware_set_bytes
    - fu_firmware_has_flag
    - g_assert_nonnull
    - g_autoptr
    - fu_firmware_set_version_raw
    - g_bytes_new_static
    - fu_firmware_parse_bytes
    - fu_firmware_write
    - g_bytes_get_size
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_firmware_gtype(FuTest *self, GType gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1269,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:1269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1271,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:1271,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:1275,1
    - Dst: g_unsetenv
      Src: /src/fwupd/src/fu-self-test.c:1277,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:1278,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-self-test.c:1280,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1281,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1282,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:1283,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1289,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1290,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1292,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1293,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:1295,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1296,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1297,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-self-test.c:1300,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1301,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1304,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-self-test.c:1305,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1306,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:1309,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-self-test.c:1310,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1312,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1313,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:1315,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1316,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1317,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-self-test.c:1320,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1321,1
    - Dst: fu_plugin_remove_flag
      Src: /src/fwupd/src/fu-self-test.c:1324,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-self-test.c:1325,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1327
    functionName: fu_engine_test_plugin_mutable_enumeration
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_path_mkdir_parent
    - g_file_set_contents
    - fu_engine_load
    - fu_self_test_mkroot
    - fu_plugin_new
    - g_assert_true
    - fu_plugin_remove_flag
    - g_assert_no_error
    - fu_engine_new
    - fu_plugin_add_flag
    - g_assert_nonnull
    - g_autoptr
    - g_setenv
    - fu_engine_plugin_allows_enumeration
    - g_assert_false
    - g_unsetenv
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_test_plugin_mutable_enumeration(gconstpointer user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1335,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1335,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1336,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:1336,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1337,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-self-test.c:1337,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1338,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1339,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1340,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1340,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1353,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-self-test.c:1356,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1357,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-self-test.c:1357,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-self-test.c:1359,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:1360,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:1361,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-self-test.c:1367,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:1368,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:1372,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1377,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1378,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-self-test.c:1379,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1380,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:1381,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-self-test.c:1384,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:1385,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-self-test.c:1387,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1388,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1389,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:1395,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/src/fu-self-test.c:1396,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:1401,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1402,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1403,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-self-test.c:1404,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1405,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:1410,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1411,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1411,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1412,1
    - Dst: fu_plugin_runner_unlock
      Src: /src/fwupd/src/fu-self-test.c:1413,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1414,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:1419,1
    - Dst: fu_plugin_get_device_gtypes
      Src: /src/fwupd/src/fu-self-test.c:1420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1422,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1422,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1423,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/src/fu-self-test.c:1424,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:1428,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:1434,1
    - Dst: fu_plugin_get_device_gtypes
      Src: /src/fwupd/src/fu-self-test.c:1435,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-self-test.c:1437,1
    - Dst: fu_engine_plugin_device_gtype
      Src: /src/fwupd/src/fu-self-test.c:1438,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/src/fu-self-test.c:1443,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-self-test.c:1445,1
    - Dst: fu_engine_plugin_firmware_gtype
      Src: /src/fwupd/src/fu-self-test.c:1446,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1448
    functionName: fu_engine_plugin_gtypes_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_plugin_runner_add_security_attrs
    - fu_engine_new
    - fu_plugin_runner_reboot_cleanup
    - g_array_index
    - fu_context_get_firmware_gtypes
    - g_debug
    - fu_engine_get_plugins
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_engine_set_silo
    - fu_plugin_runner_backend_device_added
    - fu_plugin_runner_startup
    - fu_engine_plugin_firmware_gtype
    - xb_silo_new
    - fu_security_attrs_new
    - fu_engine_plugin_device_gtype
    - fu_strjoin
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_setenv
    - g_ptr_array_new_with_free_func
    - g_getenv
    - g_ptr_array_add
    - G_N_ELEMENTS
    - fu_progress_new
    - fu_plugin_runner_unlock
    - g_test_build_filename
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    - fu_device_new
    - fu_plugin_get_device_gtypes
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_gtypes_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1455,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1455,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1456,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1456,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1457,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1457,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1458,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1458,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1459,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1460,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1460,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1461,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1461,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1462,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1462,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1463,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1464,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1466,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1466,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1484,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1487,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1488,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1489,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1490,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1491,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1492,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1493,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1494,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1495,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1498,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1499,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1500,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1501,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1502,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1503,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1504,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1505,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1506,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1509,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:1510,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1511,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1512,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1513,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1514,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1515,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1516,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1517,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1518,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1521,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1522,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1523,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1524,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1525,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1526,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1529,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1530,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1531,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1532,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1533,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1534,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:1535,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1536,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:1537,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1540,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1541,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1542,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1543,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1544,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1545,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1546,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1547,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1548,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1549,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1550,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1553,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1554,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1555,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1556,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1557,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1558,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1559,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1560,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:1563,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1564,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1565,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 82
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1450
    functionDepth: 4
    functionLinenumber: 1450
    functionLinenumberEnd: 1567
    functionName: fu_engine_requirements_sibling_device_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_engine_requirements_check
    - xb_silo_new
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_engine_add_device
    - g_clear_error
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_sibling_device_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1574,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1574,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1575,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1575,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1576,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1577,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1577,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1578,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1578,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1579,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1581,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1582,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1582,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1601,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1604,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1605,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1606,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1607,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1608,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1611,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1612,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1613,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1614,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1615,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1616,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1617,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1618,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1621,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1622,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1623,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1624,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1625,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1626,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1629,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1630,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1631,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1632,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1633,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1634,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1635,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1569
    functionDepth: 4
    functionLinenumber: 1569
    functionLinenumberEnd: 1637
    functionName: fu_engine_requirements_other_device_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_requirements_check
    - xb_silo_new
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_other_device_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1643,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1643,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1644,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1644,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1645,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1645,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1646,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1646,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1647,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1648,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1648,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1649,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1649,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1650,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1651,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1652,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1653,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1653,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1673,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1675,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1676,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1677,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:1678,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1679,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1680,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1681,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1682,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1683,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1684,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1686,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1687,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1688,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:1689,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1690,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1691,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1692,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1693,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1694,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1695,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:1698,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1699,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1700,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:1701,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1704,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1705,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1706,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1707,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1708,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1709,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1712,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1713,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1714,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:1715,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:1716,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:1717,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1720,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1721,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1722,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1723,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1725
    functionName: fu_engine_requirements_protocol_check_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_get_devices
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - xb_silo_new
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_engine_add_device
    - g_clear_error
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - fu_device_add_protocol
    - g_assert_no_error
    - fu_device_new
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_protocol_check_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1732,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1732,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1733,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1733,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1734,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1734,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1735,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1735,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1736,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1736,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1737,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1738,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1739,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1740,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1740,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1759,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1762,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1763,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1764,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1765,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1766,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1767,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1768,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1771,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1772,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1773,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1774,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1775,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1776,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1777,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1778,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1779,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1782,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1783,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1784,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1785,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1786,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1787,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1790,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1791,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1792,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1793,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1794,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1795,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1796,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1727
    functionDepth: 4
    functionLinenumber: 1727
    functionLinenumberEnd: 1798
    functionName: fu_engine_requirements_parent_device_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_requirements_check
    - xb_silo_new
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_parent_device_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1805,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1805,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1806,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1806,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1807,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1807,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1808,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:1808,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1809,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:1809,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1810,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1811,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1812,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1813,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1813,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1831,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1834,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1835,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1836,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1837,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1838,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1839,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1840,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1841,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:1842,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1845,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1846,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:1847,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:1848,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1849,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1850,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1851,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-self-test.c:1854,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1855,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1856,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-self-test.c:1857,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1858,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:1859,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:1862,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:1863,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:1864,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1865,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1866,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:1867,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:1868,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1800
    functionDepth: 4
    functionLinenumber: 1800
    functionLinenumberEnd: 1870
    functionName: fu_engine_requirements_child_device_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_requirements_check
    - xb_silo_new
    - xb_silo_query_first
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_release_new
    - xb_silo_new_from_xml
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_device_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1876,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1876,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1877,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1877,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1878,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1878,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1879,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1879,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1880,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1880,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1883,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1886,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1887,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1888,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1889,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/src/fu-self-test.c:1890,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1891,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1894,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1895,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1896,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1897,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/src/fu-self-test.c:1898,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1901,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1902,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/src/fu-self-test.c:1903,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1904,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1907,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1910,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1913,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:1913,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1914,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:1914,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:1915,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-self-test.c:1915,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:1918,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:1918,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:1919,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:1919,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:1920,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1921
    functionName: fu_engine_device_parent_guid_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_engine_new
    - fu_device_get_vendor
    - fu_device_set_vendor
    - g_assert_cmpint
    - fu_engine_set_silo
    - fu_device_get_parent
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - fu_device_get_order
    - g_autoptr
    - fu_device_add_parent_guid
    - g_assert_cmpstr
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_parent_guid_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1927,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1927,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1928,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1928,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1929,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1929,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1930,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1930,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1931,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:1931,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1932,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:1932,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:1933,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:1933,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:1936,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1939,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1940,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1941,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1942,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1943,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1944,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1945,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1946,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1947,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1950,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1951,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/src/fu-self-test.c:1952,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1953,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:1954,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1955,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1956,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/src/fu-self-test.c:1957,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:1958,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1961,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1962,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1963,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1964,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1965,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:1966,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1969,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1972,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1973,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1974,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:1975,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1976,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1977,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1978,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1979,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1982,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:1985,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:1986,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:1987,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:1988,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:1989,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:1990,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/src/fu-self-test.c:1991,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1992,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:1995,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1998,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:1998,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:1999,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:1999,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2000,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:2000,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2001,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:2001,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2002,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-self-test.c:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 2003
    functionName: fu_engine_device_parent_id_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - fu_device_add_parent_physical_id
    - fu_engine_new
    - fu_device_get_vendor
    - fu_device_set_vendor
    - fu_device_add_parent_backend_id
    - fu_device_add_private_flag
    - fu_engine_set_silo
    - fu_device_set_backend_id
    - fu_device_get_parent
    - fu_device_set_physical_id
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_autoptr
    - g_assert_cmpstr
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_new
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_parent_id_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2010,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2010,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2011,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2011,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2012,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2012,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2013,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:2013,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2014,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2015,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2016,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2017,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2017,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2020,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:2023,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:2024,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2027,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2028,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2029,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:2030,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2031,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2032,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2033,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2034,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2035,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2036,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:2037,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-self-test.c:2038,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2039,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2040,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2041,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-self-test.c:2044,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2045,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2046,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-self-test.c:2049,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2050,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2051,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2054,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2055,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-self-test.c:2056,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2057,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2058,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2061,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2062,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-self-test.c:2063,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2064,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2065,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2068,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2069,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-self-test.c:2070,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2071,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2073
    functionName: fu_engine_partial_hash_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_new
    - g_assert_true
    - fu_engine_unlock
    - fu_engine_new
    - fu_device_set_equivalent_id
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_plugin_set_name
    - g_assert_false
    - fu_device_set_plugin
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_autoptr
    - g_assert_error
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_engine_partial_hash_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2082,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2082,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2083,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2083,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2084,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2084,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2085,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2086,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2087,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:2087,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2088,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:2088,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2089,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2092,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2093,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2094,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:2097,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:2098,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-self-test.c:2099,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2100,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2101,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:2102,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:2103,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2104,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2105,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2106,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2109,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2110,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2111,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2112,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2113,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2114,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2115,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2116,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2117,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:2120,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:2120,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2121,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2122,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2123
    functionName: fu_engine_device_unlock_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fwupd_device_get_release_default
    - g_file_new_for_path
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - g_assert_nonnull
    - FWUPD_DEVICE
    - fwupd_release_has_flag
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_compile
    - g_test_build_filename
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - xb_builder_source_load_file
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_unlock_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2130,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2130,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2131,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2131,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2132,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2134,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2134,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2135,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2135,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2136,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2137,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2141,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2142,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2145,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:2146,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2147,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2148,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2149,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2150,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2151,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2152,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2155,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:2156,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-self-test.c:2157,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-self-test.c:2158,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2159,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2160,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2161,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2162,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2163,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2164,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:2167,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2168,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2169,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2170,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:2171,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2172,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2173,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2174,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2174,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2177,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2177,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2178,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/src/fu-self-test.c:2178,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2182,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-self-test.c:2184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2188,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2189,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2189,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2190,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/src/fu-self-test.c:2190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2191
    functionName: fu_engine_device_equivalent_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_device_get_id
    - g_object_ref
    - fu_device_set_equivalent_id
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_device_add_flag
    - g_assert_false
    - fu_engine_get_device
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_device_has_problem
    - fu_progress_new
    - fu_device_set_priority
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_equivalent_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2198,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2198,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2199,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2199,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2200,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2200,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2201,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2202,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:2202,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2203,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:2203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2204,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2223,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2224,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2225,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-self-test.c:2228,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2229,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2230,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:2231,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:2232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2233,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2234,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2235,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2238,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2239,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2240,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2241,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2242,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2243,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2244,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2245,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2246,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2247,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2250,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2252
    functionName: fu_engine_device_md_set_flags_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - xb_builder_source_load_xml
    - g_assert_nonnull
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_compile
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_set_flags_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2259,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2260,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2261,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2263,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:2263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2264,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:2264,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2265,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2290,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2291,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2292,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-self-test.c:2295,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2296,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2297,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:2298,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:2299,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2300,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2301,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2302,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2305,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2306,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2307,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2308,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2309,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2310,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2311,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2312,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2313,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2314,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:2315,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2317,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2318,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2321,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:2321,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2322,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2323
    functionName: fu_engine_device_md_checksum_set_version_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - xb_builder_source_load_xml
    - g_assert_nonnull
    - fu_device_add_checksum
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - xb_builder_compile
    - fu_device_get_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_checksum_set_version_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2330,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2331,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2332,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2332,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2333,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2334,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:2334,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2335,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:2335,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2336,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2361,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2362,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2363,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-self-test.c:2366,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2367,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2368,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:2369,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:2370,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2371,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2372,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2373,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2376,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2377,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2378,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2379,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2380,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2381,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2382,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2383,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2384,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:2385,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2387,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2388,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2391,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:2391,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2392,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2393
    functionName: fu_engine_device_md_checksum_set_version_wrong_proto_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - xb_builder_source_load_xml
    - g_assert_nonnull
    - fu_device_add_checksum
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - xb_builder_compile
    - fu_device_get_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_checksum_set_version_wrong_proto_func(gconstpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2401,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2402,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2403,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2403,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2404,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2404,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2405,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2405,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2406,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:2406,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2407,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2408,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2409,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2410,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2410,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2413,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2416,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2417,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2418,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:2422,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:2423,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2424,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2425,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:2426,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2427,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2428,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2431,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2432,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2433,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2434,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2435,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2436,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2437,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2438,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2439,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:2442,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2443,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2444,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:2447,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:2448,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:2449,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2450,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2451,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-self-test.c:2452,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2453,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2454,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2455,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2459
    functionName: fu_engine_require_hwid_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_release_set_request
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_set_version
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_engine_requirements_check
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_error
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_require_hwid_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2470,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2470,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2471,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2471,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2472,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2472,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2473,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2473,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2474,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2475,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2476,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2477,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2477,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2480,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2483,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2484,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2485,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2488,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:2489,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2490,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2491,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2492,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2493,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2494,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2495,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2496,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2497,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:2501,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:2502,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2503,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2504,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-self-test.c:2505,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2506,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2507,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-self-test.c:2508,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2509,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2510,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2512,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2513,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:2513,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:2514,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2515,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2516,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:2516,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2517,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/src/fu-self-test.c:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2518
    functionName: fu_engine_get_details_added_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - fu_engine_get_details
    - fwupd_release_has_checksum
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_device_get_name
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_input_stream_compute_checksum
    - fu_device_add_instance_id
    - fu_device_set_id
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fwupd_release_get_version
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_details_added_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2528,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2528,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2529,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2529,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2530,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2530,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2531,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2532,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2533,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2534,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2534,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2537,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2540,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2541,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2542,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:2546,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:2547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2548,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2549,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-self-test.c:2550,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2551,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2552,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2553,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2554,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2555,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:2555,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:2556,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2557,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2558,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:2558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2559
    functionName: fu_engine_get_details_missing_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_new
    - g_assert_cmpint
    - fu_engine_get_details
    - g_ptr_array_index
    - fu_engine_set_silo
    - fu_device_get_name
    - xb_silo_new
    - fu_engine_request_new
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fwupd_release_get_version
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_details_missing_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2567,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2567,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2568,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2568,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2569,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2569,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2570,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2570,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2572,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2573,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2574,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2575,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2577,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2578,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2579,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2579,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:2582,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2585,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2588,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2592,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2593,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2596,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2629,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2630,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2633,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2666,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2667,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2669,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2673,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2674,1
    - Dst: g_test_assert_expected_messages
      Src: /src/fwupd/src/fu-self-test.c:2675,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-self-test.c:2678,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2679,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2680,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2681,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:2684,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2685,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:2686,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:2687,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2690,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2691,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2692,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2693,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2694,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:2695,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2696,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2697,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2698,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2699,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:2700,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2701,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2702,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2703,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2704,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2704,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2705,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2705,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-self-test.c:2708,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2708,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2709,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2710,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2711,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-self-test.c:2714,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2714,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2715,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:2716,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:2717,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:2720,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:2721,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:2722,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:2723,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:2724,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-self-test.c:2727,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2727,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2728,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2729,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2730,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:2733,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2733,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2734,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:2734,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:2735,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2735,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2736,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:2736,1
    - Dst: fu_engine_get_downgrades
      Src: /src/fwupd/src/fu-self-test.c:2739,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2739,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2740,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2741,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2742,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:2743,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2743,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2744,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:2744,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2747,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-self-test.c:2748,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2748,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:2749,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2561
    functionDepth: 2
    functionLinenumber: 2561
    functionLinenumberEnd: 2751
    functionName: fu_engine_downgrade_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_upgrades
    - g_assert_true
    - fu_engine_get_devices
    - g_assert_null
    - fu_engine_get_downgrades
    - fu_device_has_flag
    - fu_engine_new
    - fu_engine_get_remotes
    - fu_device_get_id
    - fu_device_set_version
    - FWUPD_RELEASE
    - g_file_set_contents
    - g_assert_cmpint
    - fu_engine_get_releases
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - g_clear_error
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_error
    - fwupd_release_get_version
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_assert_expected_messages
    - fu_device_build_vendor_id_u16
    - fu_device_add_protocol
    - fu_device_has_private_flag
    - g_assert_no_error
    - fu_device_new
    - fu_engine_add_approved_firmware
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_downgrade_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2759,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2759,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2760,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2760,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2761,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2761,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2762,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2762,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2763,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2764,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2765,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2766,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2766,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:2769,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2772,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2775,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2815,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2816,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2818,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2822,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2823,1
    - Dst: g_test_assert_expected_messages
      Src: /src/fwupd/src/fu-self-test.c:2824,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-self-test.c:2827,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2828,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2829,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2832,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-self-test.c:2833,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2834,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2835,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2836,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2837,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2838,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2839,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2840,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2841,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2842,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2843,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2844,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2845,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2846,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2849,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:2849,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2850,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:2850,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2851,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:2851,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:2852,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-self-test.c:2852,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2853,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-self-test.c:2853,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2854,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2854,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2855,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2855,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2856,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2856,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2857,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/src/fu-self-test.c:2857,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:2860,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2861,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2862,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2863,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2864,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2864,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2865,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:2865,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-self-test.c:2868,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2869,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2870,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 2872
    functionName: fu_engine_md_verfmt_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_device_get_vendor
    - fu_device_get_id
    - fu_device_set_version
    - g_file_set_contents
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_get_version
    - fu_device_has_icon
    - fu_engine_get_releases
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - fu_device_get_name
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_device_set_version_raw
    - fu_engine_load
    - fu_device_get_required_free
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_get_version_format
    - g_test_assert_expected_messages
    - fu_device_build_vendor_id_u16
    - fu_device_add_protocol
    - fu_device_has_private_flag
    - g_assert_no_error
    - fu_device_new
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_md_verfmt_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2880,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2880,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2881,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2881,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2882,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2882,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2883,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2883,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2884,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2885,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2886,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2887,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2887,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:2890,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2893,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2896,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2917,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2918,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:2920,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2924,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2925,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:2928,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:2929,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:2930,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:2931,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:2932,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:2933,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-self-test.c:2934,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2935,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:2936,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:2937,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:2938,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2939,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2940,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2941,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:2942,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:2942,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-self-test.c:2945,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:2945,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:2946,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:2947,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2948,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:2949,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:2949,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:2950,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-self-test.c:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2874
    functionDepth: 2
    functionLinenumber: 2874
    functionLinenumberEnd: 2951
    functionName: fu_engine_install_duration_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_device_get_id
    - fu_device_set_version
    - FWUPD_RELEASE
    - g_file_set_contents
    - g_assert_cmpint
    - fu_engine_get_releases
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_device_set_version_format
    - fu_progress_new
    - fwupd_release_get_install_duration
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_duration_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2958,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:2958,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2959,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:2959,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2960,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:2960,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2961,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:2961,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2962,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2963,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2964,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:2965,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:2965,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:2968,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:2971,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:2974,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3002,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3003,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3005,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3009,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3010,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3013,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3014,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3015,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3016,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3017,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3018,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-self-test.c:3019,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3020,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3021,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3022,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3023,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3024,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3025,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3026,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3027,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3027,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-self-test.c:3030,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:3030,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3031,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3032,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 2953
    functionDepth: 2
    functionLinenumber: 2953
    functionLinenumberEnd: 3034
    functionName: fu_engine_release_dedupe_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_device_get_id
    - fu_device_set_version
    - g_file_set_contents
    - g_assert_cmpint
    - fu_engine_get_releases
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_device_set_version_format
    - fu_progress_new
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_engine_release_dedupe_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3041,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3041,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3042,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:3042,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3043,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3043,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3044,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3047,1
    - Dst: fu_history_remove_device
      Src: /src/fwupd/src/fu-self-test.c:3048,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-self-test.c:3049,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3050,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3051,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-self-test.c:3054,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3055,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3056,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3059,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-self-test.c:3060,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:3061,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:3062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3063
    functionName: fu_engine_history_modify_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_history_add_device
    - fu_release_new
    - fu_history_remove_device
    - fu_device_set_id
    - fu_history_new
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    - fu_history_modify_device
    - g_assert_false
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_modify_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3074,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3075,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3076,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3076,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3077,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3077,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3078,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3079,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3079,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3080,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3080,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3080,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3081,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3081,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3082,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3083,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3084,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3085,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3086,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3087,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3088,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3088,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:3091,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3094,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3097,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3098,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3099,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3101,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3102,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3103,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3106,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3107,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3110,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3111,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3112,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3113,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3114,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3115,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3116,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3117,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:3118,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3119,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3120,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3121,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3122,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3124,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3126,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3127,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3127,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3130,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3132,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3133,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3134,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3135,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3136,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3139,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3140,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3141,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3144,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3147,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3148,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3149,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3150,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3157,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3158,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3161,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3161,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:3164,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:3165,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:3165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3166,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3167,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3168,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-self-test.c:3168,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3169,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-self-test.c:3169,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-self-test.c:3170,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:3171,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/src/fu-self-test.c:3171,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:3171,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-self-test.c:3172,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-self-test.c:3173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3174,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3175,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-self-test.c:3177,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:3196,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3197,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-self-test.c:3200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3201,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3202,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3203,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:3203,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3204,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-self-test.c:3204,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3205,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-self-test.c:3205,1
    - Dst: fu_engine_clear_results
      Src: /src/fwupd/src/fu-self-test.c:3208,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3209,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3210,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-self-test.c:3213,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:3214,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:3215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3065
    functionDepth: 4
    functionLinenumber: 3065
    functionLinenumberEnd: 3216
    functionName: fu_engine_history_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_get_devices
    - g_assert_null
    - fu_device_to_string
    - fu_engine_new
    - fu_device_set_metadata_integer
    - fu_device_get_id
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - g_assert_cmpint
    - fu_release_set_device
    - fu_device_get_update_state
    - fu_release_load
    - fu_device_add_flag
    - fu_device_set_modified_usec
    - fu_engine_set_silo
    - fwupd_release_get_metadata
    - fu_self_test_mkroot
    - fu_device_set_plugin
    - xb_silo_new
    - g_hash_table_remove_all
    - fu_engine_add_device
    - fu_input_stream_compute_checksum
    - fu_device_add_instance_id
    - fu_engine_clear_results
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - fu_device_get_metadata_integer
    - fu_history_new
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_error
    - fu_device_add_checksum
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - fu_engine_install_release
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_get_update_error
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - g_strdup_printf
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_engine_get_results
    - fu_device_new
    - g_strcmp0
    - fu_engine_add_plugin
    - fu_history_get_device_by_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3223,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-self-test.c:3223,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3224,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3225,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3225,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3226,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3226,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3227,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3228,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3228,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3231,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3234,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3235,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3236,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3237,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-self-test.c:3240,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3241,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3242,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3243,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3244,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3245,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3246,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:3247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3248,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3249,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3250,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3251,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3252,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3253,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-self-test.c:3253,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3254,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:3254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3218
    functionDepth: 1
    functionLinenumber: 3218
    functionLinenumberEnd: 3255
    functionName: fu_engine_history_verfmt_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_object_new
    - fu_engine_new
    - fu_plugin_new_from_gtype
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_device_set_plugin
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_device_set_id
    - g_autoptr
    - fu_device_set_version_raw
    - fu_engine_load
    - fu_device_add_checksum
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_get_version_format
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_verfmt_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3262,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3263,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3264,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3264,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3264,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3265,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3265,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3266,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3266,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3269,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3269,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:3272,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3275,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3278,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3279,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3280,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3281,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3282,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3283,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3284,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3286,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3287,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3288,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3291,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3292,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3293,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3294,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3295,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3296,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3297,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3298,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3299,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3300,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3303,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3304,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/src/fu-self-test.c:3306,1
    - Dst: fu_release_set_stream
      Src: /src/fwupd/src/fu-self-test.c:3307,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-self-test.c:3308,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3316,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3317,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3320,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3320,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3323,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3257
    functionDepth: 2
    functionLinenumber: 3257
    functionLinenumberEnd: 3324
    functionName: fu_engine_install_loop_restart_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_new
    - fu_device_set_metadata_integer
    - fu_release_set_stream
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - g_assert_cmpint
    - fu_engine_install_blob
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - fu_device_set_plugin
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - g_memory_input_stream_new_from_data
    - fu_device_get_metadata_integer
    - g_autoptr
    - fu_engine_load
    - fu_device_set_version_format
    - fu_progress_new
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_new
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_loop_restart_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3332,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3333,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3333,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3334,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3334,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3335,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3335,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3335,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3336,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3336,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3337,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3338,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3339,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3340,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3340,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3341,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:3341,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3342,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3343,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3344,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:3347,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:3352,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3355,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3358,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3359,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3360,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3361,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3363,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3364,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3365,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3368,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3369,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3370,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3371,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3372,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3373,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3374,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3375,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:3376,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3377,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3378,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3379,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3380,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3381,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3383,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3388,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3389,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3390,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3391,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3392,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3393,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3396,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3397,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3398,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3401,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3402,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-self-test.c:3405,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-self-test.c:3405,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3409,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3410,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-self-test.c:3411,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3412,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3413,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-self-test.c:3415,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:3417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3418,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3418,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3419,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3420,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3426,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3427,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:3428,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-self-test.c:3428,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-self-test.c:3432,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-self-test.c:3433,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3440,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3441,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3444,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3444,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3445,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-self-test.c:3445,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3446,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:3446,1
    - Dst: fu_engine_reset_config
      Src: /src/fwupd/src/fu-self-test.c:3449,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3450,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 77
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3326
    functionDepth: 4
    functionLinenumber: 3326
    functionLinenumberEnd: 3452
    functionName: fu_engine_multiple_rels_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_plugin_reset_config_values
    - fu_engine_reset_config
    - g_assert_true
    - fu_engine_new
    - fu_device_set_metadata_integer
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - xb_node_query_full
    - g_object_ref
    - fu_device_get_version
    - g_assert_cmpint
    - fu_release_set_device
    - xb_query_new_full
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_release_load
    - fu_engine_set_silo
    - fu_self_test_mkroot
    - fu_device_set_plugin
    - xb_node_get_silo
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_engine_install_releases
    - fu_device_set_id
    - fu_device_get_metadata_integer
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_ptr_array_new_with_free_func
    - fu_device_add_checksum
    - g_ptr_array_add
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_progress_new
    - fu_progress_reset
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - fu_engine_add_plugin
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_multiple_rels_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3462,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3463,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3463,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3464,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3464,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3465,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3466,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3466,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3466,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3467,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3467,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3469,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3470,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3471,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3472,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3472,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-self-test.c:3475,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3476,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-self-test.c:3477,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3480,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3483,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3484,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3485,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3486,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3487,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3488,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3489,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3490,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3491,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3492,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3495,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3496,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3497,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3498,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3499,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3500,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3501,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3502,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3503,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3504,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3505,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3506,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3507,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3508,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3509,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3510,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3511,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3511,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3514,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3515,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3516,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3517,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3518,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3519,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3520,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3523,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3524,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3525,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3528,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3529,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3530,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3531,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3532,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3538,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3539,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3542,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3542,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3543,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:3543,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-self-test.c:3546,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-self-test.c:3547,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:3547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3548,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3549,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:3552,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3552,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3553,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:3553,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-self-test.c:3556,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3557,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3558,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3559,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3565,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3566,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:3567,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:3568,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3569,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3570,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3571,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3572,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3573,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3574,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3575,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3576,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3577,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3578,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3579,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3580,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3581,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3582,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3582,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:3585,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:3586,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3587,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3588,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3589,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3590,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3591,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3592,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3593,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3594,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3595,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3596,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3597,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3598,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:3599,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 105
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3454
    functionDepth: 4
    functionLinenumber: 3454
    functionLinenumberEnd: 3600
    functionName: fu_engine_history_inherit
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_device_get_id
    - fu_path_from_kind
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_release_set_device
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_device_set_plugin
    - xb_silo_new
    - fu_engine_add_device
    - g_build_filename
    - fu_device_add_instance_id
    - g_object_unref
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - fu_engine_activate
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - fu_engine_install_release
    - g_assert_cmpstr
    - fu_progress_new
    - fu_progress_reset
    - g_unlink
    - g_test_build_filename
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - fu_input_stream_from_path
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - fu_engine_add_plugin
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_inherit(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3608,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3609,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3609,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3610,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3610,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3611,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3611,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3612,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3612,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3612,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3613,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3613,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3614,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3615,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3616,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3617,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3618,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3618,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3621,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3624,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3625,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3626,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3627,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3628,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3629,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3630,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3631,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3632,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3633,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3636,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3637,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3638,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3639,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3640,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3641,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3642,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3643,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3644,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3645,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3646,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3647,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3648,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3649,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3650,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3651,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3652,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3652,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3655,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3656,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3657,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3658,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3659,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3660,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3661,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3664,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3665,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3666,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3669,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3670,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3671,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3672,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3673,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3679,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3680,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3683,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3683,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3684,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-self-test.c:3684,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3685,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:3685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3602
    functionDepth: 4
    functionLinenumber: 3602
    functionLinenumberEnd: 3686
    functionName: fu_engine_install_needs_reboot
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - fu_device_get_version
    - g_assert_cmpint
    - fu_release_set_device
    - fu_device_get_update_state
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_device_set_plugin
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - fu_engine_install_release
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - fu_engine_add_plugin
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_needs_reboot(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:3697,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-self-test.c:3697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - progress
    - status
    - user_data
    argTypes:
    - FuProgress*
    - FwupdStatus
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3693
    functionDepth: 1
    functionLinenumber: 3693
    functionLinenumberEnd: 3699
    functionName: fu_test_engine_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_status_to_string
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_status_changed_cb(FuProgress *progress, FwupdStatus
      status, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3705,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-self-test.c:3705,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3706,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-self-test.c:3706,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3707,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/src/fu-self-test.c:3707,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3708,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-self-test.c:3708,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - engine
    - request
    - user_data
    argTypes:
    - FuEngine*
    - FwupdRequest*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3711
      start: 3701
    functionDepth: 1
    functionLinenumber: 3701
    functionLinenumberEnd: 3711
    functionName: fu_test_engine_request_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_request_get_kind
    - g_assert_cmpstr
    - fwupd_request_get_id
    - g_assert_cmpint
    - g_assert_true
    - fwupd_request_get_message
    - g_assert_nonnull
    - fwupd_request_has_flag
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_request_cb(FuEngine *engine, FwupdRequest *request,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3720,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3721,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3721,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3722,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3722,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3723,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3723,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3724,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3724,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3724,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3725,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3725,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3726,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3727,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3728,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3730,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3730,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3733,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3736,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3737,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3738,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3739,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3740,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3741,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3742,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3743,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3744,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3745,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3748,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3749,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3750,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3751,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3752,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3753,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3754,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3755,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3756,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3757,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/src/fu-self-test.c:3758,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3759,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3760,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3761,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3762,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3763,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3764,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3765,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3765,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3768,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3769,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3770,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3771,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3772,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3773,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3774,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3777,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3778,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3779,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3782,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3783,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3784,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3785,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3786,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-self-test.c:3786,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:3788,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-self-test.c:3788,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:3790,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:3792,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-self-test.c:3792,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:3794,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3797,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3803,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3804,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3805,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3713
    functionDepth: 4
    functionLinenumber: 3713
    functionLinenumberEnd: 3807
    functionName: fu_engine_install_request
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_release_get_firmware_basename
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_get_devices
    - fu_engine_new
    - g_signal_connect
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - g_assert_cmpint
    - fu_release_set_device
    - FU_PROGRESS
    - fu_release_load
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_device_set_plugin
    - G_CALLBACK
    - xb_silo_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_engine_install_release
    - fu_progress_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - FU_ENGINE
    - fu_engine_add_plugin
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_request(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3818,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3819,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3820,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3820,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3821,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:3821,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3822,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3823,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:3823,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3824,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:3824,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:3824,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3825,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:3825,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3826,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3827,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3828,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3829,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3830,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3831,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:3831,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:3834,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:3837,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3838,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3839,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:3840,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3841,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3842,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:3843,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:3844,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3845,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3846,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:3849,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:3850,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3851,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:3852,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:3853,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:3854,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:3855,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3856,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3857,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:3858,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:3859,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:3860,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-self-test.c:3861,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3862,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3863,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3864,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3865,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3865,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:3869,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:3870,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3871,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3872,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-self-test.c:3873,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3874,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3875,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:3876,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3877,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3878,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:3879,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:3880,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3881,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3882,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-self-test.c:3883,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:3889,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3890,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:3893,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:3896,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:3897,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:3897,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3898,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3899,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3900,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-self-test.c:3900,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:3901,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-self-test.c:3901,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:3902,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-self-test.c:3903,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:3904,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/src/fu-self-test.c:3904,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:3904,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-self-test.c:3905,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-self-test.c:3906,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:3907,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:3908,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-self-test.c:3909,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:3930,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:3931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3809
    functionDepth: 4
    functionLinenumber: 3809
    functionLinenumberEnd: 3932
    functionName: fu_engine_history_error_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_get_devices
    - fu_device_to_string
    - fu_engine_new
    - fu_device_get_id
    - fu_cabinet_get_component
    - fu_plugin_new_from_gtype
    - fu_device_set_version
    - g_assert_cmpint
    - fu_release_set_device
    - fu_device_get_update_state
    - fu_release_load
    - fu_device_add_flag
    - fu_device_set_modified_usec
    - fu_engine_set_silo
    - g_assert_false
    - fwupd_release_get_metadata
    - fu_device_set_plugin
    - xb_silo_new
    - g_hash_table_remove_all
    - fu_engine_add_device
    - fu_input_stream_compute_checksum
    - g_clear_error
    - fu_device_add_instance_id
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_device_set_id
    - fu_history_new
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_error
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version_format
    - fu_engine_install_release
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_get_update_error
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_plugin_set_config_value
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - g_strdup_printf
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - g_strcmp0
    - fu_engine_add_plugin
    - fu_history_get_device_by_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_error_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device_list
    - device
    - user_data
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3934
    functionDepth: 0
    functionLinenumber: 3934
    functionLinenumberEnd: 3939
    functionName: fu_test_device_list_count_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_device_list_count_cb(FuDeviceList *device_list, FuDevice
      *device, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3944,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3944,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3945,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3945,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3946,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:3946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3947,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3948,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3949,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3952,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3953,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:3954,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:3955,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:3956,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:3957,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-self-test.c:3958,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3959,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:3962,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:3963,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:3964,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:3965,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-self-test.c:3966,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3967,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:3968,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-self-test.c:3969,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:3970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3971
      start: 3941
    functionDepth: 1
    functionLinenumber: 3941
    functionLinenumberEnd: 3971
    functionName: fu_device_list_no_auto_remove_children_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_list_add
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_list_new
    - fu_device_set_id
    - fu_device_new
    - g_autoptr
    - fu_device_list_remove
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_device_list_no_auto_remove_children_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3977,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3977,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3978,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:3978,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:3979,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:3979,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:3984,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:3984,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:3986,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:3988,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:3988,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:3990,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:3992,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:3992,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:3994,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:3998,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:3999,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4000,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4001,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4002,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4003,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4004,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4005,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4008,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4009,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4010,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4011,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4014,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4015,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4016,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4017,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4018,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4019,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4020,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/src/fu-self-test.c:4023,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/src/fu-self-test.c:4024,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4028,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4029,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4030,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4031,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4033
      start: 3973
    functionDepth: 1
    functionLinenumber: 3973
    functionLinenumberEnd: 4033
    functionName: fu_device_list_delay_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_add
    - fu_test_loop_quit
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_list_remove
    - fu_device_add_instance_id
    - fu_device_list_new
    - fu_device_set_id
    - fu_test_loop_run_with_timeout
    - fu_device_new
    - g_autoptr
    - fu_device_set_remove_delay
    - g_signal_connect
    - G_CALLBACK
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_device_list_delay_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4047
      start: 4041
    functionDepth: 1
    functionLinenumber: 4041
    functionLinenumberEnd: 4047
    functionName: fu_device_list_remove_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_remove
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_remove_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4049
    functionDepth: 1
    functionLinenumber: 4049
    functionLinenumberEnd: 4055
    functionName: fu_device_list_add_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_add_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4061,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4061,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4062,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4062,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4063,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4063,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4064,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4064,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4065,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4069,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4072,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4073,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:4074,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4075,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4076,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:4077,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4078,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4079,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-self-test.c:4080,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4081,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4082,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4085,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4086,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4087,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4090,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4093,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4094,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4095,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-self-test.c:4101,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-self-test.c:4102,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4103,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4105,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4106,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4107,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4107,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4110,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:4110,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4113,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4114,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:4115,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4116,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4117,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4057
    functionDepth: 1
    functionLinenumber: 4057
    functionLinenumberEnd: 4118
    functionName: fu_device_list_replug_auto_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_true
    - g_timeout_add
    - fu_device_has_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_flag
    - g_assert_false
    - fu_device_get_parent
    - fu_device_set_plugin
    - fu_device_set_physical_id
    - fu_device_list_add
    - fu_device_set_id
    - g_autoptr
    - g_assert_error
    - fu_device_list_new
    - g_assert_no_error
    - fu_device_new
    - fu_device_list_wait_for_replug
    linkageType: ''
    returnType: void
    signature: void fu_device_list_replug_auto_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4125,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4125,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4126,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4127,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4127,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4128,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4132,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:4133,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4134,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4135,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4136,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4137,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4138,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4139,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:4140,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4141,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4142,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-self-test.c:4143,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4146,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4147,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4151,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4152,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4155,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4158,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4159,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4160,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4160,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4164,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4165,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-self-test.c:4171,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-self-test.c:4172,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4173,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-self-test.c:4174,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4175,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4176,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4177,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4177,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4180,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4181,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4182,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4183,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4183,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4184,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4184,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4187,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4188,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4189,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4190,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4191,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4191,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4192,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4193
      start: 4120
    functionDepth: 1
    functionLinenumber: 4120
    functionLinenumberEnd: 4193
    functionName: fu_device_list_replug_user_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_timeout_add
    - fu_device_has_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_flag
    - g_assert_false
    - fu_device_set_plugin
    - fu_device_list_add
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_autoptr
    - fu_device_add_instance_id_full
    - fu_device_list_new
    - g_assert_no_error
    - fu_device_new
    - fu_device_list_remove
    - fu_device_list_wait_for_replug
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_device_list_replug_user_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4199,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4199,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4200,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4200,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4201,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4202,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4202,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4204,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4210,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4210,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4212,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4214,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4214,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4216,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4218,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4218,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4220,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4224,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4225,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:4226,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:4227,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:4228,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4229,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4230,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4231,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-self-test.c:4232,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4233,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4234,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4235,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4236,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4237,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4240,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:4241,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4242,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4243,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4247,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4248,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4249,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4250,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4251,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4254,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:4254,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4255,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:4255,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-self-test.c:4258,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4259,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4260,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4261,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4261,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:4264,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4265,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4266,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4267,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4267,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4268,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4269,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4269,1
    - Dst: fu_device_list_get_old
      Src: /src/fwupd/src/fu-self-test.c:4272,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4195
    functionDepth: 1
    functionLinenumber: 4195
    functionLinenumberEnd: 4274
    functionName: fu_device_list_compatible_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_get_all
    - fu_device_build_vendor_id
    - g_assert_true
    - fu_device_set_remove_delay
    - fu_device_get_id
    - g_signal_connect
    - fu_device_set_version
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_device_list_get_old
    - fu_device_set_plugin
    - G_CALLBACK
    - FU_DEVICE_LIST
    - fu_device_list_add
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_autoptr
    - fu_device_list_get_active
    - fu_device_set_version_format
    - fu_device_add_instance_id_full
    - g_assert_cmpstr
    - fu_device_has_vendor_id
    - fu_device_list_new
    - fu_device_new
    - fu_device_list_remove
    linkageType: ''
    returnType: void
    signature: void fu_device_list_compatible_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4280,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4281,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4281,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4282,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4282,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4288,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4288,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4290,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4292,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4292,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4294,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4296,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4296,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4298,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4302,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4303,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4304,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4305,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4306,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4307,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4310,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4311,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:4312,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4313,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4314,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4315,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4316,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4319,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4320,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4321,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4323
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4323
    functionName: fu_device_list_remove_chain_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_list_add
    - g_assert_cmpint
    - fu_device_add_instance_id
    - fu_device_list_new
    - fu_device_set_id
    - fu_device_new
    - g_autoptr
    - fu_device_list_remove
    - g_signal_connect
    - G_CALLBACK
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_device_list_remove_chain_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4329,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4329,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4330,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4331,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4331,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4334,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4335,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4336,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4337,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:4338,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4339,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4341,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-self-test.c:4342,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4343,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4343,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4344,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4325
    functionDepth: 1
    functionLinenumber: 4325
    functionLinenumberEnd: 4345
    functionName: fu_device_list_explicit_order_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_depsolve_order
    - fu_device_add_child
    - fu_device_list_add
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_add_instance_id
    - fu_device_list_new
    - fu_device_set_id
    - fu_device_get_order
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_explicit_order_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4351,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4351,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4352,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4352,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4353,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4353,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4356,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4357,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4358,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4359,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-self-test.c:4360,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4361,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4362,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-self-test.c:4364,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4365,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4365,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4366,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4366,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4368,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4369,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4369,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4370,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:4370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4347
    functionDepth: 1
    functionLinenumber: 4347
    functionLinenumberEnd: 4371
    functionName: fu_device_list_explicit_order_post_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_depsolve_order
    - fu_device_add_child
    - fu_device_list_add
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_add_instance_id
    - fu_device_list_new
    - fu_device_set_id
    - fu_device_get_order
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_explicit_order_post_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4378,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4378,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4379,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4379,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4380,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4381,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4382,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:4382,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4383,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4383,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4384,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4384,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4385,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:4385,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4386,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4389,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:4390,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4393,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-self-test.c:4394,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:4395,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:4398,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4399,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4400,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4403,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4404,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4405,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4406,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:4407,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4408,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/src/fu-self-test.c:4409,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4412,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4413,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4414,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4415,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:4416,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/src/fu-self-test.c:4417,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:4421,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4422,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4423,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4424,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4427,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/src/fu-self-test.c:4428,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:4432,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4433,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4434,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4436
      start: 4373
    functionDepth: 1
    functionLinenumber: 4373
    functionLinenumberEnd: 4436
    functionName: fu_device_list_better_than_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_new
    - g_assert_true
    - fu_engine_new
    - fu_device_set_remove_delay
    - fu_device_add_flag
    - fu_plugin_set_name
    - fu_engine_get_device
    - fu_plugin_device_add
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_progress_new
    - fu_device_add_protocol
    - g_assert_no_error
    - fu_device_new
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_device_list_better_than_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4442,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4442,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4443,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4443,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4444,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4444,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4447,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4448,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-self-test.c:4449,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-self-test.c:4450,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4451,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4452,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4453,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4454,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4454,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4457,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4458,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4459,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4460,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4461,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4464,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4464,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4467,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-self-test.c:4467,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4468,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4470
      start: 4438
    functionDepth: 1
    functionLinenumber: 4438
    functionLinenumberEnd: 4470
    functionName: fu_device_list_counterpart_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_list_add
    - fu_device_has_guid
    - fu_device_add_private_flag
    - fu_device_list_remove
    - fu_device_add_instance_id
    - g_assert_true
    - fu_device_list_new
    - fu_device_set_id
    - fu_device_add_flag
    - fu_device_has_flag
    - fu_device_new
    - g_autoptr
    - fu_device_set_remove_delay
    - g_assert_false
    - fu_device_has_instance_id
    linkageType: ''
    returnType: void
    signature: void fu_device_list_counterpart_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4476,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4476,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4477,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4477,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4478,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4479,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4479,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4480,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4482,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4483,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4485,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-self-test.c:4486,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-self-test.c:4487,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4488,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:4490,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4491,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4492,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4493,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4493,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-self-test.c:4496,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:4497,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:4498,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:4499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4472
    functionDepth: 1
    functionLinenumber: 4472
    functionLinenumberEnd: 4500
    functionName: fu_device_list_equivalent_id_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_add
    - g_assert_cmpstr
    - fu_device_set_equivalent_id
    - fu_device_set_priority
    - fu_device_get_id
    - fu_device_list_new
    - g_assert_null
    - fu_device_set_id
    - fu_device_list_get_by_id
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    - g_assert_nonnull
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_device_list_equivalent_id_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4506,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4507,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4507,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4508,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4508,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4510,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4511,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4512,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4513,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4514,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4514,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4517,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4518,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4518,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4521,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4522,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4522,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4523,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4524,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4524,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4527,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:4528,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4529,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4530,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4531,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4531,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4532,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4533,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-self-test.c:4533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4534
      start: 4502
    functionDepth: 1
    functionLinenumber: 4502
    functionLinenumberEnd: 4534
    functionName: fu_device_list_unconnected_no_delay_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_add
    - fu_device_list_remove
    - fu_device_add_instance_id
    - g_assert_true
    - fu_device_list_new
    - fu_device_has_private_flag
    - fu_device_set_id
    - fu_device_add_flag
    - fu_device_new
    - g_autoptr
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_device_list_unconnected_no_delay_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4540,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-self-test.c:4540,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4541,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4541,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4542,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:4542,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4543,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4544,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4545,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4551,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4551,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4553,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4555,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4555,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4557,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4559,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-self-test.c:4559,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4561,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4565,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4566,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4567,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:4568,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4569,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-self-test.c:4570,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4571,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4572,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4573,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:4576,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4577,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4578,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4579,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4579,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:4582,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4585,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4586,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4587,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4587,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-self-test.c:4588,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-self-test.c:4592,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4593,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4594,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4595,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4595,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-self-test.c:4596,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-self-test.c:4599,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:4600,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:4601,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-self-test.c:4605,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4606,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4607,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4608,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:4609,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4610,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4611,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4612,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4613
      start: 4536
    functionDepth: 1
    functionLinenumber: 4536
    functionLinenumberEnd: 4613
    functionName: fu_device_list_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_get_all
    - g_assert_null
    - fu_device_get_id
    - g_signal_connect
    - g_assert_cmpint
    - g_ptr_array_index
    - G_CALLBACK
    - g_clear_object
    - FU_DEVICE_LIST
    - fu_device_list_add
    - fu_device_add_instance_id
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_cmpstr
    - fu_device_list_get_by_guid
    - fu_device_list_new
    - fu_device_list_get_by_id
    - g_assert_no_error
    - fu_device_new
    - fu_device_list_remove
    linkageType: ''
    returnType: void
    signature: void fu_device_list_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4620,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-self-test.c:4620,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4621,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4621,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4622,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4622,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4623,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4625,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4626,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-self-test.c:4629,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-self-test.c:4630,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:4631,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4632,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-self-test.c:4635,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4636,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4637,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4638,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-self-test.c:4638,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-self-test.c:4641,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:4642,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:4643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4644
      start: 4615
    functionDepth: 1
    functionLinenumber: 4615
    functionLinenumberEnd: 4644
    functionName: fu_plugin_list_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - g_assert_cmpstr
    - fu_plugin_list_find_by_name
    - fu_plugin_list_add
    - g_assert_cmpint
    - fu_plugin_list_new
    - fu_plugin_new
    - g_assert_null
    - g_assert_no_error
    - fu_plugin_set_name
    - g_autoptr
    - fu_plugin_list_get_all
    - g_assert_nonnull
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4652,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-self-test.c:4652,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4653,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4653,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4654,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-self-test.c:4654,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4655,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4657,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-self-test.c:4658,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-self-test.c:4661,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-self-test.c:4662,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-self-test.c:4663,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-self-test.c:4664,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4665,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4666,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-self-test.c:4667,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4668,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4669,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4670,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-self-test.c:4670,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4671,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-self-test.c:4671,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4672,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4672,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-self-test.c:4675,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-self-test.c:4676,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4677,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4678,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-self-test.c:4679,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4680,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4681,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4682,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4682,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-self-test.c:4683,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4684,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4685,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4686,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4687
      start: 4646
    functionDepth: 1
    functionLinenumber: 4646
    functionLinenumberEnd: 4687
    functionName: fu_plugin_list_depsolve_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_list_add
    - fu_plugin_new
    - g_assert_true
    - fu_plugin_has_flag
    - fu_plugin_list_find_by_name
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_plugin_set_name
    - fu_plugin_list_depsolve
    - fu_plugin_list_get_all
    - g_assert_false
    - fu_plugin_list_new
    - g_assert_nonnull
    - g_autoptr
    - fu_plugin_get_order
    - fu_plugin_get_name
    - g_assert_cmpstr
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_depsolve_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4693,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-self-test.c:4693,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4694,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4695,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4696,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4697,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4698,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4702,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:4703,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:4704,1
    - Dst: g_file_copy
      Src: /src/fwupd/src/fu-self-test.c:4705,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4706,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4707,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:4710,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4711,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:4714,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4717,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4718,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4719,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4689
    functionDepth: 1
    functionLinenumber: 4689
    functionLinenumberEnd: 4720
    functionName: fu_history_migrate_v1_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_copy
    - g_assert_cmpstr
    - g_file_new_for_path
    - g_test_build_filename
    - g_assert_true
    - g_assert_no_error
    - fu_history_new
    - g_assert_nonnull
    - g_autoptr
    - fu_device_get_id
    - fu_history_get_device_by_id
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_history_migrate_v1_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4726,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-self-test.c:4726,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4727,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4728,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4730,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4731,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4735,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:4736,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:4737,1
    - Dst: g_file_copy
      Src: /src/fwupd/src/fu-self-test.c:4738,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4739,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4740,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:4743,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4744,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:4747,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4750,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4751,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4752,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4753
      start: 4722
    functionDepth: 1
    functionLinenumber: 4722
    functionLinenumberEnd: 4753
    functionName: fu_history_migrate_v2_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_copy
    - g_assert_cmpstr
    - g_file_new_for_path
    - g_test_build_filename
    - g_assert_true
    - g_assert_no_error
    - fu_history_new
    - g_assert_nonnull
    - g_autoptr
    - fu_device_get_id
    - fu_history_get_device_by_id
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_history_migrate_v2_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-self-test.c:4759,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/src/fu-self-test.c:4760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4761
      start: 4755
    functionDepth: 0
    functionLinenumber: 4755
    functionLinenumberEnd: 4761
    functionName: fu_test_plugin_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_test_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/src/fu-self-test.c:4767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4768
      start: 4763
    functionDepth: 1
    functionLinenumber: 4763
    functionLinenumberEnd: 4768
    functionName: fu_test_plugin_device_register_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_register_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - device
    - user_data
    argTypes:
    - FuBackend*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4770
    functionDepth: 0
    functionLinenumber: 4770
    functionLinenumberEnd: 4775
    functionName: fu_backend_usb_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_backend_usb_hotplug_cb(FuBackend *backend, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4781,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4782,1
    - Dst: json_parser_new
      Src: /src/fwupd/src/fu-self-test.c:4782,1
    - Dst: json_parser_load_from_file
      Src: /src/fwupd/src/fu-self-test.c:4784,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4785,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4786,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-self-test.c:4787,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:4787,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-self-test.c:4787,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4788,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - backend
    - fn
    argTypes:
    - FuBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4790
      start: 4777
    functionDepth: 1
    functionLinenumber: 4777
    functionLinenumberEnd: 4790
    functionName: fu_backend_usb_load_file
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - json_parser_get_root
    - json_parser_new
    - FWUPD_CODEC
    - g_assert_true
    - json_parser_load_from_file
    - g_assert_no_error
    - g_autoptr
    - fwupd_codec_from_json
    linkageType: ''
    returnType: void
    signature: void fu_backend_usb_load_file(FuBackend *backend, const gchar *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4827,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-self-test.c:4827,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4828,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:4828,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4829,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4830,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4831,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-self-test.c:4834,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4835,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4837,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4839,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4841,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4845,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-self-test.c:4845,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4846,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/src/fu-self-test.c:4846,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-self-test.c:4847,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4848,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4849,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4850,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4851,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4852,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4853,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-self-test.c:4854,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4855,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4856,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4857,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4858,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4859,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4860,1
    - Dst: fu_backend_usb_load_file
      Src: /src/fwupd/src/fu-self-test.c:4861,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4862,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4863,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-self-test.c:4864,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4865,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4866,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-self-test.c:4867,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-self-test.c:4868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4869,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4870,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4871,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-self-test.c:4871,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-self-test.c:4874,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:4875,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4878,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-self-test.c:4878,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-self-test.c:4879,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4880,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4881,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4881,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4885,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4886,1
    - Dst: fu_backend_usb_load_file
      Src: /src/fwupd/src/fu-self-test.c:4887,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4888,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4889,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4893,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4894,1
    - Dst: fu_backend_usb_load_file
      Src: /src/fwupd/src/fu-self-test.c:4895,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4896,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4815
    functionDepth: 2
    functionLinenumber: 4815
    functionLinenumberEnd: 4898
    functionName: fu_backend_usb_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_get_enabled
    - fu_backend_usb_load_file
    - fu_backend_coldplug
    - g_assert_true
    - fu_device_has_flag
    - fu_device_to_string
    - fu_device_get_possible_plugins
    - fu_device_probe
    - fu_backend_get_name
    - g_signal_connect
    - g_debug
    - fu_device_has_icon
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_backend_get_devices
    - G_CALLBACK
    - fu_backend_setup
    - g_object_set
    - fu_usb_backend_new
    - g_autoptr
    - g_assert_nonnull
    - g_assert_cmpstr
    - fu_progress_new
    - g_test_build_filename
    - g_assert_no_error
    - fu_device_set_context
    linkageType: ''
    returnType: void
    signature: void fu_backend_usb_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4907,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-self-test.c:4907,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4908,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4909,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:4909,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4910,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4911,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4912,1
    - Dst: json_parser_new
      Src: /src/fwupd/src/fu-self-test.c:4912,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/src/fu-self-test.c:4915,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/src/fu-self-test.c:4918,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-self-test.c:4924,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:4926,1
    - Dst: json_parser_load_from_file
      Src: /src/fwupd/src/fu-self-test.c:4927,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4928,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4929,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-self-test.c:4930,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4931,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4932,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-self-test.c:4933,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:4933,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-self-test.c:4933,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4934,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4935,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-self-test.c:4936,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4937,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4938,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-self-test.c:4939,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:4940,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:4941,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-self-test.c:4942,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-self-test.c:4944,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4945,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4946,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4949,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:4949,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4950,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-self-test.c:4950,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4953,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:4953,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:4956,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-self-test.c:4956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4900
    functionDepth: 1
    functionLinenumber: 4900
    functionLinenumberEnd: 4957
    functionName: fu_backend_usb_invalid_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_coldplug
    - FWUPD_CODEC
    - g_assert_true
    - g_test_expect_message
    - json_parser_get_root
    - fu_device_has_icon
    - json_parser_new
    - g_assert_cmpint
    - g_ptr_array_index
    - g_assert_false
    - fu_backend_get_devices
    - fu_device_get_name
    - fu_backend_setup
    - g_object_set
    - json_parser_load_from_file
    - fu_usb_backend_new
    - g_autoptr
    - fu_device_locker_new
    - g_assert_nonnull
    - fwupd_codec_from_json
    - fu_device_has_instance_id
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_has_vendor_id
    - g_test_build_filename
    - g_assert_no_error
    - fu_device_set_context
    linkageType: ''
    returnType: void
    signature: void fu_backend_usb_invalid_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4965,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4966,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:4966,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4967,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:4967,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:4967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4968,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:4968,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:4969,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:4969,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:4972,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:4975,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4976,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4977,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:4978,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4979,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4980,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-self-test.c:4981,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4982,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4983,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4984,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-self-test.c:4984,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4986,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:4988,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-self-test.c:4988,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:4990,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-self-test.c:4992,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:4993,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:4994,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:4997,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4998,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:4998,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:4999,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-self-test.c:4999,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5000,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5000,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5001,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/src/fu-self-test.c:5001,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5002,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/src/fu-self-test.c:5002,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5005,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:5005,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-self-test.c:5006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 5007
    functionName: fu_plugin_module_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - g_assert_true
    - fu_engine_new
    - fu_device_get_id
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_device_get_version_bootloader
    - fu_device_get_version
    - fu_plugin_runner_coldplug
    - fu_device_get_version_lowest
    - fu_engine_set_silo
    - fu_plugin_runner_startup
    - fu_device_get_name
    - FU_PLUGIN
    - G_CALLBACK
    - xb_silo_new
    - fu_device_get_guid_default
    - fu_test_plugin_get_type
    - g_assert_nonnull
    - g_autoptr
    - g_signal_handlers_disconnect_by_data
    - g_assert_cmpstr
    - fu_progress_new
    - fu_plugin_set_config_value
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_module_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5017,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5018,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5019,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5020,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-self-test.c:5025,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5026,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-self-test.c:5029,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:5030,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5032,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-self-test.c:5033,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5036,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:5037,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-self-test.c:5038,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:5039,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:5040,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-self-test.c:5041,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-self-test.c:5042,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:5043,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5044,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-self-test.c:5045,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-self-test.c:5046,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:5047,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-self-test.c:5048,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-self-test.c:5049,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-self-test.c:5050,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-self-test.c:5051,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-self-test.c:5052,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5053,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5054,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:5055,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5058,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:5058,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:5060,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:5063,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5066,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5067,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5068,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5068,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5069,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:5069,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5070,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5070,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5071,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-self-test.c:5071,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5072,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-self-test.c:5072,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5073,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/src/fu-self-test.c:5073,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5076,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/src/fu-self-test.c:5076,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5079,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/src/fu-self-test.c:5079,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5080,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-self-test.c:5080,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5081,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-self-test.c:5081,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5082,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5083,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-self-test.c:5083,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5084,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-self-test.c:5084,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5085,1
    - Dst: fu_release_get_metadata_item
      Src: /src/fwupd/src/fu-self-test.c:5085,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-self-test.c:5086,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5087,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5088,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5089,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-self-test.c:5089,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-self-test.c:5090,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5091,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5092,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:5095,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5096,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:5097,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5098,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:5101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5104,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5105,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:5106,1
    - Dst: fu_history_remove_device
      Src: /src/fwupd/src/fu-self-test.c:5109,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5110,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5111,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-self-test.c:5112,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-self-test.c:5115,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5118,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:5119,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5120,1
    - Dst: fu_history_clear_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:5123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5124,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5125,1
    - Dst: fu_history_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:5126,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5127,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5128,1
    - Dst: fu_history_add_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:5129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5130,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5131,1
    - Dst: fu_history_get_approved_firmware
      Src: /src/fwupd/src/fu-self-test.c:5132,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5133,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5135,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5136,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5137,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5137,1
    - Dst: fu_history_add_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5141,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5142,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5144,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5145,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5147,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5148,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5149,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5150,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5151,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5152,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5153,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5154,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-self-test.c:5155,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5156,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 106
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5158
      start: 5009
    functionDepth: 1
    functionLinenumber: 5009
    functionLinenumberEnd: 5158
    functionName: fu_history_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_release_get_checksums
    - fu_history_add_emulation_tag
    - g_assert_true
    - fu_device_get_flags
    - g_assert_null
    - fu_device_get_id
    - fu_path_from_kind
    - fu_history_remove_emulation_tag
    - fu_device_set_version
    - fu_device_get_version
    - fu_device_get_created_usec
    - g_assert_cmpint
    - fu_release_set_filename
    - fu_device_get_update_state
    - fu_release_add_metadata_item
    - fu_history_has_emulation_tag
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_device_set_modified_usec
    - g_assert_false
    - fu_device_get_modified_usec
    - fu_release_get_filename
    - fu_release_get_metadata_item
    - fu_device_get_name
    - fu_device_set_update_state
    - fwupd_checksum_get_by_kind
    - fu_history_clear_approved_firmware
    - g_clear_error
    - g_build_filename
    - fu_history_add_approved_firmware
    - fu_release_get_version
    - fu_device_add_instance_id
    - g_object_unref
    - fu_release_set_version
    - fu_release_new
    - fu_device_get_guid_default
    - fu_device_set_id
    - fu_history_new
    - fu_device_get_release_default
    - fu_history_remove_device
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - g_assert_error
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_device_get_update_error
    - fu_history_get_approved_firmware
    - g_unlink
    - fu_device_set_update_error
    - fu_history_add_device
    - FU_RELEASE
    - fu_device_set_created_usec
    - g_assert_no_error
    - fu_device_new
    - fu_release_add_checksum
    - fu_history_get_device_by_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_history_func(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5164,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/src/fu-self-test.c:5164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5165,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5166,1
    - Dst: fu_cab_firmware_set_compressed
      Src: /src/fwupd/src/fu-self-test.c:5168,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-self-test.c:5171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5175,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/src/fu-self-test.c:5175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5176,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-self-test.c:5179,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-self-test.c:5184,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:5187,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-self-test.c:5190,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-self-test.c:5190,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-self-test.c:5191,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5191,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-self-test.c:5192,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5192,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-self-test.c:5193,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5193,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5193,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-self-test.c:5195,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-self-test.c:5198,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5198,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-self-test.c:5201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - compressed
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5160
    functionDepth: 1
    functionLinenumber: 5160
    functionLinenumberEnd: 5202
    functionName: fu_test_build_cab
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - fu_firmware_set_id
    - fu_cab_firmware_new
    - fu_cab_firmware_set_compressed
    - strlen
    - fu_firmware_add_image
    - va_end
    - g_steal_pointer
    - FU_FIRMWARE
    - g_assert_no_error
    - va_start
    - g_autoptr
    - fu_cab_image_new
    - g_assert_nonnull
    - g_bytes_new_static
    - fu_firmware_set_bytes
    - va_arg
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_test_build_cab(gboolean compressed, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:5208,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-self-test.c:5208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5209
      start: 5204
    functionDepth: 0
    functionLinenumber: 5204
    functionLinenumberEnd: 5209
    functionName: fu_test_plugin_composite_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_composite_device_added_cb(FuPlugin *plugin, FuDevice
      *device, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5216,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5217,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:5218,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:5218,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:5220,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-self-test.c:5220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5223
      start: 5211
    functionDepth: 1
    functionLinenumber: 5211
    functionLinenumberEnd: 5223
    functionName: fu_plugin_composite_release_sort_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_release_get_device
    - fu_device_get_order
    linkageType: ''
    returnType: gint
    signature: gint fu_plugin_composite_release_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5232,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:5232,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5233,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5233,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5234,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5235,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:5235,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:5235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5239,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-self-test.c:5240,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5241,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5241,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5242,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-self-test.c:5242,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5245,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:5248,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:5289,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5289,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5294,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5295,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-self-test.c:5296,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5297,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5298,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5299,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:5302,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5303,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5304,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-self-test.c:5305,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5306,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5307,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:5308,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-self-test.c:5310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5311,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5312,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-self-test.c:5313,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:5314,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-self-test.c:5314,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:5316,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-self-test.c:5319,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5320,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5321,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5324,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5326,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:5327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5328,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5328,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5330,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5330,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5331,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5331,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5333,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5333,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5334,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:5334,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5335,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5335,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5337,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5337,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5338,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-self-test.c:5338,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5344,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5348,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5349,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:5349,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5350,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:5353,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-self-test.c:5354,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-self-test.c:5355,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:5361,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5362,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-self-test.c:5363,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:5368,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-self-test.c:5368,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5371,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-self-test.c:5374,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5375,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5376,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5376,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5377,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5377,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5377,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5378,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5378,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5379,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5379,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5379,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5380,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5380,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-self-test.c:5383,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5390,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5391,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5394,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5394,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5395,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5395,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5396,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5396,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5396,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5397,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5397,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-self-test.c:5398,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-self-test.c:5398,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5398,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5399,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:5399,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5405,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5405,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5407,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5408,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5408,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5410,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5410,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5411,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-self-test.c:5411,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5413,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-self-test.c:5413,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/src/fu-self-test.c:5417,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5418,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/src/fu-self-test.c:5419,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 97
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5422
      start: 5225
    functionDepth: 4
    functionLinenumber: 5225
    functionLinenumberEnd: 5422
    functionName: fu_plugin_composite_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - fu_cabinet_new
    - g_assert_true
    - FU_FIRMWARE
    - fu_release_set_request
    - fu_engine_new
    - fu_device_get_id
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_test_build_cab
    - g_debug
    - fu_device_get_version
    - fu_release_get_device
    - g_assert_cmpint
    - fu_release_set_device
    - g_ptr_array_sort
    - fu_plugin_runner_coldplug
    - fu_device_get_logical_id
    - fu_device_get_metadata
    - g_ptr_array_index
    - fu_release_load
    - fu_engine_set_silo
    - fu_plugin_runner_startup
    - fu_device_get_parent
    - FU_PLUGIN
    - G_CALLBACK
    - xb_silo_new
    - fu_engine_request_new
    - fu_engine_add_device
    - g_steal_pointer
    - fu_test_plugin_get_type
    - fu_release_new
    - fu_engine_install_releases
    - g_assert_nonnull
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - xb_node_query_text
    - fu_cabinet_get_components
    - fu_firmware_parse_bytes
    - g_ptr_array_add
    - g_assert_cmpstr
    - fu_progress_new
    - fu_plugin_set_config_value
    - FU_RELEASE
    - g_assert_no_error
    - g_strcmp0
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_plugin_composite_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5430,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5431,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5432,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-self-test.c:5432,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-self-test.c:5432,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5433,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5433,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5434,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5435,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5436,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5437,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:5437,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5438,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:5438,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5439,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:5442,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5443,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5444,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-self-test.c:5447,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5483,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5484,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:5485,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:5486,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5487,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5488,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5489,1
    - Dst: fu_plugin_reset_config_values
      Src: /src/fwupd/src/fu-self-test.c:5492,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5493,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5494,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-self-test.c:5495,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-self-test.c:5496,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5497,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5498,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-self-test.c:5499,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-self-test.c:5500,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-self-test.c:5500,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-self-test.c:5502,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-self-test.c:5504,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5505,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5506,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5509,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5511,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:5512,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:5516,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5517,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5518,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-self-test.c:5519,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5523,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5524,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5526
      start: 5424
    functionDepth: 1
    functionLinenumber: 5424
    functionLinenumberEnd: 5526
    functionName: fu_plugin_composite_multistep_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_reset_config_values
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - fu_engine_get_releases
    - g_ptr_array_index
    - fu_engine_set_silo
    - fu_plugin_runner_startup
    - FU_PLUGIN
    - fu_engine_get_device
    - G_CALLBACK
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_test_plugin_get_type
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - xb_builder_source_load_xml
    - g_assert_nonnull
    - g_ptr_array_new_with_free_func
    - fu_progress_new
    - xb_builder_compile
    - g_assert_no_error
    - fu_engine_add_plugin
    linkageType: ''
    returnType: void
    signature: void fu_plugin_composite_multistep_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5534,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-self-test.c:5534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5535,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-self-test.c:5535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5536,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-self-test.c:5536,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5537,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-self-test.c:5537,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5538,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:5540,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/src/fu-self-test.c:5541,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-self-test.c:5542,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/src/fu-self-test.c:5543,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-self-test.c:5544,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-self-test.c:5545,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-self-test.c:5547,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:5547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5548,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5549,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5550,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5569,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-self-test.c:5571,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:5571,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-self-test.c:5572,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:5573,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5576,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5577,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-self-test.c:5579,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:5579,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5580,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5581,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:5582,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5528
    functionDepth: 1
    functionLinenumber: 5528
    functionLinenumberEnd: 5584
    functionName: fu_security_attr_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_security_attrs_new
    - g_error_matches
    - fwupd_codec_from_json_string
    - FWUPD_CODEC
    - fu_security_attrs_append
    - g_assert_true
    - fwupd_security_attr_new
    - fwupd_security_attr_set_plugin
    - g_assert_no_error
    - g_assert_nonnull
    - fwupd_security_attr_set_created
    - g_autoptr
    - g_strcmp0
    - fwupd_codec_to_json_string
    linkageType: ''
    returnType: void
    signature: void fu_security_attr_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5591,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:5591,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5592,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5594,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5595,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-self-test.c:5595,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5596,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-self-test.c:5596,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5597,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5598,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5600,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-self-test.c:5605,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5606,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5607,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-self-test.c:5608,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5608,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5613,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5614,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-self-test.c:5617,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-self-test.c:5620,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-self-test.c:5623,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5623,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5624,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5625,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-self-test.c:5626,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5626,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5627,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5628,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5629,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-self-test.c:5629,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-self-test.c:5632,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:5632,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5633,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:5634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5635
      start: 5586
    functionDepth: 1
    functionLinenumber: 5586
    functionLinenumberEnd: 5635
    functionName: fu_common_cabinet_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_cabinet_new
    - fu_cabinet_add_file
    - fu_firmware_get_image_by_id
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_null
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_bytes_new_static
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_cabinet_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5643,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5646,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5647,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5648,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5649,1
    - Dst: memcmp
      Src: /src/fwupd/src/fu-self-test.c:5649,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5652,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5653,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5654,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5655,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5658,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5659,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5660,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5661,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5664,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5665,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5666,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5669,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5670,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5671,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5672,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5675,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5676,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5677,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5678,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5681,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5682,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5683,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5684,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-self-test.c:5687,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:5688,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5689,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:5690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5691
      start: 5637
    functionDepth: 1
    functionLinenumber: 5637
    functionLinenumberEnd: 5691
    functionName: fu_memcpy_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_clear_error
    - g_assert_true
    - fu_memcpy_safe
    - g_assert_no_error
    - memcmp
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_memcpy_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5696,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-self-test.c:5696,1
    - Dst: fu_console_set_status_length
      Src: /src/fwupd/src/fu-self-test.c:5698,1
    - Dst: fu_console_set_percentage_length
      Src: /src/fwupd/src/fu-self-test.c:5699,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-self-test.c:5701,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5703,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-self-test.c:5704,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5706,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5709,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-self-test.c:5710,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5712,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5715,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-self-test.c:5716,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-self-test.c:5718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5719
      start: 5693
    functionDepth: 1
    functionLinenumber: 5693
    functionLinenumberEnd: 5719
    functionName: fu_console_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_console_new
    - fu_console_set_progress
    - fu_console_set_status_length
    - fu_console_set_percentage_length
    - g_autoptr
    - g_print
    - g_usleep
    linkageType: ''
    returnType: void
    signature: void fu_console_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-self-test.c:5726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5721
    functionDepth: 2
    functionLinenumber: 5721
    functionLinenumberEnd: 5727
    functionName: fu_release_compare_func_cb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_release_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_release_compare_func_cb(gconstpointer a, gconstpointer b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5732,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-self-test.c:5732,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5733,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5733,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5734,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5734,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5735,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5735,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5736,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:5736,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5737,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:5737,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5738,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-self-test.c:5738,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-self-test.c:5740,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:5741,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-self-test.c:5742,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-self-test.c:5743,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-self-test.c:5745,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:5746,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-self-test.c:5747,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-self-test.c:5748,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-self-test.c:5750,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-self-test.c:5751,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-self-test.c:5752,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-self-test.c:5753,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:5755,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:5756,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-self-test.c:5757,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-self-test.c:5760,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5761,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5762,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-self-test.c:5762,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5762,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5763,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-self-test.c:5763,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5763,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5764,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-self-test.c:5764,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5765
      start: 5729
    functionDepth: 2
    functionLinenumber: 5729
    functionLinenumberEnd: 5765
    functionName: fu_release_compare_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_ptr_array_sort
    - fu_release_set_device
    - g_assert_cmpint
    - fu_release_set_branch
    - g_ptr_array_new
    - fu_device_set_order
    - fu_release_new
    - g_ptr_array_index
    - fu_device_new
    - g_autoptr
    - fu_release_get_branch
    - fu_release_set_priority
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_release_compare_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-self-test.c:5781,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:5782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5784
      start: 5767
    functionDepth: 1
    functionLinenumber: 5767
    functionLinenumberEnd: 5784
    functionName: fu_release_uri_scheme_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_release_uri_get_scheme
    linkageType: ''
    returnType: void
    signature: void fu_release_uri_scheme_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5793,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5794,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5794,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5795,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:5795,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5796,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5796,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5797,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5798,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5799,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:5799,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5800,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-self-test.c:5800,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5801,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:5801,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5802,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5803,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5804,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5804,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-self-test.c:5807,1
    - Dst: fu_engine_add_remote
      Src: /src/fwupd/src/fu-self-test.c:5808,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:5811,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5812,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5813,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5816,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:5817,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-self-test.c:5818,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5819,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5820,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-self-test.c:5821,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-self-test.c:5822,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:5823,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:5824,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5825,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5826,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5827,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:5830,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:5831,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:5832,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5833,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5834,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:5835,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:5836,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:5837,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:5838,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-self-test.c:5841,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5842,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5843,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5844,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5845,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5846,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-self-test.c:5846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5847
      start: 5786
    functionDepth: 1
    functionLinenumber: 5786
    functionLinenumberEnd: 5847
    functionName: fu_release_trusted_report_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_device
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - g_file_new_for_path
    - g_ptr_array_index
    - fwupd_remote_new
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_add_remote
    - fu_engine_request_new
    - fu_engine_add_device
    - fwupd_remote_set_id
    - xb_builder_source_set_info
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - g_assert_nonnull
    - xb_builder_node_insert_text
    - fwupd_release_has_flag
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_node_new
    - xb_builder_compile
    - g_test_build_filename
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - xb_builder_source_load_file
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_release_trusted_report_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5856,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5856,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5857,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5857,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5858,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5858,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5859,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5860,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5861,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:5861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5862,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:5862,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5863,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5864,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5865,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5865,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:5868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5869,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5870,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5873,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:5874,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-self-test.c:5875,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5876,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5877,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:5878,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:5879,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5880,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5881,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5882,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:5885,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:5886,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:5887,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5888,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5889,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:5890,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:5891,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:5892,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:5893,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-self-test.c:5896,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5897,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5898,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5899,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5900,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5901,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-self-test.c:5901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5902
      start: 5849
    functionDepth: 1
    functionLinenumber: 5849
    functionLinenumberEnd: 5902
    functionName: fu_release_trusted_report_oem_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_device
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - g_file_new_for_path
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - g_assert_nonnull
    - fwupd_release_has_flag
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_compile
    - g_test_build_filename
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - xb_builder_source_load_file
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_release_trusted_report_oem_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5911,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5911,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5912,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5912,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5913,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5913,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5914,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5916,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:5916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5917,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:5917,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5919,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5920,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5920,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:5923,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5924,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5925,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5928,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:5929,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-self-test.c:5930,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5931,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5932,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:5933,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:5934,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5935,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5936,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5937,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:5940,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:5941,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:5942,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5943,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5944,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:5945,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:5946,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:5947,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:5948,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-self-test.c:5951,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5952,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5953,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:5954,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:5955,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:5956,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-self-test.c:5956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5904
    functionDepth: 1
    functionLinenumber: 5904
    functionLinenumberEnd: 5957
    functionName: fu_release_no_trusted_report_upgrade_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_device
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - g_file_new_for_path
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - g_assert_nonnull
    - fwupd_release_has_flag
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_compile
    - g_test_build_filename
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - xb_builder_source_load_file
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_release_no_trusted_report_upgrade_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5966,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-self-test.c:5966,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5967,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:5967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5968,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:5968,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5969,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5971,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-self-test.c:5971,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5972,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-self-test.c:5972,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5973,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5974,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:5975,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-self-test.c:5975,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:5978,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5979,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5980,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:5983,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-self-test.c:5984,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-self-test.c:5985,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5986,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:5987,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-self-test.c:5988,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-self-test.c:5989,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:5990,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:5991,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-self-test.c:5992,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-self-test.c:5995,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-self-test.c:5996,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-self-test.c:5997,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5998,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-self-test.c:5999,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-self-test.c:6000,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-self-test.c:6001,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-self-test.c:6002,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-self-test.c:6003,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-self-test.c:6006,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6007,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6008,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6009,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-self-test.c:6010,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6011,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6012
      start: 5959
    functionDepth: 1
    functionLinenumber: 5959
    functionLinenumberEnd: 6012
    functionName: fu_release_no_trusted_report_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_device
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_engine_new
    - fu_device_set_version
    - g_assert_cmpint
    - g_file_new_for_path
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_engine_set_silo
    - g_assert_false
    - fu_engine_request_new
    - fu_engine_add_device
    - fu_device_add_instance_id
    - fu_device_set_id
    - xb_builder_source_new
    - g_autoptr
    - fu_engine_load
    - g_assert_nonnull
    - fwupd_release_has_flag
    - fu_device_set_version_format
    - fu_progress_new
    - xb_builder_compile
    - g_test_build_filename
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - g_assert_no_error
    - xb_builder_source_load_file
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_release_no_trusted_report_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6019,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6019,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6020,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6021,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6022,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6023,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6024,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6025,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6026,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6029,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6055,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6055,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6060,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6061,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:6064,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6065,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6066,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-self-test.c:6067,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-self-test.c:6067,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6071,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6072,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-self-test.c:6073,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6074,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6075,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6076,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-self-test.c:6076,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-self-test.c:6077,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6078,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6079,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-self-test.c:6079,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-self-test.c:6080,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6081,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-self-test.c:6082,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6083,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6014
    functionDepth: 2
    functionLinenumber: 6014
    functionLinenumberEnd: 6085
    functionName: fu_common_store_cab_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_cabinet_get_component
    - fu_test_build_cab
    - g_assert_cmpstr
    - xb_node_get_text
    - fu_cabinet_new
    - xb_node_get_attr
    - g_assert_true
    - FU_FIRMWARE
    - xb_query_new_full
    - xb_node_query_first_full
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - xb_node_query_first
    - xb_node_get_data
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6091,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6092,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6093,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6094,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6095,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6096,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6096,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6097,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6097,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6098,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6098,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6099,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6099,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6102,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6125,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6130,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6131,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6134,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6156,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6161,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6162,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6165,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6190,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6195,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6196,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6200,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6219,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6219,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6224,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 6087
    functionDepth: 2
    functionLinenumber: 6087
    functionLinenumberEnd: 6226
    functionName: fu_common_store_cab_artifact_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - g_assert_true
    - FU_FIRMWARE
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_artifact_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6233,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6233,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6239,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6242,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6253,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6253,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6258,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6259,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:6262,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6263,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6264,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-self-test.c:6265,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-self-test.c:6265,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6269,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6270,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-self-test.c:6271,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6272,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6273,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6274,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-self-test.c:6274,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-self-test.c:6275,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:6276,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-self-test.c:6277,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6228
    functionDepth: 2
    functionLinenumber: 6228
    functionLinenumberEnd: 6279
    functionName: fu_common_store_cab_unsigned_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_cabinet_get_component
    - fu_test_build_cab
    - g_assert_cmpstr
    - fu_cabinet_new
    - xb_node_get_attr
    - g_assert_true
    - g_assert_null
    - FU_FIRMWARE
    - xb_query_new_full
    - xb_node_query_first_full
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - xb_node_query_first
    - xb_node_get_data
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_unsigned_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6285,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6285,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6286,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6287,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6290,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6306,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6306,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6311,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6313
      start: 6281
    functionDepth: 2
    functionLinenumber: 6281
    functionLinenumberEnd: 6313
    functionName: fu_common_store_cab_sha256_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - g_assert_true
    - FU_FIRMWARE
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_sha256_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6320,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6320,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6321,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6322,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6323,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6324,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6325,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6328,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6339,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6339,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6344,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6345,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-self-test.c:6348,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6349,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6350,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-self-test.c:6351,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-self-test.c:6351,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6355,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6356,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-self-test.c:6357,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6358,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6359,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6360,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-self-test.c:6360,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-self-test.c:6361,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6315
    functionDepth: 2
    functionLinenumber: 6315
    functionLinenumberEnd: 6363
    functionName: fu_common_store_cab_folder_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_cabinet_get_component
    - fu_test_build_cab
    - g_assert_cmpstr
    - fu_cabinet_new
    - xb_node_get_attr
    - g_assert_true
    - FU_FIRMWARE
    - xb_query_new_full
    - xb_node_query_first_full
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - xb_node_get_data
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_folder_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6369,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6369,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6370,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6371,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6373,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6374,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6374,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6379,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6381
      start: 6365
    functionDepth: 2
    functionLinenumber: 6365
    functionLinenumberEnd: 6381
    functionName: fu_common_store_cab_error_no_metadata_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - FU_FIRMWARE
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_error_no_metadata_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6387,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6387,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6388,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6389,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6391,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6406,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6406,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6411,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6413
      start: 6383
    functionDepth: 2
    functionLinenumber: 6383
    functionLinenumberEnd: 6413
    functionName: fu_common_store_cab_error_wrong_size_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - FU_FIRMWARE
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_error_wrong_size_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6419,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6419,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6421,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6423,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6436,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6436,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6441,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6443
      start: 6415
    functionDepth: 2
    functionLinenumber: 6415
    functionLinenumberEnd: 6443
    functionName: fu_common_store_cab_error_missing_file_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - FU_FIRMWARE
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_error_missing_file_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6449,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6449,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6450,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6451,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6453,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-self-test.c:6464,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6464,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6465,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6465,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6470,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6472
      start: 6445
    functionDepth: 2
    functionLinenumber: 6445
    functionLinenumberEnd: 6472
    functionName: fu_common_store_cab_error_size_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_error_size_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6478,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-self-test.c:6478,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6479,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6480,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-self-test.c:6482,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-self-test.c:6496,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-self-test.c:6496,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6501,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6503
      start: 6474
    functionDepth: 2
    functionLinenumber: 6474
    functionLinenumberEnd: 6503
    functionName: fu_common_store_cab_error_wrong_checksum_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - fu_cabinet_new
    - FU_FIRMWARE
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_common_store_cab_error_wrong_checksum_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6516,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:6516,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6518,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6519,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6520,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-self-test.c:6521,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:6524,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6529,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:6530,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6532,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6532,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6533,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6534,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6536,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6536,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-self-test.c:6537,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6538,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-self-test.c:6541,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6541,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6543,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-self-test.c:6545,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6546,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6548,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6548,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6548,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6549,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6550,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6551,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6552,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6554,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6555,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6555,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6555,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6556,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6557,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6558,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6560,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6561,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6561,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6561,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6562,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6563,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6564,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6566,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6567,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6567,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6567,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6568,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6569,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6570,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6571,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6574,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6575,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6575,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6575,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6576,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6577,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6578,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6580,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6581,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6582,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6583,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6584,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6585,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6586,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-self-test.c:6590,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6590,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6591,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-self-test.c:6593,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6594,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6596,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6597,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6597,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6597,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6598,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6599,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6600,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6602,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6603,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6603,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6603,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6604,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6605,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6606,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6608,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6609,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6611,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6612,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6613,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6614,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6615,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6616,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-self-test.c:6619,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6619,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6621,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-self-test.c:6623,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6624,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6626,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6627,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6627,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6627,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6628,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6629,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6631,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6632,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6632,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6632,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6633,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6634,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6635,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6636,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6638,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6639,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6639,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6639,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6640,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6641,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6642,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6643,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6646,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6647,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6647,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6647,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6648,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6649,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6650,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-self-test.c:6653,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-self-test.c:6653,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6655,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-self-test.c:6657,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6658,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6660,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6661,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6661,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6661,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6662,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6663,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6664,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6665,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-self-test.c:6667,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-self-test.c:6668,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6668,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-self-test.c:6668,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-self-test.c:6669,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6670,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-self-test.c:6671,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-self-test.c:6672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 113
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6673
      start: 6505
    functionDepth: 1
    functionLinenumber: 6505
    functionLinenumberEnd: 6673
    functionName: fu_engine_modify_bios_settings_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_test_skip
    - g_assert_true
    - fu_engine_new
    - g_assert_cmpint
    - g_assert_false
    - fu_context_get_bios_setting
    - fu_context_reload_bios_settings
    - g_hash_table_remove_all
    - g_clear_error
    - g_hash_table_new_full
    - g_assert_nonnull
    - g_autoptr
    - g_setenv
    - g_assert_error
    - fu_engine_get_context
    - fu_engine_modify_bios_settings
    - fu_bios_settings_get_all
    - fu_context_get_bios_settings
    - g_test_build_filename
    - g_assert_no_error
    - g_strdup
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: void
    signature: void fu_engine_modify_bios_settings_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6686,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6687,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6689,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6690,1
    - Dst: g_open
      Src: /src/fwupd/src/fu-self-test.c:6691,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6692,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-self-test.c:6694,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6695,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-self-test.c:6698,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6699,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6700,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6701,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-self-test.c:6704,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6705,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6706,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6707,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/src/fu-self-test.c:6710,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/src/fu-self-test.c:6710,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6711,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6712,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-self-test.c:6713,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6714,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6715,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6716,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:6718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6720
      start: 6678
    functionDepth: 1
    functionLinenumber: 6678
    functionLinenumberEnd: 6720
    functionName: fu_unix_seekable_input_stream_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - g_open
    - g_assert_cmpstr
    - G_SEEKABLE
    - g_test_skip
    - g_assert_cmpint
    - g_test_build_filename
    - g_seekable_seek
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_unix_seekable_input_stream_new
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6730,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6731,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6733,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6734,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6735,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-self-test.c:6742,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-self-test.c:6743,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6744,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6745,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6746,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6747,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-self-test.c:6748,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6749,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6750,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6751,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-self-test.c:6751,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6752,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-self-test.c:6752,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6753,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6753,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6754,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:6754,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6755,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-self-test.c:6755,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6756,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-self-test.c:6756,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6759,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-self-test.c:6759,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6762,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-self-test.c:6762,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6763,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-self-test.c:6763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6764
      start: 6722
    functionDepth: 1
    functionLinenumber: 6722
    functionLinenumberEnd: 6764
    functionName: fu_remote_download_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fwupd_remote_get_filename_cache
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_report_uri
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_setup
    - fwupd_remote_get_kind
    - g_assert_cmpint
    - fu_remote_load_from_filename
    - fwupd_remote_get_priority
    - fwupd_remote_new
    - g_assert_false
    - fwupd_remote_get_title
    - g_build_filename
    - g_assert_nonnull
    - g_autoptr
    - g_assert_cmpstr
    - g_test_build_filename
    - g_strdup_printf
    - fwupd_remote_set_remotes_dir
    - g_assert_no_error
    - fwupd_remote_get_filename_cache_sig
    linkageType: ''
    returnType: void
    signature: void fu_remote_download_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6773,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6775,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6777,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6778,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-self-test.c:6779,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6780,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6781,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6782,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6783,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6784,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-self-test.c:6784,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6785,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-self-test.c:6785,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6786,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6786,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6787,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-self-test.c:6787,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6788,1
    - Dst: fwupd_remote_get_agreement
      Src: /src/fwupd/src/fu-self-test.c:6788,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6789,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-self-test.c:6789,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6790,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:6790,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6793,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-self-test.c:6793,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-self-test.c:6797,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6798,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6800
      start: 6767
    functionDepth: 1
    functionLinenumber: 6767
    functionLinenumberEnd: 6800
    functionName: fu_remote_baseuri_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_agreement
    - fwupd_remote_get_checksum
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_get_kind
    - g_assert_cmpint
    - fu_remote_load_from_filename
    - fwupd_remote_get_priority
    - fwupd_remote_new
    - fwupd_remote_get_firmware_base_uri
    - g_build_filename
    - g_autoptr
    - g_assert_cmpstr
    - g_test_build_filename
    - fwupd_remote_set_remotes_dir
    - fwupd_remote_build_firmware_uri
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_remote_baseuri_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6810,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6810,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6811,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6811,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6812,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6813,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6815,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-self-test.c:6816,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6818,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6819,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6820,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6821,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6822,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-self-test.c:6822,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6823,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-self-test.c:6823,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6824,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-self-test.c:6824,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6827,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6827,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6828,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6828,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6829,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6829,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6831,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-self-test.c:6832,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-self-test.c:6832,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6833,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-self-test.c:6833,1
    - Dst: fwupd_remote_get_remotes_dir
      Src: /src/fwupd/src/fu-self-test.c:6833,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6834,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-self-test.c:6834,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-self-test.c:6836,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6837,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6838,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-self-test.c:6840,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6841,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6842,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-self-test.c:6842,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6843,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-self-test.c:6844,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6845,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6846,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-self-test.c:6846,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6847,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-self-test.c:6850,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-self-test.c:6851,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:6851,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/src/fu-self-test.c:6852,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:6852,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6853,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6854,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6855,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-self-test.c:6855,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6856,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-self-test.c:6856,1
    - Dst: fwupd_remote_load_signature
      Src: /src/fwupd/src/fu-self-test.c:6859,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-self-test.c:6860,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-self-test.c:6863,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:6864,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6868,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6869,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-self-test.c:6872,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/src/fu-self-test.c:6873,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/src/fu-self-test.c:6876,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-self-test.c:6877,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:6877,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6878,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:6879,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:6881,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6906
      start: 6802
    functionDepth: 1
    functionLinenumber: 6802
    functionLinenumberEnd: 6906
    functionName: fu_remote_auth_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_priority
    - g_test_skip
    - fwupd_remote_get_age
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_remote_get_report_uri
    - fwupd_codec_from_variant
    - fwupd_remote_get_remotes_dir
    - fwupd_remote_get_username
    - fwupd_codec_to_variant
    - fwupd_remote_has_flag
    - fwupd_remote_setup
    - fwupd_remote_set_filename_cache
    - g_assert_cmpint
    - fwupd_remote_set_checksum_sig
    - fu_remote_load_from_filename
    - fwupd_remote_get_priority
    - fwupd_remote_new
    - fwupd_remote_get_password
    - g_strv_length
    - g_assert_false
    - g_str_has_suffix
    - fwupd_codec_to_json_string
    - g_error_matches
    - fwupd_remote_get_filename_source
    - g_assert_nonnull
    - g_autoptr
    - fwupd_remote_load_signature
    - g_assert_cmpstr
    - fwupd_remote_get_order_after
    - fwupd_remote_set_filename_source
    - g_test_build_filename
    - fwupd_remote_set_remotes_dir
    - fwupd_remote_get_order_before
    - g_assert_no_error
    - g_strcmp0
    - fwupd_remote_get_filename_cache_sig
    linkageType: ''
    returnType: void
    signature: void fu_remote_auth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6914,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6914,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6915,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6917,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6918,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6919,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6920,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6921,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6922,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6923,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6924,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-self-test.c:6925,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6926,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6927,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-self-test.c:6928,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6929,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6930,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:6931,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6931,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6932,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-self-test.c:6932,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6933,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-self-test.c:6933,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6934,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-self-test.c:6934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6908
    functionDepth: 1
    functionLinenumber: 6908
    functionLinenumberEnd: 6937
    functionName: fu_remote_duplicate_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_test_build_filename
    - fu_remote_load_from_filename
    - g_assert_true
    - fwupd_remote_get_filename_cache
    - fwupd_remote_new
    - g_assert_no_error
    - fwupd_remote_get_password
    - g_assert_false
    - g_autoptr
    - fwupd_remote_get_username
    - fwupd_remote_has_flag
    - fwupd_remote_setup
    linkageType: ''
    returnType: void
    signature: void fu_remote_duplicate_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6947,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6950,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6951,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-self-test.c:6952,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6953,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6954,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6955,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6956,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6957,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-self-test.c:6957,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6958,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-self-test.c:6958,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6959,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6959,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6960,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-self-test.c:6960,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6961,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:6961,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6964,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-self-test.c:6964,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-self-test.c:6967,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6968,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6972
      start: 6940
    functionDepth: 1
    functionLinenumber: 6940
    functionLinenumberEnd: 6972
    functionName: fu_remote_nopath_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_build_filename
    - g_test_build_filename
    - fu_remote_load_from_filename
    - g_assert_true
    - fwupd_remote_set_remotes_dir
    - fwupd_remote_get_priority
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_new
    - g_assert_no_error
    - fwupd_remote_build_firmware_uri
    - g_autoptr
    - fwupd_remote_get_checksum
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    linkageType: ''
    returnType: void
    signature: void fu_remote_nopath_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6980,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6981,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6981,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:6983,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-self-test.c:6985,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:6986,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-self-test.c:6987,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:6988,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6989,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:6990,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-self-test.c:6990,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:6991,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-self-test.c:6991,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:6992,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:6992,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:6993,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-self-test.c:6993,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:6994,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-self-test.c:6994,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6995,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-self-test.c:6995,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:6998,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-self-test.c:6998,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7001,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-self-test.c:7001,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7002,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-self-test.c:7002,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-self-test.c:7005,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:7005,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/src/fu-self-test.c:7006,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:7006,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7007,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7008,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-self-test.c:7009,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:7009,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-self-test.c:7012,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-self-test.c:7013,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-self-test.c:7013,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7014,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7015,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-self-test.c:7016,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7033
      start: 6974
    functionDepth: 1
    functionLinenumber: 6974
    functionLinenumberEnd: 7033
    functionName: fu_remote_local_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_assert_true
    - g_assert_null
    - fwupd_remote_get_filename_cache
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_report_uri
    - fwupd_codec_from_variant
    - fwupd_remote_get_checksum
    - fwupd_codec_to_variant
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_get_kind
    - g_assert_cmpint
    - fu_remote_load_from_filename
    - fwupd_remote_new
    - fwupd_remote_get_title
    - fwupd_codec_to_json_string
    - g_assert_nonnull
    - g_autoptr
    - g_assert_cmpstr
    - fwupd_remote_set_filename_source
    - g_test_build_filename
    - g_assert_no_error
    - g_strcmp0
    - fwupd_remote_get_filename_cache_sig
    linkageType: ''
    returnType: void
    signature: void fu_remote_local_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7040,1
    - Dst: fu_remote_list_new
      Src: /src/fwupd/src/fu-self-test.c:7040,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7041,1
    - Dst: fu_remote_list_set_lvfs_metadata_format
      Src: /src/fwupd/src/fu-self-test.c:7043,1
    - Dst: fu_remote_list_load
      Src: /src/fwupd/src/fu-self-test.c:7044,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7045,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7046,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:7049,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7050,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7051,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:7051,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:7056,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7057,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7058,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:7058,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-self-test.c:7063,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7064,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7065,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-self-test.c:7065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7068
      start: 7035
    functionDepth: 1
    functionLinenumber: 7035
    functionLinenumberEnd: 7068
    functionName: fu_remote_list_repair_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_remote_list_get_by_id
    - fu_remote_list_set_lvfs_metadata_format
    - g_assert_true
    - fu_remote_list_load
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_remote_list_new
    - fwupd_remote_get_metadata_uri
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_repair_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7076,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-self-test.c:7076,1
    - Dst: fu_engine_config_new
      Src: /src/fwupd/src/fu-self-test.c:7076,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7077,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:7080,1
    - Dst: g_unsetenv
      Src: /src/fwupd/src/fu-self-test.c:7082,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7083,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-self-test.c:7085,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7086,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7087,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-self-test.c:7088,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7096,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7097,1
    - Dst: fu_config_load
      Src: /src/fwupd/src/fu-self-test.c:7099,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7100,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7101,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:7104,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:7105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7106
      start: 7070
    functionDepth: 2
    functionLinenumber: 7070
    functionLinenumberEnd: 7106
    functionName: fu_config_migrate_1_9_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_path_mkdir_parent
    - g_file_set_contents
    - fu_self_test_mkroot
    - g_assert_true
    - g_assert_no_error
    - fu_config_load
    - g_autoptr
    - g_setenv
    - g_file_test
    - FU_CONFIG
    - g_unsetenv
    - g_assert_false
    - fu_engine_config_new
    linkageType: ''
    returnType: void
    signature: void fu_config_migrate_1_9_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7112,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7113,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7114,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7115,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7116,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7117,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7118,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7119,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7120,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7121,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7122,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7123,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7124,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7125,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7126,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7127,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7128,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7129,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-self-test.c:7130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - config
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7131
      start: 7108
    functionDepth: 1
    functionLinenumber: 7108
    functionLinenumberEnd: 7131
    functionName: fu_config_set_plugin_defaults
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_config_set_default
    linkageType: ''
    returnType: void
    signature: void fu_config_set_plugin_defaults(FuConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7147,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-self-test.c:7147,1
    - Dst: fu_engine_config_new
      Src: /src/fwupd/src/fu-self-test.c:7147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7148,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:7151,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7154,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:7155,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7156,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7161,1
    - Dst: g_unsetenv
      Src: /src/fwupd/src/fu-self-test.c:7162,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7164,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7165,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-self-test.c:7166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7167,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7168,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7173,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7174,1
    - Dst: fu_test_copy_file
      Src: /src/fwupd/src/fu-self-test.c:7175,1
    - Dst: fu_config_set_plugin_defaults
      Src: /src/fwupd/src/fu-self-test.c:7179,1
    - Dst: fu_config_load
      Src: /src/fwupd/src/fu-self-test.c:7180,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7181,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7182,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7186,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-self-test.c:7187,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:7188,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-self-test.c:7189,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:7190,1
    - Dst: G_FILE_TEST_EXISTS::G_FILE_TEST_EXISTS
      Src: /src/fwupd/src/fu-self-test.c:7190,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7191,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-self-test.c:7195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7196,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7197,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7199
      start: 7133
    functionDepth: 2
    functionLinenumber: 7133
    functionLinenumberEnd: 7199
    functionName: fu_config_migrate_1_7_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_true
    - G_FILE_TEST_EXISTS::G_FILE_TEST_EXISTS
    - fu_config_set_plugin_defaults
    - fu_path_mkdir_parent
    - fu_test_copy_file
    - g_assert_false
    - fu_self_test_mkroot
    - fu_engine_config_new
    - g_build_filename
    - g_assert_nonnull
    - g_autoptr
    - g_file_test
    - g_setenv
    - FU_CONFIG
    - g_assert_cmpstr
    - g_test_build_filename
    - g_strdup_printf
    - g_assert_no_error
    - fu_config_load
    - g_unsetenv
    linkageType: ''
    returnType: void
    signature: void fu_config_migrate_1_7_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7205,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7208,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-self-test.c:7221,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7222,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7223,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-self-test.c:7225,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-self-test.c:7225,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-self-test.c:7228,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-self-test.c:7229,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-self-test.c:7231,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-self-test.c:7232,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-self-test.c:7234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7236
      start: 7201
    functionDepth: 1
    functionLinenumber: 7201
    functionLinenumberEnd: 7236
    functionName: fu_engine_report_metadata_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_assert_no_error
    - fu_engine_new
    - g_list_sort
    - g_assert_nonnull
    - fu_engine_get_report_metadata
    - g_autoptr
    - G_N_ELEMENTS
    - g_hash_table_lookup
    - g_hash_table_get_keys
    linkageType: ''
    returnType: void
    signature: void fu_engine_report_metadata_func(gconstpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7245,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-self-test.c:7247,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7248,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-self-test.c:7251,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7252,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7257,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-self-test.c:7261,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7262,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7263,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-self-test.c:7264,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7265,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7266,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7268
      start: 7238
    functionDepth: 1
    functionLinenumber: 7238
    functionLinenumberEnd: 7268
    functionName: fu_engine_machine_hash_func
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_cmpstr
    - fu_engine_build_machine_id
    - g_assert_no_error
    - g_file_test
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_machine_hash_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7276,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7277,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7277,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7278,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7278,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7279,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7281,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7284,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7285,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7290,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7291,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7296,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7297,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7300,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7301,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7302,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7303,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7303,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7303,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7304,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7304,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7304,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7305,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7305,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7305,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7306,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7306,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7307,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7307,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7308,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7308,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7309,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:7309,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7310,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-self-test.c:7310,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7311,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:7311,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/src/fu-self-test.c:7314,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7314,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7318,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7319,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7322,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7323,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7324,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7325,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7326,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7326,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7330,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7330,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7331,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7332,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7333,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7333,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7334,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7335
      start: 7270
    functionDepth: 1
    functionLinenumber: 7270
    functionLinenumberEnd: 7335
    functionName: fu_test_engine_fake_hidraw
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_get_physical_id
    - fu_engine_new
    - fu_device_get_plugin
    - fu_device_get_logical_id
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_engine_get_device
    - fu_device_get_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_device_get_backend_parent_with_subsystem
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - g_assert_no_error
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_hidraw(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7342,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7343,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7343,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7344,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7344,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7345,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7348,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7349,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7354,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7355,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7360,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7361,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7364,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7365,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7366,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7367,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7367,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7367,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7368,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7368,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7368,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7369,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7369,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7369,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7370,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7370,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7371,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7371,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7372,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7372,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7373,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-self-test.c:7373,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7374,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:7374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7375
      start: 7337
    functionDepth: 1
    functionLinenumber: 7337
    functionLinenumberEnd: 7375
    functionName: fu_test_engine_fake_usb
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_get_physical_id
    - fu_engine_new
    - fu_device_get_plugin
    - fu_device_get_logical_id
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_engine_get_device
    - fu_device_get_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_usb(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7382,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7383,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7383,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7384,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7384,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7385,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7388,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7389,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7394,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7395,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7400,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7401,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:7404,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7405,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7410,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7411,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7412,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7413,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7413,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7413,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7414,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7414,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7414,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7415,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7415,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7415,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7416,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7416,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7417,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7417,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7418,1
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/src/fu-self-test.c:7418,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7418,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7419,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/src/fu-self-test.c:7419,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7419,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7420,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:7420,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7421,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7422
      start: 7377
    functionDepth: 1
    functionLinenumber: 7377
    functionLinenumberEnd: 7422
    functionName: fu_test_engine_fake_v4l
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_v4l_device_get_index
    - g_assert_true
    - fu_engine_new
    - fu_device_get_plugin
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_engine_get_device
    - fu_device_get_pid
    - FU_V4L_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - fu_v4l_device_get_caps
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_v4l(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7430,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7431,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7432,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7435,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7436,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7441,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7442,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7448,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7449,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:7452,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7453,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7458,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7459,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7460,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7461,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7461,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7461,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7462,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7462,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7462,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7463,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-self-test.c:7463,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7463,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7464,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7464,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7464,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7465,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-self-test.c:7465,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7465,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7466,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7466,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7467,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7467,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7468,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-self-test.c:7468,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7469,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-self-test.c:7469,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7470,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7470,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7471,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-self-test.c:7471,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7472,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:7472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7473
      start: 7424
    functionDepth: 1
    functionLinenumber: 7424
    functionLinenumberEnd: 7473
    functionName: fu_test_engine_fake_nvme
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_get_physical_id
    - fu_engine_new
    - fu_device_get_vendor
    - fu_device_get_plugin
    - fu_device_get_logical_id
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_engine_get_device
    - fu_udev_device_get_device_file
    - fu_device_get_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - fu_device_has_vendor_id
    - fu_udev_device_get_number
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_nvme(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7480,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7481,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7481,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7482,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7482,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7483,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7486,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7487,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7492,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7493,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7498,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7499,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:7502,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7503,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7508,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7509,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7510,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7511,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7511,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7511,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7512,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7512,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7512,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7513,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7513,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7513,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7514,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-self-test.c:7514,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7514,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7515,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7515,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7516,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7516,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7517,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-self-test.c:7517,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7518,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7518,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7519,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-self-test.c:7519,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7522,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:7522,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7523,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-self-test.c:7523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7526
      start: 7475
    functionDepth: 1
    functionLinenumber: 7475
    functionLinenumberEnd: 7526
    functionName: fu_test_engine_fake_serio
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_get_physical_id
    - fu_engine_new
    - fu_device_get_plugin
    - fu_device_get_logical_id
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_engine_get_device
    - fu_udev_device_get_device_file
    - fu_device_get_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - fu_device_has_instance_id
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_serio(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7533,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7534,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7535,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7536,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7539,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7540,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7545,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7546,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7551,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7552,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:7555,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7556,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7561,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7562,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7563,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7564,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7564,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7564,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7565,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7565,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7565,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7566,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7566,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7566,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7567,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-self-test.c:7567,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7567,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7568,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-self-test.c:7568,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-self-test.c:7569,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-self-test.c:7569,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7570,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7570,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7571,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-self-test.c:7571,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7572,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-self-test.c:7572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7573
      start: 7528
    functionDepth: 1
    functionLinenumber: 7528
    functionLinenumberEnd: 7573
    functionName: fu_test_engine_fake_tpm
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_get_physical_id
    - fu_engine_new
    - fu_device_get_plugin
    - fu_device_get_logical_id
    - fu_udev_device_get_subsystem
    - g_assert_cmpint
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_engine_get_device
    - fu_udev_device_get_device_file
    - fu_device_get_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - fu_device_get_vid
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_tpm(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7581,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-self-test.c:7581,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7582,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7582,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7583,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-self-test.c:7586,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7587,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-self-test.c:7592,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-self-test.c:7593,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7598,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7599,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-self-test.c:7602,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-self-test.c:7603,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-self-test.c:7608,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7609,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-self-test.c:7610,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7611,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-self-test.c:7611,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7611,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7612,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-self-test.c:7612,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7612,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7613,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-self-test.c:7613,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7613,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7614,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-self-test.c:7614,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-self-test.c:7614,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7615,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-self-test.c:7615,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-self-test.c:7616,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-self-test.c:7616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7617
      start: 7575
    functionDepth: 1
    functionLinenumber: 7575
    functionLinenumberEnd: 7617
    functionName: fu_test_engine_fake_block
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_engine_new
    - fu_device_get_vendor
    - fu_device_get_plugin
    - fu_udev_device_get_subsystem
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - fu_context_has_backend
    - FU_UDEV_DEVICE
    - fu_engine_get_device
    - fu_udev_device_get_device_file
    - g_assert_nonnull
    - g_autoptr
    - fu_engine_load
    - g_assert_cmpstr
    - fu_progress_new
    - fu_engine_add_plugin_filter
    - g_assert_no_error
    - fu_engine_get_plugin_by_name
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_fake_block(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7625,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7626,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-self-test.c:7626,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-self-test.c:7627,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-self-test.c:7627,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7629,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-self-test.c:7630,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/src/fu-self-test.c:7633,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7634,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7635,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7636,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7637,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7638,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7639,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7640,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7641,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7642,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7643,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-self-test.c:7644,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7645,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7646,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7647,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-self-test.c:7648,1
    - Dst: fu_self_test_mkroot
      Src: /src/fwupd/src/fu-self-test.c:7651,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-self-test.c:7654,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/src/fu-self-test.c:7655,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7656,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7657,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/src/fu-self-test.c:7660,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-self-test.c:7660,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7661,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7662,1
    - Dst: fu_efivars_set_boot_current
      Src: /src/fwupd/src/fu-self-test.c:7663,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-self-test.c:7663,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7664,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7665,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-self-test.c:7668,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-self-test.c:7671,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-self-test.c:7672,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-self-test.c:7673,1
    - Dst: g_test_slow
      Src: /src/fwupd/src/fu-self-test.c:7676,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7677,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7679,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7680,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7681,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7682,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7683,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7684,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7685,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7686,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7687,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7688,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7689,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7690,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7691,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7692,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7693,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7694,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7695,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7696,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7699,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7702,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7703,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7706,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7709,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7712,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7715,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7718,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7721,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7724,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7725,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7726,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7729,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7732,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7735,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7738,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7741,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7744,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7745,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7748,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7751,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7754,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7757,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7760,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7763,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7764,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7765,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7766,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7767,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7768,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7769,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7770,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7771,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7772,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7773,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7774,1
    - Dst: g_test_slow
      Src: /src/fwupd/src/fu-self-test.c:7775,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7776,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7780,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7783,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7784,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7787,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7788,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7791,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7792,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7793,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7794,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7795,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7798,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7801,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7804,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7807,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7810,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7813,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7816,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7819,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7822,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7825,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7828,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7831,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7834,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7837,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7840,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7843,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7846,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7849,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7852,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7855,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7858,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7861,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7862,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7863,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7866,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7869,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7872,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7875,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7876,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7879,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7880,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7883,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7884,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7885,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7886,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7887,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7888,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7889,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7890,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7891,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7892,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7893,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7895,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7897,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7899,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7901,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-self-test.c:7902,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7905,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-self-test.c:7906,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-self-test.c:7907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 158
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7908
      start: 7619
    functionDepth: 2
    functionLinenumber: 7619
    functionLinenumberEnd: 7908
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_new0
    - g_assert_true
    - fu_efivars_set_boot_current
    - g_test_add_data_func
    - fu_context_load_quirks
    - fu_context_new
    - fu_efivars_set_secure_boot
    - fu_context_load_hwinfo
    - g_test_add_func
    - g_test_slow
    - fu_self_test_mkroot
    - g_test_run
    - g_log_set_fatal_mask
    - g_setenv
    - g_autoptr
    - g_test_init
    - fu_progress_new
    - g_test_build_filename
    - fu_context_add_flag
    - g_assert_no_error
    - fu_context_get_efivars
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:62,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-history.c:62,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-history.c:65,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-history.c:66,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-history.c:66,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:69,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/src/fu-history.c:71,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-history.c:71,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:74,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-history.c:76,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:79,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-history.c:81,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-history.c:84,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:84,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-history.c:87,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:87,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:90,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-history.c:92,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:95,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-history.c:97,1
    - Dst: fu_device_set_flags
      Src: /src/fwupd/src/fu-history.c:100,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:100,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:103,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-history.c:105,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-history.c:105,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-history.c:107,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-history.c:107,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-history.c:108,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-history.c:110,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:115,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-history.c:117,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-history.c:120,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:120,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:123,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-history.c:124,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:127,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-history.c:129,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:132,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-history.c:134,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:137,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-history.c:139,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:142,1
    - Dst: fu_release_set_protocol
      Src: /src/fwupd/src/fu-history.c:144,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:147,1
    - Dst: fu_release_set_id
      Src: /src/fwupd/src/fu-history.c:149,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:152,1
    - Dst: fu_release_set_appstream_id
      Src: /src/fwupd/src/fu-history.c:154,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-history.c:157,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:157,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-history.c:160,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:160,1
    - Dst: fu_release_set_flags
      Src: /src/fwupd/src/fu-history.c:163,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:163,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-history.c:166,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 1
    argNames:
    - stmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 168
    functionName: fu_history_device_from_stmt
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_release_set_appstream_id
    - fu_device_set_flags
    - FWUPD_RELEASE
    - fu_device_set_version
    - fu_device_add_release
    - fu_release_set_id
    - fu_release_set_filename
    - fu_release_add_metadata_item
    - sqlite3_column_int
    - fu_device_set_modified_usec
    - g_strv_length
    - fu_device_set_plugin
    - fu_device_convert_instance_ids
    - sqlite3_column_text
    - fu_device_set_update_state
    - sqlite3_column_int64
    - fu_release_set_version
    - fu_release_new
    - g_autoptr
    - fwupd_device_set_id
    - fu_release_set_protocol
    - FWUPD_DEVICE
    - fu_device_add_checksum
    - fu_device_add_instance_id_full
    - fu_device_set_version_format
    - g_strsplit
    - fu_device_set_update_error
    - fu_release_set_flags
    - fu_device_set_created_usec
    - fu_device_new
    - fu_device_set_install_duration
    - fu_release_add_checksum
    - fu_device_set_name
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_history_device_from_stmt(sqlite3_stmt *stmt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:175,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:177,1
    - Dst: fu_history_device_from_stmt
      Src: /src/fwupd/src/fu-history.c:178,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:183,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - stmt
    - array
    - error
    argTypes:
    - FuHistory*
    - sqlite3_stmt*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: fu_history_stmt_exec
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_step
    - g_ptr_array_add
    - sqlite3_errmsg
    - fu_history_device_from_stmt
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_stmt_exec(FuHistory *self, sqlite3_stmt *stmt,
      GPtrArray *array, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:240,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 248
    functionName: fu_history_create_database
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_create_database(FuHistory *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-history.c:255,1
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:257,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:259,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:259,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:264,1
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:279,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 283
    functionName: fu_history_migrate_database_v1
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - fu_history_create_database
    - g_info
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v1(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:295,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 303
    functionName: fu_history_migrate_database_v2
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v2(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:309,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:315,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: fu_history_migrate_database_v3
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v3(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:323,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:329,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 337
    functionName: fu_history_migrate_database_v4
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v4(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:343,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:349,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 357
    functionName: fu_history_migrate_database_v5
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v5(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:363,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:372,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 380
    functionName: fu_history_migrate_database_v6
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v6(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:386,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:392,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: fu_history_migrate_database_v7
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v7(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:400,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:406,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: fu_history_migrate_database_v8
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v8(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:414,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:420,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: fu_history_migrate_database_v9
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v9(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:428,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:434,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: fu_history_migrate_database_v10
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v10(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:442,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:448,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: fu_history_migrate_database_v11
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_debug
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v11(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:456,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:466,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 474
    functionName: fu_history_migrate_database_v12
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_migrate_database_v12(FuHistory *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:481,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:483,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:485,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:485,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:488,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:490,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:490,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHistory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 494
    functionName: fu_history_get_schema_version
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - sqlite3_prepare_v2
    - sqlite3_step
    - sqlite3_column_int
    - g_autoptr
    - sqlite3_errmsg
    linkageType: ''
    returnType: guint
    signature: guint fu_history_get_schema_version(FuHistory *self)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:500,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-history.c:503,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-history.c:505,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:510,1
    - Dst: fu_history_migrate_database_v1
      Src: /src/fwupd/src/fu-history.c:514,1
    - Dst: fu_history_migrate_database_v2
      Src: /src/fwupd/src/fu-history.c:518,1
    - Dst: fu_history_migrate_database_v3
      Src: /src/fwupd/src/fu-history.c:522,1
    - Dst: fu_history_migrate_database_v4
      Src: /src/fwupd/src/fu-history.c:526,1
    - Dst: fu_history_migrate_database_v5
      Src: /src/fwupd/src/fu-history.c:530,1
    - Dst: fu_history_migrate_database_v6
      Src: /src/fwupd/src/fu-history.c:534,1
    - Dst: fu_history_migrate_database_v7
      Src: /src/fwupd/src/fu-history.c:538,1
    - Dst: fu_history_migrate_database_v8
      Src: /src/fwupd/src/fu-history.c:542,1
    - Dst: fu_history_migrate_database_v9
      Src: /src/fwupd/src/fu-history.c:547,1
    - Dst: fu_history_migrate_database_v10
      Src: /src/fwupd/src/fu-history.c:551,1
    - Dst: fu_history_migrate_database_v11
      Src: /src/fwupd/src/fu-history.c:555,1
    - Dst: fu_history_migrate_database_v12
      Src: /src/fwupd/src/fu-history.c:559,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:566,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:573,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:577,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:580,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:581,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - self
    - schema_ver
    - error
    argTypes:
    - FuHistory*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 582
    functionName: fu_history_create_or_migrate
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - fu_history_migrate_database_v1
    - fu_history_create_database
    - g_set_error
    - fu_history_migrate_database_v5
    - fu_history_migrate_database_v10
    - fu_history_migrate_database_v3
    - fu_history_stmt_exec
    - g_info
    - sqlite3_bind_int
    - fu_history_migrate_database_v6
    - fu_history_migrate_database_v9
    - fu_history_migrate_database_v11
    - g_autoptr
    - fu_history_migrate_database_v12
    - fu_history_migrate_database_v4
    - g_warning
    - fu_history_migrate_database_v2
    - fu_history_migrate_database_v8
    - fu_history_migrate_database_v7
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_create_or_migrate(FuHistory *self, guint schema_ver,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:588,1
    - Dst: sqlite3_open
      Src: /src/fwupd/src/fu-history.c:589,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:591,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:596,1
    - Dst: sqlite3_db_config
      Src: /src/fwupd/src/fu-history.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 603
    functionName: fu_history_open
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - sqlite3_db_config
    - sqlite3_open
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_open(FuHistory *self, const gchar *filename, GError
      **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:612,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:618,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:618,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:619,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-history.c:622,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-history.c:623,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-history.c:624,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/src/fu-history.c:625,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-history.c:630,1
    - Dst: fu_history_open
      Src: /src/fwupd/src/fu-history.c:631,1
    - Dst: fu_history_get_schema_version
      Src: /src/fwupd/src/fu-history.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:637,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:638,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:650,1
    - Dst: fu_history_create_or_migrate
      Src: /src/fwupd/src/fu-history.c:651,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:654,1
    - Dst: sqlite3_close
      Src: /src/fwupd/src/fu-history.c:657,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-history.c:658,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:659,1
    - Dst: fu_history_open
      Src: /src/fwupd/src/fu-history.c:666,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 674
    functionName: fu_history_load
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - g_debug
    - g_file_new_for_path
    - g_file_query_exists
    - g_file_make_directory_with_parents
    - g_build_filename
    - fu_history_open
    - fu_history_create_or_migrate
    - g_unlink
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - fu_path_from_kind
    - g_autoptr
    - fu_history_create_database
    - g_return_val_if_fail
    - fu_history_get_schema_version
    - sqlite3_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_load(FuHistory *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-history.c:679,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:680,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-history.c:680,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-history.c:683,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-history.c:685,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-history.c:686,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-history.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hash
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 689
    functionName: fu_history_convert_hash_to_string
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_free
    - g_autoptr
    - g_hash_table_lookup
    - g_string_append
    - g_hash_table_get_keys
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_history_convert_hash_to_string(GHashTable *hash)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_flags
      Src: /src/fwupd/src/fu-history.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: fu_history_get_device_flags_filtered
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_device_get_flags
    linkageType: ''
    returnType: FwupdDeviceFlags
    signature: FwupdDeviceFlags fu_history_get_device_flags_filtered(FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:716,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:718,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:718,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:719,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:719,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:722,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:726,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history.c:726,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:726,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:727,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:740,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:744,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:748,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history.c:748,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:749,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history.c:749,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:750,1
    - Dst: fu_history_get_device_flags_filtered
      Src: /src/fwupd/src/fu-history.c:750,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:751,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:751,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:752,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-history.c:752,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:753,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:756,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-history.c:756,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:759,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history.c:759,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:760,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/src/fu-history.c:760,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:762,1
    - Dst: sqlite3_changes
      Src: /src/fwupd/src/fu-history.c:764,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:765,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 712
    functionDepth: 5
    functionLinenumber: 712
    functionLinenumberEnd: 773
    functionName: fu_history_modify_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - sqlite3_bind_int64
    - sqlite3_prepare_v2
    - fu_device_get_id
    - sqlite3_changes
    - g_return_val_if_fail
    - fu_device_get_checksums
    - fu_device_get_install_duration
    - FU_IS_DEVICE
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_device_get_update_state
    - fu_history_get_device_flags_filtered
    - fu_device_get_modified_usec
    - fu_history_stmt_exec
    - fu_device_get_name
    - fwupd_checksum_get_by_kind
    - sqlite3_bind_int
    - sqlite3_bind_text
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_load
    - fu_device_get_update_error
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_modify_device(FuHistory *self, FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:796,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:798,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:798,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:799,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:799,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:802,1
    - Dst: fu_history_convert_hash_to_string
      Src: /src/fwupd/src/fu-history.c:806,1
    - Dst: fu_release_get_metadata
      Src: /src/fwupd/src/fu-history.c:806,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:809,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history.c:809,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:809,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:810,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:823,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:827,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:831,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history.c:831,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:832,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history.c:832,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:833,1
    - Dst: fu_history_get_device_flags_filtered
      Src: /src/fwupd/src/fu-history.c:833,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:834,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:834,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:835,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-history.c:835,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:836,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:839,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-history.c:839,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:842,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history.c:842,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:843,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - self
    - device
    - release
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 846
    functionName: fu_history_modify_device_release
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_release_get_metadata
    - fu_history_convert_hash_to_string
    - sqlite3_bind_int64
    - sqlite3_prepare_v2
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_device_get_checksums
    - FU_IS_DEVICE
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_device_get_update_state
    - fu_history_get_device_flags_filtered
    - fu_device_get_modified_usec
    - fu_history_stmt_exec
    - fu_device_get_name
    - fwupd_checksum_get_by_kind
    - sqlite3_bind_int
    - sqlite3_bind_text
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_load
    - fu_device_get_update_error
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_history_modify_device_release(FuHistory *self,\n\t\t\t\t
      FuDevice *device,\n\t\t\t\t FuRelease *release,\n\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:868,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:870,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:870,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:871,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:871,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:872,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-history.c:872,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:875,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-history.c:879,1
    - Dst: fu_history_remove_device
      Src: /src/fwupd/src/fu-history.c:882,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:884,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history.c:884,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:884,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:885,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-history.c:885,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:887,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-history.c:887,1
    - Dst: fu_history_convert_hash_to_string
      Src: /src/fwupd/src/fu-history.c:890,1
    - Dst: fu_release_get_metadata
      Src: /src/fwupd/src/fu-history.c:890,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:893,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:921,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:925,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:928,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:928,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:929,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history.c:929,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:930,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history.c:930,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:931,1
    - Dst: fu_history_get_device_flags_filtered
      Src: /src/fwupd/src/fu-history.c:931,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:932,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-history.c:932,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:933,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:934,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history.c:934,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:935,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-history.c:935,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:936,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/src/fu-history.c:936,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:937,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:938,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/src/fu-history.c:938,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:939,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history.c:939,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:940,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-history.c:940,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:941,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-history.c:941,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:942,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:943,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-history.c:943,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:944,1
    - Dst: fu_release_get_id
      Src: /src/fwupd/src/fu-history.c:944,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:945,1
    - Dst: fu_release_get_appstream_id
      Src: /src/fwupd/src/fu-history.c:945,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:946,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-history.c:946,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:947,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/src/fu-history.c:947,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:948,1
    - Dst: fu_release_get_flags
      Src: /src/fwupd/src/fu-history.c:948,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 4
    argNames:
    - self
    - device
    - release
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 950
    functionName: fu_history_add_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 2
    functionsReached:
    - fu_release_get_checksums
    - fu_release_get_metadata
    - fu_release_get_protocol
    - fu_history_convert_hash_to_string
    - sqlite3_bind_int64
    - sqlite3_prepare_v2
    - fu_device_get_id
    - fu_device_get_checksums
    - g_return_val_if_fail
    - fu_device_get_plugin
    - fu_device_get_install_duration
    - FU_IS_DEVICE
    - g_set_error
    - g_debug
    - fu_device_get_created_usec
    - fu_device_get_version
    - fu_device_get_update_state
    - fu_history_get_device_flags_filtered
    - fu_release_get_flags
    - fu_device_get_modified_usec
    - fu_release_get_filename
    - fu_history_stmt_exec
    - fu_device_get_name
    - fu_device_convert_instance_ids
    - fu_release_get_appstream_id
    - fwupd_checksum_get_by_kind
    - sqlite3_bind_int
    - sqlite3_bind_text
    - fu_release_get_version
    - fu_device_get_guid_default
    - fu_history_remove_device
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_load
    - fu_device_get_version_format
    - fu_device_get_update_error
    - fu_release_get_id
    - FU_IS_RELEASE
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_add_device(FuHistory *self, FuDevice *device, FuRelease
      *release, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:967,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:969,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:969,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:972,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:976,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:977,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:979,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:983,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 963
    functionDepth: 5
    functionLinenumber: 963
    functionLinenumberEnd: 987
    functionName: fu_history_remove_all
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - g_debug
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_remove_all(FuHistory *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1005,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1007,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1007,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1008,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:1008,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1011,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1014,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history.c:1014,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:1014,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1015,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1021,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1025,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1028,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:1028,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1001
    functionDepth: 5
    functionLinenumber: 1001
    functionLinenumberEnd: 1030
    functionName: fu_history_remove_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - fu_history_load
    - g_set_error
    - g_debug
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - fu_device_get_name
    - g_autoptr
    - fu_device_get_id
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_remove_device(FuHistory *self, FuDevice *device,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1048,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1049,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1051,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1051,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1052,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1055,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1059,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1087,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1091,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1094,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1095,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1096,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-history.c:1099,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-history.c:1102,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1044
    functionDepth: 5
    functionLinenumber: 1044
    functionLinenumberEnd: 1103
    functionName: fu_history_get_device_by_id
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 5
    functionsReached:
    - fu_history_load
    - g_set_error
    - g_object_ref
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_set_error_literal
    - g_ptr_array_index
    - g_autoptr
    - fu_history_stmt_exec
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_history_get_device_by_id(FuHistory *self, const gchar *device_id, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1119,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1119,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1123,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1123,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1127,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1132,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1159,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1163,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1166,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1116
    functionDepth: 5
    functionLinenumber: 1116
    functionLinenumberEnd: 1169
    functionName: fu_history_get_devices
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - g_steal_pointer
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_history_get_devices(FuHistory *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1185,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1185,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1187,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1189,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1189,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1193,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1198,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1204,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1208,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1211,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1212,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:1213,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-history.c:1213,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1216,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1220,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1182
    functionDepth: 5
    functionLinenumber: 1182
    functionLinenumberEnd: 1224
    functionName: fu_history_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - g_steal_pointer
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - sqlite3_step
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - sqlite3_errmsg
    - sqlite3_column_text
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_history_get_approved_firmware(FuHistory *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1241,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1243,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1243,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1246,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1250,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1252,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1256,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1237
    functionDepth: 5
    functionLinenumber: 1237
    functionLinenumberEnd: 1260
    functionName: fu_history_clear_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_clear_approved_firmware(FuHistory *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1280,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1280,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1281,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1284,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1288,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1295,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1299,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1302,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1274
    functionDepth: 5
    functionLinenumber: 1274
    functionLinenumberEnd: 1304
    functionName: fu_history_add_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_add_approved_firmware(FuHistory *self, const gchar
      *checksum, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1321,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1321,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1322,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1324,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1324,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1328,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1334,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1336,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1340,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1343,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1344,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:1345,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-history.c:1345,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1348,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1352,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1317
    functionDepth: 5
    functionLinenumber: 1317
    functionLinenumberEnd: 1356
    functionName: fu_history_get_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_history_load
    - g_set_error
    - g_steal_pointer
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - sqlite3_step
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - sqlite3_errmsg
    - sqlite3_column_text
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_history_get_blocked_firmware(FuHistory *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1373,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1375,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1375,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1378,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1382,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1384,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1388,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1369
    functionDepth: 5
    functionLinenumber: 1369
    functionLinenumberEnd: 1392
    functionName: fu_history_clear_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_clear_blocked_firmware(FuHistory *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1410,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1412,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1412,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1413,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1416,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1420,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1427,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1431,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1434,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1406
    functionDepth: 5
    functionLinenumber: 1406
    functionLinenumberEnd: 1436
    functionName: fu_history_add_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_add_blocked_firmware(FuHistory *self, const gchar
      *checksum, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1447,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1447,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1450,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1454,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1461,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1465,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1468,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1469,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - security_attr_json
    - hsi_score
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1471
    functionName: fu_history_add_security_attribute
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_history_add_security_attribute(FuHistory *self,\n\t\t\t\t
      \ const gchar *security_attr_json,\n\t\t\t\t  const gchar *hsi_score,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1491,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1491,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1494,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1494,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1498,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1503,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1510,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1514,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1521,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-history.c:1521,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1522,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1523,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/src/fu-history.c:1523,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1526,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1531,1
    - Dst: g_str_hash
      Src: /src/fwupd/src/fu-history.c:1536,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1538,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1544,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-history.c:1545,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-history.c:1545,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/src/fu-history.c:1549,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/src/fu-history.c:1551,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1552,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-history.c:1552,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history.c:1554,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/src/fu-history.c:1555,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:1560,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1560,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1567,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1571,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1574,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - self
    - limit
    - error
    argTypes:
    - FuHistory*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1486
    functionDepth: 5
    functionLinenumber: 1486
    functionLinenumberEnd: 1575
    functionName: fu_history_get_security_attrs
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_date_time_new_from_iso8601
    - FWUPD_CODEC
    - sqlite3_prepare_v2
    - g_return_val_if_fail
    - fu_security_attrs_get_all
    - g_time_zone_new_utc
    - g_set_error
    - g_debug
    - sqlite3_step
    - g_ptr_array_index
    - sqlite3_column_text
    - fu_security_attrs_new
    - g_steal_pointer
    - g_str_hash
    - FU_IS_HISTORY
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_history_load
    - fwupd_codec_from_json_string
    - fwupd_security_attr_set_created
    - g_date_time_to_unix
    - sqlite3_errmsg
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_history_get_security_attrs(FuHistory *self, guint limit, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1595,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1595,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1599,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1605,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1612,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1619,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1623,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1626,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1627,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-history.c:1630,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1636,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1644,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1648,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1589
    functionDepth: 5
    functionLinenumber: 1589
    functionLinenumberEnd: 1654
    functionName: fu_history_has_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - sqlite3_step
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_has_emulation_tag(FuHistory *self, const gchar
      *device_id, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1672,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1674,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1674,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1675,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1678,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1682,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1689,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1693,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1696,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1668
    functionDepth: 5
    functionLinenumber: 1668
    functionLinenumberEnd: 1698
    functionName: fu_history_add_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_add_emulation_tag(FuHistory *self, const gchar
      *device_id, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1715,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1717,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1717,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1718,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1721,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1725,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1731,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1735,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1738,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1740
    functionName: fu_history_remove_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - fu_history_load
    - g_set_error
    - sqlite3_bind_text
    - sqlite3_prepare_v2
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_stmt_exec
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_remove_emulation_tag(FuHistory *self, const gchar
      *device_id, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_release_memory
      Src: /src/fwupd/src/fu-history.c:1745,1
    - Dst: sqlite3_db_release_memory
      Src: /src/fwupd/src/fu-history.c:1747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - FuHistory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1748
    functionName: fu_history_housekeeping_cb
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_db_release_memory
    - sqlite3_release_memory
    linkageType: ''
    returnType: void
    signature: void fu_history_housekeeping_cb(FuContext *ctx, FuHistory *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HISTORY
      Src: /src/fwupd/src/fu-history.c:1753,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-history.c:1755,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-history.c:1756,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-history.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1758
    functionName: fu_history_dispose
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_data
    - FU_HISTORY
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_history_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-history.c:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHistoryClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1766
    functionName: fu_history_class_init
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_history_class_init(FuHistoryClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHistory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1771
    functionName: fu_history_init
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_history_init(FuHistory *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HISTORY
      Src: /src/fwupd/src/fu-history.c:1776,1
    - Dst: sqlite3_close
      Src: /src/fwupd/src/fu-history.c:1778,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-history.c:1779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1780
    functionName: fu_history_finalize
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - FU_HISTORY
    - G_OBJECT_CLASS
    - sqlite3_close
    linkageType: ''
    returnType: void
    signature: void fu_history_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-history.c:1793,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-history.c:1794,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-history.c:1795,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-history.c:1795,1
    - Dst: FU_HISTORY
      Src: /src/fwupd/src/fu-history.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1797
    functionName: fu_history_new
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 8
    functionsReached:
    - g_object_ref
    - FU_HISTORY
    - g_object_new
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: FuHistory
    signature: 'FuHistory *

      fu_history_new(FuContext *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:25,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/src/fu-systemd.c:27,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-systemd.c:29,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/src/fu-systemd.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-systemd.c:41,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-systemd.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: fu_systemd_get_manager
    functionSourceFile: /src/fwupd/src/fu-systemd.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - g_autoptr
    - g_dbus_proxy_new_sync
    - g_bus_get_sync
    linkageType: ''
    returnType: GDBusProxy
    signature: 'GDBusProxy *

      fu_systemd_get_manager(GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:51,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/src/fu-systemd.c:53,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-systemd.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-systemd.c:61,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-systemd.c:64,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-systemd.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - proxy_manager
    - unit
    - error
    argTypes:
    - GDBusProxy*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: fu_systemd_unit_get_path
    functionSourceFile: /src/fwupd/src/fu-systemd.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_variant_get
    - g_steal_pointer
    - g_prefix_error
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_systemd_unit_get_path(GDBusProxy *proxy_manager, const gchar *unit, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:72,1
    - Dst: fu_systemd_unit_get_path
      Src: /src/fwupd/src/fu-systemd.c:74,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/src/fu-systemd.c:77,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/src/fu-systemd.c:77,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-systemd.c:86,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-systemd.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - proxy_manager
    - unit
    - error
    argTypes:
    - GDBusProxy*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: fu_systemd_unit_get_proxy
    functionSourceFile: /src/fwupd/src/fu-systemd.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - g_dbus_proxy_get_connection
    - g_autoptr
    - g_dbus_proxy_new_sync
    - fu_systemd_unit_get_path
    linkageType: ''
    returnType: GDBusProxy
    signature: 'GDBusProxy *

      fu_systemd_unit_get_proxy(GDBusProxy *proxy_manager, const gchar *unit, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-systemd.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-systemd.c:99,1
    - Dst: fu_systemd_get_manager
      Src: /src/fwupd/src/fu-systemd.c:101,1
    - Dst: fu_systemd_unit_get_proxy
      Src: /src/fwupd/src/fu-systemd.c:104,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/src/fu-systemd.c:107,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-systemd.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - unit
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: fu_systemd_unit_stop
    functionSourceFile: /src/fwupd/src/fu-systemd.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_call_sync
    - fu_systemd_get_manager
    - fu_systemd_unit_get_proxy
    - g_autoptr
    - g_return_val_if_fail
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_systemd_unit_stop(const gchar *unit, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:49,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-remote-list.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: fu_remote_list_emit_changed
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_emit_changed(FuRemoteList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:56,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-remote-list.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: fu_remote_list_emit_added
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_emit_added(FuRemoteList *self, FwupdRemote *remote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:63,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:63,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:64,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:65,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-remote-list.c:67,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - lvfs_metadata_format
    argTypes:
    - FuRemoteList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: fu_remote_list_set_lvfs_metadata_format
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 1
    functionsReached:
    - FU_IS_REMOTE_LIST
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_set_lvfs_metadata_format(FuRemoteList *self, const
      gchar *lvfs_metadata_format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:79,1
    - Dst: g_file_get_path
      Src: /src/fwupd/src/fu-remote-list.c:80,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:81,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:82,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-remote-list.c:83,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: fu_remote_list_monitor_changed_cb
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_remote_list_emit_changed
    - g_file_get_path
    - fu_remote_list_reload
    - FU_REMOTE_LIST
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: void
    signature: "void fu_remote_list_monitor_changed_cb(GFileMonitor *monitor,\n\t\t\t\t
      \ GFile *file,\n\t\t\t\t  GFile *other_file,\n\t\t\t\t  GFileMonitorEvent event_type,\n\t\t\t\t
      \ gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:91,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:93,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-list.c:93,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-remote-list.c:94,1
    - Dst: g_file_query_info
      Src: /src/fwupd/src/fu-remote-list.c:96,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/src/fu-remote-list.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - remote
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: _fwupd_remote_get_mtime
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_file_query_info
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - g_file_query_exists
    - fwupd_remote_get_filename_cache
    - g_autoptr
    linkageType: ''
    returnType: guint64
    signature: guint64 _fwupd_remote_get_mtime(FwupdRemote *remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inotify_init
      Src: /src/fwupd/src/fu-remote-list.c:117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:119,1
    - Dst: inotify_add_watch
      Src: /src/fwupd/src/fu-remote-list.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:125,1
    - Dst: inotify_rm_watch
      Src: /src/fwupd/src/fu-remote-list.c:127,1
    - Dst: close
      Src: /src/fwupd/src/fu-remote-list.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: fu_remote_list_fixup_inotify_error
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - inotify_rm_watch
    - inotify_init
    - g_prefix_error
    - inotify_add_watch
    - close
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_fixup_inotify_error(GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:137,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:137,1
    - Dst: g_file_monitor
      Src: /src/fwupd/src/fu-remote-list.c:140,1
    - Dst: fu_remote_list_fixup_inotify_error
      Src: /src/fwupd/src/fu-remote-list.c:142,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-remote-list.c:145,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/src/fu-remote-list.c:145,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-remote-list.c:147,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-remote-list.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: fu_remote_list_add_inotify
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - G_FILE_MONITOR
    - g_file_new_for_path
    - g_file_monitor
    - g_autoptr
    - g_signal_connect
    - g_ptr_array_add
    - G_CALLBACK
    - fu_remote_list_fixup_inotify_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_add_inotify(FuRemoteList *self, const gchar
      *filename, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:156,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:160,1
    - Dst: _
      Src: /src/fwupd/src/fu-remote-list.c:163,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:166,1
    - Dst: _
      Src: /src/fwupd/src/fu-remote-list.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 171
    functionName: _fwupd_remote_get_agreement_default
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - _
    - g_string_new
    linkageType: ''
    returnType: GString
    signature: 'GString *

      _fwupd_remote_get_agreement_default(FwupdRemote *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:178,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-remote-list.c:181,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:185,1
    - Dst: xb_node_export
      Src: /src/fwupd/src/fu-remote-list.c:192,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - component
    - error
    argTypes:
    - FwupdRemote*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: _fwupd_remote_get_agreement_for_app
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_string_new
    - xb_node_export
    - g_autoptr
    - xb_node_query_first
    linkageType: ''
    returnType: GString
    signature: 'GString *

      _fwupd_remote_get_agreement_for_app(FwupdRemote *self, XbNode *component, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-remote-list.c:201,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - remote
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: _fwupd_remote_build_component_id
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      _fwupd_remote_build_component_id(FwupdRemote *remote)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:208,1
    - Dst: g_strrstr
      Src: /src/fwupd/src/fu-remote-list.c:209,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: fu_remote_list_get_last_ext
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strrstr
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_remote_list_get_last_ext(const gchar *filename)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_remote_list_get_last_ext
      Src: /src/fwupd/src/fu-remote-list.c:218,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-remote-list.c:219,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote-list.c:222,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - fn
    argTypes:
    - FuRemoteList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: fu_remote_list_remote_filename_cache_fn_is_obsolete
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_path_get_basename
    - g_strcmp0
    - g_str_has_prefix
    - fu_remote_list_get_last_ext
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_remote_filename_cache_fn_is_obsolete(FuRemoteList
      *self, const gchar *fn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-list.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:236,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-remote-list.c:245,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-remote-list.c:246,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:252,1
    - Dst: fu_remote_list_remote_filename_cache_fn_is_obsolete
      Src: /src/fwupd/src/fu-remote-list.c:253,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:254,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-remote-list.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 268
    functionName: fu_remote_list_cleanup_lvfs_remote
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_unlink
    - g_path_get_dirname
    - fwupd_remote_get_filename_cache
    - g_ptr_array_index
    - fu_remote_list_remote_filename_cache_fn_is_obsolete
    - g_autoptr
    - g_info
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_cleanup_lvfs_remote(FuRemoteList *self, FwupdRemote
      *remote, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:273,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:273,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:274,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote-list.c:274,1
    - Dst: fu_remote_list_emit_added
      Src: /src/fwupd/src/fu-remote-list.c:275,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-remote-list.c:276,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-remote-list.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: fu_remote_list_add_remote
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_remote_list_emit_added
    - FWUPD_IS_REMOTE
    - FU_IS_REMOTE_LIST
    - g_return_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_add_remote(FuRemoteList *self, FwupdRemote *remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:282,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-remote-list.c:283,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:283,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:285,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-remote-list.c:286,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - remote
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: fu_remote_list_is_remote_origin_lvfs
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_metadata_uri
    - g_strstr_len
    - fwupd_remote_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_is_remote_origin_lvfs(FwupdRemote *remote)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:296,1
    - Dst: fu_remote_new
      Src: /src/fwupd/src/fu-remote-list.c:296,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:299,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-list.c:300,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:303,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-list.c:304,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:305,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:310,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:310,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:312,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:313,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-remote-list.c:314,1
    - Dst: fu_remote_list_is_remote_origin_lvfs
      Src: /src/fwupd/src/fu-remote-list.c:319,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:320,1
    - Dst: fu_remote_list_get_last_ext
      Src: /src/fwupd/src/fu-remote-list.c:321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:323,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:323,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-remote-list.c:325,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:326,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:327,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:328,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:329,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:330,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:333,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-list.c:338,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:339,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-list.c:344,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-list.c:345,1
    - Dst: fu_remote_list_is_remote_origin_lvfs
      Src: /src/fwupd/src/fu-remote-list.c:346,1
    - Dst: fu_remote_list_cleanup_lvfs_remote
      Src: /src/fwupd/src/fu-remote-list.c:347,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:352,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:354,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-list.c:354,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-list.c:358,1
    - Dst: _fwupd_remote_build_component_id
      Src: /src/fwupd/src/fu-remote-list.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:362,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-remote-list.c:380,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-remote-list.c:381,1
    - Dst: _fwupd_remote_get_agreement_for_app
      Src: /src/fwupd/src/fu-remote-list.c:384,1
    - Dst: _fwupd_remote_get_agreement_default
      Src: /src/fwupd/src/fu-remote-list.c:386,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-remote-list.c:392,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-remote-list.c:393,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:395,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:396,1
    - Dst: fwupd_remote_set_mtime
      Src: /src/fwupd/src/fu-remote-list.c:401,1
    - Dst: _fwupd_remote_get_mtime
      Src: /src/fwupd/src/fu-remote-list.c:401,1
    - Dst: fu_remote_list_add_remote
      Src: /src/fwupd/src/fu-remote-list.c:402,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 406
    functionName: fu_remote_list_add_for_file
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_remote_list_get_by_id
    - g_prefix_error
    - fwupd_remote_get_filename_cache
    - _fwupd_remote_get_mtime
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - fu_path_from_kind
    - fwupd_remote_setup
    - fu_remote_list_add_inotify
    - _fwupd_remote_get_agreement_default
    - fwupd_remote_get_kind
    - g_debug
    - g_string_replace
    - fu_remote_new
    - fu_remote_list_cleanup_lvfs_remote
    - fu_remote_load_from_filename
    - fu_remote_list_is_remote_origin_lvfs
    - _fwupd_remote_build_component_id
    - g_info
    - xb_silo_query_first
    - fwupd_remote_get_filename_source
    - fwupd_remote_get_id
    - g_autoptr
    - _fwupd_remote_get_agreement_for_app
    - g_get_os_info
    - G_N_ELEMENTS
    - fu_remote_list_add_remote
    - fwupd_remote_set_metadata_uri
    - fwupd_remote_set_mtime
    - g_strdup_printf
    - fwupd_remote_set_remotes_dir
    - g_strdup
    - g_strcmp0
    - fu_remote_list_get_last_ext
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_add_for_file(FuRemoteList *self, const gchar
      *filename, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:412,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:414,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-remote-list.c:415,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:416,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:419,1
    - Dst: fu_path_glob
      Src: /src/fwupd/src/fu-remote-list.c:421,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:425,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-list.c:426,1
    - Dst: fu_remote_list_add_for_file
      Src: /src/fwupd/src/fu-remote-list.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 432
    functionName: fu_remote_list_add_for_path
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_build_filename
    - fu_remote_list_add_for_file
    - g_ptr_array_index
    - fu_path_glob
    - g_str_has_suffix
    - g_file_test
    - g_autoptr
    - fu_remote_list_add_inotify
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_add_for_path(FuRemoteList *self, const gchar
      *path, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:446,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-remote-list.c:446,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:449,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:451,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-remote-list.c:460,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/src/fu-remote-list.c:461,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:462,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote-list.c:465,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:466,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote-list.c:468,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote-list.c:471,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-remote-list.c:472,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-remote-list.c:473,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:475,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:478,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-remote-list.c:479,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:481,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote-list.c:482,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-remote-list.c:485,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-remote-list.c:485,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:489,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-list.c:493,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:494,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - self
    - remote_id
    - key
    - value
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 499
    functionName: fu_remote_list_set_key_value
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_key_file_set_string
    - fu_remote_list_get_by_id
    - g_key_file_new
    - g_prefix_error
    - g_key_file_load_from_file
    - g_propagate_error
    - fu_path_from_kind
    - g_set_error
    - fu_path_mkdir_parent
    - fu_remote_load_from_filename
    - g_info
    - fu_remote_list_emit_changed
    - g_steal_pointer
    - g_error_matches
    - fwupd_remote_get_filename_source
    - g_build_filename
    - g_key_file_save_to_file
    - g_autoptr
    - g_path_get_basename
    - g_strdup
    - g_strcmp0
    - g_key_file_get_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_remote_list_set_key_value(FuRemoteList *self,\n\t\t\t
      \    const gchar *remote_id,\n\t\t\t     const gchar *key,\n\t\t\t     const
      gchar *value,\n\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:508,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:508,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:510,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:510,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:514,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:514,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: fu_remote_list_sort_cb
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_priority
    - g_strcmp0
    - fwupd_remote_get_id
    linkageType: ''
    returnType: gint
    signature: gint fu_remote_list_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:523,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote-list.c:524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:529,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:529,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:530,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:533,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:535,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:538,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:538,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:540,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:541,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:542,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-remote-list.c:543,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:543,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 548
    functionName: fu_remote_list_depsolve_order_before
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_priority
    - g_debug
    - fu_remote_list_get_by_id
    - fwupd_remote_get_priority
    - g_ptr_array_index
    - fwupd_remote_get_order_before
    - fwupd_remote_get_id
    - g_strcmp0
    linkageType: ''
    returnType: guint
    signature: guint fu_remote_list_depsolve_order_before(FuRemoteList *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:556,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote-list.c:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:562,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:562,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:563,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:566,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:568,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:571,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:571,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:573,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:574,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:575,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-remote-list.c:576,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:576,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 581
    functionName: fu_remote_list_depsolve_order_after
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_priority
    - g_debug
    - fwupd_remote_get_order_after
    - fu_remote_list_get_by_id
    - fwupd_remote_get_priority
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_strcmp0
    linkageType: ''
    returnType: guint
    signature: guint fu_remote_list_depsolve_order_after(FuRemoteList *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:590,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:590,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-remote-list.c:593,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-remote-list.c:594,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:597,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:598,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:600,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:601,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:603,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:604,1
    - Dst: fu_remote_list_depsolve_order_before
      Src: /src/fwupd/src/fu-remote-list.c:610,1
    - Dst: fu_remote_list_depsolve_order_after
      Src: /src/fwupd/src/fu-remote-list.c:611,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-remote-list.c:616,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-remote-list.c:624,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:628,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-list.c:629,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-remote-list.c:632,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:633,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:635,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:636,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:638,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRemoteList*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 583
    functionDepth: 5
    functionLinenumber: 583
    functionLinenumberEnd: 642
    functionName: fu_remote_list_reload
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - g_info
    - g_string_new
    - fu_remote_list_add_for_path
    - g_ptr_array_sort
    - fu_remote_list_depsolve_order_after
    - fu_remote_list_depsolve_order_before
    - g_set_error_literal
    - g_ptr_array_index
    - g_ptr_array_set_size
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_remote_get_priority
    - fwupd_remote_has_flag
    - fu_path_from_kind
    - g_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_reload(FuRemoteList *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:650,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:653,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:654,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-remote-list.c:655,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:658,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-remote-list.c:659,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-remote-list.c:662,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-list.c:663,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:664,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:665,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:665,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:666,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-remote-list.c:666,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-remote-list.c:667,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-remote-list.c:672,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-remote-list.c:675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - builder
    - error
    argTypes:
    - XbBuilder*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 679
    functionName: fu_remote_list_load_metainfos
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_dir_read_name
    - g_file_new_for_path
    - g_build_filename
    - xb_builder_import_source
    - g_dir_open
    - xb_builder_source_load_file
    - g_str_has_suffix
    - g_file_test
    - g_autoptr
    - xb_builder_source_new
    - fu_path_from_kind
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_load_metainfos(XbBuilder *builder, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:684,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:684,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:695,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuRemoteList*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 681
    functionDepth: 6
    functionLinenumber: 681
    functionLinenumberEnd: 701
    functionName: fu_remote_list_set_testing_remote_enabled
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_remote_list_reload
    - fu_remote_list_emit_changed
    - FU_IS_REMOTE_LIST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_set_testing_remote_enabled(FuRemoteList *self,
      gboolean enable, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_get_language_names
      Src: /src/fwupd/src/fu-remote-list.c:706,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:707,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:708,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-remote-list.c:708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:712,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:712,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:713,1
    - Dst: fu_remote_list_load_metainfos
      Src: /src/fwupd/src/fu-remote-list.c:724,1
    - Dst: xb_builder_add_locale
      Src: /src/fwupd/src/fu-remote-list.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:737,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/src/fu-remote-list.c:738,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-remote-list.c:742,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:743,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:744,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/src/fu-remote-list.c:746,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuRemoteList*
    - FuRemoteListLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 703
    functionDepth: 6
    functionLinenumber: 703
    functionLinenumberEnd: 752
    functionName: fu_remote_list_load
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 1
    functionsReached:
    - fu_remote_list_load_metainfos
    - xb_builder_new
    - g_build_filename
    - g_file_new_for_path
    - g_file_new_tmp
    - fu_remote_list_reload
    - FU_IS_REMOTE_LIST
    - fu_path_from_kind
    - xb_builder_ensure
    - g_autoptr
    - g_get_language_names
    - g_return_val_if_fail
    - xb_builder_add_locale
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_load(FuRemoteList *self, FuRemoteListLoadFlags
      flags, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:757,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 759
    functionName: fu_remote_list_get_all
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REMOTE_LIST
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_remote_list_get_all(FuRemoteList *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:764,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:764,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:766,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:767,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - remote_id
    argTypes:
    - FuRemoteList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 771
    functionName: fu_remote_list_get_by_id
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 5
    functionsReached:
    - FU_IS_REMOTE_LIST
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_remote_list_get_by_id(FuRemoteList *self, const gchar *remote_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:776,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-remote-list.c:786,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:787,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-remote-list.c:800,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRemoteListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 810
    functionName: fu_remote_list_class_init
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_class_init(FuRemoteListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/src/fu-remote-list.c:815,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - monitor
    argTypes:
    - GFileMonitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 817
    functionName: fu_remote_list_monitor_unref
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_file_monitor_cancel
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_monitor_unref(GFileMonitor *monitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-remote-list.c:822,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-remote-list.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: fu_remote_list_init
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_init(FuRemoteList *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:830,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:832,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-remote-list.c:833,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-remote-list.c:834,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-remote-list.c:835,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 837
    functionName: fu_remote_list_finalize
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_REMOTE_LIST
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-remote-list.c:843,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 845
    functionName: fu_remote_list_new
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 1
    functionsReached:
    - FU_REMOTE_LIST
    - g_object_new
    linkageType: ''
    returnType: FuRemoteList
    signature: 'FuRemoteList *

      fu_remote_list_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: fu_engine_get_loaded
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_loaded(FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:174,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:177,1
    - Dst: fu_engine_update_motd
      Src: /src/fwupd/src/fu-engine.c:181,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: fu_engine_update_motd_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_idle_has_inhibit
    - fu_engine_update_motd
    - FU_ENGINE
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_motd_timeout_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:190,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:192,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-engine.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: fu_engine_update_motd_reset
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_timeout_add_seconds
    - g_source_remove
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_update_motd_reset(FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:201,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:207,1
    - Dst: fu_engine_idle_reset
      Src: /src/fwupd/src/fu-engine.c:208,1
    - Dst: fu_engine_config_get_update_motd
      Src: /src/fwupd/src/fu-engine.c:211,1
    - Dst: fu_engine_update_motd_reset
      Src: /src/fwupd/src/fu-engine.c:212,1
    - Dst: fu_engine_update_devices_file
      Src: /src/fwupd/src/fu-engine.c:215,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: fu_engine_emit_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_engine_update_devices_file
    - fu_engine_idle_reset
    - fu_engine_config_get_update_motd
    - fu_engine_update_motd_reset
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_emit_changed(FuEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:227,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: fu_engine_emit_device_changed_safe
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_security_attrs_remove_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_emit_device_changed_safe(FuEngine *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:236,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:239,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:241,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - device_id
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 245
    functionName: fu_engine_emit_device_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_list_get_by_id
    - fu_engine_emit_device_changed_safe
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_emit_device_changed(FuEngine *self, const gchar *device_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: fu_engine_get_context
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_engine_get_context(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuEngine*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: fu_engine_set_status
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_status(FuEngine *self, FwupdStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:263,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-engine.c:264,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:264,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:265,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:266,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:269,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - self
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: fu_engine_generic_notify_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_engine_emit_device_changed
    - fu_idle_has_inhibit
    - fu_device_get_id
    - g_hash_table_contains
    linkageType: ''
    returnType: void
    signature: void fu_engine_generic_notify_cb(FuDevice *device, GParamSpec *pspec,
      FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:278,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:278,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-engine.c:278,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:279,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-engine.c:279,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:279,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:283,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:283,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:284,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:285,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:290,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:290,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:291,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:292,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:297,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:298,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - device
    - device_tmp
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 300
    functionName: fu_engine_ensure_device_problem_priority_full
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_get_priority
    - fu_device_remove_problem
    - fu_device_get_equivalent_id
    - fu_device_get_id
    - g_strcmp0
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: "void fu_engine_ensure_device_problem_priority_full(FuEngine *self,\n\t\t\t\t\t
      \     FuDevice *device,\n\t\t\t\t\t      FuDevice *device_tmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:305,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:305,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:308,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:308,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:308,1
    - Dst: fu_engine_ensure_device_problem_priority_full
      Src: /src/fwupd/src/fu-engine.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: fu_engine_ensure_device_problem_priority
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_problem_priority_full
    - g_ptr_array_index
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_problem_priority(FuEngine *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_ensure_device_problem_priority
      Src: /src/fwupd/src/fu-engine.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - self
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: fu_engine_device_equivalent_id_notify_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_problem_priority
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_equivalent_id_notify_cb(FuDevice *device, GParamSpec
      *pspec, FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:325,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:326,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:328,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:330,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:331,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:336,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - pspec
    - self
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: fu_engine_history_notify_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_engine_emit_device_changed
    - g_error_matches
    - fu_history_modify_device
    - g_autoptr
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_notify_cb(FuDevice *device, GParamSpec *pspec,
      FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:342,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-engine.c:342,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - request
    - self
    argTypes:
    - FuDevice*
    - FwupdRequest*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: fu_engine_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_info
    - fwupd_request_get_message
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_request_cb(FuDevice *device, FwupdRequest *request,
      FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:349,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - emulator_phase
    argTypes:
    - FuEngine*
    - FuEngineEmulatorPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: fu_engine_set_emulator_phase
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emulator_phase_to_string
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_emulator_phase(FuEngine *self, FuEngineEmulatorPhase
      emulator_phase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:356,1
    - Dst: fu_device_list_get_old
      Src: /src/fwupd/src/fu-engine.c:356,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:358,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:359,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:360,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:362,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:364,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:366,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:368,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:370,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:372,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:374,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:376,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:378,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:380,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:382,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:384,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:386,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:388,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:390,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 394
    functionName: fu_engine_watch_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_func
    - FU_DEVICE
    - g_autoptr
    - fu_device_list_get_old
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: void
    signature: void fu_engine_watch_device(FuEngine *self, FuDevice *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_ignore_power
      Src: /src/fwupd/src/fu-engine.c:399,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:402,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:403,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:404,1
    - Dst: fu_power_state_is_ac
      Src: /src/fwupd/src/fu-engine.c:405,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:405,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:406,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:408,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:410,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:411,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:412,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:413,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:414,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:415,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:415,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:416,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:418,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 420
    functionName: fu_engine_ensure_device_power_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_problem
    - fu_context_get_power_state
    - fu_device_is_updatable
    - fu_context_get_battery_threshold
    - fu_engine_config_get_ignore_power
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_power_state_is_ac
    - fu_context_get_battery_level
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_power_inhibit(FuEngine *self, FuDevice
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:425,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:426,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:427,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/src/fu-engine.c:428,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:429,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: fu_engine_ensure_device_lid_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_get_lid_state
    - fu_device_remove_problem
    - fu_device_is_updatable
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_lid_inhibit(FuEngine *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:438,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:439,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:440,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/src/fu-engine.c:441,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:442,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: fu_engine_ensure_device_display_required_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_problem
    - fu_context_get_display_state
    - fu_device_is_updatable
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_display_required_inhibit(FuEngine *self,
      FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:451,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:453,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:454,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:455,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:456,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: fu_engine_ensure_device_maybe_remove_affects_fde
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_has_flag
    - fu_device_remove_flag
    - fu_device_get_id
    - fu_context_has_flag
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_maybe_remove_affects_fde(FuEngine *self,
      FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:464,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:465,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:466,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: fu_engine_ensure_device_system_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_context_has_flag
    - fu_device_remove_problem
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_system_inhibit(FuEngine *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:475,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:476,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-engine.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 480
    functionName: fu_engine_acquiesce_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - g_info
    - FU_ENGINE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_acquiesce_timeout_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_is_running
      Src: /src/fwupd/src/fu-engine.c:485,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:487,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:489,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-engine.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: fu_engine_acquiesce_reset
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_main_loop_is_running
    - g_source_remove
    - g_info
    - g_timeout_add
    linkageType: ''
    returnType: void
    signature: void fu_engine_acquiesce_reset(FuEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-engine.c:500,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-engine.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - acquiesce_delay
    argTypes:
    - FuEngine*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: fu_engine_wait_for_acquiesce
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_main_loop_run
    - g_timeout_add
    linkageType: ''
    returnType: void
    signature: void fu_engine_wait_for_acquiesce(FuEngine *self, guint acquiesce_delay)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:507,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:508,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:509,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/src/fu-engine.c:510,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 6
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: fu_engine_ensure_context_flag_save_events
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_history_has_emulation_tag
    - fu_context_add_flag
    - fu_context_remove_flag
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_context_flag_save_events(FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_watch_device
      Src: /src/fwupd/src/fu-engine.c:519,1
    - Dst: fu_engine_ensure_device_problem_priority
      Src: /src/fwupd/src/fu-engine.c:520,1
    - Dst: fu_engine_ensure_device_power_inhibit
      Src: /src/fwupd/src/fu-engine.c:521,1
    - Dst: fu_engine_ensure_device_lid_inhibit
      Src: /src/fwupd/src/fu-engine.c:522,1
    - Dst: fu_engine_ensure_device_display_required_inhibit
      Src: /src/fwupd/src/fu-engine.c:523,1
    - Dst: fu_engine_ensure_device_system_inhibit
      Src: /src/fwupd/src/fu-engine.c:524,1
    - Dst: fu_engine_ensure_device_maybe_remove_affects_fde
      Src: /src/fwupd/src/fu-engine.c:525,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:526,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: fu_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_engine_ensure_device_lid_inhibit
    - fu_engine_acquiesce_reset
    - fu_engine_ensure_device_power_inhibit
    - fu_engine_watch_device
    - fu_engine_ensure_device_maybe_remove_affects_fde
    - fu_engine_ensure_device_display_required_inhibit
    - fu_engine_ensure_device_system_inhibit
    - fu_engine_ensure_device_problem_priority
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_added_cb(FuDeviceList *device_list, FuDevice
      *device, FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:533,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:535,1
    - Dst: fu_plugin_runner_device_removed
      Src: /src/fwupd/src/fu-engine.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: fu_engine_device_runner_device_removed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_plugin_list_get_all
    - fu_plugin_runner_device_removed
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_runner_device_removed(FuEngine *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_device_runner_device_removed
      Src: /src/fwupd/src/fu-engine.c:543,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:544,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:545,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: fu_engine_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_signal_handlers_disconnect_by_data
    - fu_engine_device_runner_device_removed
    - fu_engine_acquiesce_reset
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_removed_cb(FuDeviceList *device_list, FuDevice
      *device, FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_watch_device
      Src: /src/fwupd/src/fu-engine.c:552,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:553,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:553,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: fu_engine_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_acquiesce_reset
    - fu_engine_watch_device
    - fu_engine_emit_device_changed
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_changed_cb(FuDeviceList *device_list, FuDevice
      *device, FuEngine *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:561,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:573,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:577,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:578,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:578,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:581,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:581,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:582,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:582,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:584,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:586,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:591,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:592,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:594,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:594,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:595,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:599,1
    - Dst: fu_release_add_tag
      Src: /src/fwupd/src/fu-engine.c:600,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 606
    functionName: fu_engine_add_local_release_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_get_device
    - g_auto
    - xb_node_get_text
    - g_steal_pointer
    - xb_value_bindings_bind_str
    - g_error_matches
    - fu_release_get_version
    - fu_device_get_guids
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - xb_query_context_get_bindings
    - fwupd_error_convert
    - fu_release_add_tag
    - xb_silo_query_with_context
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_add_local_release_metadata(FuEngine *self, FuRelease
      *release, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:612,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:612,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:613,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-engine.c:613,1
    - Dst: fu_remote_list_add_remote
      Src: /src/fwupd/src/fu-engine.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuEngine*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 615
    functionName: fu_engine_add_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - FWUPD_IS_REMOTE
    - fu_remote_list_add_remote
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_remote(FuEngine *self, FwupdRemote *remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:621,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:621,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:625,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:627,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-engine.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - release
    - pspec
    - self
    argTypes:
    - FuRelease*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 631
    functionName: fu_engine_release_remote_id_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FWUPD_RELEASE
    - fwupd_release_get_remote_id
    - fu_remote_list_get_by_id
    - fu_release_set_remote
    linkageType: ''
    returnType: void
    signature: void fu_engine_release_remote_id_changed_cb(FuRelease *release, GParamSpec
      *pspec, FuEngine *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:636,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:637,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:639,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:640,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:642,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:643,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:644,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:647,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:648,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:648,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:649,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:652,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:653,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:653,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:654,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:657,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:658,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:658,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:659,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:662,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:663,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:663,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:664,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - report_trusted
    - report
    argTypes:
    - FwupdReport*
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 668
    functionName: fu_engine_compare_report_trusted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_report_get_vendor_id
    - fwupd_report_get_remote_id
    - fwupd_report_has_flag
    - g_strcmp0
    - fwupd_report_get_distro_version
    - fwupd_report_get_distro_id
    - fwupd_report_get_distro_variant
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_compare_report_trusted(FwupdReport *report_trusted,
      FwupdReport *report)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_reports
      Src: /src/fwupd/src/fu-engine.c:673,1
    - Dst: fu_engine_config_get_trusted_reports
      Src: /src/fwupd/src/fu-engine.c:674,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:677,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:679,1
    - Dst: fu_engine_compare_report_trusted
      Src: /src/fwupd/src/fu-engine.c:680,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:682,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:682,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:683,1
    - Dst: fu_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:684,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:685,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FuEngine*
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 692
    functionName: fu_engine_add_trusted_report
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_add_flag
    - fu_engine_config_get_trusted_reports
    - fwupd_codec_to_string
    - g_debug
    - FWUPD_CODEC
    - fu_release_get_version
    - fu_release_get_reports
    - g_ptr_array_index
    - fu_release_get_appstream_id
    - fu_engine_compare_report_trusted
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_trusted_report(FuEngine *self, FuRelease *release)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:703,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:703,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:704,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-engine.c:704,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:705,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-engine.c:705,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:706,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-engine.c:706,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:707,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-engine.c:707,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:708,1
    - Dst: fu_release_set_config
      Src: /src/fwupd/src/fu-engine.c:711,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:714,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:714,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:716,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine.c:720,1
    - Dst: fu_engine_config_get_ignore_requirements
      Src: /src/fwupd/src/fu-engine.c:724,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine.c:728,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:732,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:733,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-engine.c:735,1
    - Dst: fu_device_ensure_from_release
      Src: /src/fwupd/src/fu-engine.c:737,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine.c:742,1
    - Dst: fu_engine_add_local_release_metadata
      Src: /src/fwupd/src/fu-engine.c:746,1
    - Dst: fu_engine_add_trusted_report
      Src: /src/fwupd/src/fu-engine.c:750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 7
    argNames:
    - self
    - release
    - cabinet
    - component
    - rel
    - install_flags
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuCabinet*
    - XbNode*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 754
    functionName: fu_engine_load_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_device_ensure_from_release
    - XB_IS_NODE
    - fu_engine_add_trusted_report
    - fu_engine_config_get_ignore_requirements
    - g_return_val_if_fail
    - g_signal_connect
    - fu_release_has_flag
    - fu_release_get_device
    - fu_release_load
    - G_CALLBACK
    - FU_IS_ENGINE
    - fu_engine_requirements_check
    - fu_engine_add_local_release_metadata
    - FU_IS_CABINET
    - FU_RELEASE
    - fu_device_ensure_from_component
    - fu_release_check_version
    - FU_IS_RELEASE
    - fu_release_set_config
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_load_release(FuEngine *self,\n\t\t       FuRelease
      *release,\n\t\t       FuCabinet *cabinet,\n\t\t       XbNode *component,\n\t\t
      \      XbNode *rel,\n\t\t       FwupdInstallFlags install_flags,\n\t\t       GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:761,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:761,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:762,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:762,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:764,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:765,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:773,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:774,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - csum
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 784
    functionName: fu_engine_get_release_for_checksum
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_steal_pointer
    - xb_value_bindings_bind_str
    - g_autoptr
    - xb_query_context_get_bindings
    - xb_silo_query_first_with_context
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_get_release_for_checksum(FuEngine *self, const gchar *csum)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:792,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:793,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:797,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:798,1
    - Dst: fu_engine_get_release_for_checksum
      Src: /src/fwupd/src/fu-engine.c:800,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:803,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - FuEngine*
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 811
    functionName: fu_engine_get_remote_id_for_stream
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - G_IS_INPUT_STREAM
    - fu_input_stream_compute_checksum
    - xb_node_query_text
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - fu_engine_get_release_for_checksum
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_remote_id_for_stream(FuEngine *self, GInputStream *stream)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:827,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:829,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:829,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:830,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:831,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:834,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:840,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:840,1
    - Dst: fu_plugin_runner_unlock
      Src: /src/fwupd/src/fu-engine.c:845,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:849,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 852
    functionName: fu_engine_unlock
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_engine_emit_changed
    - fu_plugin_runner_unlock
    - fu_device_get_plugin
    - fu_device_list_get_by_id
    - g_autoptr
    - g_return_val_if_fail
    - fu_engine_emit_device_changed_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_unlock(FuEngine *self, const gchar *device_id, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_reset_defaults
      Src: /src/fwupd/src/fu-engine.c:858,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 859
    functionName: fu_engine_reset_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_CONFIG
    - fu_config_reset_defaults
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_reset_config(FuEngine *self, const gchar *section,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:870,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:870,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:871,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:872,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:873,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:874,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:877,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-engine.c:903,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:904,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/src/fu-engine.c:914,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:914,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:918,1
    - Dst: fu_remote_list_set_testing_remote_enabled
      Src: /src/fwupd/src/fu-engine.c:919,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:921,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:929,1
    - Dst: fu_plugin_runner_modify_config
      Src: /src/fwupd/src/fu-engine.c:932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - section
    - key
    - value
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 861
    functionDepth: 7
    functionLinenumber: 861
    functionLinenumberEnd: 933
    functionName: fu_engine_modify_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - g_set_error
    - fu_plugin_list_find_by_name
    - g_strv_contains
    - fu_plugin_runner_modify_config
    - fu_remote_list_set_testing_remote_enabled
    - g_strcmp0
    - g_return_val_if_fail
    - fu_engine_config_get_test_devices
    - FU_CONFIG
    - fu_config_set_value
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_config(FuEngine *self,\n\t\t\tconst gchar
      *section,\n\t\t\tconst gchar *key,\n\t\t\tconst gchar *value,\n\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-engine.c:968,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:969,1
    - Dst: fu_remote_list_set_key_value
      Src: /src/fwupd/src/fu-engine.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - remote_id
    - key
    - value
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 973
    functionName: fu_engine_modify_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - fu_remote_list_set_key_value
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_remote(FuEngine *self,\n\t\t\tconst gchar
      *remote_id,\n\t\t\tconst gchar *key,\n\t\t\tconst gchar *value,\n\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:982,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:984,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:990,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/src/fu-engine.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - key
    - value
    - force_ro
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 995
    functionName: fu_engine_modify_single_bios_setting
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fwupd_bios_setting_set_read_only
    - fu_context_get_bios_setting
    - fwupd_bios_setting_write_value
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_single_bios_setting(FuEngine *self,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     gboolean
      force_ro,\n\t\t\t\t     GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1014,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:1014,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1019,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1020,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1021,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine.c:1023,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine.c:1024,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1025,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1027,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1034,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/src/fu-engine.c:1035,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1036,1
    - Dst: fu_bios_setting_new
      Src: /src/fwupd/src/fu-engine.c:1036,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/src/fu-engine.c:1037,1
    - Dst: fu_bios_settings_add_attribute
      Src: /src/fwupd/src/fu-engine.c:1038,1
    - Dst: fu_engine_modify_single_bios_setting
      Src: /src/fwupd/src/fu-engine.c:1043,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1048,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1049,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1052,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1052,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1059,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/src/fu-engine.c:1065,1
    - Dst: fu_bios_settings_get_pending_reboot
      Src: /src/fwupd/src/fu-engine.c:1066,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1068,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - self
    - settings
    - force_ro
    - error
    argTypes:
    - FuEngine*
    - GHashTable*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1071
    functionName: fu_engine_modify_bios_settings
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_propagate_error
    - fu_bios_settings_get_pending_reboot
    - g_return_val_if_fail
    - g_set_error
    - fwupd_bios_setting_set_name
    - g_debug
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - fu_bios_settings_add_attribute
    - g_info
    - FU_IS_ENGINE
    - g_steal_pointer
    - g_error_matches
    - fu_bios_settings_get_attr
    - g_autoptr
    - fu_bios_setting_new
    - fu_context_get_bios_settings
    - g_set_error_literal
    - g_strcmp0
    - fu_engine_modify_single_bios_setting
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_bios_settings(FuEngine *self,\n\t\t\t       GHashTable
      *settings,\n\t\t\t       gboolean force_ro,\n\t\t\t       GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1079,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:1082,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1085,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:1086,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1089,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1092,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1093,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1097,1
    - Dst: fu_device_get_backend
      Src: /src/fwupd/src/fu-engine.c:1100,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1101,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1105,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1108,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:1109,1
    - Dst: fu_device_get_backend
      Src: /src/fwupd/src/fu-engine.c:1109,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1113,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1116,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1117,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1121,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1124,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:1125,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1126,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:1129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - self
    - device_id
    - flag
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FwupdDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1073
    functionDepth: 7
    functionLinenumber: 1073
    functionLinenumberEnd: 1137
    functionName: fu_engine_remove_device_flag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_history_remove_emulation_tag
    - fu_device_get_backend
    - fu_device_has_flag
    - fu_device_list_get_by_id
    - fu_device_remove_flag
    - fu_backend_device_removed
    - fu_history_modify_device
    - g_autoptr
    - fu_device_get_id
    - g_set_error_literal
    - fu_history_get_device_by_id
    - fu_engine_ensure_context_flag_save_events
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_remove_device_flag(FuEngine *self,\n\t\t\t     const
      gchar *device_id,\n\t\t\t     FwupdDeviceFlags flag,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1142,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/src/fu-engine.c:1142,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/src/fu-engine.c:1143,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/src/fu-engine.c:1144,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1144,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/src/fu-engine.c:1145,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:1146,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/src/fu-engine.c:1147,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1150
    functionName: fu_engine_emit_device_request_replug_and_install
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_autoptr
    - fu_device_get_id
    - fwupd_request_set_device_id
    - fwupd_request_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_emit_device_request_replug_and_install(FuEngine *self,
      FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1155,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/src/fu-engine.c:1155,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/src/fu-engine.c:1156,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/src/fu-engine.c:1157,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1157,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/src/fu-engine.c:1158,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:1159,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/src/fu-engine.c:1160,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1164
    functionName: fu_engine_emit_device_request_restart_daemon
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_autoptr
    - fu_device_get_id
    - fwupd_request_set_device_id
    - fwupd_request_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_emit_device_request_restart_daemon(FuEngine *self, FuDevice
      *device)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1172,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:1175,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:1178,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:1179,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1182,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1185,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1186,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1190,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1193,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1194,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1198,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:1201,1
    - Dst: fu_history_add_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:1202,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1202,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1204,1
    - Dst: fu_engine_emit_device_request_restart_daemon
      Src: /src/fwupd/src/fu-engine.c:1205,1
    - Dst: fu_engine_emit_device_request_replug_and_install
      Src: /src/fwupd/src/fu-engine.c:1207,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:1209,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - self
    - device_id
    - flag
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FwupdDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1166
    functionDepth: 7
    functionLinenumber: 1166
    functionLinenumberEnd: 1217
    functionName: fu_engine_add_device_flag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_history_add_emulation_tag
    - fu_engine_emit_device_request_restart_daemon
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_list_get_by_id
    - fu_engine_emit_device_request_replug_and_install
    - fu_history_modify_device
    - g_autoptr
    - fu_device_get_id
    - g_set_error_literal
    - fu_history_get_device_by_id
    - fu_engine_ensure_context_flag_save_events
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_add_device_flag(FuEngine *self,\n\t\t\t  const
      gchar *device_id,\n\t\t\t  FwupdDeviceFlags flag,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:1226,1
    - Dst: fu_engine_remove_device_flag
      Src: /src/fwupd/src/fu-engine.c:1227,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-engine.c:1229,1
    - Dst: fu_engine_add_device_flag
      Src: /src/fwupd/src/fu-engine.c:1232,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-engine.c:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - device_id
    - value
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1219
    functionDepth: 8
    functionLinenumber: 1219
    functionLinenumberEnd: 1236
    functionName: fu_engine_modify_device_flags
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_remove_device_flag
    - fu_engine_add_device_flag
    - g_str_has_prefix
    - fwupd_device_flag_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_device_flags(FuEngine *self,\n\t\t\t      const
      gchar *device_id,\n\t\t\t      const gchar *value,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1258,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1259,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1260,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1262,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1263,1
    - Dst: fu_engine_modify_device_flags
      Src: /src/fwupd/src/fu-engine.c:1264,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - key
    - value
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1251
    functionDepth: 9
    functionLinenumber: 1251
    functionLinenumberEnd: 1267
    functionName: fu_engine_modify_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - g_set_error
    - fu_engine_modify_device_flags
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_modify_device(FuEngine *self,\n\t\t\tconst gchar
      *device_id,\n\t\t\tconst gchar *key,\n\t\t\tconst gchar *value,\n\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - checksum_type
    argTypes:
    - GChecksumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1279
    functionName: fu_engine_checksum_type_to_string
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_checksum_type_to_string(GChecksumType checksum_type)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1302,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1303,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1304,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:1304,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1305,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1307,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1308,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1309,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1312,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1314,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1317,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:1320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1321,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:1325,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:1325,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:1330,1
    - Dst: fu_plugin_runner_verify
      Src: /src/fwupd/src/fu-engine.c:1332,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:1338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1343,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1351,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1352,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:1353,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1355,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1356,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1357,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-engine.c:1358,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1360,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1361,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1364,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1367,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-engine.c:1368,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1369,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1370,1
    - Dst: fu_engine_checksum_type_to_string
      Src: /src/fwupd/src/fu-engine.c:1373,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-engine.c:1377,1
    - Dst: xb_builder_import_node
      Src: /src/fwupd/src/fu-engine.c:1379,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:1382,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1383,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine.c:1384,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:1386,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine.c:1387,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1389,1
    - Dst: xb_silo_export_file
      Src: /src/fwupd/src/fu-engine.c:1392,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 63
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1397
    functionName: fu_engine_verify_update
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - xb_builder_new
    - xb_builder_import_node
    - fu_engine_checksum_type_to_string
    - xb_builder_node_insert
    - fu_device_get_plugin
    - fu_device_get_checksums
    - g_return_val_if_fail
    - fu_engine_emit_device_changed_safe
    - fu_path_from_kind
    - fwupd_error_convert
    - fu_plugin_list_find_by_name
    - fu_device_get_version
    - xb_builder_node_set_text
    - fu_path_mkdir_parent
    - g_file_new_for_path
    - g_ptr_array_index
    - FU_IS_ENGINE
    - fu_plugin_runner_verify
    - g_autoptr
    - fu_device_progress_new
    - fwupd_checksum_guess_kind
    - xb_builder_compile
    - fu_device_get_guids
    - g_strdup_printf
    - xb_silo_export_file
    - fu_device_list_get_by_id
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_verify_update(FuEngine *self,\n\t\t\tconst gchar
      *device_id,\n\t\t\tFuProgress *progress,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1403,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1404,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:1404,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/src/fu-engine.c:1410,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:1411,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:1411,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:1412,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1417,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1418,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:1419,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1423
    functionName: fu_engine_get_component_by_guid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_object_ref
    - g_auto
    - xb_value_bindings_bind_str
    - g_error_matches
    - xb_query_context_set_flags
    - g_autoptr
    - xb_query_context_get_bindings
    - xb_silo_query_first_with_context
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_get_component_by_guid(FuEngine *self, const gchar *guid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:1428,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:1430,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1432,1
    - Dst: fu_engine_get_component_by_guid
      Src: /src/fwupd/src/fu-engine.c:1433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1438
    functionName: fu_engine_get_component_by_guids
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - fu_device_convert_instance_ids
    - fu_device_get_guids
    - fu_engine_get_component_by_guid
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_get_component_by_guids(FuEngine *self, FuDevice *device)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1446,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1447,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:1447,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1448,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:1448,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1449,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1450,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:1452,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1453,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1453,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:1454,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-engine.c:1455,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1456,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:1460,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1461,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:1464,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine.c:1465,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1467,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1470,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1471,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine.c:1472,1
    - Dst: g_object_set_data_full
      Src: /src/fwupd/src/fu-engine.c:1477,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-engine.c:1477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1479,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1482
    functionName: fu_engine_verify_from_local_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_version
    - xb_builder_compile
    - xb_silo_query_first
    - g_steal_pointer
    - xb_builder_new
    - g_file_new_for_path
    - g_file_query_exists
    - xb_builder_import_source
    - g_strdup_printf
    - g_object_set_data_full
    - xb_builder_source_load_file
    - xb_builder_source_new
    - g_autoptr
    - fu_device_get_id
    - G_OBJECT
    - fu_path_from_kind
    - fwupd_error_convert
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_verify_from_local_metadata(FuEngine *self, FuDevice *device, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:1487,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:1488,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1489,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:1492,1
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-engine.c:1499,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1505,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1507,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1508,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:1508,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:1511,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:1511,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:1512,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1514,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1515,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1516,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1519,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1519,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1520,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1524,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine.c:1525,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/src/fu-engine.c:1526,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:1527,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1527,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1528,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1535
    functionName: fu_engine_verify_from_system_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_version_compare
    - g_propagate_error
    - fwupd_error_convert
    - fu_error_convert
    - g_object_ref
    - g_debug
    - fu_device_get_version
    - xb_value_bindings_bind_str
    - xb_query_new_full
    - g_ptr_array_index
    - g_steal_pointer
    - g_error_matches
    - xb_node_get_attr
    - fu_version_parse_from_format
    - g_autoptr
    - xb_query_context_get_bindings
    - xb_silo_query_with_context
    - XB_QUERY_CONTEXT_INIT
    - fu_device_get_version_format
    - fu_device_get_guids
    - g_set_error_literal
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_verify_from_system_metadata(FuEngine *self, FuDevice *device, GError
      **error)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1552,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1553,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1554,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1554,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1555,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1556,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1558,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1558,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1559,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1560,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1563,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:1569,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:1569,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1574,1
    - Dst: fu_plugin_runner_verify
      Src: /src/fwupd/src/fu-engine.c:1575,1
    - Dst: fu_engine_verify_from_local_metadata
      Src: /src/fwupd/src/fu-engine.c:1584,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1586,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1587,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1588,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1588,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1595,1
    - Dst: fu_engine_verify_from_system_metadata
      Src: /src/fwupd/src/fu-engine.c:1596,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1598,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1599,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1600,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1600,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1606,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1610,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:1615,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1617,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1621,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1627,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1628,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1631,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:1635,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine.c:1637,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1638,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1638,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1639,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1640,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1640,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1643,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1644,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1645,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:1646,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1648,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1652,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1656,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1657,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:1659,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1661,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:1665,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1666,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1674
    functionName: fu_engine_verify
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fu_device_has_flag
    - g_propagate_error
    - xb_node_query_first
    - fu_device_get_plugin
    - fu_device_get_checksums
    - g_return_val_if_fail
    - g_set_error
    - fu_plugin_list_find_by_name
    - fu_device_get_version
    - xb_node_get_text
    - g_ptr_array_index
    - xb_string_append_union
    - fu_device_get_name
    - fu_engine_verify_from_system_metadata
    - FU_IS_ENGINE
    - g_steal_pointer
    - g_error_matches
    - fu_strjoin
    - fu_plugin_runner_verify
    - g_autoptr
    - fu_engine_verify_from_local_metadata
    - xb_node_query
    - fu_device_list_get_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_verify(FuEngine *self, const gchar *device_id, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_to_string
      Src: /src/fwupd/src/fu-engine.c:1679,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1681,1
    - Dst: fu_engine_config_get_only_trusted
      Src: /src/fwupd/src/fu-engine.c:1682,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:1683,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:1684,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:1685,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1695
    functionName: fu_engine_check_trust
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_debug
    - fu_release_to_string
    - g_build_filename
    - fu_engine_config_get_only_trusted
    - fu_path_from_kind
    - fu_release_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_check_trust(FuEngine *self, FuRelease *release,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-engine.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1701
    functionName: fu_engine_idle_reset
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - fu_idle_reset
    linkageType: ''
    returnType: void
    signature: void fu_engine_idle_reset(FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-engine.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuEngine*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1707
    functionName: fu_engine_idle_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_idle_inhibit
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_engine_idle_inhibit(FuEngine *self, FuIdleInhibit inhibit,
      const gchar *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-engine.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuEngine*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1713
    functionName: fu_engine_idle_uninhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_idle_uninhibit
    linkageType: ''
    returnType: void
    signature: void fu_engine_idle_uninhibit(FuEngine *self, guint32 token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1719,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1720,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1722,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:1724,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1728
    functionName: fu_engine_get_boot_time
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_auto
    - g_str_has_prefix
    - g_strsplit
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_boot_time(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1733,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:1733,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1735,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:1736,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1740
    functionName: fu_engine_get_cpu_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_device_has_private_flag
    - g_ptr_array_index
    - g_autoptr
    - fu_device_list_get_active
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_engine_get_cpu_device(FuEngine *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1745,1
    - Dst: fu_engine_get_cpu_device
      Src: /src/fwupd/src/fu-engine.c:1747,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1749,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine.c:1752,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:1752,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1753,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1756,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1758,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1759,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine.c:1759,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:1759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - hash
    argTypes:
    - FuEngine*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1760
    functionName: fu_engine_get_report_metadata_cpu_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup_printf
    - fu_engine_get_cpu_device
    - g_strdup
    - g_autoptr
    - fu_device_get_vendor
    - fu_device_get_name
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_report_metadata_cpu_device(FuEngine *self, GHashTable
      *hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_find_program_in_path
      Src: /src/fwupd/src/fu-engine.c:1767,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1768,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1779,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/src/fu-engine.c:1788,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1790,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:1793,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1794,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:1794,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1795,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1796,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1797,1
    - Dst: g_strstrip
      Src: /src/fwupd/src/fu-engine.c:1797,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1801,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1801,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1801,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-engine.c:1815,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1817,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1818,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1819,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1824
    functionName: fu_engine_get_report_metadata_os_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_auto
    - g_str_has_prefix
    - strlen
    - g_find_program_in_path
    - g_steal_pointer
    - g_strsplit
    - g_strstrip
    - g_spawn_command_line_sync
    - g_set_error_literal
    - g_strdup
    - g_get_os_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_os_release(GHashTable *hash,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1830,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1831,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1832,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:1832,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1835,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1837,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1840,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1843,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine.c:1844,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:1848,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1855,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1855,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-engine.c:1855,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1858
    functionName: fu_engine_load_os_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_file_get_contents
    - g_auto
    - strlen
    - g_steal_pointer
    - g_hash_table_new_full
    - g_strsplit
    - g_strv_length
    - g_strdup
    - g_autoptr
    - g_strndup
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_engine_load_os_release(const gchar *filename, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1864,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:1871,1
    - Dst: fu_engine_load_os_release
      Src: /src/fwupd/src/fu-engine.c:1873,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:1877,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1879,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1879,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1882
    functionName: fu_engine_get_report_metadata_lsb_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - g_file_test
    - g_autoptr
    - g_hash_table_lookup
    - fu_engine_load_os_release
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_lsb_release(GHashTable *hash,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_get_kernel_cmdline
      Src: /src/fwupd/src/fu-engine.c:1888,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1892,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1892,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1894
    functionName: fu_engine_get_report_metadata_kernel_cmdline
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_common_get_kernel_cmdline
    - g_strdup
    - g_steal_pointer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_kernel_cmdline(GHashTable *hash,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:1900,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:1901,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:1903,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1904,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1907,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1909,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1910,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1910,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1910,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1913,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1913,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1915
    functionName: fu_engine_get_report_metadata_selinux
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_file_get_contents
    - g_debug
    - g_build_filename
    - g_strdup
    - g_file_test
    - g_strcmp0
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_selinux(GHashTable *hash, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1920,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1920,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - key
    - value
    argTypes:
    - GHashTable*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1921
    functionName: fu_engine_add_report_metadata_bool
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_report_metadata_bool(GHashTable *hash, const gchar
      *key, gboolean value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1927,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:1930,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:1934,1
    - Dst: passim_client_load
      Src: /src/fwupd/src/fu-engine.c:1938,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1939,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:1940,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:1941,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:1943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1945
    functionName: fu_engine_ensure_passim_client
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - passim_client_get_version
    - fu_engine_add_runtime_version
    - passim_client_load
    - g_autoptr
    - fu_engine_config_get_p2p_policy
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_passim_client(FuEngine *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-engine.c:1951,1
    - Dst: fu_context_get_compile_versions
      Src: /src/fwupd/src/fu-engine.c:1952,1
    - Dst: fu_context_get_runtime_versions
      Src: /src/fwupd/src/fu-engine.c:1953,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1960,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1961,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:1961,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1962,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:1962,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:1965,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:1968,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1969,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1970,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1971,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:1975,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1976,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1977,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1978,1
    - Dst: fu_engine_get_report_metadata_cpu_device
      Src: /src/fwupd/src/fu-engine.c:1980,1
    - Dst: fu_engine_get_report_metadata_os_release
      Src: /src/fwupd/src/fu-engine.c:1981,1
    - Dst: fu_engine_get_report_metadata_lsb_release
      Src: /src/fwupd/src/fu-engine.c:1983,1
    - Dst: fu_engine_get_report_metadata_kernel_cmdline
      Src: /src/fwupd/src/fu-engine.c:1985,1
    - Dst: fu_engine_get_report_metadata_selinux
      Src: /src/fwupd/src/fu-engine.c:1987,1
    - Dst: fu_efivars_space_used
      Src: /src/fwupd/src/fu-engine.c:1991,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1993,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1994,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1995,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/src/fu-engine.c:1997,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1999,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2000,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2001,1
    - Dst: fu_engine_add_report_metadata_bool
      Src: /src/fwupd/src/fu-engine.c:2006,1
    - Dst: fu_engine_add_report_metadata_bool
      Src: /src/fwupd/src/fu-engine.c:2008,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:2012,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2014,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2014,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2014,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:2018,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2019,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2021,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2022,1
    - Dst: passim_client_get_download_saving
      Src: /src/fwupd/src/fu-engine.c:2023,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2027,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:2046,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2048,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2048,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2048,1
    - Dst: memset
      Src: /src/fwupd/src/fu-engine.c:2054,1
    - Dst: uname
      Src: /src/fwupd/src/fu-engine.c:2055,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2056,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2056,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2056,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2057,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2057,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2057,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2058,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2058,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2058,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2064,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2065,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2066,1
    - Dst: getauxval
      Src: /src/fwupd/src/fu-engine.c:2066,1
    - Dst: fu_engine_get_boot_time
      Src: /src/fwupd/src/fu-engine.c:2070,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2072,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2072,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2075,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2077,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2078,1
    - Dst: fu_power_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2078,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:2078,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2079,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2081,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2082,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2082,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/src/fu-engine.c:2082,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2083,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2084,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2085,1
    - Dst: fu_lid_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2085,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/src/fu-engine.c:2085,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2086,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2087,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2088,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2088,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2089,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2090,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2091,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2091,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2093,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 1948
    functionDepth: 3
    functionLinenumber: 1948
    functionLinenumberEnd: 2094
    functionName: fu_engine_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - g_hash_table_insert
    - fu_display_state_to_string
    - fu_context_get_lid_state
    - passim_client_get_download_saving
    - fu_engine_get_report_metadata_kernel_cmdline
    - fu_engine_add_report_metadata_bool
    - fu_engine_get_report_metadata_cpu_device
    - fu_engine_ensure_passim_client
    - fu_context_has_flag
    - uname
    - g_hash_table_get_keys
    - fu_context_get_display_state
    - fu_context_get_battery_threshold
    - fu_context_get_hwid_value
    - memset
    - fu_context_get_battery_level
    - fu_engine_get_boot_time
    - fu_context_get_power_state
    - g_steal_pointer
    - g_hash_table_new_full
    - getauxval
    - g_autoptr
    - fu_engine_config_get_host_bkc
    - fu_lid_state_to_string
    - fu_engine_get_report_metadata_lsb_release
    - fu_engine_get_report_metadata_selinux
    - fu_efivars_space_used
    - fu_power_state_to_string
    - fu_efivars_space_free
    - fu_context_get_compile_versions
    - g_strdup_printf
    - fu_engine_get_report_metadata_os_release
    - fu_context_get_efivars
    - g_strdup
    - g_hash_table_lookup
    - fu_context_get_runtime_versions
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_engine_get_report_metadata(FuEngine *self, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2116,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2117,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2121,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2129,1
    - Dst: fu_plugin_runner_composite_prepare
      Src: /src/fwupd/src/fu-engine.c:2130,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2135,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:2136,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2144,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuEngine*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2151
    functionName: fu_engine_composite_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_emulator_save_phase
    - fu_plugin_runner_composite_prepare
    - fu_engine_emulator_load_phase
    - g_prefix_error
    - g_ptr_array_index
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - fu_plugin_list_get_all
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_composite_prepare(FuEngine *self, GPtrArray *devices,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2166,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2171,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2172,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2176,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2184,1
    - Dst: fu_plugin_runner_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2185,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2190,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:2191,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2199,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuEngine*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2163
    functionDepth: 1
    functionLinenumber: 2163
    functionLinenumberEnd: 2206
    functionName: fu_engine_composite_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_emulator_save_phase
    - fu_engine_emulator_load_phase
    - g_prefix_error
    - fu_plugin_runner_composite_cleanup
    - g_ptr_array_index
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - fu_plugin_list_get_all
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_composite_cleanup(FuEngine *self, GPtrArray *devices,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-engine.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2214
    functionName: fu_engine_sort_release_device_order_release_version_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_engine_sort_release_device_order_release_version_cb(gconstpointer
      a, gconstpointer b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2220,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:2221,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:2224,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:2227,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:2228,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-engine.c:2230,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-engine.c:2230,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2232,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2233,1
    - Dst: passim_item_new
      Src: /src/fwupd/src/fu-engine.c:2233,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2234,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2235,1
    - Dst: passim_item_add_flag
      Src: /src/fwupd/src/fu-engine.c:2236,1
    - Dst: passim_item_set_max_age
      Src: /src/fwupd/src/fu-engine.c:2237,1
    - Dst: passim_item_set_share_limit
      Src: /src/fwupd/src/fu-engine.c:2238,1
    - Dst: passim_item_set_basename
      Src: /src/fwupd/src/fu-engine.c:2239,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:2240,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-engine.c:2243,1
    - Dst: passim_item_set_size
      Src: /src/fwupd/src/fu-engine.c:2245,1
    - Dst: passim_item_set_stream
      Src: /src/fwupd/src/fu-engine.c:2246,1
    - Dst: passim_item_set_hash
      Src: /src/fwupd/src/fu-engine.c:2247,1
    - Dst: passim_client_publish
      Src: /src/fwupd/src/fu-engine.c:2248,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:2249,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:2250,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2254,1
    - Dst: passim_item_get_hash
      Src: /src/fwupd/src/fu-engine.c:2254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2216
    functionDepth: 2
    functionLinenumber: 2216
    functionLinenumberEnd: 2260
    functionName: fu_engine_publish_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - passim_client_get_version
    - fu_device_has_flag
    - fu_engine_ensure_passim_client
    - fu_engine_config_get_p2p_policy
    - passim_item_set_max_age
    - fu_release_get_device
    - g_debug
    - passim_item_get_hash
    - passim_item_new
    - passim_client_publish
    - fu_release_get_filename
    - passim_item_add_flag
    - fu_input_stream_compute_checksum
    - g_error_matches
    - passim_item_set_size
    - passim_item_set_basename
    - g_autoptr
    - passim_item_set_share_limit
    - g_warning
    - g_path_get_basename
    - fu_release_get_stream
    - passim_item_set_hash
    - passim_item_set_stream
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_publish_release(FuEngine *self, FuRelease *release,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:2268,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:2269,1
    - Dst: fu_release_get_device_version_old
      Src: /src/fwupd/src/fu-engine.c:2270,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:2271,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:2272,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2272,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2273,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2274,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2275,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2276,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2277,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:2278,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - self
    - release
    - device
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2262
    functionDepth: 1
    functionLinenumber: 2262
    functionLinenumberEnd: 2289
    functionName: fu_engine_install_release_version_check
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_version
    - fu_device_get_version_format
    - fu_version_compare
    - fu_release_get_version
    - fu_release_get_device_version_old
    - fu_device_has_flag
    - fu_device_set_update_state
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_release_version_check(FuEngine *self,\n\t\t\t\t\tFuRelease
      *release,\n\t\t\t\t\tFuDevice *device,\n\t\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2318,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2319,1
    - Dst: fu_idle_locker_new
      Src: /src/fwupd/src/fu-engine.c:2322,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2325,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2330,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2331,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2332,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2333,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2333,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/src/fu-engine.c:2334,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:2338,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:2341,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2343,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2344,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine.c:2345,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2346,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2348,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2349,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:2350,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine.c:2352,1
    - Dst: fu_release_get_priority
      Src: /src/fwupd/src/fu-engine.c:2353,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:2354,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:2354,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2356,1
    - Dst: fu_engine_composite_prepare
      Src: /src/fwupd/src/fu-engine.c:2357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2358,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:2363,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:2364,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2366,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:2367,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:2369,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine.c:2375,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:2378,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2381,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2382,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:2383,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:2388,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2393,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2394,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/src/fu-engine.c:2395,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-engine.c:2395,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:2399,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2403,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2404,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2405,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2406,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2409,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:2412,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2412,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2416,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2417,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2418,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2424,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2425,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2426,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2427,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2429,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2430,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2433,1
    - Dst: fu_engine_install_release_version_check
      Src: /src/fwupd/src/fu-engine.c:2436,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2442,1
    - Dst: fu_engine_publish_release
      Src: /src/fwupd/src/fu-engine.c:2443,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2448,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:2451,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 82
    argCount: 7
    argNames:
    - self
    - request
    - releases
    - cabinet
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - GPtrArray*
    - FuCabinet*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2308
    functionDepth: 3
    functionLinenumber: 2308
    functionLinenumberEnd: 2453
    functionName: fu_engine_install_releases
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - fu_engine_install_release_version_check
    - g_prefix_error
    - fu_idle_locker_new
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_engine_publish_release
    - fu_release_get_device
    - g_object_ref
    - fu_progress_get_child
    - fu_device_get_version
    - fu_device_get_logical_id
    - g_ptr_array_sort
    - g_ptr_array_index
    - fwupd_device_set_status
    - fu_progress_set_id
    - g_info
    - fu_progress_step_done
    - g_steal_pointer
    - fu_engine_composite_prepare
    - fu_engine_emit_changed
    - fu_release_get_version
    - fu_engine_set_emulator_phase
    - fu_device_get_order
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - FWUPD_DEVICE
    - g_ptr_array_add
    - g_warning
    - fu_engine_install_release
    - fu_engine_composite_cleanup
    - fu_release_get_stream
    - g_set_error_literal
    - fu_device_list_get_by_id
    - g_strdup
    - fu_release_get_priority
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_releases(FuEngine *self,\n\t\t\t   FuEngineRequest
      *request,\n\t\t\t   GPtrArray *releases,\n\t\t\t   FuCabinet *cabinet,\n\t\t\t
      \  FuProgress *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2458,1
    - Dst: fu_engine_integrity_new
      Src: /src/fwupd/src/fu-engine.c:2458,1
    - Dst: fu_engine_integrity_to_string
      Src: /src/fwupd/src/fu-engine.c:2460,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-engine.c:2461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - release
    - key
    argTypes:
    - FuEngine*
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2463
    functionName: fu_engine_update_release_integrity
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_integrity_to_string
    - fu_release_add_metadata_item
    - fu_engine_integrity_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_update_release_integrity(FuEngine *self, FuRelease *release,
      const gchar *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2469,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2472,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2475,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-engine.c:2476,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2476,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2480
    functionName: fu_engine_add_release_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_get_device
    - fu_engine_get_report_metadata
    - g_autoptr
    - fu_release_add_metadata
    - fu_device_report_metadata_pre
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_add_release_metadata(FuEngine *self, FuRelease *release,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2491,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2492,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2492,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-engine.c:2495,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2500,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2502,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2506,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2511,1
    - Dst: fwupd_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2512,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2513,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2514,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:2520,1
    - Dst: fu_engine_update_release_integrity
      Src: /src/fwupd/src/fu-engine.c:2521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - release
    - plugin
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2525
    functionName: fu_engine_add_release_plugin_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - fu_plugin_has_flag
    - fu_plugin_list_find_by_name
    - fu_plugin_get_rules
    - g_debug
    - fu_engine_update_release_integrity
    - fwupd_release_add_metadata
    - g_ptr_array_index
    - g_autoptr
    - fu_release_add_metadata
    - fu_plugin_get_report_metadata
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_add_release_plugin_metadata(FuEngine *self,\n\t\t\t\t
      \     FuRelease *release,\n\t\t\t\t      FuPlugin *plugin,\n\t\t\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2530,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:2531,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2532,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2533,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:2534,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2535,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-engine.c:2536,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2537,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2538,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2539,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine.c:2539,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:2542,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2543,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:2544,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:2549,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2554,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:2554,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:2555,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine.c:2556,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2560,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:2561,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/src/fu-engine.c:2562,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine.c:2563,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine.c:2564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuEngine*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2527
    functionDepth: 2
    functionLinenumber: 2527
    functionLinenumberEnd: 2565
    functionName: fu_engine_save_into_backup_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_metadata_uri
    - fu_remote_list_get_by_id
    - g_build_filename
    - g_strdup_printf
    - fwupd_remote_set_title
    - fwupd_remote_new
    - g_compute_checksum_for_bytes
    - g_autoptr
    - g_file_test
    - fwupd_remote_has_flag
    - fu_bytes_set_contents
    - fu_path_from_kind
    - fwupd_remote_get_id
    - g_info
    - fwupd_remote_add_flag
    - fu_remote_save_to_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_save_into_backup_remote(FuEngine *self, GBytes *fw,
      GError **error)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2592,1
    - Dst: fu_release_get_request
      Src: /src/fwupd/src/fu-engine.c:2593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2597,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2598,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2599,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2601,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2601,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2602,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2602,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2603,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/src/fu-engine.c:2603,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2604,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:2604,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2605,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine.c:2609,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:2612,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2612,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:2616,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-engine.c:2619,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2619,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:2624,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2624,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2625,1
    - Dst: fwupd_release_get_detach_caption
      Src: /src/fwupd/src/fu-engine.c:2627,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2627,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:2629,1
    - Dst: fwupd_release_get_detach_image
      Src: /src/fwupd/src/fu-engine.c:2630,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2630,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/src/fu-engine.c:2632,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:2636,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2637,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:2638,1
    - Dst: fu_engine_save_into_backup_remote
      Src: /src/fwupd/src/fu-engine.c:2641,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2650,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:2650,1
    - Dst: fu_engine_add_release_metadata
      Src: /src/fwupd/src/fu-engine.c:2656,1
    - Dst: fu_engine_add_release_plugin_metadata
      Src: /src/fwupd/src/fu-engine.c:2658,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-engine.c:2660,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-engine.c:2665,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:2672,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2675,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2677,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:2678,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:2679,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2679,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2684,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2684,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2686,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:2689,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2692,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2693,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2694,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:2699,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2700,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/src/fu-engine.c:2703,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2704,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/src/fu-engine.c:2705,1
    - Dst: fu_engine_wait_for_acquiesce
      Src: /src/fwupd/src/fu-engine.c:2706,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/src/fu-engine.c:2706,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 6
    argNames:
    - self
    - release
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GInputStream*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2584
    functionDepth: 6
    functionLinenumber: 2584
    functionLinenumberEnd: 2711
    functionName: fu_engine_install_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - fu_progress_set_status
    - FU_IS_PROGRESS
    - g_prefix_error
    - fu_engine_save_into_backup_remote
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_device_get_plugin
    - fu_release_get_request
    - G_IS_INPUT_STREAM
    - fu_release_get_device
    - FWUPD_RELEASE
    - g_object_ref
    - fu_plugin_list_find_by_name
    - fu_engine_request_get_feature_flags
    - fu_engine_add_release_metadata
    - fu_device_get_update_state
    - fwupd_release_get_detach_caption
    - fu_device_set_update_image
    - fu_engine_install_blob
    - fu_engine_wait_for_acquiesce
    - fu_device_set_update_state
    - FU_IS_ENGINE
    - g_steal_pointer
    - fu_input_stream_compute_checksum
    - fwupd_release_add_checksum
    - fu_device_get_acquiesce_delay
    - g_autoptr
    - fu_device_set_update_message
    - fu_engine_add_release_plugin_metadata
    - fwupd_release_get_checksums
    - fwupd_release_get_detach_image
    - fu_device_set_update_error
    - fu_history_add_device
    - fu_device_has_private_flag
    - g_set_object
    - fu_device_list_get_by_id
    - fu_input_stream_read_bytes
    - FU_IS_RELEASE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_release(FuEngine *self,\n\t\t\t  FuRelease
      *release,\n\t\t\t  GInputStream *stream,\n\t\t\t  FuProgress *progress,\n\t\t\t
      \ FwupdInstallFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2726,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2726,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2723
    functionDepth: 1
    functionLinenumber: 2723
    functionLinenumberEnd: 2728
    functionName: fu_engine_get_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_plugin_list_get_all
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_plugins(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2745,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2745,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2747
    functionName: fu_engine_get_plugin_by_name
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 7
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_plugin_list_find_by_name
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_engine_get_plugin_by_name(FuEngine *self, const gchar *name, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2752,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2752,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2753,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:2753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2754,1
    - Dst: fu_engine_emulator_load
      Src: /src/fwupd/src/fu-engine.c:2755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2749
    functionDepth: 1
    functionLinenumber: 2749
    functionLinenumberEnd: 2756
    functionName: fu_engine_emulation_load
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - fu_engine_emulator_load
    - g_return_val_if_fail
    - G_IS_INPUT_STREAM
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulation_load(FuEngine *self, GInputStream *stream,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_emulator_save
      Src: /src/fwupd/src/fu-engine.c:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GOutputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2762
    functionName: fu_engine_emulation_save
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_emulator_save
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulation_save(FuEngine *self, GOutputStream *stream,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2777,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2781,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2782,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2784,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2785,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2794,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2795,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2800,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2806
    functionName: fu_engine_get_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 13
    functionsReached:
    - g_steal_pointer
    - fu_engine_emulator_load_phase
    - g_prefix_error
    - fu_device_has_flag
    - fu_device_list_get_by_id
    - g_autoptr
    - fu_device_list_wait_for_replug
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_engine_get_device(FuEngine *self, const gchar *device_id, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2816,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:2816,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2818,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2823,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2824,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2824,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:2825,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2829,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/src/fu-engine.c:2833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2809
    functionDepth: 1
    functionLinenumber: 2809
    functionLinenumberEnd: 2834
    functionName: fu_engine_device_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_battery_level
    - g_prefix_error
    - fu_device_prepare
    - fu_device_get_battery_threshold
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_device_prepare(FuEngine *self,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2844,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2846,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2847,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:2851,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2853,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/src/fu-engine.c:2856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2857
    functionName: fu_engine_device_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_has_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_device_cleanup
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_device_cleanup(FuEngine *self,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_ignore_power
      Src: /src/fwupd/src/fu-engine.c:2865,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2869,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2870,1
    - Dst: fu_power_state_is_ac
      Src: /src/fwupd/src/fu-engine.c:2871,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:2871,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:2872,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:2881,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2882,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2883,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2884,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2885,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2885,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:2886,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2891,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 4
    argNames:
    - self
    - device
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2859
    functionDepth: 1
    functionLinenumber: 2859
    functionLinenumberEnd: 2897
    functionName: fu_engine_device_check_power
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_context_get_power_state
    - fu_context_get_battery_threshold
    - fu_engine_config_get_ignore_power
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_set_error_literal
    - fu_power_state_is_ac
    - fu_context_get_battery_level
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_device_check_power(FuEngine *self,\n\t\t\t     FuDevice
      *device,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2907,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:2910,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2912,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:2915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - self
    - device_id
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2899
    functionDepth: 2
    functionLinenumber: 2899
    functionLinenumberEnd: 2916
    functionName: fu_engine_prepare_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_engine_get_device
    - g_autoptr
    - fu_device_prepare_firmware
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_engine_prepare_firmware(FuEngine *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   GInputStream *stream,\n\t\t\t   FuProgress *progress,\n\t\t\t
      \  FuFirmwareParseFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2925,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2927,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:2930,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2932,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:2935,1
    - Dst: fu_engine_device_check_power
      Src: /src/fwupd/src/fu-engine.c:2937,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2938,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:2942,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2943,1
    - Dst: fu_engine_device_prepare
      Src: /src/fwupd/src/fu-engine.c:2944,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2947,1
    - Dst: fu_plugin_runner_prepare
      Src: /src/fwupd/src/fu-engine.c:2948,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2953,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2954,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:2955,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2963,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2964,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - self
    - device_id
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2918
    functionDepth: 2
    functionLinenumber: 2918
    functionLinenumberEnd: 2970
    functionName: fu_engine_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emulator_save_phase
    - fu_plugin_runner_prepare
    - g_prefix_error
    - fu_engine_device_prepare
    - fu_engine_device_check_power
    - fu_device_to_string
    - g_ptr_array_index
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - g_autoptr
    - fu_plugin_list_get_all
    - fu_context_has_flag
    - g_info
    - fu_engine_get_device
    - fu_device_set_update_state
    - fu_device_add_problem
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_prepare(FuEngine *self,\n\t\t  const gchar *device_id,\n\t\t
      \ FuProgress *progress,\n\t\t  FwupdInstallFlags flags,\n\t\t  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2979,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2981,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:2984,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:2986,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:2989,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:2990,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2991,1
    - Dst: fu_engine_device_cleanup
      Src: /src/fwupd/src/fu-engine.c:2992,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2995,1
    - Dst: fu_plugin_runner_cleanup
      Src: /src/fwupd/src/fu-engine.c:2996,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3001,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3002,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3003,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3011,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3012,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - self
    - device_id
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2972
    functionDepth: 2
    functionLinenumber: 2972
    functionLinenumberEnd: 3018
    functionName: fu_engine_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emulator_save_phase
    - fu_device_remove_problem
    - g_prefix_error
    - fu_plugin_runner_cleanup
    - fu_engine_device_cleanup
    - fu_device_to_string
    - g_ptr_array_index
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - g_autoptr
    - fu_plugin_list_get_all
    - fu_context_has_flag
    - g_info
    - fu_engine_get_device
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_cleanup(FuEngine *self,\n\t\t  const gchar *device_id,\n\t\t
      \ FuProgress *progress,\n\t\t  FwupdInstallFlags flags,\n\t\t  GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3029,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3030,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3031,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3034,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3036,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3039,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3040,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3043,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3047,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3048,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3050,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3050,1
    - Dst: fu_plugin_runner_detach
      Src: /src/fwupd/src/fu-engine.c:3053,1
    - Dst: fu_device_get_request_cnt
      Src: /src/fwupd/src/fu-engine.c:3058,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:3060,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:3062,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:3063,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:3064,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:3068,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3069,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:3072,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3077,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3078,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3079,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3087,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3088,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - self
    - device_id
    - progress
    - feature_flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - FwupdFeatureFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 3020
    functionDepth: 2
    functionLinenumber: 3020
    functionLinenumberEnd: 3094
    functionName: fu_engine_detach
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_poll_locker_new
    - g_prefix_error
    - fu_device_to_string
    - fu_device_has_flag
    - fu_plugin_runner_detach
    - fu_device_get_plugin
    - fu_context_has_flag
    - g_return_val_if_fail
    - fu_plugin_list_find_by_name
    - fu_device_get_update_message
    - fu_device_remove_flag
    - fu_device_get_request_cnt
    - fu_device_get_name
    - g_info
    - fu_engine_get_device
    - g_autoptr
    - fu_device_progress_new
    - fu_device_set_update_message
    - fu_engine_emulator_save_phase
    - g_strdup_printf
    - g_set_error_literal
    - fu_device_list_wait_for_replug
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_detach(FuEngine *self,\n\t\t const gchar *device_id,\n\t\t
      FuProgress *progress,\n\t\t FwupdFeatureFlags feature_flags,\n\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3102,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3103,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3106,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3108,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3112,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3114,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3115,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3117,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3117,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3122,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/src/fu-engine.c:3126,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3130,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3131,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3132,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3096
    functionDepth: 2
    functionLinenumber: 3096
    functionLinenumberEnd: 3147
    functionName: fu_engine_attach
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_poll_locker_new
    - fu_plugin_list_find_by_name
    - fu_engine_emulator_save_phase
    - fu_plugin_runner_attach
    - g_prefix_error
    - fu_device_get_plugin
    - fu_device_to_string
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - g_autoptr
    - fu_device_progress_new
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_info
    - fu_engine_get_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_attach(FuEngine *self, const gchar *device_id, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3152,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3155,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3157,1
    - Dst: fu_device_set_progress
      Src: /src/fwupd/src/fu-engine.c:3160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3149
    functionDepth: 2
    functionLinenumber: 3149
    functionLinenumberEnd: 3162
    functionName: fu_engine_set_progress
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_set_progress
    - fu_engine_get_device
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_set_progress(FuEngine *self, const gchar *device_id,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3171,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:3171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3173,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:3176,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3179,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3180,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3182,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3182,1
    - Dst: fu_plugin_runner_activate
      Src: /src/fwupd/src/fu-engine.c:3185,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:3188,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:3189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3164
    functionDepth: 2
    functionLinenumber: 3164
    functionLinenumberEnd: 3192
    functionName: fu_engine_activate
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_engine_emit_changed
    - fu_device_get_plugin
    - fu_device_to_string
    - fu_device_list_get_by_id
    - fu_plugin_runner_activate
    - g_autoptr
    - g_return_val_if_fail
    - fu_engine_emit_device_changed_safe
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_activate(FuEngine *self, const gchar *device_id,
      FuProgress *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3199,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3202,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3204,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3207,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3208,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3210,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3210,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3214,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3215,1
    - Dst: fu_plugin_runner_reload
      Src: /src/fwupd/src/fu-engine.c:3219,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3220,1
    - Dst: fu_engine_md_refresh_device
      Src: /src/fwupd/src/fu-engine.c:3225,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3228,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3229,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3230,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3238,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3194
    functionDepth: 2
    functionLinenumber: 3194
    functionLinenumberEnd: 3245
    functionName: fu_engine_reload
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emulator_save_phase
    - fu_plugin_list_find_by_name
    - fu_plugin_runner_reload
    - g_prefix_error
    - fu_engine_md_refresh_device
    - fu_device_to_string
    - fu_device_has_flag
    - fu_device_list_wait_for_replug
    - g_autoptr
    - fu_device_get_plugin
    - fu_context_has_flag
    - g_info
    - fu_engine_get_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_reload(FuEngine *self, const gchar *device_id, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3257,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3258,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3260,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3263,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3265,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3268,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3269,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3272,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3276,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3277,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3279,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3279,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3282,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3289,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3290,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3292,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3293,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3294,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3295,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3296,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3298,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3303,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3304,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3307,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3308,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3309,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/src/fu-engine.c:3310,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3311,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3314,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3315,1
    - Dst: fu_engine_cleanup
      Src: /src/fwupd/src/fu-engine.c:3316,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3317,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:3323,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3323,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3328,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3329,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3330,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3338,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3342,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3343,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 6
    argNames:
    - self
    - device_id
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3247
    functionDepth: 3
    functionLinenumber: 3247
    functionLinenumberEnd: 3349
    functionName: fu_engine_write_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_poll_locker_new
    - g_prefix_error
    - fu_device_to_string
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_get_plugin
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_plugin_runner_write_firmware
    - fu_plugin_list_find_by_name
    - g_debug
    - g_info
    - fu_engine_get_device
    - fu_device_set_update_state
    - g_steal_pointer
    - g_error_matches
    - fu_engine_set_emulator_phase
    - g_autoptr
    - fu_device_progress_new
    - g_warning
    - fu_engine_emulator_save_phase
    - fu_progress_reset
    - fu_device_has_private_flag
    - fu_device_list_wait_for_replug
    - fu_plugin_runner_attach
    - fu_engine_cleanup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_write_firmware(FuEngine *self,\n\t\t\t const gchar
      *device_id,\n\t\t\t FuFirmware *firmware,\n\t\t\t FuProgress *progress,\n\t\t\t
      FwupdInstallFlags flags,\n\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3358,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3359,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3362,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3367,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3369,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/src/fu-engine.c:3372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3351
    functionDepth: 1
    functionLinenumber: 3351
    functionLinenumberEnd: 3373
    functionName: fu_engine_firmware_dump
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_device_poll_locker_new
    - g_prefix_error
    - fu_device_dump_firmware
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_engine_firmware_dump(FuEngine *self,\n\t\t\tFuDevice
      *device,\n\t\t\tFuProgress *progress,\n\t\t\tFwupdInstallFlags flags,\n\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3382,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3383,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3386,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3393,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/src/fu-engine.c:3396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3397
    functionName: fu_engine_firmware_read
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_device_poll_locker_new
    - g_prefix_error
    - g_autoptr
    - fu_device_locker_new
    - fu_device_read_firmware
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_engine_firmware_read(FuEngine *self,\n\t\t\tFuDevice
      *device,\n\t\t\tFuProgress *progress,\n\t\t\tFwupdInstallFlags flags,\n\t\t\tGError
      **error)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3411,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3412,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3413,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:3416,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3418,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-engine.c:3424,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3427,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3435,1
    - Dst: fu_engine_set_progress
      Src: /src/fwupd/src/fu-engine.c:3438,1
    - Dst: fu_progress_get_steps
      Src: /src/fwupd/src/fu-engine.c:3440,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:3441,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:3442,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3443,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3444,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3445,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3446,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3447,1
    - Dst: fu_progress_get_steps
      Src: /src/fwupd/src/fu-engine.c:3448,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3449,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3458,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3460,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3465,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3466,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-engine.c:3467,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3469,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3470,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:3471,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3475,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3476,1
    - Dst: fu_engine_detach
      Src: /src/fwupd/src/fu-engine.c:3478,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3480,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3483,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3486,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3489,1
    - Dst: fu_engine_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:3490,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3493,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-engine.c:3498,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/src/fu-engine.c:3499,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-engine.c:3500,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3502,1
    - Dst: fu_engine_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3505,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3508,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3514,1
    - Dst: fu_engine_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:3517,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3520,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-engine.c:3525,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/src/fu-engine.c:3526,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-engine.c:3527,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3529,1
    - Dst: fu_engine_detach
      Src: /src/fwupd/src/fu-engine.c:3532,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3534,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3537,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3540,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3543,1
    - Dst: fu_engine_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3544,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3550,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3553,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3557,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3558,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3563,1
    - Dst: fu_engine_attach
      Src: /src/fwupd/src/fu-engine.c:3564,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3565,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3568,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3571,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3572,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3577,1
    - Dst: fu_engine_reload
      Src: /src/fwupd/src/fu-engine.c:3578,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3579,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3582,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3585,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3587,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3590,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3591,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 116
    argCount: 8
    argNames:
    - self
    - device_id
    - release
    - flags
    - feature_flags
    - write_complete
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuRelease*
    - FwupdInstallFlags
    - FwupdFeatureFlags
    - gboolean*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3399
    functionDepth: 4
    functionLinenumber: 3399
    functionLinenumberEnd: 3598
    functionName: fu_engine_install_loop
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_get_firmware_basename
    - fu_engine_set_progress
    - fu_device_remove_private_flag
    - g_prefix_error
    - fu_device_has_flag
    - fu_engine_write_firmware
    - fu_engine_detach
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_engine_prepare_firmware
    - fu_firmware_get_filename
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_remove_flag
    - fu_progress_set_id
    - fu_progress_get_steps
    - fu_engine_get_device
    - fu_progress_step_done
    - fu_engine_set_emulator_phase
    - g_autoptr
    - fu_engine_attach
    - fu_engine_reload
    - fu_release_get_stream
    - fu_progress_reset
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_firmware_set_filename
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_loop(FuEngine *self,\n\t\t       const
      gchar *device_id,\n\t\t       FuRelease *release,\n\t\t       FwupdInstallFlags
      flags,\n\t\t       FwupdFeatureFlags feature_flags,\n\t\t       gboolean *write_complete,\n\t\t
      \      FuProgress *progress,\n\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3611,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-engine.c:3611,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3612,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3612,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3614,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:3617,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:3618,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3619,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3620,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3621,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-engine.c:3624,1
    - Dst: g_get_real_time
      Src: /src/fwupd/src/fu-engine.c:3624,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:3627,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:3627,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3628,1
    - Dst: fu_engine_prepare
      Src: /src/fwupd/src/fu-engine.c:3629,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3629,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3631,1
    - Dst: fu_engine_install_loop
      Src: /src/fwupd/src/fu-engine.c:3638,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3644,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3649,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3657,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3660,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-engine.c:3661,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-engine.c:3661,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:3663,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3664,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3670,1
    - Dst: fu_engine_cleanup
      Src: /src/fwupd/src/fu-engine.c:3671,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3671,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3673,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:3676,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3677,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:3678,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-engine.c:3679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 7
    argNames:
    - self
    - device
    - release
    - progress
    - flags
    - feature_flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuRelease*
    - FuProgress*
    - FwupdInstallFlags
    - FwupdFeatureFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3600
    functionDepth: 6
    functionLinenumber: 3600
    functionLinenumberEnd: 3681
    functionName: fu_engine_install_blob
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_prefix_error
    - fu_device_get_id
    - g_return_val_if_fail
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_set_modified_usec
    - fu_progress_set_id
    - fu_device_get_name
    - g_info
    - fu_device_set_update_state
    - fu_progress_step_done
    - fu_engine_emit_device_changed
    - g_timer_elapsed
    - fu_engine_install_loop
    - fu_engine_set_emulator_phase
    - fu_history_modify_device
    - g_autoptr
    - fu_device_progress_new
    - g_timer_new
    - g_get_real_time
    - fu_engine_prepare
    - g_strdup
    - fu_device_set_install_duration
    - fu_engine_cleanup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_blob(FuEngine *self,\n\t\t       FuDevice
      *device,\n\t\t       FuRelease *release,\n\t\t       FuProgress *progress,\n\t\t
      \      FwupdInstallFlags flags,\n\t\t       FwupdFeatureFlags feature_flags,\n\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3686,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:3689,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3690,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3691,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:3694,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3696,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3706,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3707,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3708,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3709,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3713,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:3717,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:3722,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3726,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3727,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3728,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3729,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:3730,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3732,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3737
      start: 3683
    functionDepth: 6
    functionLinenumber: 3683
    functionLinenumberEnd: 3737
    functionName: fu_engine_get_item_by_id_fallback_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_object_ref
    - g_steal_pointer
    - fu_device_get_update_state
    - fu_history_get_devices
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_history_get_device_by_id
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_engine_get_item_by_id_fallback_history(FuEngine *self, const gchar *id, GError
      **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3742,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3743,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3745,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-engine.c:3748,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3751,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:3754,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:3755,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:3756,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:3757,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:3760,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:3761,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:3764,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:3768,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:3771,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:3775,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:3778,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:3782,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:3788,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:3794,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:3800,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3806,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:3808,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3815,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:3819,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3826,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3739
    functionDepth: 1
    functionLinenumber: 3739
    functionLinenumberEnd: 3830
    functionName: fu_engine_create_silo_index
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_error_convert
    - xb_silo_query_build_index
    - g_prefix_error
    - xb_query_new_full
    - g_autoptr
    - xb_silo_query
    - g_info
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_create_silo_index(FuEngine *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3836,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:3837,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:3837,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:3838,1
    - Dst: XB_IS_SILO
      Src: /src/fwupd/src/fu-engine.c:3838,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:3839,1
    - Dst: fu_engine_create_silo_index
      Src: /src/fwupd/src/fu-engine.c:3840,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - silo
    argTypes:
    - FuEngine*
    - XbSilo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3842
      start: 3833
    functionDepth: 2
    functionLinenumber: 3833
    functionLinenumberEnd: 3842
    functionName: fu_engine_set_silo
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 35
    functionsReached:
    - FU_IS_ENGINE
    - g_warning
    - XB_IS_SILO
    - fu_engine_create_silo_index
    - g_return_if_fail
    - g_set_object
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_silo(FuEngine *self, XbSilo *silo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:3850,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-engine.c:3850,1
    - Dst: xb_builder_node_set_element
      Src: /src/fwupd/src/fu-engine.c:3851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - bn
    - user_data
    - error
    argTypes:
    - XbBuilderFixup*
    - XbBuilderNode*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3853
      start: 3844
    functionDepth: 0
    functionLinenumber: 3844
    functionLinenumberEnd: 3853
    functionName: fu_engine_appstream_upgrade_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_builder_node_get_element
    - xb_builder_node_set_element
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_appstream_upgrade_cb(XbBuilderFixup *self,\n\t\t\t
      \      XbBuilderNode *bn,\n\t\t\t       gpointer user_data,\n\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:3862,1
    - Dst: xb_builder_source_ctx_get_stream
      Src: /src/fwupd/src/fu-engine.c:3863,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3864,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3865,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine.c:3869,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-engine.c:3872,1
    - Dst: xb_silo_export
      Src: /src/fwupd/src/fu-engine.c:3875,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/src/fu-engine.c:3878,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - source
    - ctx
    - user_data
    - cancellable
    - error
    argTypes:
    - XbBuilderSource*
    - XbBuilderSourceCtx*
    - gpointer
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3855
    functionDepth: 1
    functionLinenumber: 3855
    functionLinenumberEnd: 3879
    functionName: fu_engine_builder_cabinet_adapter_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_ctx_get_stream
    - g_steal_pointer
    - fu_cabinet_get_silo
    - g_memory_input_stream_new_from_data
    - FU_ENGINE
    - g_autoptr
    - xb_silo_export
    - fu_engine_build_cabinet_from_stream
    linkageType: ''
    returnType: GInputStream
    signature: "GInputStream *\nfu_engine_builder_cabinet_adapter_cb(XbBuilderSource
      *source,\n\t\t\t\t     XbBuilderSourceCtx *ctx,\n\t\t\t\t     gpointer user_data,\n\t\t\t\t
      \    GCancellable *cancellable,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3884,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:3884,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3885,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:3885,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3887,1
    - Dst: xb_builder_source_add_simple_adapter
      Src: /src/fwupd/src/fu-engine.c:3888,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:3896,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:3902,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3881
    functionDepth: 1
    functionLinenumber: 3881
    functionLinenumberEnd: 3906
    functionName: fu_engine_create_metadata_builder_source
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_add_simple_adapter
    - fwupd_error_convert
    - g_steal_pointer
    - g_file_new_for_path
    - xb_builder_source_load_file
    - xb_builder_source_new
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: XbBuilderSource
    signature: 'XbBuilderSource *

      fu_engine_create_metadata_builder_source(FuEngine *self, const gchar *fn, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3911,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:3915,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3917,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:3921,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-engine.c:3924,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3930,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3931,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3932,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3933,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/src/fu-engine.c:3934,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:3937,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3938,1
    - Dst: fu_engine_create_metadata_builder_source
      Src: /src/fwupd/src/fu-engine.c:3943,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3945,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-engine.c:3950,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:3951,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:3957,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:3959,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-engine.c:3963,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:3964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - self
    - builder
    - remote
    - error
    argTypes:
    - FuEngine*
    - XbBuilder*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3908
    functionDepth: 2
    functionLinenumber: 3908
    functionLinenumberEnd: 3967
    functionName: fu_engine_create_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ascii_strdown
    - g_set_error
    - g_warning
    - xb_builder_node_insert_text
    - xb_builder_node_new
    - xb_builder_import_source
    - xb_builder_source_set_info
    - fwupd_remote_get_filename_cache
    - fu_engine_create_metadata_builder_source
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_autoptr
    - g_str_has_suffix
    - g_info
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_create_metadata(FuEngine *self, XbBuilder *builder,
      FwupdRemote *remote, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3974,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3975,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3976,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine.c:3979,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:3980,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:3981,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine.c:3982,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:3985,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3987,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3988,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3989,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:3990,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:3997,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3997,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:3998,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine.c:4004,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-engine.c:4006,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4013,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4014,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:4015,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4021,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:4022,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:4023,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4025
      start: 3969
    functionDepth: 2
    functionLinenumber: 3969
    functionLinenumberEnd: 4025
    functionName: fu_engine_ensure_device_supported
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_private_flag
    - fu_engine_request_new
    - fu_engine_get_releases_for_device
    - g_error_matches
    - fu_device_remove_private_flag
    - FU_RELEASE
    - g_ptr_array_index
    - fu_device_has_flag
    - fu_device_remove_flag
    - fu_engine_request_add_flag
    - g_autoptr
    - fu_engine_request_set_feature_flags
    - fu_device_add_flag
    - fu_device_get_name
    - fu_engine_emit_device_changed_safe
    - fu_release_has_flag
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_supported(FuEngine *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4030,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-engine.c:4030,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:4033,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:4037,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-engine.c:4038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4027
    functionDepth: 3
    functionLinenumber: 4027
    functionLinenumberEnd: 4039
    functionName: fu_engine_md_refresh_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_ensure_device_supported
    - fu_engine_get_component_by_guids
    - fu_device_has_private_flag
    - g_autoptr
    - fu_device_ensure_from_component
    linkageType: ''
    returnType: void
    signature: void fu_engine_md_refresh_device(FuEngine *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4044,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:4044,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4046,1
    - Dst: fu_engine_md_refresh_device
      Src: /src/fwupd/src/fu-engine.c:4047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4041
    functionDepth: 4
    functionLinenumber: 4041
    functionLinenumberEnd: 4049
    functionName: fu_engine_md_refresh_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_engine_md_refresh_device
    - fu_device_list_get_active
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_md_refresh_devices(FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:4057,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:4058,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4059,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4060,1
    - Dst: fu_path_glob
      Src: /src/fwupd/src/fu-engine.c:4062,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4064,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4068,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4069,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:4069,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4070,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4070,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4071,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:4072,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4077,1
    - Dst: xb_builder_source_set_prefix
      Src: /src/fwupd/src/fu-engine.c:4080,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:4081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - self
    - builder
    - path_kind
    - error
    argTypes:
    - FuEngine*
    - XbBuilder*
    - FuPathKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4086
      start: 4051
    functionDepth: 1
    functionLinenumber: 4051
    functionLinenumberEnd: 4086
    functionName: fu_engine_load_metadata_store_local
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_set_prefix
    - fwupd_error_convert
    - g_file_new_for_path
    - g_build_filename
    - xb_builder_import_source
    - g_ptr_array_index
    - xb_builder_source_load_file
    - xb_builder_source_new
    - g_autoptr
    - fu_path_glob
    - fu_path_from_kind
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_load_metadata_store_local(FuEngine *self,\n\t\t\t\t
      \   XbBuilder *builder,\n\t\t\t\t    FuPathKind path_kind,\n\t\t\t\t    GError
      **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4093,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4094,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:4094,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4097,1
    - Dst: xb_builder_append_guid
      Src: /src/fwupd/src/fu-engine.c:4101,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:4105,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/src/fu-engine.c:4106,1
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:4112,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4115,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4116,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4117,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4118,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4119,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:4119,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4121,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:4122,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4124,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:4125,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4129,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4130,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4130,1
    - Dst: fu_engine_create_metadata
      Src: /src/fwupd/src/fu-engine.c:4131,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4132,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4133,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4140,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:4141,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4146,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4147,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-engine.c:4153,1
    - Dst: xb_builder_fixup_set_max_depth
      Src: /src/fwupd/src/fu-engine.c:4157,1
    - Dst: xb_builder_source_add_fixup
      Src: /src/fwupd/src/fu-engine.c:4158,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-engine.c:4161,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4162,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4168,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4170,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-engine.c:4174,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:4177,1
    - Dst: fu_engine_load_metadata_store_local
      Src: /src/fwupd/src/fu-engine.c:4181,1
    - Dst: fu_engine_load_metadata_store_local
      Src: /src/fwupd/src/fu-engine.c:4186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4195,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/src/fu-engine.c:4196,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:4200,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:4201,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4202,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/src/fu-engine.c:4204,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:4206,1
    - Dst: fu_engine_create_silo_index
      Src: /src/fwupd/src/fu-engine.c:4211,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4088
    functionDepth: 3
    functionLinenumber: 4088
    functionLinenumberEnd: 4212
    functionName: fu_engine_load_metadata_store
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - g_prefix_error
    - xb_builder_import_source
    - fu_engine_create_silo_index
    - fwupd_remote_get_filename_cache
    - fwupd_remote_has_flag
    - fu_path_from_kind
    - fwupd_remote_get_kind
    - xb_builder_set_profile_flags
    - g_file_new_for_path
    - fu_engine_create_metadata
    - g_ptr_array_index
    - xb_builder_fixup_set_max_depth
    - xb_builder_ensure
    - g_info
    - fu_remote_list_get_all
    - g_clear_object
    - xb_builder_fixup_new
    - xb_builder_source_add_fixup
    - g_build_filename
    - g_file_new_tmp
    - xb_builder_source_set_info
    - xb_builder_source_new
    - g_autoptr
    - g_file_test
    - fwupd_remote_get_id
    - g_getenv
    - xb_builder_node_insert_text
    - g_warning
    - xb_builder_node_new
    - xb_builder_append_guid
    - fu_engine_load_metadata_store_local
    - xb_builder_source_load_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_load_metadata_store(FuEngine *self, FuEngineLoadFlags
      flags, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4217,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:4218,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:4220,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4222,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:4224,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuEngine*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4214
    functionDepth: 1
    functionLinenumber: 4214
    functionLinenumberEnd: 4228
    functionName: fu_engine_remote_list_ensure_p2p_policy_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - fwupd_remote_add_flag
    - fu_engine_config_get_p2p_policy
    - fwupd_remote_remove_flag
    linkageType: ''
    returnType: void
    signature: void fu_engine_remote_list_ensure_p2p_policy_remote(FuEngine *self,
      FwupdRemote *remote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:4233,1
    - Dst: fu_idle_set_timeout
      Src: /src/fwupd/src/fu-engine.c:4235,1
    - Dst: fu_engine_config_get_idle_timeout
      Src: /src/fwupd/src/fu-engine.c:4235,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:4238,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/src/fu-engine.c:4239,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:4239,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4243,1
    - Dst: fu_engine_remote_list_ensure_p2p_policy_remote
      Src: /src/fwupd/src/fu-engine.c:4244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - config
    - self
    argTypes:
    - FuEngineConfig*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4230
    functionDepth: 2
    functionLinenumber: 4230
    functionLinenumberEnd: 4246
    functionName: fu_engine_config_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_remote_list_ensure_p2p_policy_remote
    - fu_engine_config_get_idle_timeout
    - fu_context_set_esp_location
    - g_ptr_array_index
    - fu_idle_set_timeout
    - fu_engine_config_get_esp_location
    - fu_remote_list_get_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_changed_cb(FuEngineConfig *config, FuEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4251,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:4252,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4253,1
    - Dst: fu_engine_md_refresh_devices
      Src: /src/fwupd/src/fu-engine.c:4256,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:4259,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:4262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4263
      start: 4248
    functionDepth: 5
    functionLinenumber: 4248
    functionLinenumberEnd: 4263
    functionName: fu_engine_metadata_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_engine_md_refresh_devices
    - fu_security_attrs_remove_all
    - fu_engine_emit_changed
    - fu_engine_load_metadata_store
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_metadata_changed(FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_metadata_changed
      Src: /src/fwupd/src/fu-engine.c:4268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - remote_list
    - self
    argTypes:
    - FuRemoteList*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4265
    functionDepth: 6
    functionLinenumber: 4265
    functionLinenumberEnd: 4269
    functionName: fu_engine_remote_list_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_metadata_changed
    linkageType: ''
    returnType: void
    signature: void fu_engine_remote_list_changed_cb(FuRemoteList *remote_list, FuEngine
      *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_release_priority
      Src: /src/fwupd/src/fu-engine.c:4274,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4276,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4277,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4278,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-engine.c:4279,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-engine.c:4279,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4281,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4282,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4283,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-engine.c:4284,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-engine.c:4284,1
    - Dst: fu_engine_remote_list_ensure_p2p_policy_remote
      Src: /src/fwupd/src/fu-engine.c:4288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - remote_list
    - remote
    - self
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4271
    functionDepth: 2
    functionLinenumber: 4271
    functionLinenumberEnd: 4289
    functionName: fu_engine_remote_list_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_release_priority
    - fwupd_remote_set_priority
    - fwupd_remote_get_kind
    - g_debug
    - fu_engine_remote_list_ensure_p2p_policy_remote
    - fwupd_remote_get_priority
    - fwupd_remote_get_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_remote_list_added_cb(FuRemoteList *remote_list, FwupdRemote
      *remote, FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4296,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4296,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4298,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4291
    functionDepth: 0
    functionLinenumber: 4291
    functionLinenumberEnd: 4301
    functionName: fu_engine_sort_jcat_results_timestamp_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - jcat_result_get_timestamp
    linkageType: ''
    returnType: gint
    signature: gint fu_engine_sort_jcat_results_timestamp_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:4307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4311,1
    - Dst: jcat_result_get_method
      Src: /src/fwupd/src/fu-engine.c:4312,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:4313,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - results
    - error
    argTypes:
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4322
      start: 4303
    functionDepth: 0
    functionLinenumber: 4303
    functionLinenumberEnd: 4322
    functionName: fu_engine_get_newest_signature_jcat_result
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_sort
    - jcat_result_get_method
    - g_ptr_array_index
    - g_set_error_literal
    linkageType: ''
    returnType: JcatResult
    signature: 'JcatResult *

      fu_engine_get_newest_signature_jcat_result(GPtrArray *results, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4327,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4328,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4329,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4331,1
    - Dst: jcat_file_new
      Src: /src/fwupd/src/fu-engine.c:4331,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-engine.c:4333,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4333,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine.c:4336,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-engine.c:4336,1
    - Dst: jcat_file_import_stream
      Src: /src/fwupd/src/fu-engine.c:4339,1
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-engine.c:4340,1
    - Dst: jcat_file_get_item_default
      Src: /src/fwupd/src/fu-engine.c:4343,1
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-engine.c:4345,1
    - Dst: jcat_context_verify_item
      Src: /src/fwupd/src/fu-engine.c:4348,1
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-engine.c:4355,1
    - Dst: fu_engine_get_newest_signature_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuEngine*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 4324
    functionDepth: 1
    functionLinenumber: 4324
    functionLinenumberEnd: 4361
    functionName: fu_engine_get_system_jcat_result
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - jcat_file_new
    - fu_engine_get_newest_signature_jcat_result
    - fu_input_stream_from_path
    - fwupd_remote_get_filename_cache
    - jcat_file_get_item_default
    - jcat_context_verify_item
    - jcat_file_import_stream
    - g_autoptr
    - fu_bytes_get_contents
    - fwupd_remote_get_filename_cache_sig
    - fu_error_convert
    linkageType: ''
    returnType: JcatResult
    signature: 'JcatResult *

      fu_engine_get_system_jcat_result(FuEngine *self, FwupdRemote *remote, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4370,1
    - Dst: JCAT_IS_RESULT
      Src: /src/fwupd/src/fu-engine.c:4370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4371,1
    - Dst: JCAT_IS_RESULT
      Src: /src/fwupd/src/fu-engine.c:4371,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4373,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4374,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4377,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4378,1
    - Dst: jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4379,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4382,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - jcat_result
    - jcat_result_old
    - error
    argTypes:
    - JcatResult*
    - JcatResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4392
      start: 4363
    functionDepth: 0
    functionLinenumber: 4363
    functionLinenumberEnd: 4392
    functionName: fu_engine_validate_result_timestamp
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - jcat_result_get_timestamp
    - JCAT_IS_RESULT
    - g_return_val_if_fail
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_validate_result_timestamp(JcatResult *jcat_result,\n\t\t\t\t
      \   JcatResult *jcat_result_old,\n\t\t\t\t    GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4414,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4415,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4416,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4417,1
    - Dst: jcat_file_new
      Src: /src/fwupd/src/fu-engine.c:4417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4418,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4419,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4422,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4422,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4424,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4425,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4426,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:4429,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4431,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:4438,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4439,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/src/fu-engine.c:4448,1
    - Dst: jcat_file_import_stream
      Src: /src/fwupd/src/fu-engine.c:4449,1
    - Dst: jcat_file_get_item_default
      Src: /src/fwupd/src/fu-engine.c:4453,1
    - Dst: jcat_context_verify_item
      Src: /src/fwupd/src/fu-engine.c:4456,1
    - Dst: fu_engine_get_newest_signature_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4466,1
    - Dst: fu_engine_get_system_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4472,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4474,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4475,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4477,1
    - Dst: fu_engine_validate_result_timestamp
      Src: /src/fwupd/src/fu-engine.c:4481,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:4486,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4486,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:4491,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:4494,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-engine.c:4495,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-engine.c:4496,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:4497,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-engine.c:4499,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4500,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4501,1
    - Dst: passim_item_new
      Src: /src/fwupd/src/fu-engine.c:4501,1
    - Dst: passim_item_set_basename
      Src: /src/fwupd/src/fu-engine.c:4502,1
    - Dst: passim_item_set_bytes
      Src: /src/fwupd/src/fu-engine.c:4503,1
    - Dst: passim_item_set_max_age
      Src: /src/fwupd/src/fu-engine.c:4504,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-engine.c:4504,1
    - Dst: passim_item_set_share_limit
      Src: /src/fwupd/src/fu-engine.c:4505,1
    - Dst: passim_client_publish
      Src: /src/fwupd/src/fu-engine.c:4506,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4507,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4508,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4512,1
    - Dst: passim_item_get_hash
      Src: /src/fwupd/src/fu-engine.c:4512,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:4518,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-engine.c:4518,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:4520,1
    - Dst: fu_engine_md_refresh_devices
      Src: /src/fwupd/src/fu-engine.c:4524,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:4527,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:4530,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 5
    argNames:
    - self
    - remote_id
    - bytes_raw
    - bytes_sig
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4532
      start: 4406
    functionDepth: 5
    functionLinenumber: 4406
    functionLinenumberEnd: 4532
    functionName: fu_engine_update_metadata_bytes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - passim_client_get_version
    - fu_remote_list_get_by_id
    - fwupd_remote_get_filename_cache
    - jcat_file_get_item_default
    - fu_engine_load_metadata_store
    - fwupd_remote_get_username
    - fwupd_remote_has_flag
    - fu_engine_ensure_passim_client
    - g_return_val_if_fail
    - fu_engine_config_get_p2p_policy
    - passim_item_set_max_age
    - g_set_error
    - g_debug
    - passim_item_get_hash
    - fu_engine_get_system_jcat_result
    - jcat_context_verify_item
    - passim_item_new
    - fwupd_remote_get_password
    - jcat_file_import_stream
    - passim_client_publish
    - g_info
    - FU_IS_ENGINE
    - g_error_matches
    - fu_engine_emit_changed
    - jcat_file_new
    - fu_engine_get_newest_signature_jcat_result
    - passim_item_set_basename
    - g_autoptr
    - fwupd_remote_get_refresh_interval
    - fu_bytes_set_contents
    - passim_item_set_share_limit
    - g_warning
    - fu_engine_md_refresh_devices
    - fu_security_attrs_remove_all
    - g_path_get_basename
    - fu_engine_validate_result_timestamp
    - passim_item_set_bytes
    - g_memory_input_stream_new_from_bytes
    - fwupd_remote_get_filename_cache_sig
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_update_metadata_bytes(FuEngine *self,\n\t\t\t\tconst
      gchar *remote_id,\n\t\t\t\tGBytes *bytes_raw,\n\t\t\t\tGBytes *bytes_sig,\n\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4556,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4557,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4558,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4559,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4561,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4561,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4562,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4565,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:4568,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:4569,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:4573,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:4579,1
    - Dst: fu_engine_update_metadata_bytes
      Src: /src/fwupd/src/fu-engine.c:4584,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - self
    - remote_id
    - fd
    - fd_sig
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gint
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4592
      start: 4548
    functionDepth: 6
    functionLinenumber: 4548
    functionLinenumberEnd: 4592
    functionName: fu_engine_update_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - g_set_error
    - fu_engine_update_metadata_bytes
    - fu_unix_seekable_input_stream_new
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_update_metadata(FuEngine *self,\n\t\t\t  const
      gchar *remote_id,\n\t\t\t  gint fd,\n\t\t\t  gint fd_sig,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4607,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-engine.c:4607,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4609,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4610,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:4610,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4611,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:4614,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-engine.c:4615,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine.c:4615,1
    - Dst: fu_engine_config_get_archive_size_max
      Src: /src/fwupd/src/fu-engine.c:4616,1
    - Dst: fu_cabinet_set_jcat_context
      Src: /src/fwupd/src/fu-engine.c:4617,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-engine.c:4618,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine.c:4618,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4625
      start: 4604
    functionDepth: 1
    functionLinenumber: 4604
    functionLinenumberEnd: 4625
    functionName: fu_engine_build_cabinet_from_stream
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 10
    functionsReached:
    - FU_IS_ENGINE
    - G_IS_INPUT_STREAM
    - fu_engine_set_status
    - fu_cabinet_new
    - g_steal_pointer
    - fu_cabinet_set_jcat_context
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - g_autoptr
    - g_return_val_if_fail
    - fu_engine_config_get_archive_size_max
    linkageType: ''
    returnType: FuCabinet
    signature: 'FuCabinet *

      fu_engine_build_cabinet_from_stream(FuEngine *self, GInputStream *stream, GError
      **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4634,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4635,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:4635,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4636,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4637,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4638,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4639,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4640,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4641,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine.c:4643,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:4644,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4646,1
    - Dst: XB_NODE
      Src: /src/fwupd/src/fu-engine.c:4654,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4654,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4656,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:4659,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-engine.c:4662,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-engine.c:4664,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:4666,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine.c:4670,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:4672,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:4673,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4674,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:4682,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4685,1
    - Dst: fu_release_add_tag
      Src: /src/fwupd/src/fu-engine.c:4686,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:4686,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine.c:4691,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:4692,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:4695,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:4696,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4697,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-engine.c:4697,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-engine.c:4703,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4705,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:4712,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:4721,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:4722,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:4727,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:4727,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4728,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 5
    argNames:
    - self
    - request
    - cabinet
    - component
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuCabinet*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4729
      start: 4627
    functionDepth: 5
    functionLinenumber: 4627
    functionLinenumberEnd: 4729
    functionName: fu_engine_get_result_from_component
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_set_request
    - g_set_error
    - FWUPD_RELEASE
    - xb_node_get_text
    - fu_device_add_release
    - fu_device_inhibit
    - fu_release_set_device
    - xb_node_query_first_full
    - xb_query_new_full
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_device_convert_instance_ids
    - xb_node_get_silo
    - fu_device_incorporate
    - g_steal_pointer
    - xb_node_get_attr
    - XB_NODE
    - fu_device_add_instance_id
    - fu_release_new
    - fu_device_has_inhibit
    - g_autoptr
    - fu_engine_load_release
    - fu_release_add_tag
    - fu_device_list_get_by_guid
    - fu_device_get_guids
    - xb_node_query
    - g_set_error_literal
    - fu_device_new
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_engine_get_result_from_component(FuEngine *self,\n\t\t\t\t
      \   FuEngineRequest *request,\n\t\t\t\t    FuCabinet *cabinet,\n\t\t\t\t    XbNode
      *component,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4736,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4737,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4739,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4743
      start: 4731
    functionDepth: 1
    functionLinenumber: 4731
    functionLinenumberEnd: 4743
    functionName: fu_engine_get_details_sort_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    linkageType: ''
    returnType: gint
    signature: gint fu_engine_get_details_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4765,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4766,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4767,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:4767,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4768,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4769,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4771,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4771,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4772,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:4772,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4773,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine.c:4775,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:4777,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-engine.c:4780,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:4787,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4790,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4790,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4795,1
    - Dst: fu_engine_get_release_for_checksum
      Src: /src/fwupd/src/fu-engine.c:4796,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:4802,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4804,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4806,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:4806,1
    - Dst: fu_engine_get_result_from_component
      Src: /src/fwupd/src/fu-engine.c:4808,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:4811,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:4811,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:4815,1
    - Dst: fu_release_set_remote_id
      Src: /src/fwupd/src/fu-engine.c:4819,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:4820,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4825,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-engine.c:4826,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4828,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:4833,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4835,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - self
    - request
    - stream
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4836
      start: 4758
    functionDepth: 6
    functionLinenumber: 4758
    functionLinenumberEnd: 4836
    functionName: fu_engine_get_details
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - fu_release_set_remote_id
    - g_prefix_error
    - g_return_val_if_fail
    - G_IS_INPUT_STREAM
    - FWUPD_RELEASE
    - fu_device_add_release
    - g_ptr_array_sort
    - g_ptr_array_index
    - fu_device_add_flag
    - FU_IS_ENGINE
    - fu_engine_get_result_from_component
    - g_steal_pointer
    - fu_input_stream_compute_checksum
    - fu_release_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - xb_node_query_text
    - fu_cabinet_get_components
    - g_ptr_array_add
    - fu_engine_get_release_for_checksum
    - fu_engine_build_cabinet_from_stream
    - fu_release_add_checksum
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_engine_get_details(FuEngine *self,\n\t\t      FuEngineRequest
      *request,\n\t\t      GInputStream *stream,\n\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:4843,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:4844,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:4845,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:4846,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:4852,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:4854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4857
      start: 4838
    functionDepth: 1
    functionLinenumber: 4838
    functionLinenumberEnd: 4857
    functionName: fu_engine_sort_devices_by_priority_name
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_priority
    - fu_device_get_name
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_engine_sort_devices_by_priority_name(gconstpointer a, gconstpointer
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4871,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4873,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4873,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4874,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:4876,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4878,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:4884,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4886
      start: 4868
    functionDepth: 1
    functionLinenumber: 4868
    functionLinenumberEnd: 4886
    functionName: fu_engine_get_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 23
    functionsReached:
    - FU_IS_ENGINE
    - g_ptr_array_sort
    - g_steal_pointer
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_device_list_get_active
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_devices(FuEngine *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4901,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4902,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:4905,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:4906,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4908,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine.c:4909,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4910,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:4910,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4915,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4925
      start: 4898
    functionDepth: 1
    functionLinenumber: 4898
    functionLinenumberEnd: 4925
    functionName: fu_engine_get_devices_by_guid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - g_set_error
    - fu_device_has_guid
    - g_steal_pointer
    - g_ptr_array_index
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_device_list_get_active
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_devices_by_guid(FuEngine *self, const gchar *guid, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4940,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4941,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:4944,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:4945,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4947,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:4948,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-engine.c:4948,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4949,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:4949,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4954,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - composite_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4964
      start: 4937
    functionDepth: 1
    functionLinenumber: 4937
    functionLinenumberEnd: 4964
    functionName: fu_engine_get_devices_by_composite_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_set_error
    - fu_device_get_composite_id
    - g_steal_pointer
    - fu_device_list_get_active
    - g_ptr_array_index
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_strcmp0
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_devices_by_composite_id(FuEngine *self, const gchar *composite_id,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4970,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-engine.c:4971,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:4974,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:4977,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4979,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/src/fu-engine.c:4981,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-engine.c:4981,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/src/fu-engine.c:4982,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:4982,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/src/fu-engine.c:4986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4967
    functionDepth: 1
    functionLinenumber: 4967
    functionLinenumberEnd: 4987
    functionName: fu_engine_get_history_set_hsi_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_result_to_string
    - fwupd_security_attr_get_result
    - fu_device_set_metadata
    - fu_engine_ensure_security_attrs
    - fu_engine_get_host_security_id
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - g_autoptr
    - fu_security_attrs_get_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_history_set_hsi_attrs(FuEngine *self, FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:4997,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4999,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5004,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5006,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5007,1
    - Dst: fu_engine_get_release_for_checksum
      Src: /src/fwupd/src/fu-engine.c:5007,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5009,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5010,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:5012,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:5014,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:5017,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5017,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine.c:5019,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5019,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:5025,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 4990
    functionDepth: 4
    functionLinenumber: 4990
    functionLinenumberEnd: 5032
    functionName: fu_engine_fixup_history_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_release_set_device
    - fwupd_release_get_checksums
    - g_ptr_array_index
    - fu_device_get_release_default
    - FU_RELEASE
    - fu_release_load
    - fu_device_add_flag
    - g_autoptr
    - xb_node_query_first
    - fu_engine_get_release_for_checksum
    linkageType: ''
    returnType: void
    signature: void fu_engine_fixup_history_device(FuEngine *self, FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5046,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5047,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5048,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5050,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5051,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:5053,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5057,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5058,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5060,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5060,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5063,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5070,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:5071,1
    - Dst: fu_engine_get_history_set_hsi_attrs
      Src: /src/fwupd/src/fu-engine.c:5072,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5078,1
    - Dst: fu_engine_fixup_history_device
      Src: /src/fwupd/src/fu-engine.c:5079,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5082,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5083
      start: 5043
    functionDepth: 6
    functionLinenumber: 5043
    functionLinenumberEnd: 5083
    functionName: fu_engine_get_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - g_object_ref
    - fu_engine_fixup_history_device
    - g_steal_pointer
    - fu_engine_get_history_set_hsi_attrs
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_has_flag
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_history_get_devices
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_history(FuEngine *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5099,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5099,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5100,1
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:5102,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5104,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/src/fu-engine.c:5109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5094
    functionDepth: 1
    functionLinenumber: 5094
    functionLinenumberEnd: 5110
    functionName: fu_engine_get_remotes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - FU_IS_ENGINE
    - g_set_error
    - g_return_val_if_fail
    - g_ptr_array_copy
    - fu_remote_list_get_all
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_remotes(FuEngine *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5125,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-engine.c:5127,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5132,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5133,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:5133,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - remote_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5140
      start: 5122
    functionDepth: 2
    functionLinenumber: 5122
    functionLinenumberEnd: 5140
    functionName: fu_engine_get_remote_by_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - g_set_error
    - g_ptr_array_index
    - fwupd_remote_get_id
    - g_autoptr
    - fu_engine_get_remotes
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_engine_get_remote_by_id(FuEngine *self, const gchar *remote_id, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:5145,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5146,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5147,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5151,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5151,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5151,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5156,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5156,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5157,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:5158,1
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-engine.c:5163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5164
      start: 5142
    functionDepth: 2
    functionLinenumber: 5142
    functionLinenumberEnd: 5164
    functionName: fu_engine_sort_releases_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_compare
    - fu_release_get_version
    - FU_RELEASE
    - FU_DEVICE
    - fu_release_get_branch
    - fu_release_compare
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_engine_sort_releases_cb(gconstpointer a, gconstpointer b, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5169,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5173,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5174,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:5175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - rel
    argTypes:
    - FuEngine*
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5179
      start: 5166
    functionDepth: 1
    functionLinenumber: 5166
    functionLinenumberEnd: 5179
    functionName: fu_engine_check_release_is_approved
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fwupd_release_get_checksums
    - g_info
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_check_release_is_approved(FuEngine *self, FwupdRelease
      *rel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5184,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5188,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:5189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FuEngine*
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5193
      start: 5181
    functionDepth: 1
    functionLinenumber: 5181
    functionLinenumberEnd: 5193
    functionName: fu_engine_check_release_is_blocked
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_release_get_checksums
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_check_release_is_blocked(FuEngine *self, FuRelease
      *release)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:5204,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5206,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:5212,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5214,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5216,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:5218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5218,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine.c:5221,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5223,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5231,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:5231,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5232,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:5235,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:5236,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:5237,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5244,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-engine.c:5249,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5249,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/src/fu-engine.c:5250,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5250,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/src/fu-engine.c:5251,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-engine.c:5255,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5255,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:5257,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:5257,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5258,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5261,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:5263,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:5263,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5264,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5269,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5269,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5269,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5271,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5272,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5273,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5276,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5280,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5280,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5281,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5284,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5286,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:5289,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5290,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5290,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:5291,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5293,1
    - Dst: fu_engine_check_release_is_blocked
      Src: /src/fwupd/src/fu-engine.c:5297,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5298,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:5301,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5301,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-engine.c:5303,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:5305,1
    - Dst: fu_engine_check_release_is_approved
      Src: /src/fwupd/src/fu-engine.c:5306,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5306,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5307,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/src/fu-engine.c:5312,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5312,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:5313,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:5314,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/src/fu-engine.c:5316,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5316,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/src/fu-engine.c:5317,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/src/fu-engine.c:5318,1
    - Dst: fu_release_get_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5320,1
    - Dst: fu_device_get_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5321,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/src/fu-engine.c:5322,1
    - Dst: fu_device_set_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5324,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5328,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5328,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-engine.c:5331,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 6
    argNames:
    - self
    - request
    - device
    - component
    - releases
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuDevice*
    - XbNode*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5338
      start: 5195
    functionDepth: 5
    functionLinenumber: 5195
    functionLinenumberEnd: 5338
    functionName: fu_engine_add_releases_for_device_component
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_update_image
    - fu_device_add_request_flag
    - fu_release_get_checksums
    - fu_version_compare
    - FWUPD_CODEC
    - fu_engine_check_release_is_blocked
    - fwupd_release_get_update_message
    - fu_release_set_request
    - g_propagate_error
    - fu_release_get_branch
    - fwupd_remote_has_flag
    - fu_device_get_install_duration
    - fwupd_release_set_install_duration
    - FWUPD_RELEASE
    - g_debug
    - fu_device_get_version
    - fu_engine_request_get_feature_flags
    - fu_release_get_update_request_id
    - fu_release_set_device
    - fu_device_get_version_lowest
    - fu_device_set_update_image
    - fwupd_release_get_update_image
    - g_ptr_array_index
    - fu_device_get_update_message
    - fu_device_set_update_request_id
    - g_info
    - fwupd_release_get_remote_id
    - fu_engine_request_has_flag
    - fwupd_codec_to_string
    - g_steal_pointer
    - g_error_matches
    - fwupd_release_get_locations
    - fu_release_get_version
    - fu_release_new
    - fu_device_get_branch
    - g_autoptr
    - fu_device_get_update_request_id
    - fu_engine_load_release
    - fu_device_set_update_message
    - g_ptr_array_add
    - fu_release_add_flag
    - fu_device_get_version_format
    - fu_engine_check_release_is_approved
    - fwupd_release_get_install_duration
    - xb_node_query
    - g_strcmp0
    - fu_engine_get_remote_by_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_add_releases_for_device_component(FuEngine *self,\n\t\t\t\t\t
      \   FuEngineRequest *request,\n\t\t\t\t\t    FuDevice *device,\n\t\t\t\t\t    XbNode
      *component,\n\t\t\t\t\t    GPtrArray *releases,\n\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nullable_branch
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5346
      start: 5340
    functionDepth: 0
    functionLinenumber: 5340
    functionLinenumberEnd: 5346
    functionName: fu_engine_get_branch_fallback
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_branch_fallback(const gchar *nullable_branch)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5355,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5356,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5360,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:5365,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:5366,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5367,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5369,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-engine.c:5378,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:5379,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5380,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-engine.c:5388,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/src/fu-engine.c:5389,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5390,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:5398,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5399,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5401,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5403,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:5404,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:5404,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/src/fu-engine.c:5406,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:5407,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:5407,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:5408,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5413,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5418,1
    - Dst: XB_NODE
      Src: /src/fwupd/src/fu-engine.c:5420,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5421,1
    - Dst: fu_engine_add_releases_for_device_component
      Src: /src/fwupd/src/fu-engine.c:5422,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5428,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5432,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-engine.c:5435,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5441,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5442,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5443,1
    - Dst: fu_engine_get_branch_fallback
      Src: /src/fwupd/src/fu-engine.c:5443,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5443,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5445,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5445,1
    - Dst: fu_engine_get_branch_fallback
      Src: /src/fwupd/src/fu-engine.c:5447,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5447,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-engine.c:5448,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5450,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5450,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5453,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5457,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5460,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 4
    argNames:
    - self
    - request
    - device
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5461
      start: 5348
    functionDepth: 6
    functionLinenumber: 5348
    functionLinenumberEnd: 5461
    functionName: fu_engine_get_releases_for_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 7
    functionsReached:
    - g_auto
    - fu_device_is_updatable
    - fu_engine_add_releases_for_device_component
    - g_ptr_array_find_with_equal_func
    - g_set_error
    - FWUPD_RELEASE
    - fu_engine_request_has_feature_flag
    - fu_device_get_version
    - g_debug
    - xb_value_bindings_bind_str
    - fu_device_has_request_flag
    - g_ptr_array_index
    - fu_device_add_flag
    - fwupd_release_get_branch
    - fu_engine_request_has_flag
    - g_steal_pointer
    - XB_NODE
    - xb_query_context_set_flags
    - fu_device_get_branch
    - g_autoptr
    - xb_query_context_get_bindings
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - xb_silo_query_with_context
    - XB_QUERY_CONTEXT_INIT
    - fu_device_get_guids
    - fu_device_has_private_flag
    - g_set_error_literal
    - g_strdup
    - fu_engine_get_branch_fallback
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_engine_get_releases_for_device(FuEngine *self,\n\t\t\t\t
      \ FuEngineRequest *request,\n\t\t\t\t  FuDevice *device,\n\t\t\t\t  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5480,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5481,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5482,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5484,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5484,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5485,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine.c:5485,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5487,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:5490,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:5495,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5499,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:5505,1
    - Dst: fu_engine_config_get_release_dedupe
      Src: /src/fwupd/src/fu-engine.c:5508,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5509,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:5510,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5513,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5514,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5519,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:5521,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5521,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-engine.c:5522,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine.c:5526,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5526,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5529,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5530,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5533,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5533,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/src/fu-engine.c:5536,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5540,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - self
    - request
    - device_id
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5541
      start: 5474
    functionDepth: 7
    functionLinenumber: 5474
    functionLinenumberEnd: 5541
    functionName: fu_engine_get_releases
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 8
    functionsReached:
    - g_ptr_array_ref
    - fu_release_get_checksums
    - fu_engine_get_releases_for_device
    - g_return_val_if_fail
    - g_object_ref
    - g_debug
    - g_ptr_array_index
    - g_hash_table_contains
    - FU_IS_ENGINE
    - g_steal_pointer
    - g_ptr_array_sort_with_data
    - g_hash_table_new_full
    - fu_release_get_version
    - fu_engine_config_get_release_dedupe
    - FU_IS_ENGINE_REQUEST
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_hash_table_add
    - g_strdup_printf
    - fu_device_list_get_by_id
    - g_set_error_literal
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_engine_get_releases(FuEngine *self,\n\t\t       FuEngineRequest
      *request,\n\t\t       const gchar *device_id,\n\t\t       GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5561,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5562,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5563,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:5563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5565,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5565,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5566,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5567,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:5570,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:5575,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5578,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5580,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5583,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5584,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5585,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5587,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5588,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5589,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5590,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5595,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5596,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5598,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5599,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5600,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5601,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5606,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5607,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5609,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5610,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5611,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:5612,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5617,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5618,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5619,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5620,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5621,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5625,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5625,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:5628,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5631,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5635,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5638,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5642,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:5646,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5647,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - self
    - request
    - device_id
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5554
    functionDepth: 7
    functionLinenumber: 5554
    functionLinenumberEnd: 5648
    functionName: fu_engine_get_downgrades
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_string_new
    - fu_engine_get_releases_for_device
    - g_string_truncate
    - g_return_val_if_fail
    - g_string_append_printf
    - g_object_ref
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_device_get_version_lowest
    - g_ptr_array_index
    - fwupd_release_get_branch
    - g_info
    - FU_IS_ENGINE
    - g_steal_pointer
    - g_ptr_array_sort_with_data
    - fu_device_get_branch
    - g_autoptr
    - fwupd_release_get_version
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fwupd_release_has_flag
    - fu_device_list_get_by_id
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_engine_get_downgrades(FuEngine *self,\n\t\t\t FuEngineRequest
      *request,\n\t\t\t const gchar *device_id,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5653,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5655,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:5655,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5658,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5662
    functionName: fu_engine_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_approved_firmware(FuEngine *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:5669,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine.c:5671,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5672
      start: 5664
    functionDepth: 0
    functionLinenumber: 5664
    functionLinenumberEnd: 5672
    functionName: fu_engine_add_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_hash_table_add
    - g_hash_table_new_full
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_approved_firmware(FuEngine *self, const gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5679,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:5679,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5682,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5686
      start: 5674
    functionDepth: 0
    functionLinenumber: 5674
    functionLinenumberEnd: 5686
    functionName: fu_engine_get_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_blocked_firmware(FuEngine *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:5693,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine.c:5695,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5696
      start: 5688
    functionDepth: 0
    functionLinenumber: 5688
    functionLinenumberEnd: 5696
    functionName: fu_engine_add_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_add
    - g_hash_table_new_full
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_blocked_firmware(FuEngine *self, const gchar *checksum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:5703,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5707,1
    - Dst: fu_engine_add_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:5708,1
    - Dst: fu_history_clear_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:5712,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5715,1
    - Dst: fu_history_add_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:5716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - self
    - checksums
    - error
    argTypes:
    - FuEngine*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5720
      start: 5698
    functionDepth: 6
    functionLinenumber: 5698
    functionLinenumberEnd: 5720
    functionName: fu_engine_set_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_history_clear_blocked_firmware
    - g_hash_table_unref
    - g_ptr_array_index
    - fu_history_add_blocked_firmware
    - fu_engine_add_blocked_firmware
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_set_blocked_firmware(FuEngine *self, GPtrArray *checksums,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5725,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5726,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5727,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5728,1
    - Dst: jcat_context_get_engine
      Src: /src/fwupd/src/fu-engine.c:5731,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-engine.c:5734,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:5734,1
    - Dst: jcat_engine_self_sign
      Src: /src/fwupd/src/fu-engine.c:5735,1
    - Dst: jcat_engine_self_verify
      Src: /src/fwupd/src/fu-engine.c:5738,1
    - Dst: jcat_blob_get_data
      Src: /src/fwupd/src/fu-engine.c:5740,1
    - Dst: jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-engine.c:5745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - value
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - JcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5746
      start: 5722
    functionDepth: 0
    functionLinenumber: 5722
    functionLinenumberEnd: 5746
    functionName: fu_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - jcat_blob_get_data
    - strlen
    - jcat_context_get_engine
    - jcat_engine_self_verify
    - g_bytes_new
    - g_autoptr
    - jcat_engine_self_sign
    - jcat_blob_get_data_as_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_self_sign(FuEngine *self, const gchar *value, JcatSignFlags flags,
      GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5765,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5766,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5767,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5768,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:5768,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5770,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5770,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5771,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5772,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:5775,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:5780,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5781,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5789,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5790,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:5798,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5799,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:5807,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5810,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5812,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5815,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5816,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5817,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5819,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5820,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5821,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5822,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5827,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5828,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5830,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5831,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5832,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5833,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5838,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:5839,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5841,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5842,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5843,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:5844,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:5849,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5850,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5851,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5852,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5853,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5857,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5857,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:5860,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5863,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5867,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5870,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5874,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:5878,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5879,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 4
    argNames:
    - self
    - request
    - device_id
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5880
      start: 5759
    functionDepth: 7
    functionLinenumber: 5759
    functionLinenumberEnd: 5880
    functionName: fu_engine_get_upgrades
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - g_string_new
    - fu_engine_get_releases_for_device
    - fu_device_is_updatable
    - fu_device_has_flag
    - g_string_truncate
    - g_return_val_if_fail
    - g_string_append_printf
    - g_object_ref
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_device_get_update_state
    - g_ptr_array_index
    - fwupd_release_get_branch
    - g_info
    - FU_IS_ENGINE
    - fwupd_release_get_remote_id
    - g_steal_pointer
    - g_ptr_array_sort_with_data
    - fu_device_get_branch
    - g_autoptr
    - fwupd_release_get_version
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fwupd_release_has_flag
    - fu_device_list_get_by_id
    - g_set_error_literal
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_engine_get_upgrades(FuEngine *self,\n\t\t       FuEngineRequest
      *request,\n\t\t       const gchar *device_id,\n\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5895,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5898,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5900,1
    - Dst: fu_engine_get_item_by_id_fallback_history
      Src: /src/fwupd/src/fu-engine.c:5903,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5908,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5909,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:5918,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:5918,1
    - Dst: fu_plugin_runner_clear_results
      Src: /src/fwupd/src/fu-engine.c:5920,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:5925,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:5926,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5929,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:5930,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5931
      start: 5892
    functionDepth: 7
    functionLinenumber: 5892
    functionLinenumberEnd: 5931
    functionName: fu_engine_clear_results
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_device_get_update_state
    - fu_device_get_plugin
    - fu_engine_get_item_by_id_fallback_history
    - fu_device_has_flag
    - g_set_error_literal
    - fu_plugin_runner_clear_results
    - fu_device_add_flag
    - g_autoptr
    - fu_history_modify_device
    - g_return_val_if_fail
    - fu_device_set_update_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_clear_results(FuEngine *self, const gchar *device_id,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5947,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5949,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5949,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5950,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5951,1
    - Dst: fu_engine_get_item_by_id_fallback_history
      Src: /src/fwupd/src/fu-engine.c:5954,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5959,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5960,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:5964,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:5965,1
    - Dst: fu_engine_fixup_history_device
      Src: /src/fwupd/src/fu-engine.c:5970,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:5973,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:5974,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5975,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:5979,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5984,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-engine.c:5984,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5985
      start: 5943
    functionDepth: 7
    functionLinenumber: 5943
    functionLinenumberEnd: 5985
    functionName: fu_engine_get_results
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - g_set_error
    - fu_engine_fixup_history_device
    - g_object_ref
    - fwupd_release_get_appstream_id
    - fu_engine_get_item_by_id_fallback_history
    - fu_device_has_flag
    - fu_device_get_release_default
    - fu_device_get_name
    - g_autoptr
    - fu_device_get_id
    - FWUPD_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fu_engine_get_results(FuEngine *self, const gchar *device_id, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:5990,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:5991,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:5992,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5994,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5995,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine.c:5996,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:5996,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:5997,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5998,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:5999,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6001,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6002,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 5987
    functionDepth: 1
    functionLinenumber: 5987
    functionLinenumberEnd: 6006
    functionName: fu_engine_plugins_startup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_error_matches
    - fu_progress_add_flag
    - g_ptr_array_index
    - fu_plugin_add_flag
    - fu_progress_set_id
    - g_autoptr
    - fu_plugin_list_get_all
    - fu_plugin_runner_startup
    - g_info
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugins_startup(FuEngine *self, FuProgress *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:6011,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:6012,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:6013,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6015,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6016,1
    - Dst: fu_plugin_runner_ready
      Src: /src/fwupd/src/fu-engine.c:6017,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:6017,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:6018,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6019,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6021,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6022,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6026
      start: 6008
    functionDepth: 1
    functionLinenumber: 6008
    functionLinenumberEnd: 6026
    functionName: fu_engine_plugins_ready
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_ready
    - fu_progress_get_child
    - fu_progress_step_done
    - g_error_matches
    - fu_progress_add_flag
    - g_ptr_array_index
    - fu_plugin_add_flag
    - fu_progress_set_id
    - g_autoptr
    - fu_plugin_list_get_all
    - g_info
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugins_ready(FuEngine *self, FuProgress *progress)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6032,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:6032,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:6035,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:6036,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:6037,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6039,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6040,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-engine.c:6041,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:6041,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6042,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6043,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6044,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6046,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6051,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:6052,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6054,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6054,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:6057,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6060
      start: 6028
    functionDepth: 1
    functionLinenumber: 6028
    functionLinenumberEnd: 6060
    functionName: fu_engine_plugins_coldplug
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_plugin_has_flag
    - fu_progress_get_child
    - fu_progress_step_done
    - g_string_new
    - fu_plugin_get_name
    - fu_plugin_runner_coldplug
    - fu_progress_add_flag
    - g_ptr_array_index
    - fu_plugin_add_flag
    - g_string_truncate
    - fu_progress_set_id
    - fu_plugin_list_get_all
    - g_autoptr
    - g_info
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugins_coldplug(FuEngine *self, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:6065,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6067,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6068,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6068,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:6071,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6073,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/src/fu-engine.c:6074,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6077,1
    - Dst: fu_backend_registered
      Src: /src/fwupd/src/fu-engine.c:6078,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine.c:6080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6081
      start: 6062
    functionDepth: 1
    functionLinenumber: 6062
    functionLinenumberEnd: 6081
    functionName: fu_engine_plugin_device_register
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_backend_registered
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_context_get_backends
    - fu_plugin_list_get_all
    - fu_device_get_id
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_register(FuEngine *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6086,1
    - Dst: fu_engine_plugin_device_register
      Src: /src/fwupd/src/fu-engine.c:6087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6088
      start: 6083
    functionDepth: 2
    functionLinenumber: 6083
    functionLinenumberEnd: 6088
    functionName: fu_engine_plugin_device_register_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_plugin_device_register
    - FU_ENGINE
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_register_cb(FuPlugin *plugin, FuDevice
      *device, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6093,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6096,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:6096,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6097,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6098,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6099,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-engine.c:6100,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6100,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine.c:6103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6104
      start: 6090
    functionDepth: 1
    functionLinenumber: 6090
    functionLinenumberEnd: 6104
    functionName: fu_engine_plugin_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_priority
    - fu_engine_add_device
    - fu_device_set_priority
    - FU_ENGINE
    - fu_device_get_id
    - fu_plugin_get_priority
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6109,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6110,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6111,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6112,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6115,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6116,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6117,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6118,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6121,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6122,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6123,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6124,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6127,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6128,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6129,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - device
    - device_tmp
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6133
      start: 6106
    functionDepth: 3
    functionLinenumber: 6106
    functionLinenumberEnd: 6133
    functionName: fu_engine_adopt_children_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_supported
    - fu_device_set_parent
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_engine_adopt_children_device(FuEngine *self, FuDevice *device,
      FuDevice *device_tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6138,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6139,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - device
    - parent
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6141
      start: 6135
    functionDepth: 3
    functionLinenumber: 6135
    functionLinenumberEnd: 6141
    functionName: fu_engine_set_device_parent
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_supported
    - fu_device_set_parent
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_device_parent(FuEngine *self, FuDevice *device,
      FuDevice *parent)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6147,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:6147,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6150,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6151,1
    - Dst: fu_engine_adopt_children_device
      Src: /src/fwupd/src/fu-engine.c:6152,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6154,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6156,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6157,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6161,1
    - Dst: fu_device_has_parent_physical_id
      Src: /src/fwupd/src/fu-engine.c:6163,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6165,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6166,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6171,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6173,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6174,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6178,1
    - Dst: fu_device_has_parent_backend_id
      Src: /src/fwupd/src/fu-engine.c:6180,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6181,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6182,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6187,1
    - Dst: fu_device_get_parent_guids
      Src: /src/fwupd/src/fu-engine.c:6188,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6190,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6192,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine.c:6193,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6194,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6204,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6205,1
    - Dst: fu_device_get_parent_physical_ids
      Src: /src/fwupd/src/fu-engine.c:6207,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6211,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6212,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6212,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6213,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6218,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6219,1
    - Dst: fu_device_get_parent_backend_ids
      Src: /src/fwupd/src/fu-engine.c:6221,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6225,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6226,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6226,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6227,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6230,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6232,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6234,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine.c:6235,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/src/fu-engine.c:6237,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6238,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 71
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6143
    functionDepth: 4
    functionLinenumber: 6143
    functionLinenumberEnd: 6241
    functionName: fu_engine_adopt_children
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_has_parent_physical_id
    - fu_device_get_backend_id
    - fu_device_has_guid
    - fu_engine_adopt_children_device
    - fu_device_get_guids
    - fu_engine_set_device_parent
    - fu_device_has_parent_guid
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_get_physical_id
    - fu_device_has_parent_backend_id
    - fu_device_get_parent_backend_ids
    - g_autoptr
    - fu_device_get_parent
    - g_strcmp0
    - fu_device_get_parent_physical_ids
    - fu_device_get_parent_guids
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_adopt_children(FuEngine *self, FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6247,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6248,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/src/fu-engine.c:6250,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6252,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-engine.c:6257,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6257,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6259,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6260,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6261,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6262,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-engine.c:6263,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6270,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:6271,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6273,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6274,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6274,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6275,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6276,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6277,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-engine.c:6279,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6286,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6243
    functionDepth: 1
    functionLinenumber: 6243
    functionLinenumberEnd: 6287
    functionName: fu_engine_set_proxy_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_get_proxy
    - fu_device_set_proxy
    - fu_device_list_get_by_guid
    - fu_device_get_proxy_guid
    - fu_device_get_guids
    - g_ptr_array_index
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - g_info
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_proxy_device(FuEngine *self, FuDevice *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6292,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6295,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:6299,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6299,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6306,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6307,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6308,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-engine.c:6310,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6310,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6311,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine.c:6312,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6312,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6318,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6319,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:6320,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:6321,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6321,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6322,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6323,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6324,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:6325,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6326,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6327,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:6328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6331
      start: 6289
    functionDepth: 6
    functionLinenumber: 6289
    functionLinenumberEnd: 6331
    functionName: fu_engine_device_inherit_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - g_debug
    - fu_device_get_version_format
    - fu_device_get_version
    - fu_version_compare
    - fwupd_version_format_to_string
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_get_release_default
    - fu_device_add_flag
    - g_autoptr
    - fu_device_get_id
    - fu_device_get_name
    - fu_history_get_device_by_id
    - g_info
    - fwupd_release_get_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_inherit_history(FuEngine *self, FuDevice *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6337,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6341,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:6343,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6343,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6347,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6347,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:6348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6349
      start: 6333
    functionDepth: 6
    functionLinenumber: 6333
    functionLinenumberEnd: 6349
    functionName: fu_engine_ensure_device_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_history_has_emulation_tag
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_get_id
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_emulation_tag(FuEngine *self, FuDevice
      *device)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6356,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6359,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:6361,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6364,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine.c:6365,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6366,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:6367,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6368,1
    - Dst: fu_engine_config_get_disabled_devices
      Src: /src/fwupd/src/fu-engine.c:6373,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6377,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6378,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6379,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:6380,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6381,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6383,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6390,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-engine.c:6391,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6392,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6393,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:6394,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-engine.c:6398,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6399,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6401,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:6402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6404,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:6404,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6405,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6406,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine.c:6406,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:6408,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:6410,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:6411,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:6412,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6419,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:6422,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:6422,1
    - Dst: fu_engine_ensure_device_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:6429,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6432,1
    - Dst: fu_engine_adopt_children
      Src: /src/fwupd/src/fu-engine.c:6435,1
    - Dst: fu_engine_set_proxy_device
      Src: /src/fwupd/src/fu-engine.c:6438,1
    - Dst: fu_engine_device_inherit_history
      Src: /src/fwupd/src/fu-engine.c:6441,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6444,1
    - Dst: fu_engine_plugin_device_register
      Src: /src/fwupd/src/fu-engine.c:6445,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6447,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/src/fu-engine.c:6448,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6448,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:6449,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:6453,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/src/fu-engine.c:6453,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:6454,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-engine.c:6458,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:6462,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6463,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6464,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6465,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-engine.c:6466,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6468,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6469,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:6474,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-engine.c:6477,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:6480,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6482,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6483,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6484,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:6485,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6489,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6492,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6493
      start: 6351
    functionDepth: 7
    functionLinenumber: 6351
    functionLinenumberEnd: 6493
    functionName: fu_engine_add_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 34
    functionsReached:
    - fu_device_list_depsolve_order
    - fu_device_is_updatable
    - fu_release_set_request
    - fu_device_has_flag
    - fu_device_get_id
    - xb_node_query_first
    - fu_device_get_plugin
    - fu_context_has_flag
    - FWUPD_RELEASE
    - fu_version_guess_format
    - fu_device_probe_complete
    - fu_device_get_version
    - fu_device_add_release
    - fu_release_set_device
    - fu_engine_adopt_children
    - fu_device_inhibit
    - fu_engine_ensure_device_emulation_tag
    - g_ptr_array_index
    - g_critical
    - fu_engine_device_inherit_history
    - fu_device_get_name
    - fu_device_convert_instance_ids
    - g_info
    - fu_device_list_add
    - fu_device_get_children
    - fu_engine_request_new
    - fu_engine_set_proxy_device
    - fu_engine_emit_changed
    - fu_engine_ensure_device_supported
    - fu_device_get_protocols
    - fu_engine_get_component_by_guids
    - fu_release_new
    - fu_engine_plugin_device_register
    - fu_engine_request_add_flag
    - g_autoptr
    - fu_engine_load_release
    - g_warning
    - fu_engine_emulator_save_phase
    - fu_engine_config_get_disabled_devices
    - fu_device_get_version_format
    - fu_device_get_guids
    - fu_device_has_private_flag
    - g_strcmp0
    - fu_device_get_vendor_ids
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_device(FuEngine *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6498,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-engine.c:6499,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6503,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-engine.c:6504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - user_data
    argTypes:
    - FuPlugin*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6506
      start: 6495
    functionDepth: 1
    functionLinenumber: 6495
    functionLinenumberEnd: 6506
    functionName: fu_engine_plugin_rules_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_idle_inhibit
    - fu_plugin_get_rules
    - FU_ENGINE
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_rules_changed_cb(FuPlugin *plugin, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6511,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:6514,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - user_data
    argTypes:
    - FuContext*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6518
      start: 6508
    functionDepth: 2
    functionLinenumber: 6508
    functionLinenumberEnd: 6518
    functionName: fu_engine_context_security_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emit_changed
    - FU_ENGINE
    - fu_security_attrs_remove_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_context_security_changed_cb(FuContext *ctx, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6525,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:6529,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6529,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6531,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6538,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6538,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6538,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6539,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6539,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-engine.c:6544,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6520
    functionDepth: 2
    functionLinenumber: 6520
    functionLinenumberEnd: 6546
    functionName: fu_engine_plugin_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_list_find_by_name
    - fu_engine_emit_changed
    - g_autoptr
    - fu_device_list_remove
    - g_strcmp0
    - fu_device_get_plugin
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_removed_cb(FuPlugin *plugin, FuDevice
      *device, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-engine.c:6552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6553
      start: 6549
    functionDepth: 1
    functionLinenumber: 6549
    functionLinenumberEnd: 6553
    functionName: fu_engine_add_plugin
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 12
    functionsReached:
    - fu_plugin_list_add
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_plugin(FuEngine *self, FuPlugin *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_trusted_uids
      Src: /src/fwupd/src/fu-engine.c:6564,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-engine.c:6566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - calling_uid
    argTypes:
    - FuEngine*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6555
    functionDepth: 1
    functionLinenumber: 6555
    functionLinenumberEnd: 6570
    functionName: fu_engine_is_uid_trusted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_array_index
    - fu_engine_config_get_trusted_uids
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_is_uid_trusted(FuEngine *self, guint64 calling_uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_require_immutable_enumeration
      Src: /src/fwupd/src/fu-engine.c:6575,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:6577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6578
      start: 6572
    functionDepth: 1
    functionLinenumber: 6572
    functionLinenumberEnd: 6578
    functionName: fu_engine_plugin_allows_enumeration
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_plugin_has_flag
    - fu_engine_config_get_require_immutable_enumeration
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_plugin_allows_enumeration(FuEngine *self, FuPlugin
      *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:6583,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:6585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6588
      start: 6580
    functionDepth: 1
    functionLinenumber: 6580
    functionLinenumberEnd: 6588
    functionName: fu_engine_is_test_plugin_disabled
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_engine_config_get_test_devices
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_is_test_plugin_disabled(FuEngine *self, FuPlugin
      *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_disabled_plugins
      Src: /src/fwupd/src/fu-engine.c:6593,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6595,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6600
      start: 6590
    functionDepth: 1
    functionLinenumber: 6590
    functionLinenumberEnd: 6600
    functionName: fu_engine_is_plugin_name_disabled
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_disabled_plugins
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_is_plugin_name_disabled(FuEngine *self, const gchar
      *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6608,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine.c:6609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6613
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6613
    functionName: fu_engine_is_plugin_name_enabled
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_is_plugin_name_enabled(FuEngine *self, const gchar
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:6619,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6619,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:6620,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:6621,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-engine.c:6622,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:6623,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine.c:6623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin_glob
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6615
    functionDepth: 0
    functionLinenumber: 6615
    functionLinenumberEnd: 6624
    functionName: fu_engine_add_plugin_filter
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 9
    functionsReached:
    - FU_IS_ENGINE
    - g_string_new
    - g_string_replace
    - g_string_free
    - g_return_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_plugin_filter(FuEngine *self, const gchar *plugin_glob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6629,1
    - Dst: fu_engine_config_get_enumerate_all_devices
      Src: /src/fwupd/src/fu-engine.c:6632,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:6635,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine.c:6638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - guid
    - self
    argTypes:
    - FuPlugin*
    - gchar*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6640
      start: 6626
    functionDepth: 1
    functionLinenumber: 6626
    functionLinenumberEnd: 6640
    functionName: fu_engine_plugin_check_supported_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_enumerate_all_devices
    - xb_silo_query_first
    - g_strdup_printf
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_plugin_check_supported_cb(FuPlugin *plugin, const
      gchar *guid, FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6645,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6647
      start: 6642
    functionDepth: 0
    functionLinenumber: 6642
    functionLinenumberEnd: 6647
    functionName: fu_engine_get_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuEngineConfig
    signature: 'FuEngineConfig *

      fu_engine_get_config(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6653,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6653,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:6654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6656
      start: 6649
    functionDepth: 1
    functionLinenumber: 6649
    functionLinenumberEnd: 6656
    functionName: fu_engine_get_host_vendor
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_context_get_hwid_value
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_host_vendor(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6662,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6662,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:6663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6665
      start: 6658
    functionDepth: 1
    functionLinenumber: 6658
    functionLinenumberEnd: 6665
    functionName: fu_engine_get_host_product
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_context_get_hwid_value
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_host_product(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6670,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6672
      start: 6667
    functionDepth: 0
    functionLinenumber: 6667
    functionLinenumberEnd: 6672
    functionName: fu_engine_get_host_machine_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_host_machine_id(FuEngine *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6677,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6677,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:6678,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:6680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6681
      start: 6674
    functionDepth: 1
    functionLinenumber: 6674
    functionLinenumberEnd: 6681
    functionName: fu_engine_get_host_bkc
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_engine_config_get_host_bkc
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_host_bkc(FuEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6687,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:6688,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:6689,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:6691,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:6692,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/src/fu-engine.c:6693,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:6694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6695
      start: 6684
    functionDepth: 1
    functionLinenumber: 6684
    functionLinenumberEnd: 6695
    functionName: fu_engine_ensure_security_attrs_supported_cpu
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_new
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_plugin
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_security_attrs_supported_cpu(FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_get_disabled_plugins
      Src: /src/fwupd/src/fu-engine.c:6701,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6702,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:6703,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:6704,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/src/fu-engine.c:6705,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:6706,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:6708,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6710,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:6711,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/src/fu-engine.c:6717,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:6718,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:6723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6724
      start: 6697
    functionDepth: 1
    functionLinenumber: 6697
    functionLinenumberEnd: 6724
    functionName: fu_engine_ensure_security_attrs_tainted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - g_str_has_prefix
    - fu_engine_config_get_disabled_plugins
    - fu_security_attrs_append
    - fwupd_security_attr_new
    - fwupd_security_attr_set_result_success
    - g_ptr_array_index
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_security_attrs_tainted(FuEngine *self)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6732,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6732,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:6734,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/src/fu-engine.c:6737,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6740,1
    - Dst: fu_smbios_chassis_kind_to_string
      Src: /src/fwupd/src/fu-engine.c:6741,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/src/fu-engine.c:6764,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:6771,1
    - Dst: fu_smbios_chassis_kind_to_string
      Src: /src/fwupd/src/fu-engine.c:6772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6776
      start: 6727
    functionDepth: 1
    functionLinenumber: 6727
    functionLinenumberEnd: 6776
    functionName: fu_engine_get_host_security_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE
    - fu_smbios_chassis_kind_to_string
    - fu_engine_ensure_security_attrs
    - g_strdup_printf
    - fu_security_attrs_calculate_hsi
    - g_return_val_if_fail
    - g_info
    - fu_context_get_chassis_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_get_host_security_id(FuEngine *self, const gchar *fwupd_version)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6781,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-engine.c:6782,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-engine.c:6786,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:6786,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:6790,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:6795,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:6797,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6801,1
    - Dst: fu_security_attrs_equal
      Src: /src/fwupd/src/fu-engine.c:6802,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6803,1
    - Dst: fu_history_add_security_attribute
      Src: /src/fwupd/src/fu-engine.c:6809,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:6810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6816
      start: 6778
    functionDepth: 6
    functionLinenumber: 6778
    functionLinenumberEnd: 6816
    functionName: fu_engine_record_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FWUPD_CODEC
    - fu_engine_get_host_security_id
    - fu_security_attrs_equal
    - g_ptr_array_index
    - g_autoptr
    - fu_history_get_security_attrs
    - fu_history_add_security_attribute
    - g_info
    - fwupd_codec_to_json_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_record_security_attrs(FuEngine *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6821,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:6824,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:6827,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6829,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-engine.c:6830,1
    - Dst: fu_security_attr_get_name
      Src: /src/fwupd/src/fu-engine.c:6831,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6833,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6834,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/src/fu-engine.c:6837,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:6839,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/src/fu-engine.c:6840,1
    - Dst: fu_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:6840,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:6841,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/src/fu-engine.c:6842,1
    - Dst: fu_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:6843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6846
      start: 6818
    functionDepth: 2
    functionLinenumber: 6818
    functionLinenumberEnd: 6846
    functionName: fu_engine_security_attrs_depsolve
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_security_attr_get_description
    - fu_security_attr_get_name
    - fwupd_security_attr_set_name
    - fu_security_attrs_depsolve
    - fu_security_attr_get_title
    - fu_security_attr_get_description
    - fwupd_security_attr_get_name
    - fwupd_security_attr_get_title
    - fwupd_security_attr_set_title
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_set_description
    - g_autoptr
    - fu_security_attrs_get_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_security_attrs_depsolve(FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6867,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:6869,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6873,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6874,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:6874,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6876,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6877,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6877,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6879,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:6880,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6882,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:6884,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:6885,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - appstream_id
    - current_setting
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6896
      start: 6861
    functionDepth: 6
    functionLinenumber: 6861
    functionLinenumberEnd: 6896
    functionName: fu_engine_get_previous_bios_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_debug
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - g_set_error_literal
    - fu_history_get_security_attrs
    - g_autoptr
    - fwupd_security_attr_get_bios_setting_id
    - g_strcmp0
    - fu_security_attrs_get_all
    - fwupd_security_attr_get_bios_setting_current_value
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: "FwupdSecurityAttr *\nfu_engine_get_previous_bios_security_attr(FuEngine
      *self,\n\t\t\t\t\t  const gchar *appstream_id,\n\t\t\t\t\t  const gchar *current_setting,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6913,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6914,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6916,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6916,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:6918,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6920,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-engine.c:6923,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6924,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:6930,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6931,1
    - Dst: fu_plugin_runner_fix_host_security_attr
      Src: /src/fwupd/src/fu-engine.c:6937,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:6938,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:6939,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:6939,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6942,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6944,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6944,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:6949,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6950,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:6956,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:6957,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6959,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:6963,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:6966,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-engine.c:6968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - self
    - appstream_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6970
      start: 6908
    functionDepth: 1
    functionLinenumber: 6908
    functionLinenumberEnd: 6970
    functionName: fu_engine_fix_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_propagate_error
    - fwupd_bios_setting_write_value
    - g_return_val_if_fail
    - g_set_error
    - fu_plugin_list_find_by_name
    - g_debug
    - fwupd_security_attr_get_appstream_id
    - fu_security_attrs_get_by_appstream_id
    - g_info
    - fu_context_get_bios_setting
    - FU_IS_ENGINE
    - g_steal_pointer
    - fwupd_security_attr_has_flag
    - g_error_matches
    - fwupd_security_attr_get_plugin
    - fu_plugin_runner_fix_host_security_attr
    - g_autoptr
    - fwupd_security_attr_get_bios_setting_target_value
    - fu_engine_ensure_security_attrs
    - g_set_error_literal
    - fwupd_security_attr_get_bios_setting_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_fix_host_security_attr(FuEngine *self, const gchar
      *appstream_id, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6987,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6988,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6989,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6991,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6991,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:6993,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6995,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-engine.c:6998,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6999,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7005,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7006,1
    - Dst: fu_plugin_runner_undo_host_security_attr
      Src: /src/fwupd/src/fu-engine.c:7012,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7013,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:7014,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:7014,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7020,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7021,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:7027,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7028,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:7030,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7034,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7037,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7038,1
    - Dst: fu_engine_get_previous_bios_security_attr
      Src: /src/fwupd/src/fu-engine.c:7044,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7047,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:7051,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - self
    - appstream_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7055
      start: 6982
    functionDepth: 7
    functionLinenumber: 6982
    functionLinenumberEnd: 7055
    functionName: fu_engine_undo_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fu_engine_get_previous_bios_security_attr
    - g_propagate_error
    - fwupd_bios_setting_write_value
    - g_return_val_if_fail
    - g_set_error
    - fu_plugin_list_find_by_name
    - fu_security_attrs_get_by_appstream_id
    - fu_context_get_bios_setting
    - FU_IS_ENGINE
    - fu_plugin_runner_undo_host_security_attr
    - fwupd_security_attr_has_flag
    - g_error_matches
    - fwupd_security_attr_get_plugin
    - g_steal_pointer
    - g_autoptr
    - fu_engine_ensure_security_attrs
    - g_set_error_literal
    - fwupd_security_attr_get_bios_setting_id
    - fwupd_security_attr_get_bios_setting_current_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_undo_host_security_attr(FuEngine *self, const gchar
      *appstream_id, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/src/fu-engine.c:7063,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7064,1
    - Dst: json_node_get_object
      Src: /src/fwupd/src/fu-engine.c:7072,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-engine.c:7073,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7075,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - json_node
    - error
    argTypes:
    - FuEngine*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7080
      start: 7057
    functionDepth: 1
    functionLinenumber: 7057
    functionLinenumberEnd: 7080
    functionName: fu_engine_security_attrs_from_json
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_node_get_object
    - json_object_has_member
    - fwupd_codec_from_json
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_security_attrs_from_json(FuEngine *self, JsonNode
      *json_node, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/src/fu-engine.c:7089,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7090,1
    - Dst: json_node_get_object
      Src: /src/fwupd/src/fu-engine.c:7098,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-engine.c:7099,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/src/fu-engine.c:7103,1
    - Dst: json_array_get_length
      Src: /src/fwupd/src/fu-engine.c:7104,1
    - Dst: json_array_get_element
      Src: /src/fwupd/src/fu-engine.c:7105,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7106,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine.c:7106,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7107,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7107,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7109,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:7110,1
    - Dst: fu_device_setup
      Src: /src/fwupd/src/fu-engine.c:7111,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine.c:7113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - json_node
    - error
    argTypes:
    - FuEngine*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7118
      start: 7082
    functionDepth: 8
    functionLinenumber: 7082
    functionLinenumberEnd: 7118
    functionName: fu_engine_devices_from_json
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - json_array_get_element
    - fwupd_codec_from_json
    - fu_engine_add_device
    - fu_device_setup
    - FWUPD_CODEC
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_array_member
    - json_node_get_object
    - g_autoptr
    - json_object_has_member
    - fu_device_new
    - fu_device_set_plugin
    - json_array_get_length
    - fu_device_add_problem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_devices_from_json(FuEngine *self, JsonNode *json_node,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7123,1
    - Dst: json_parser_new
      Src: /src/fwupd/src/fu-engine.c:7123,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7124,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:7124,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7125,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7127,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7128,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7128,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:7131,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7132,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7133,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/src/fu-engine.c:7134,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:7135,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:7138,1
    - Dst: g_file_read
      Src: /src/fwupd/src/fu-engine.c:7138,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7142,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/src/fu-engine.c:7143,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/src/fu-engine.c:7143,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:7144,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:7146,1
    - Dst: json_parser_load_from_stream
      Src: /src/fwupd/src/fu-engine.c:7148,1
    - Dst: fu_engine_devices_from_json
      Src: /src/fwupd/src/fu-engine.c:7150,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-engine.c:7150,1
    - Dst: fu_engine_security_attrs_from_json
      Src: /src/fwupd/src/fu-engine.c:7152,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-engine.c:7152,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7154,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7154,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-engine.c:7154,1
    - Dst: fu_engine_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:7159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7164
      start: 7120
    functionDepth: 9
    functionLinenumber: 7120
    functionLinenumberEnd: 7164
    functionName: fu_engine_load_host_emulation
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_read
    - fwupd_security_attr_add_flag
    - FWUPD_CODEC
    - json_parser_get_root
    - json_parser_load_from_stream
    - g_object_ref
    - json_parser_new
    - fu_engine_devices_from_json
    - g_file_new_for_path
    - g_converter_input_stream_new
    - g_zlib_decompressor_new
    - fwupd_security_attr_set_result
    - G_CONVERTER
    - g_str_has_suffix
    - fu_engine_security_attrs_from_json
    - fwupd_security_attr_new
    - fwupd_security_attr_set_plugin
    - g_autoptr
    - fwupd_codec_from_json
    - fu_context_get_bios_settings
    - fu_security_attrs_append
    - G_INPUT_STREAM
    - fu_engine_security_attrs_depsolve
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_load_host_emulation(FuEngine *self, const gchar
      *fn, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:7170,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7171,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:7171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7173,1
    - Dst: fu_security_attrs_is_valid
      Src: /src/fwupd/src/fu-engine.c:7176,1
    - Dst: fu_engine_ensure_security_attrs_supported_cpu
      Src: /src/fwupd/src/fu-engine.c:7180,1
    - Dst: fu_engine_ensure_security_attrs_tainted
      Src: /src/fwupd/src/fu-engine.c:7181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7185,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7191,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7192,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:7196,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7198,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-engine.c:7199,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7201,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7202,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7203,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7205,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7206,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7207,1
    - Dst: fu_engine_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:7213,1
    - Dst: fu_engine_record_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7216,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7219
      start: 7166
    functionDepth: 7
    functionLinenumber: 7166
    functionLinenumberEnd: 7219
    functionName: fu_engine_ensure_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - g_warning
    - g_debug
    - fu_engine_ensure_security_attrs_supported_cpu
    - fu_security_attrs_is_valid
    - fwupd_security_attr_get_result
    - fwupd_security_attr_get_plugin
    - fu_plugin_runner_add_security_attrs
    - fu_engine_record_security_attrs
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - fu_engine_security_attrs_depsolve
    - fu_device_add_security_attrs
    - g_autoptr
    - fu_plugin_list_get_all
    - fu_engine_ensure_security_attrs_tainted
    - fu_security_attrs_get_all
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_security_attrs(FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:7224,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7224,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7225,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:7226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7227
      start: 7221
    functionDepth: 8
    functionLinenumber: 7221
    functionLinenumberEnd: 7227
    functionName: fu_engine_get_host_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - g_object_ref
    - g_return_val_if_fail
    - fu_engine_ensure_security_attrs
    linkageType: ''
    returnType: FuSecurityAttrs
    signature: 'FuSecurityAttrs *

      fu_engine_get_host_security_attrs(FuEngine *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7232,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine.c:7232,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7233,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:7235,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7235,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7237,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7241,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7242,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7243,1
    - Dst: fu_security_attrs_compare
      Src: /src/fwupd/src/fu-engine.c:7243,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7245,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7246,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/src/fu-engine.c:7247,1
    - Dst: fu_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7248,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7250,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/src/fu-engine.c:7251,1
    - Dst: fu_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7253,1
    - Dst: fu_security_attrs_append_internal
      Src: /src/fwupd/src/fu-engine.c:7255,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:7260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - limit
    - error
    argTypes:
    - FuEngine*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7261
      start: 7229
    functionDepth: 6
    functionLinenumber: 7229
    functionLinenumberEnd: 7261
    functionName: fu_engine_get_host_security_events
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE
    - fwupd_security_attr_get_description
    - fu_security_attrs_new
    - fu_security_attrs_compare
    - fu_security_attr_get_description
    - g_steal_pointer
    - fwupd_security_attr_get_title
    - fwupd_security_attr_set_title
    - fu_security_attrs_append_internal
    - g_ptr_array_index
    - fwupd_security_attr_set_description
    - fu_history_get_security_attrs
    - g_autoptr
    - g_return_val_if_fail
    - fu_security_attr_get_title
    linkageType: ''
    returnType: FuSecurityAttrs
    signature: 'FuSecurityAttrs *

      fu_engine_get_host_security_events(FuEngine *self, guint limit, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7268,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7271,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7272,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7273,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7274,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7275,1
    - Dst: fu_plugin_guess_name_from_fn
      Src: /src/fwupd/src/fu-engine.c:7278,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:7280,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine.c:7285,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-engine.c:7286,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine.c:7287,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7288,1
    - Dst: fu_plugin_open
      Src: /src/fwupd/src/fu-engine.c:7291,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7292,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - self
    - filename
    - progress
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7294
      start: 7263
    functionDepth: 2
    functionLinenumber: 7263
    functionLinenumberEnd: 7294
    functionName: fu_engine_load_plugins_filename
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_progress_step_done
    - fu_plugin_new
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_plugin_set_name
    - g_autoptr
    - fu_plugin_open
    - fu_progress_finished
    - fu_engine_add_plugin
    - fu_plugin_guess_name_from_fn
    - fu_progress_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_plugins_filename(FuEngine *self, const gchar *filename,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7299,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7300,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7302,1
    - Dst: fu_engine_load_plugins_filename
      Src: /src/fwupd/src/fu-engine.c:7303,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7303,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - filenames
    - progress
    argTypes:
    - FuEngine*
    - GPtrArray*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7306
      start: 7296
    functionDepth: 3
    functionLinenumber: 7296
    functionLinenumberEnd: 7306
    functionName: fu_engine_load_plugins_filenames
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_engine_load_plugins_filename
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_plugins_filenames(FuEngine *self, GPtrArray *filenames,
      FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7320,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7321,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7324,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine.c:7324,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7325,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7325,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7325,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine.c:7326,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7329
      start: 7308
    functionDepth: 2
    functionLinenumber: 7308
    functionLinenumberEnd: 7329
    functionName: fu_engine_load_plugins_builtins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_new_from_gtype
    - fu_progress_get_child
    - fu_plugin_get_name
    - fu_progress_step_done
    - fu_progress_set_steps
    - fu_progress_set_id
    - g_autoptr
    - fu_engine_add_plugin
    - fu_progress_set_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_plugins_builtins(FuEngine *self, FuProgress *progress)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7338,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7338,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7341,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7342,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7343,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7344,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7345,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:7348,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:7350,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:7350,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7352,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7353,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-engine.c:7354,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7356,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7362,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7363,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7365,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7365,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7369,1
    - Dst: fu_engine_load_plugins_filenames
      Src: /src/fwupd/src/fu-engine.c:7373,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7373,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7374,1
    - Dst: fu_engine_load_plugins_builtins
      Src: /src/fwupd/src/fu-engine.c:7378,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7378,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7383
      start: 7331
    functionDepth: 4
    functionLinenumber: 7331
    functionLinenumberEnd: 7383
    functionName: fu_engine_load_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_load_plugins_filenames
    - fu_progress_step_done
    - g_auto
    - g_debug
    - fu_progress_get_child
    - fu_engine_load_plugins_builtins
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_strsplit
    - g_ptr_array_index
    - fu_progress_set_id
    - g_str_has_suffix
    - g_autoptr
    - g_strdup
    - g_ptr_array_new_with_free_func
    - fu_path_from_kind
    - g_ptr_array_add
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_load_plugins(FuEngine *self,\n\t\t       FuEngineLoadFlags
      flags,\n\t\t       FuProgress *progress,\n\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:7388,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7389,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7389,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7390,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7390,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7393,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7396,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7397,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7400,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7400,1
    - Dst: fu_engine_is_plugin_name_disabled
      Src: /src/fwupd/src/fu-engine.c:7403,1
    - Dst: fu_engine_is_test_plugin_disabled
      Src: /src/fwupd/src/fu-engine.c:7404,1
    - Dst: fu_engine_is_plugin_name_enabled
      Src: /src/fwupd/src/fu-engine.c:7405,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine.c:7406,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7407,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7407,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:7408,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7409,1
    - Dst: fu_plugin_runner_init
      Src: /src/fwupd/src/fu-engine.c:7414,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:7417,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7418,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7418,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7419,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7424,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7424,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7426,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7428,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7428,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7430,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7432,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7432,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7434,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7436,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7436,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7438,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7440,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7440,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7444,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7450,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-engine.c:7451,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7452,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7456,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-engine.c:7457,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7458,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-engine.c:7462,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7467
      start: 7385
    functionDepth: 2
    functionLinenumber: 7385
    functionLinenumberEnd: 7467
    functionName: fu_engine_plugins_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - fu_engine_is_plugin_name_enabled
    - fu_progress_set_steps
    - fu_engine_is_plugin_name_disabled
    - fu_progress_get_child
    - fu_plugin_has_flag
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_plugin_runner_init
    - fu_engine_is_test_plugin_disabled
    - fu_plugin_list_get_all
    - fu_plugin_list_depsolve
    - FU_PLUGIN
    - g_info
    - G_CALLBACK
    - fu_progress_step_done
    - fu_engine_plugin_allows_enumeration
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_progress_set_name
    - fu_plugin_get_name
    - g_strjoinv
    - fu_plugin_add_flag
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_plugins_init(FuEngine *self, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7476,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:7476,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-engine.c:7477,1
    - Dst: g_file_delete
      Src: /src/fwupd/src/fu-engine.c:7478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7483
      start: 7469
    functionDepth: 0
    functionLinenumber: 7469
    functionLinenumberEnd: 7483
    functionName: fu_engine_cleanup_state
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_new_for_path
    - g_file_query_exists
    - g_file_delete
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_cleanup_state(GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:7489,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:7490,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7491,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/src/fu-engine.c:7491,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7492,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7493,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:7495,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-engine.c:7498,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-engine.c:7501,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7504,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:7506,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7507,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:7508,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-engine.c:7510,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7510,1
    - Dst: fu_bios_settings_to_hash_kv
      Src: /src/fwupd/src/fu-engine.c:7513,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7515
      start: 7485
    functionDepth: 3
    functionLinenumber: 7485
    functionLinenumberEnd: 7515
    functionName: fu_engine_apply_default_bios_settings_policy
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - fu_bios_settings_new
    - g_dir_read_name
    - fu_bios_settings_to_hash_kv
    - g_build_filename
    - fwupd_codec_from_json_string
    - FWUPD_CODEC
    - g_dir_open
    - g_str_has_suffix
    - g_file_test
    - g_autoptr
    - fu_path_from_kind
    - g_info
    - fu_engine_modify_bios_settings
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_apply_default_bios_settings_policy(FuEngine *self,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7522,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine.c:7526,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7527,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7528,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7530,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7531,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7532,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-engine.c:7532,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7535,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7539,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7540,1
    - Dst: fu_engine_apply_default_bios_settings_policy
      Src: /src/fwupd/src/fu-engine.c:7543,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7544,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7545,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - device
    - added
    argTypes:
    - FuEngine*
    - FuDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7552
      start: 7517
    functionDepth: 4
    functionLinenumber: 7517
    functionLinenumberEnd: 7552
    functionName: fu_engine_check_firmware_attributes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - g_warning
    - fu_bios_settings_get_all
    - fu_context_get_bios_settings
    - g_debug
    - fu_udev_device_get_subsystem
    - g_error_matches
    - fu_engine_apply_default_bios_settings_policy
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_engine_check_firmware_attributes(FuEngine *self, FuDevice *device,
      gboolean added)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7557,1
    - Dst: fu_engine_check_firmware_attributes
      Src: /src/fwupd/src/fu-engine.c:7560,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7563,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:7563,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7563,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:7566,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7568,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7569,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7569,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7570,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:7572,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7574,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:7575,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:7576,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7579,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7580,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7584,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:7585,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:7586,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/src/fu-engine.c:7587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7590
      start: 7554
    functionDepth: 5
    functionLinenumber: 7554
    functionLinenumberEnd: 7590
    functionName: fu_engine_backend_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_get_backend_id
    - fu_plugin_list_find_by_name
    - fu_device_get_plugin
    - fu_engine_check_firmware_attributes
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_plugin_device_remove
    - g_strcmp0
    - g_autoptr
    - fu_device_get_id
    - fu_backend_get_name
    - fu_device_get_name
    - g_info
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_backend_device_removed_cb(FuBackend *backend, FuDevice
      *device, FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7602,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7603,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:7608,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:7612,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - device
    - plugin_name
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7592
    functionDepth: 1
    functionLinenumber: 7592
    functionLinenumberEnd: 7625
    functionName: fu_engine_backend_device_added_run_plugin
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_plugin_list_find_by_name
    - fu_device_get_backend_id
    - fu_plugin_runner_backend_device_added
    - fu_progress_set_name
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_backend_device_added_run_plugin(FuEngine *self,\n\t\t\t\t\t
      \ FuDevice *device,\n\t\t\t\t\t  const gchar *plugin_name,\n\t\t\t\t\t  FuProgress
      *progress,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7630,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:7630,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7633,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7634,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7636,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7637,1
    - Dst: fu_engine_backend_device_added_run_plugin
      Src: /src/fwupd/src/fu-engine.c:7638,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7641,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7643,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7644,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7645,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7647,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7648,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7651,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7652,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device
    - progress
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7657
      start: 7627
    functionDepth: 2
    functionLinenumber: 7627
    functionLinenumberEnd: 7657
    functionName: fu_engine_backend_device_added_run_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_progress_get_child
    - g_debug
    - fu_device_get_backend_id
    - fu_progress_step_done
    - g_error_matches
    - fu_progress_add_flag
    - g_ptr_array_index
    - fu_engine_backend_device_added_run_plugin
    - fu_progress_set_id
    - fu_device_get_possible_plugins
    - g_autoptr
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_backend_device_added_run_plugins(FuEngine *self, FuDevice
      *device, FuProgress *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7662,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7665,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7666,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7667,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7667,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7668,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7669,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:7672,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:7673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7673,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7674,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7674,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-engine.c:7678,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-engine.c:7679,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7680,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7681,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7682,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7683,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7686,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7687,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:7690,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7693,1
    - Dst: fu_engine_ensure_device_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:7696,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:7699,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:7700,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7700,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7701,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7701,1
    - Dst: fu_engine_check_firmware_attributes
      Src: /src/fwupd/src/fu-engine.c:7705,1
    - Dst: fu_engine_backend_device_added_run_plugins
      Src: /src/fwupd/src/fu-engine.c:7708,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7708,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - device
    - progress
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7710
      start: 7659
    functionDepth: 7
    functionLinenumber: 7659
    functionLinenumberEnd: 7710
    functionName: fu_engine_backend_device_added
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_to_string
    - fu_device_probe
    - fu_engine_backend_device_added_run_plugins
    - fu_progress_get_child
    - g_debug
    - fu_device_get_backend_id
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_engine_ensure_device_emulation_tag
    - fu_progress_set_id
    - fu_progress_finished
    - fu_progress_step_done
    - g_error_matches
    - fu_engine_check_firmware_attributes
    - g_autoptr
    - g_getenv
    - fu_progress_set_name
    - g_warning
    - FU_DEVICE
    - fu_device_set_context
    linkageType: ''
    returnType: void
    signature: void fu_engine_backend_device_added(FuEngine *self, FuDevice *device,
      FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7715,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine.c:7715,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7716,1
    - Dst: fu_engine_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:7718,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:7721,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:7724,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7726,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7727,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:7728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7730
      start: 7712
    functionDepth: 8
    functionLinenumber: 7712
    functionLinenumberEnd: 7730
    functionName: fu_engine_backend_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_probe_complete
    - g_debug
    - fu_progress_new
    - fu_device_get_backend_id
    - fu_engine_backend_device_added
    - fu_backend_device_removed
    - fu_device_get_possible_plugins
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_backend_device_added_cb(FuBackend *backend, FuDevice
      *device, FuEngine *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:7735,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7736,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7739,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:7739,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:7739,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:7742,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7744,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7745,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7745,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7747,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-engine.c:7747,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7747,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-engine.c:7748,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7748,1
    - Dst: fu_udev_device_emit_changed
      Src: /src/fwupd/src/fu-engine.c:7749,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7749,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7755,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:7756,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:7758,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7760,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7760,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7761,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7762,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:7762,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-engine.c:7763,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7769,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7770,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/src/fu-engine.c:7771,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-engine.c:7775,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:7777,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7781,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7782,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7783,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7787,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7788,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:7789,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7793
      start: 7732
    functionDepth: 1
    functionLinenumber: 7732
    functionLinenumberEnd: 7793
    functionName: fu_engine_backend_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_device_get_physical_id
    - fu_udev_device_get_sysfs_path
    - fu_device_get_id
    - fu_backend_get_name
    - fu_plugin_runner_backend_device_changed
    - g_debug
    - fu_device_get_backend_id
    - g_ptr_array_index
    - fu_udev_device_emit_changed
    - g_critical
    - FU_UDEV_DEVICE
    - fu_plugin_list_get_all
    - fu_device_incorporate
    - g_error_matches
    - g_autoptr
    - fu_device_list_get_active
    - g_warning
    - fu_plugin_get_name
    - FU_IS_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_engine_backend_device_changed_cb(FuBackend *backend, FuDevice
      *device, FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:7800,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/src/fu-engine.c:7803,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:7806,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7808,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7809,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7811,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7817,1
    - Dst: fu_plugin_remove_flag
      Src: /src/fwupd/src/fu-engine.c:7818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - hwid
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7820
      start: 7795
    functionDepth: 1
    functionLinenumber: 7795
    functionLinenumberEnd: 7820
    functionName: fu_engine_load_quirks_for_hwid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_list_find_by_name
    - g_auto
    - g_strsplit
    - fu_context_lookup_quirk_by_id
    - fu_plugin_remove_flag
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_quirks_for_hwid(FuEngine *self, const gchar *hwid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7828,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7829,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:7832,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:7832,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:7838,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:7838,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7840,1
    - Dst: fu_engine_get_boot_time
      Src: /src/fwupd/src/fu-engine.c:7849,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7850,1
    - Dst: fu_release_get_metadata_item
      Src: /src/fwupd/src/fu-engine.c:7850,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7851,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7854,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7855,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:7855,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:7856,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-engine.c:7862,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine.c:7863,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:7864,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:7865,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:7869,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7875,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7875,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:7878,1
    - Dst: fu_engine_update_release_integrity
      Src: /src/fwupd/src/fu-engine.c:7879,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-engine.c:7882,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:7883,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:7888,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:7888,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:7889,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:7890,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7892,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:7893,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:7894,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:7897,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7899,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine.c:7900,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine.c:7902,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:7902,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine.c:7903,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:7903,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:7904,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:7905,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:7906,1
    - Dst: fu_plugin_runner_get_results
      Src: /src/fwupd/src/fu-engine.c:7913,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7917,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7919,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:7919,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7920,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:7921,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:7922,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:7924,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:7925,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:7926,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:7928,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7928,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:7929,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine.c:7929,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:7933,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 3
    argNames:
    - self
    - dev_history
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7934
      start: 7822
    functionDepth: 6
    functionLinenumber: 7822
    functionLinenumberEnd: 7934
    functionName: fu_engine_update_history_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_version_compare
    - g_prefix_error
    - fu_device_get_id
    - fu_plugin_runner_get_results
    - fu_device_get_plugin
    - fu_plugin_runner_reboot_cleanup
    - fu_device_get_checksums
    - g_string_append_printf
    - fu_plugin_has_flag
    - g_hash_table_size
    - fu_plugin_list_find_by_name
    - fu_device_get_version
    - fu_device_set_version
    - fu_device_get_update_state
    - g_ptr_array_index
    - fu_device_remove_flag
    - fu_release_get_metadata_item
    - fu_release_add_metadata
    - fu_engine_update_release_integrity
    - fu_device_get_name
    - fu_engine_get_boot_time
    - g_info
    - fu_device_set_update_state
    - fu_release_get_version
    - fu_device_report_metadata_post
    - fu_device_get_release_default
    - fu_history_modify_device_release
    - g_autoptr
    - fu_device_add_checksum
    - fu_device_set_version_format
    - fu_device_get_version_format
    - fu_device_get_update_error
    - fu_device_set_update_error
    - FU_RELEASE
    - fu_device_list_get_by_id
    - g_set_error_literal
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_history_device(FuEngine *self, FuDevice *dev_history,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7939,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:7942,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7947,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7950,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:7951,1
    - Dst: fu_engine_update_history_device
      Src: /src/fwupd/src/fu-engine.c:7955,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7956,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7957,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7961,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7965
      start: 7936
    functionDepth: 7
    functionLinenumber: 7936
    functionLinenumberEnd: 7965
    functionName: fu_engine_update_history_database
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_error_matches
    - fu_device_get_update_state
    - g_ptr_array_index
    - g_autoptr
    - fu_engine_update_history_device
    - fu_history_get_devices
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_history_database(FuEngine *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7970,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine.c:7970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7971,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7972,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7973,1
    - Dst: jcat_context_get_engine
      Src: /src/fwupd/src/fu-engine.c:7977,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-engine.c:7979,1
    - Dst: jcat_engine_self_sign
      Src: /src/fwupd/src/fu-engine.c:7982,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7984,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7985,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-engine.c:7988,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7992
      start: 7967
    functionDepth: 0
    functionLinenumber: 7967
    functionLinenumberEnd: 7992
    functionName: fu_engine_ensure_client_certificate
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_message
    - g_error_matches
    - jcat_context_get_engine
    - g_autoptr
    - jcat_engine_self_sign
    - g_bytes_new_static
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_client_certificate(FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_hwid_replace_value
      Src: /src/fwupd/src/fu-engine.c:8002,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/src/fu-engine.c:8003,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:8005,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/src/fu-engine.c:8006,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8011,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine.c:8012,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8018,1
    - Dst: fu_context_set_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:8023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8024
      start: 7994
    functionDepth: 1
    functionLinenumber: 7994
    functionLinenumberEnd: 8024
    functionName: fu_engine_context_set_battery_threshold
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_context_set_battery_threshold
    - fu_context_lookup_quirk_by_id
    - g_strdup
    - g_autoptr
    - fu_context_get_hwid_replace_value
    - fwupd_guid_hash_string
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_engine_context_set_battery_threshold(FuContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:8035,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/src/fu-engine.c:8036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8040
      start: 8026
    functionDepth: 1
    functionLinenumber: 8026
    functionLinenumberEnd: 8040
    functionName: fu_engine_ensure_paths_exist
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_path_from_kind
    - fu_path_mkdir
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_ensure_paths_exist(GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8049,1
    - Dst: fu_engine_metadata_changed
      Src: /src/fwupd/src/fu-engine.c:8050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8051
      start: 8042
    functionDepth: 6
    functionLinenumber: 8042
    functionLinenumberEnd: 8051
    functionName: fu_engine_local_metadata_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - fu_engine_metadata_changed
    linkageType: ''
    returnType: void
    signature: "void fu_engine_local_metadata_changed_cb(GFileMonitor *monitor,\n\t\t\t\t
      \   GFile *file,\n\t\t\t\t    GFile *other_file,\n\t\t\t\t    GFileMonitorEvent
      event_type,\n\t\t\t\t    gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:8059,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8061,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8062,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:8063,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:8064,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:8066,1
    - Dst: g_file_monitor_directory
      Src: /src/fwupd/src/fu-engine.c:8067,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8069,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8072,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8074,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:8076,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:8076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8081
      start: 8053
    functionDepth: 1
    functionLinenumber: 8053
    functionLinenumberEnd: 8081
    functionName: fu_engine_load_local_metadata_watches
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_steal_pointer
    - g_file_new_for_path
    - g_build_filename
    - g_autoptr
    - g_ptr_array_add
    - fu_path_from_kind
    - g_file_monitor_directory
    - G_N_ELEMENTS
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_load_local_metadata_watches(FuEngine *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegGetValue
      Src: /src/fwupd/src/fu-engine.c:8094,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:8096,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-engine.c:8104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - hkey
    - subkey
    - value
    - error
    argTypes:
    - HKEY
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8084
    functionDepth: 0
    functionLinenumber: 8084
    functionLinenumberEnd: 8105
    functionName: fu_engine_win32_registry_get_string
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strndup
    - RegGetValue
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_engine_win32_registry_get_string(HKEY hkey,\n\t\t\t\t
      \   const gchar *subkey,\n\t\t\t\t    const gchar *value,\n\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8114,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-engine.c:8114,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8117,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:8118,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8120,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8121,1
    - Dst: fu_engine_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:8123,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8123,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8124,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:8127,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:8130,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8132,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8133,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:8134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - self
    - backend
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8140
      start: 8108
    functionDepth: 8
    functionLinenumber: 8108
    functionLinenumberEnd: 8140
    functionName: fu_engine_backends_coldplug_backend_add_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_device_probe_complete
    - g_debug
    - fu_device_get_backend_id
    - fu_engine_backend_device_added
    - g_ptr_array_index
    - fu_backend_device_removed
    - fu_progress_set_id
    - fu_device_get_possible_plugins
    - g_autoptr
    - fu_backend_get_devices
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_backends_coldplug_backend_add_devices(FuEngine
      *self,\n\t\t\t\t\t\tFuBackend *backend,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8149,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8150,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:8151,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8151,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8152,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8153,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-engine.c:8156,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8156,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8158,1
    - Dst: fu_engine_backends_coldplug_backend_add_devices
      Src: /src/fwupd/src/fu-engine.c:8161,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8163,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8165,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8168,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8168,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8170,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8172,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8172,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8174,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8176,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8176,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - self
    - backend
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8142
    functionDepth: 9
    functionLinenumber: 8142
    functionLinenumberEnd: 8181
    functionName: fu_engine_backends_coldplug_backend
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_backend_coldplug
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_engine_backends_coldplug_backend_add_devices
    - fu_progress_set_id
    - fu_backend_get_name
    - g_signal_connect
    - FU_BACKEND
    - fu_progress_set_name
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_backends_coldplug_backend(FuEngine *self,\n\t\t\t\t
      \   FuBackend *backend,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:8186,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8187,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:8188,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8190,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8191,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/src/fu-engine.c:8193,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8194,1
    - Dst: fu_engine_backends_coldplug_backend
      Src: /src/fwupd/src/fu-engine.c:8197,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8199,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8201,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8204,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8205,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8208,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8209,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:8212,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8212,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8216
      start: 8183
    functionDepth: 10
    functionLinenumber: 8183
    functionLinenumberEnd: 8216
    functionName: fu_engine_backends_coldplug
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_backend_get_enabled
    - fu_progress_step_done
    - fu_progress_get_child
    - g_debug
    - g_error_matches
    - fu_engine_backends_coldplug_backend
    - g_ptr_array_index
    - fu_context_get_backends
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_finished
    - fu_backend_get_name
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_engine_backends_coldplug(FuEngine *self, FuProgress *progress)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:8234,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:8235,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:8236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8239,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8240,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8241,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8243,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8243,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8244,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/src/fu-engine.c:8244,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8245,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8252,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8253,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8254,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8255,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8256,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8257,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8258,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8259,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8260,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8261,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8262,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8263,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8264,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8265,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8266,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8267,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8268,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8269,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8272,1
    - Dst: fwupd_version_string
      Src: /src/fwupd/src/fu-engine.c:8272,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:8273,1
    - Dst: fwupd_version_string
      Src: /src/fwupd/src/fu-engine.c:8277,1
    - Dst: fu_engine_win32_registry_get_string
      Src: /src/fwupd/src/fu-engine.c:8285,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-engine.c:8290,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8293,1
    - Dst: fu_engine_ensure_paths_exist
      Src: /src/fwupd/src/fu-engine.c:8296,1
    - Dst: fu_config_load
      Src: /src/fwupd/src/fu-engine.c:8300,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:8300,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8301,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8304,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8307,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/src/fu-engine.c:8308,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8309,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:8315,1
    - Dst: fu_remote_list_set_lvfs_metadata_format
      Src: /src/fwupd/src/fu-engine.c:8321,1
    - Dst: fu_remote_list_load
      Src: /src/fwupd/src/fu-engine.c:8322,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8323,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8327,1
    - Dst: fu_engine_ensure_client_certificate
      Src: /src/fwupd/src/fu-engine.c:8331,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8332,1
    - Dst: fu_engine_config_get_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8335,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8337,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8338,1
    - Dst: fu_engine_config_get_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:8340,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8342,1
    - Dst: fu_engine_add_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:8343,1
    - Dst: fu_history_get_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8347,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8351,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8352,1
    - Dst: fu_history_get_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:8354,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8358,1
    - Dst: fu_engine_add_blocked_firmware
      Src: /src/fwupd/src/fu-engine.c:8359,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8361,1
    - Dst: fu_engine_load_plugins
      Src: /src/fwupd/src/fu-engine.c:8364,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8364,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8365,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8368,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8371,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/src/fu-engine.c:8373,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8375,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8375,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8376,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/src/fu-engine.c:8377,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:8377,1
    - Dst: fu_idle_set_timeout
      Src: /src/fwupd/src/fu-engine.c:8388,1
    - Dst: fu_engine_config_get_idle_timeout
      Src: /src/fwupd/src/fu-engine.c:8388,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/src/fu-engine.c:8395,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8396,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8397,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:8401,1
    - Dst: fu_engine_config_get_ignore_efivars_free_space
      Src: /src/fwupd/src/fu-engine.c:8404,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:8405,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine.c:8409,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8410,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8415,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:8418,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8419,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8422,1
    - Dst: fu_engine_load_local_metadata_watches
      Src: /src/fwupd/src/fu-engine.c:8425,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8429,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8430,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8431,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8432,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8433,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8434,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8435,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8436,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8437,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8438,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8439,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8440,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8441,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8442,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8443,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8444,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8445,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8446,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8447,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8448,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8449,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8450,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8451,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8452,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8455,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8456,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8459,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8460,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8461,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8462,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8463,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8464,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8465,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8466,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8467,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8468,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8469,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8470,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8473,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8476,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine.c:8477,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:8484,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:8485,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:8487,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:8488,1
    - Dst: fu_engine_load_host_emulation
      Src: /src/fwupd/src/fu-engine.c:8490,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8491,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8507,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-engine.c:8508,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8510,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8512,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8513,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8519,1
    - Dst: fu_engine_cleanup_state
      Src: /src/fwupd/src/fu-engine.c:8522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8523,1
    - Dst: fu_engine_plugins_init
      Src: /src/fwupd/src/fu-engine.c:8528,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8528,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine.c:8529,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8532,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:8535,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/src/fu-engine.c:8536,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8538,1
    - Dst: fu_engine_load_quirks_for_hwid
      Src: /src/fwupd/src/fu-engine.c:8539,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8542,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:8545,1
    - Dst: fu_engine_context_set_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:8546,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8549,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:8549,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8551,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8553,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:8553,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8555,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8557,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:8557,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8559,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:8561,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:8565,1
    - Dst: fu_engine_plugins_startup
      Src: /src/fwupd/src/fu-engine.c:8566,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8567,1
    - Dst: fu_engine_plugins_coldplug
      Src: /src/fwupd/src/fu-engine.c:8568,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8568,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8569,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8571,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8572,1
    - Dst: fu_engine_backends_coldplug
      Src: /src/fwupd/src/fu-engine.c:8577,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8577,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8578,1
    - Dst: fu_engine_plugins_ready
      Src: /src/fwupd/src/fu-engine.c:8582,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8582,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8583,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8585,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:8589,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8590,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:8590,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8592,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/src/fu-engine.c:8593,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8596,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:8597,1
    - Dst: fu_plugin_add_string
      Src: /src/fwupd/src/fu-engine.c:8599,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8601,1
    - Dst: fu_engine_update_history_database
      Src: /src/fwupd/src/fu-engine.c:8605,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8607,1
    - Dst: fu_engine_update_devices_file
      Src: /src/fwupd/src/fu-engine.c:8610,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8611,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:8613,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:8617,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 256
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8621
      start: 8229
    functionDepth: 11
    functionLinenumber: 8229
    functionLinenumberEnd: 8621
    functionName: fu_engine_load
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 46
    functionsReached:
    - g_string_new
    - fu_engine_load_quirks_for_hwid
    - fu_idle_set_timeout
    - fu_path_from_kind
    - fu_engine_ensure_context_flag_save_events
    - fu_progress_get_child
    - fu_context_load_hwinfo
    - fu_engine_plugins_init
    - g_ptr_array_index
    - fu_plugin_list_get_all
    - fu_engine_load_plugins
    - fu_engine_emit_changed
    - g_autoptr
    - fu_context_get_hwid_guids
    - g_getenv
    - g_warning
    - fu_engine_win32_registry_get_string
    - fu_engine_ensure_paths_exist
    - fwupd_version_string
    - g_strdup
    - fu_engine_add_approved_firmware
    - fu_backend_add_string
    - fu_engine_load_host_emulation
    - fu_engine_config_get_idle_timeout
    - fu_context_load_quirks
    - fu_config_set_value
    - fu_progress_add_step
    - fu_engine_context_set_battery_threshold
    - g_info
    - fu_progress_step_done
    - fu_context_set_esp_location
    - fu_plugin_get_config_value
    - fu_engine_backends_coldplug
    - fu_engine_config_get_approved_firmware
    - fu_engine_plugins_ready
    - fu_config_load
    - fu_engine_update_history_database
    - FU_IS_PROGRESS
    - g_return_val_if_fail
    - g_set_error
    - fu_plugin_has_flag
    - fu_plugin_list_find_by_name
    - fu_remote_list_set_lvfs_metadata_format
    - fu_progress_add_flag
    - fu_engine_build_machine_id
    - fu_engine_plugins_startup
    - fu_engine_config_get_blocked_firmware
    - fu_history_get_blocked_firmware
    - fu_engine_ensure_client_certificate
    - G_CALLBACK
    - FU_DEVICE_LIST
    - g_build_filename
    - fu_backend_setup
    - g_file_test
    - fu_engine_load_local_metadata_watches
    - fu_engine_plugins_coldplug
    - fu_engine_add_blocked_firmware
    - fu_plugin_add_string
    - g_prefix_error
    - fu_context_get_backends
    - fu_engine_load_metadata_store
    - fu_backend_get_name
    - g_signal_connect
    - fu_engine_config_get_esp_location
    - fu_engine_config_get_test_devices
    - fu_context_has_flag
    - fu_engine_update_devices_file
    - fu_engine_set_status
    - fu_progress_set_id
    - fu_engine_cleanup_state
    - FU_IS_ENGINE
    - fu_context_add_firmware_gtype
    - fu_engine_config_get_ignore_efivars_free_space
    - fu_remote_list_load
    - FU_CONFIG
    - fu_history_get_approved_firmware
    - fu_context_add_flag
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_load(FuEngine *self, FuEngineLoadFlags flags, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8626,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-engine.c:8629,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine.c:8632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8635
      start: 8623
    functionDepth: 0
    functionLinenumber: 8623
    functionLinenumberEnd: 8635
    functionName: fu_engine_get_property
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_ENGINE
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8640,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:8643,1
    - Dst: g_value_get_object
      Src: /src/fwupd/src/fu-engine.c:8643,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine.c:8646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8649
      start: 8637
    functionDepth: 0
    functionLinenumber: 8637
    functionLinenumberEnd: 8649
    functionName: fu_engine_set_property
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_ENGINE
    - g_value_get_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8654,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:8657,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8659,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:8660,1
    - Dst: fu_plugin_list_remove_all
      Src: /src/fwupd/src/fu-engine.c:8662,1
    - Dst: fu_device_list_remove_all
      Src: /src/fwupd/src/fu-engine.c:8665,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:8667,1
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:8670,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8672,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:8673,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine.c:8675,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:8676,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:8678,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:8680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8681
      start: 8651
    functionDepth: 1
    functionLinenumber: 8651
    functionLinenumberEnd: 8681
    functionName: fu_engine_dispose
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_list_remove_all
    - G_OBJECT_CLASS
    - g_ptr_array_index
    - fu_context_get_backends
    - g_ptr_array_set_size
    - FU_ENGINE
    - fu_plugin_list_remove_all
    - fu_plugin_list_get_all
    - g_signal_handlers_disconnect_by_data
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_dispose(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:8687,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-engine.c:8694,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-engine.c:8699,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8708,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8709,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8724,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8725,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8741,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8742,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8758,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8759,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8776,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8777,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:8793,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:8794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8803
      start: 8683
    functionDepth: 0
    functionLinenumber: 8683
    functionLinenumberEnd: 8803
    functionName: fu_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_class_init(FuEngineClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:8808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8809
      start: 8805
    functionDepth: 1
    functionLinenumber: 8805
    functionLinenumberEnd: 8809
    functionName: fu_engine_add_runtime_version
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - fu_context_add_runtime_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_runtime_version(FuEngine *self, const gchar *component_id,
      const gchar *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8814,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:8814,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8818,1
    - Dst: fu_engine_ensure_device_power_inhibit
      Src: /src/fwupd/src/fu-engine.c:8819,1
    - Dst: fu_engine_ensure_device_lid_inhibit
      Src: /src/fwupd/src/fu-engine.c:8820,1
    - Dst: fu_engine_ensure_device_display_required_inhibit
      Src: /src/fwupd/src/fu-engine.c:8821,1
    - Dst: fu_engine_ensure_device_system_inhibit
      Src: /src/fwupd/src/fu-engine.c:8822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8824
      start: 8811
    functionDepth: 2
    functionLinenumber: 8811
    functionLinenumberEnd: 8824
    functionName: fu_engine_context_power_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_lid_inhibit
    - fu_engine_ensure_device_power_inhibit
    - g_ptr_array_index
    - g_autoptr
    - fu_engine_ensure_device_display_required_inhibit
    - fu_engine_ensure_device_system_inhibit
    - fu_device_list_get_active
    linkageType: ''
    returnType: void
    signature: void fu_engine_context_power_changed(FuEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:8829,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8830,1
    - Dst: fu_engine_context_power_changed
      Src: /src/fwupd/src/fu-engine.c:8833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - pspec
    - self
    argTypes:
    - FuContext*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8834
      start: 8826
    functionDepth: 3
    functionLinenumber: 8826
    functionLinenumberEnd: 8834
    functionName: fu_engine_context_power_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_engine_context_power_changed
    - fu_idle_has_inhibit
    linkageType: ''
    returnType: void
    signature: void fu_engine_context_power_changed_cb(FuContext *ctx, GParamSpec
      *pspec, FuEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:8839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idle
    - self
    argTypes:
    - FuIdle*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8840
      start: 8836
    functionDepth: 1
    functionLinenumber: 8836
    functionLinenumberEnd: 8840
    functionName: fu_engine_idle_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_set_status
    linkageType: ''
    returnType: void
    signature: void fu_engine_idle_timeout_cb(FuIdle *idle, FuEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:8845,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine.c:8846,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8847,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine.c:8848,1
    - Dst: fu_engine_context_power_changed
      Src: /src/fwupd/src/fu-engine.c:8852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - idle
    - pspec
    - self
    argTypes:
    - FuIdle*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8854
      start: 8842
    functionDepth: 3
    functionLinenumber: 8842
    functionLinenumberEnd: 8854
    functionName: fu_engine_idle_inhibit_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - g_hash_table_size
    - g_debug
    - fu_engine_context_power_changed
    - fu_idle_has_inhibit
    linkageType: ''
    returnType: void
    signature: void fu_engine_idle_inhibit_changed_cb(FuIdle *idle, GParamSpec *pspec,
      FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8859,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8868,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8868,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8870,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8872,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8872,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8874,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8876,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8876,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8878,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8880,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8880,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8882,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8884,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8884,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8886,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8888,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8888,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8890,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8892,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:8892,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8894,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8897,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:8897,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8899,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8901,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-engine.c:8901,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8903,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8905,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-engine.c:8905,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8907,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8910,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-engine.c:8910,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8912,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8914,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-engine.c:8914,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8921,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-engine.c:8921,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:8922,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8925,1
    - Dst: fu_uefi_backend_new
      Src: /src/fwupd/src/fu-engine.c:8925,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:8926,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8930,1
    - Dst: fu_udev_backend_new
      Src: /src/fwupd/src/fu-engine.c:8930,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:8931,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8936,1
    - Dst: fu_bluez_backend_new
      Src: /src/fwupd/src/fu-engine.c:8936,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:8937,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine.c:8941,1
    - Dst: fu_engine_emulator_new
      Src: /src/fwupd/src/fu-engine.c:8942,1
    - Dst: jcat_context_new
      Src: /src/fwupd/src/fu-engine.c:8945,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-engine.c:8946,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-engine.c:8947,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-engine.c:8948,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-engine.c:8949,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:8950,1
    - Dst: jcat_context_set_keyring_path
      Src: /src/fwupd/src/fu-engine.c:8951,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine.c:8952,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:8953,1
    - Dst: jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-engine.c:8954,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:8955,1
    - Dst: jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-engine.c:8956,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:8959,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:8960,1
    - Dst: jcat_version_string
      Src: /src/fwupd/src/fu-engine.c:8960,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:8961,1
    - Dst: xb_version_string
      Src: /src/fwupd/src/fu-engine.c:8961,1
    - Dst: memset
      Src: /src/fwupd/src/fu-engine.c:8965,1
    - Dst: uname
      Src: /src/fwupd/src/fu-engine.c:8966,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:8967,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8970,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8972,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8973,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8977,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:8980,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8984,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:8988,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8992,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:8995,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:8999,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:9003,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9004,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:9006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9008
      start: 8856
    functionDepth: 2
    functionLinenumber: 8856
    functionLinenumberEnd: 9008
    functionName: fu_engine_constructed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_version_string
    - g_signal_connect
    - fu_path_from_kind
    - uname
    - fu_engine_emulator_new
    - fu_engine_add_runtime_version
    - FU_CONTEXT
    - fu_uefi_backend_new
    - jcat_context_set_keyring_path
    - memset
    - G_CALLBACK
    - jcat_context_blob_kind_allow
    - fu_context_add_compile_version
    - jcat_context_add_public_keys
    - g_build_filename
    - fu_history_new
    - fu_usb_backend_new
    - g_autoptr
    - fu_context_add_backend
    - FU_CONFIG
    - g_getenv
    - jcat_context_new
    - fu_bluez_backend_new
    - g_strdup_printf
    - jcat_version_string
    - FU_REMOTE_LIST
    - fu_udev_backend_new
    - FU_ENGINE
    - g_strcmp0
    - FU_IDLE
    linkageType: ''
    returnType: void
    signature: void fu_engine_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_new
      Src: /src/fwupd/src/fu-engine.c:9014,1
    - Dst: fu_remote_list_new
      Src: /src/fwupd/src/fu-engine.c:9015,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-engine.c:9016,1
    - Dst: fu_idle_new
      Src: /src/fwupd/src/fu-engine.c:9017,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-engine.c:9018,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:9019,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine.c:9020,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:9021,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-engine.c:9022,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:9024,1
    - Dst: passim_client_new
      Src: /src/fwupd/src/fu-engine.c:9026,1
    - Dst: g_resources_register
      Src: /src/fwupd/src/fu-engine.c:9030,1
    - Dst: fu_get_resource
      Src: /src/fwupd/src/fu-engine.c:9030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9031
      start: 9010
    functionDepth: 1
    functionLinenumber: 9010
    functionLinenumberEnd: 9031
    functionName: fu_engine_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_resources_register
    - fu_security_attrs_new
    - g_main_loop_new
    - fu_get_resource
    - fu_plugin_list_new
    - g_hash_table_new_full
    - fu_idle_new
    - fu_device_list_new
    - passim_client_new
    - fu_remote_list_new
    - g_ptr_array_new_with_free_func
    - fu_engine_config_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_init(FuEngine *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:9036,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9039,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/src/fu-engine.c:9040,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9044,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9046,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9048,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9050,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9052,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:9054,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:9056,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:9058,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:9060,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:9062,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9064,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9067,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-engine.c:9069,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine.c:9071,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9072,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9073,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9074,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9075,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9076,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9077,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9078,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine.c:9079,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine.c:9080,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:9081,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9082,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:9084,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9085
      start: 9033
    functionDepth: 0
    functionLinenumber: 9033
    functionLinenumberEnd: 9085
    functionName: fu_engine_finalize
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_main_loop_unref
    - g_object_unref
    - g_file_monitor_cancel
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - g_ptr_array_index
    - FU_ENGINE
    - g_free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_engine_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:9090,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine.c:9090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9091
      start: 9087
    functionDepth: 0
    functionLinenumber: 9087
    functionLinenumberEnd: 9091
    functionName: fu_engine_new
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 63
    functionsReached:
    - FU_ENGINE
    - g_object_new
    linkageType: ''
    returnType: FuEngine
    signature: 'FuEngine *

      fu_engine_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-usb-backend.c:40,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/src/fu-usb-backend.c:41,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/src/fu-usb-backend.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - usb_device
    argTypes:
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: fu_usb_backend_get_usb_device_backend_id
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - libusb_get_bus_number
    - libusb_get_device_address
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_usb_backend_get_usb_device_backend_id(libusb_device *usb_device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_backend_get_usb_device_backend_id
      Src: /src/fwupd/src/fu-usb-backend.c:48,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-usb-backend.c:49,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: fu_usb_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_get_usb_device_backend_id
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuUsbDevice
    signature: 'FuUsbDevice *

      fu_usb_backend_create_device(FuUsbBackend *self, libusb_device *usb_device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_backend_get_usb_device_backend_id
      Src: /src/fwupd/src/fu-usb-backend.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:64,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-usb-backend.c:66,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:66,1
    - Dst: fu_usb_backend_create_device
      Src: /src/fwupd/src/fu-usb-backend.c:69,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-usb-backend.c:70,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: fu_usb_backend_add_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_create_device
    - fu_usb_backend_get_usb_device_backend_id
    - fu_backend_lookup_by_id
    - FU_DEVICE
    - fu_backend_device_added
    - g_autoptr
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_add_device(FuUsbBackend *self, libusb_device *usb_device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_backend_get_usb_device_backend_id
      Src: /src/fwupd/src/fu-usb-backend.c:76,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-usb-backend.c:77,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:77,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-usb-backend.c:79,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fu_usb_backend_remove_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND
    - fu_backend_device_removed
    - fu_usb_backend_get_usb_device_backend_id
    - fu_backend_lookup_by_id
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_remove_device(FuUsbBackend *self, libusb_device
      *usb_device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:87,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-usb-backend.c:87,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:87,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-usb-backend.c:90,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend.c:95,1
    - Dst: g_list_prepend
      Src: /src/fwupd/src/fu-usb-backend.c:96,1
    - Dst: libusb_get_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:100,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:102,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/src/fu-usb-backend.c:105,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/src/fu-usb-backend.c:105,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/src/fu-usb-backend.c:106,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/src/fu-usb-backend.c:107,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-usb-backend.c:113,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:113,1
    - Dst: fu_usb_backend_add_device
      Src: /src/fwupd/src/fu-usb-backend.c:118,1
    - Dst: libusb_free_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: fu_usb_backend_rescan
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_bus
    - g_getenv
    - fu_usb_device_get_address
    - libusb_get_device_list
    - g_list_prepend
    - g_ptr_array_index
    - fu_backend_device_removed
    - FU_DEVICE
    - libusb_free_device_list
    - g_autoptr
    - FU_USB_DEVICE
    - fu_backend_get_devices
    - FU_BACKEND
    - libusb_get_device_address
    - libusb_get_bus_number
    - fu_usb_backend_add_device
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_rescan(FuUsbBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:126,1
    - Dst: fu_usb_backend_rescan
      Src: /src/fwupd/src/fu-usb-backend.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: fu_usb_backend_rescan_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_rescan
    - FU_USB_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_backend_rescan_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-usb-backend.c:135,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-usb-backend.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: fu_usb_backend_ensure_rescan_timeout
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_timeout_add
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_ensure_rescan_timeout(FuUsbBackend *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_backend_ensure_rescan_timeout
      Src: /src/fwupd/src/fu-usb-backend.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - hotplug_poll_interval
    argTypes:
    - FuUsbBackend*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: fu_usb_backend_set_hotplug_poll_interval
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_ensure_rescan_timeout
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_set_hotplug_poll_interval(FuUsbBackend *self, guint
      hotplug_poll_interval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:162,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-usb-backend.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-usb-backend.c:167,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:169,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - pspec
    - backend
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: fu_usb_backend_device_notify_flags_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_usb_backend_set_hotplug_poll_interval
    - g_debug
    - FU_USB_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_device_notify_flags_cb(FuDevice *device, GParamSpec
      *pspec, FuBackend *backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-usb-backend.c:188,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-usb-backend.c:189,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/src/fu-usb-backend.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - src
    - user_data
    argTypes:
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: fu_usb_backend_idle_helper_copy
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_object_ref
    - libusb_ref_device
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_usb_backend_idle_helper_copy(gconstpointer src, gpointer
      user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:200,1
    - Dst: g_mutex_lock
      Src: /src/fwupd/src/fu-usb-backend.c:203,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/src/fu-usb-backend.c:204,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-usb-backend.c:205,1
    - Dst: g_mutex_unlock
      Src: /src/fwupd/src/fu-usb-backend.c:207,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend.c:211,1
    - Dst: fu_usb_backend_add_device
      Src: /src/fwupd/src/fu-usb-backend.c:214,1
    - Dst: fu_usb_backend_remove_device
      Src: /src/fwupd/src/fu-usb-backend.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 226
    functionName: fu_usb_backend_idle_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_mutex_unlock
    - g_mutex_lock
    - fu_usb_backend_remove_device
    - g_ptr_array_index
    - g_ptr_array_set_size
    - FU_USB_BACKEND
    - g_autoptr
    - g_ptr_array_copy
    - fu_usb_backend_add_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_backend_idle_hotplug_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:237,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/src/fu-usb-backend.c:237,1
    - Dst: g_assert
      Src: /src/fwupd/src/fu-usb-backend.c:239,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-usb-backend.c:241,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-usb-backend.c:242,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/src/fu-usb-backend.c:243,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-usb-backend.c:246,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-usb-backend.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - dev
    - event
    - user_data
    argTypes:
    - struct libusb_context*
    - struct libusb_device*
    - libusb_hotplug_event
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: LIBUSB_CALL::fu_usb_backend_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_mutex_locker_new
    - g_idle_add
    - g_new0
    - FU_USB_BACKEND
    - g_autoptr
    - libusb_ref_device
    - g_ptr_array_add
    - g_assert
    linkageType: ''
    returnType: int
    signature: "int LIBUSB_CALL\nfu_usb_backend_hotplug_cb(struct libusb_context *ctx,\n\t\t\t
      \ struct libusb_device *dev,\n\t\t\t  libusb_hotplug_event event,\n\t\t\t  void
      *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:256,1
    - Dst: g_atomic_int_get
      Src: /src/fwupd/src/fu-usb-backend.c:261,1
    - Dst: libusb_handle_events_timeout_completed
      Src: /src/fwupd/src/fu-usb-backend.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: fu_usb_backend_event_thread_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_atomic_int_get
    - libusb_handle_events_timeout_completed
    - FU_USB_BACKEND
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_usb_backend_event_thread_cb(gpointer data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:273,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-usb-backend.c:274,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:274,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-usb-backend.c:275,1
    - Dst: libusb_init_context
      Src: /src/fwupd/src/fu-usb-backend.c:287,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-usb-backend.c:287,1
    - Dst: libusb_init
      Src: /src/fwupd/src/fu-usb-backend.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:292,1
    - Dst: libusb_strerror
      Src: /src/fwupd/src/fu-usb-backend.c:296,1
    - Dst: libusb_set_option
      Src: /src/fwupd/src/fu-usb-backend.c:301,1
    - Dst: libusb_set_debug
      Src: /src/fwupd/src/fu-usb-backend.c:303,1
    - Dst: fu_context_set_data
      Src: /src/fwupd/src/fu-usb-backend.c:305,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/src/fu-usb-backend.c:306,1
    - Dst: g_thread_new
      Src: /src/fwupd/src/fu-usb-backend.c:314,1
    - Dst: libusb_has_capability
      Src: /src/fwupd/src/fu-usb-backend.c:317,1
    - Dst: libusb_hotplug_register_callback
      Src: /src/fwupd/src/fu-usb-backend.c:318,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:329,1
    - Dst: libusb_strerror
      Src: /src/fwupd/src/fu-usb-backend.c:333,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 345
    functionName: fu_usb_backend_setup
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - libusb_strerror
    - fu_backend_get_context
    - libusb_init_context
    - libusb_set_option
    - fu_context_add_udev_subsystem
    - g_thread_new
    - fu_usb_backend_set_hotplug_poll_interval
    - libusb_hotplug_register_callback
    - FU_USB_BACKEND
    - libusb_init
    - fu_context_set_data
    - libusb_has_capability
    - g_getenv
    - FU_BACKEND
    - G_N_ELEMENTS
    - libusb_set_debug
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_backend_setup(FuBackend *backend,\n\t\t     FuBackendSetupFlags
      flags,\n\t\t     FuProgress *progress,\n\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:351,1
    - Dst: fu_usb_backend_rescan
      Src: /src/fwupd/src/fu-usb-backend.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: fu_usb_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_rescan
    - FU_USB_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:361,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-usb-backend.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:365,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-usb-backend.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - backend
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: fu_usb_backend_registered
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - FU_IS_USB_DEVICE
    - FU_DEVICE
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_registered(FuBackend *backend, FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:378,1
    - Dst: fu_usb_device_get_dev
      Src: /src/fwupd/src/fu-usb-backend.c:379,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:379,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-usb-backend.c:384,1
    - Dst: libusb_get_parent
      Src: /src/fwupd/src/fu-usb-backend.c:387,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-usb-backend.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:392,1
    - Dst: fu_usb_backend_create_device
      Src: /src/fwupd/src/fu-usb-backend.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - backend
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: fu_usb_backend_get_device_parent
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_create_device
    - g_set_error_literal
    - FU_DEVICE
    - FU_USB_BACKEND
    - FU_USB_DEVICE
    - libusb_get_parent
    - fu_usb_device_get_dev
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_usb_backend_get_device_parent(FuBackend *backend,\n\t\t\t\t
      FuDevice *device,\n\t\t\t\t const gchar *subsystem,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:400,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/src/fu-usb-backend.c:403,1
    - Dst: libusb_hotplug_deregister_callback
      Src: /src/fwupd/src/fu-usb-backend.c:404,1
    - Dst: g_thread_join
      Src: /src/fwupd/src/fu-usb-backend.c:405,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-usb-backend.c:408,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-usb-backend.c:410,1
    - Dst: libusb_exit
      Src: /src/fwupd/src/fu-usb-backend.c:412,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/src/fu-usb-backend.c:413,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/src/fu-usb-backend.c:414,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-usb-backend.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 418
    functionName: fu_usb_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - libusb_hotplug_deregister_callback
    - g_mutex_clear
    - G_OBJECT_CLASS
    - g_clear_pointer
    - FU_USB_BACKEND
    - g_source_remove
    - libusb_exit
    - g_thread_join
    - g_atomic_int_dec_and_test
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-usb-backend.c:424,1
    - Dst: libusb_unref_device
      Src: /src/fwupd/src/fu-usb-backend.c:425,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-usb-backend.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUsbBackendIdleHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: fu_usb_backend_idle_helper_free
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - libusb_unref_device
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_idle_helper_free(FuUsbBackendIdleHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_mutex_init
      Src: /src/fwupd/src/fu-usb-backend.c:435,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-usb-backend.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: fu_usb_backend_init
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_mutex_init
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_init(FuUsbBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-usb-backend.c:444,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-usb-backend.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 453
    functionName: fu_usb_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_class_init(FuUsbBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:458,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-usb-backend.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 459
    functionName: fu_usb_backend_new
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 3
    functionsReached:
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_usb_backend_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:48,1
    - Dst: FU_IS_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPluginList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_plugin_list_get_all
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 17
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN_LIST
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_plugin_list_get_all(FuPluginList *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:55,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-plugin-list.c:56,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:60,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list.c:61,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:64,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-plugin-list.c:66,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:67,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:68,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-plugin-list.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - plugin
    - user_data
    argTypes:
    - FuPlugin*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: fu_plugin_list_rules_changed_cb
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - fu_plugin_list_find_by_name
    - FU_PLUGIN_LIST
    - fu_plugin_get_rules
    - g_ptr_array_index
    - fu_plugin_add_flag
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_rules_changed_cb(FuPlugin *plugin, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:86,1
    - Dst: FU_IS_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:86,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:87,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/src/fu-plugin-list.c:87,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:88,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:88,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-plugin-list.c:89,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-plugin-list.c:89,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-plugin-list.c:90,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-plugin-list.c:91,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:91,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-plugin-list.c:92,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-plugin-list.c:93,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-plugin-list.c:93,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-plugin-list.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuPluginList*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: fu_plugin_list_add
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 3
    functionsReached:
    - g_hash_table_insert
    - fu_plugin_get_name
    - g_object_ref
    - FU_IS_PLUGIN
    - FU_PLUGIN
    - g_return_if_fail
    - FU_IS_PLUGIN_LIST
    - g_strdup
    - g_signal_connect
    - g_ptr_array_add
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_add(FuPluginList *self, FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:110,1
    - Dst: FU_IS_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:110,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:113,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-plugin-list.c:114,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-plugin-list.c:116,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-plugin-list.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPluginList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: fu_plugin_list_remove_all
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 1
    functionsReached:
    - g_hash_table_remove_all
    - g_return_if_fail
    - g_ptr_array_index
    - g_ptr_array_set_size
    - FU_IS_PLUGIN_LIST
    - g_signal_handlers_disconnect_by_data
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_remove_all(FuPluginList *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:137,1
    - Dst: FU_IS_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:137,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:138,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-plugin-list.c:143,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-plugin-list.c:147,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-plugin-list.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuPluginList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: fu_plugin_list_find_by_name
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 24
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - FU_IS_PLUGIN_LIST
    - g_hash_table_lookup
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_plugin_list_find_by_name(FuPluginList *self, const gchar *name, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_order_compare
      Src: /src/fwupd/src/fu-plugin-list.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: fu_plugin_list_sort_cb
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - fu_plugin_order_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_plugin_list_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:185,1
    - Dst: FU_IS_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-plugin-list.c:186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:192,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-plugin-list.c:193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:197,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list.c:198,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-plugin-list.c:200,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:203,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:206,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:208,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:208,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-plugin-list.c:209,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:211,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:212,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:213,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:214,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:215,1
    - Dst: fu_plugin_set_order
      Src: /src/fwupd/src/fu-plugin-list.c:216,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:216,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:222,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-plugin-list.c:223,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:227,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list.c:228,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-plugin-list.c:230,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:233,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:236,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:238,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:238,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-plugin-list.c:239,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:241,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:242,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:243,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:244,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:245,1
    - Dst: fu_plugin_set_order
      Src: /src/fwupd/src/fu-plugin-list.c:246,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list.c:246,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:254,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-plugin-list.c:255,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:259,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list.c:260,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-plugin-list.c:262,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:265,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:268,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:270,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-plugin-list.c:271,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:273,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:274,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:275,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:276,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:277,1
    - Dst: fu_plugin_set_priority
      Src: /src/fwupd/src/fu-plugin-list.c:278,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-plugin-list.c:279,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-plugin-list.c:287,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:297,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:298,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-plugin-list.c:300,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list.c:304,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list.c:305,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list.c:308,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-plugin-list.c:310,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:311,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list.c:312,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-plugin-list.c:313,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-plugin-list.c:318,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 85
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPluginList*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 320
    functionName: fu_plugin_list_depsolve
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - fu_plugin_list_find_by_name
    - fu_plugin_get_rules
    - g_debug
    - g_ptr_array_sort
    - fu_plugin_set_order
    - g_ptr_array_index
    - fu_plugin_set_priority
    - g_set_error_literal
    - FU_IS_PLUGIN_LIST
    - fu_plugin_add_flag
    - fu_plugin_get_priority
    - g_return_val_if_fail
    - g_info
    - fu_plugin_get_order
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_list_depsolve(FuPluginList *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:325,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-plugin-list.c:328,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-plugin-list.c:330,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-plugin-list.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: fu_plugin_list_dispose
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - g_hash_table_remove_all
    - FU_PLUGIN_LIST
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_dispose(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-plugin-list.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPluginListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: fu_plugin_list_class_init
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_class_init(FuPluginListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-plugin-list.c:346,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-plugin-list.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPluginList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: fu_plugin_list_init
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_init(FuPluginList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:354,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-plugin-list.c:356,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-plugin-list.c:357,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-plugin-list.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: fu_plugin_list_finalize
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_PLUGIN_LIST
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-plugin-list.c:375,1
    - Dst: FU_PLUGIN_LIST
      Src: /src/fwupd/src/fu-plugin-list.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: fu_plugin_list_new
    functionSourceFile: /src/fwupd/src/fu-plugin-list.c
    functionUses: 3
    functionsReached:
    - FU_PLUGIN_LIST
    - g_object_new
    linkageType: ''
    returnType: FuPluginList
    signature: 'FuPluginList *

      fu_plugin_list_new(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - log_level
    argTypes:
    - GLogLevelFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: fu_debug_log_level_to_string
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_debug_log_level_to_string(GLogLevelFlags log_level)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_option_group_set_parse_hooks
      Src: /src/fwupd/src/fu-debug.c:56,1
    - Dst: g_option_group_unref
      Src: /src/fwupd/src/fu-debug.c:57,1
    - Dst: g_strfreev
      Src: /src/fwupd/src/fu-debug.c:58,1
    - Dst: DeregisterEventSource
      Src: /src/fwupd/src/fu-debug.c:60,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-debug.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDebug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: fu_debug_free
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_option_group_set_parse_hooks
    - g_option_group_unref
    - g_strfreev
    - DeregisterEventSource
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_debug_free(FuDebug *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-debug.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - self
    - log_domain
    - log_level
    argTypes:
    - FuDebug*
    - gchar*
    - GLogLevelFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: fu_debug_filter_cb
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_debug_filter_cb(FuDebug *self, const gchar *log_domain,
      GLogLevelFlags log_level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ReportEventA
      Src: /src/fwupd/src/fu-debug.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - log_level
    - msg
    argTypes:
    - FuDebug*
    - GLogLevelFlags
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 118
    functionName: fu_debug_handler_win32
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - ReportEventA
    linkageType: ''
    returnType: void
    signature: void fu_debug_handler_win32(FuDebug *self, GLogLevelFlags log_level,
      const gchar *msg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-debug.c:130,1
    - Dst: fu_debug_filter_cb
      Src: /src/fwupd/src/fu-debug.c:133,1
    - Dst: fu_strpassmask
      Src: /src/fwupd/src/fu-debug.c:137,1
    - Dst: fu_debug_handler_win32
      Src: /src/fwupd/src/fu-debug.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-debug.c:146,1
    - Dst: g_date_time_new_now_utc
      Src: /src/fwupd/src/fu-debug.c:146,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-debug.c:147,1
    - Dst: g_date_time_get_hour
      Src: /src/fwupd/src/fu-debug.c:148,1
    - Dst: g_date_time_get_minute
      Src: /src/fwupd/src/fu-debug.c:149,1
    - Dst: g_date_time_get_second
      Src: /src/fwupd/src/fu-debug.c:150,1
    - Dst: g_date_time_get_microsecond
      Src: /src/fwupd/src/fu-debug.c:151,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-debug.c:159,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-debug.c:161,1
    - Dst: g_str_to_ascii
      Src: /src/fwupd/src/fu-debug.c:166,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:168,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:170,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:171,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-debug.c:176,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:178,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:180,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:181,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:192,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:194,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:195,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:200,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:202,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-debug.c:203,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - log_domain
    - log_level
    - message
    - user_data
    argTypes:
    - gchar*
    - GLogLevelFlags
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 206
    functionName: fu_debug_handler_cb
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_date_time_get_microsecond
    - g_date_time_get_minute
    - g_string_new
    - fu_debug_handler_win32
    - g_printerr
    - g_strdup_printf
    - g_str_to_ascii
    - g_date_time_get_second
    - g_autoptr
    - g_date_time_new_now_utc
    - g_getenv
    - fu_strpassmask
    - fu_debug_filter_cb
    - g_string_append
    - g_date_time_get_hour
    linkageType: ''
    returnType: void
    signature: "void fu_debug_handler_cb(const gchar *log_domain,\n\t\t    GLogLevelFlags
      log_level,\n\t\t    const gchar *message,\n\t\t    gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-debug.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - option_name
    - value
    - user_data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 228
    functionName: fu_debug_verbose_arg_cb
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_debug_verbose_arg_cb(const gchar *option_name,\n\t\t\tconst
      gchar *value,\n\t\t\tgpointer user_data,\n\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/fwupd/src/fu-debug.c:241,1
    - Dst: N_
      Src: /src/fwupd/src/fu-debug.c:249,1
    - Dst: N_
      Src: /src/fwupd/src/fu-debug.c:257,1
    - Dst: N_
      Src: /src/fwupd/src/fu-debug.c:265,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-debug.c:270,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-debug.c:270,1
    - Dst: g_option_group_add_entries
      Src: /src/fwupd/src/fu-debug.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - context
    - group
    - data
    - error
    argTypes:
    - GOptionContext*
    - GOptionGroup*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 275
    functionName: fu_debug_pre_parse_hook
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - N_
    - g_getenv
    - g_option_group_add_entries
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_debug_pre_parse_hook(GOptionContext *context, GOptionGroup
      *group, gpointer data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-debug.c:287,1
    - Dst: g_log_set_default_handler
      Src: /src/fwupd/src/fu-debug.c:290,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-debug.c:293,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-debug.c:293,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-debug.c:294,1
    - Dst: fu_debug_log_level_to_string
      Src: /src/fwupd/src/fu-debug.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - context
    - group
    - data
    - error
    argTypes:
    - GOptionContext*
    - GOptionGroup*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: fu_debug_post_parse_hook
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_log_set_default_handler
    - isatty
    - fu_debug_log_level_to_string
    - g_setenv
    - g_info
    - fileno
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_debug_post_parse_hook(GOptionContext *context,\n\t\t\t
      GOptionGroup *group,\n\t\t\t gpointer data,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegCreateKeyExA
      Src: /src/fwupd/src/fu-debug.c:309,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-debug.c:319,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-debug.c:319,1
    - Dst: GetModuleFileNameA
      Src: /src/fwupd/src/fu-debug.c:322,1
    - Dst: RegSetValueExA
      Src: /src/fwupd/src/fu-debug.c:323,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-debug.c:328,1
    - Dst: RegSetValueExA
      Src: /src/fwupd/src/fu-debug.c:329,1
    - Dst: RegCloseKey
      Src: /src/fwupd/src/fu-debug.c:330,1
    - Dst: RegisterEventSourceA
      Src: /src/fwupd/src/fu-debug.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDebug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: fu_debug_setup_event_source
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - g_warning
    - RegCloseKey
    - strlen
    - RegCreateKeyExA
    - RegSetValueExA
    - GetModuleFileNameA
    - RegisterEventSourceA
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void fu_debug_setup_event_source(FuDebug *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-debug.c:341,1
    - Dst: g_option_group_new
      Src: /src/fwupd/src/fu-debug.c:343,1
    - Dst: _
      Src: /src/fwupd/src/fu-debug.c:345,1
    - Dst: _
      Src: /src/fwupd/src/fu-debug.c:347,1
    - Dst: g_option_group_set_parse_hooks
      Src: /src/fwupd/src/fu-debug.c:350,1
    - Dst: fu_debug_setup_event_source
      Src: /src/fwupd/src/fu-debug.c:354,1
    - Dst: g_option_group_ref
      Src: /src/fwupd/src/fu-debug.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 357
    functionName: fu_debug_get_option_group
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 3
    functionsReached:
    - g_option_group_set_parse_hooks
    - g_new0
    - _
    - g_option_group_ref
    - g_option_group_new
    - fu_debug_setup_event_source
    linkageType: ''
    returnType: GOptionGroup
    signature: 'GOptionGroup *

      fu_debug_get_option_group(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release-common.c:26,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-release-common.c:28,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/src/fu-release-common.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - uri
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: fu_release_uri_get_scheme
    functionSourceFile: /src/fwupd/src/fu-release-common.c
    functionUses: 3
    functionsReached:
    - g_utf8_strdown
    - g_return_val_if_fail
    - g_strstr_len
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_uri_get_scheme(const gchar *uri)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:23,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:24,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:26,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:27,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:29,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:30,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:32,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:33,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:35,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:36,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:38,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:39,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:41,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:42,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:43,1
    - Dst: g_regex_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:44,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - compare
    - version_req
    - version
    - fmt
    - error
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    - FwupdVersionFormat
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 66
    functionName: fu_engine_requirements_require_vercmp_part
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_version_compare
    - g_regex_match_simple
    - g_strcmp0
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_require_vercmp_part(const gchar *compare,\n\t\t\t\t\t
      \  const gchar *version_req,\n\t\t\t\t\t   const gchar *version,\n\t\t\t\t\t
      \  FwupdVersionFormat fmt,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine-requirements.c:81,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-requirements.c:82,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-requirements.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuEngineRequirementsHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: fu_engine_requirements_helper_free
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_helper_free(FuEngineRequirementsHelper
      *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - helper
    - fwupd_version_req
    - error
    argTypes:
    - FuEngineRequirementsHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: fu_engine_requirements_check_fwupd_version
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_version_compare
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_fwupd_version(FuEngineRequirementsHelper
      *helper,\n\t\t\t\t\t   const gchar *fwupd_version_req,\n\t\t\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:114,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:115,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:116,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:119,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:121,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:121,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine-requirements.c:122,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:125,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:128,1
    - Dst: fu_engine_requirements_require_vercmp_part
      Src: /src/fwupd/src/fu-engine-requirements.c:129,1
    - Dst: fu_engine_requirements_require_vercmp_part
      Src: /src/fwupd/src/fu-engine-requirements.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - req
    - version
    - fmt
    - helper
    - error
    argTypes:
    - XbNode*
    - gchar*
    - FwupdVersionFormat
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 144
    functionName: fu_engine_requirements_require_vercmp
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - xb_node_get_attr
    - g_strsplit
    - g_strv_length
    - fu_engine_requirements_require_vercmp_part
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_require_vercmp(XbNode *req,\n\t\t\t\t
      \     const gchar *version,\n\t\t\t\t      FwupdVersionFormat fmt,\n\t\t\t\t
      \     FuEngineRequirementsHelper *helper,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine-requirements.c:153,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:156,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:156,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:157,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:161,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:167,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:170,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:174,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:175,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:178,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - self
    - req
    - device
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuDevice*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 192
    functionName: fu_engine_requirements_check_not_child
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_children
    - fu_device_get_version
    - fu_device_get_version_format
    - fu_engine_requirements_require_vercmp
    - g_ptr_array_index
    - xb_node_get_element
    - g_strcmp0
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_not_child(FuEngine *self,\n\t\t\t\t
      \      XbNode *req,\n\t\t\t\t       FuDevice *device,\n\t\t\t\t       FuEngineRequirementsHelper
      *helper,\n\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/src/fu-engine-requirements.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:207,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-requirements.c:211,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:216,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:218,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-requirements.c:226,1
    - Dst: g_regex_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:227,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - req
    - device
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 239
    functionName: fu_engine_requirements_check_vendor_id
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_get_attr
    - fu_strjoin
    - g_set_error_literal
    - g_regex_match_simple
    - fu_device_get_id
    - fu_device_get_vendor_ids
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_vendor_id(FuEngine *self,\n\t\t\t\t
      \      XbNode *req,\n\t\t\t\t       FuDevice *device,\n\t\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:244,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-engine-requirements.c:244,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:245,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FuDevice*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: _fu_device_has_guids_any
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - fu_device_has_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean _fu_device_has_guids_any(FuDevice *self, gchar **guids)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-requirements.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:263,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:264,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:265,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:272,1
    - Dst: fu_strtoll
      Src: /src/fwupd/src/fu-engine-requirements.c:274,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine-requirements.c:277,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:279,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:284,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:289,1
    - Dst: fu_engine_requirements_check_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:295,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine-requirements.c:296,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:302,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:303,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:304,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:310,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:311,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:319,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:331,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:331,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements.c:332,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:333,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:336,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:339,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:339,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:340,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:346,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:349,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:361,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:361,1
    - Dst: fu_engine_requirements_check_vendor_id
      Src: /src/fwupd/src/fu-engine-requirements.c:364,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:368,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:368,1
    - Dst: fu_engine_requirements_check_not_child
      Src: /src/fwupd/src/fu-engine-requirements.c:369,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:376,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:376,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-engine-requirements.c:378,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:392,1
    - Dst: fu_engine_get_devices_by_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:393,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:395,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:395,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:400,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:404,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:407,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine-requirements.c:414,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:416,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:417,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:422,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:426,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:429,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-engine-requirements.c:434,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:439,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:440,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:444,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:445,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine-requirements.c:450,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:452,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:453,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:458,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:462,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:465,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:469,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:470,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:474,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:475,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:481,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:482,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:483,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:485,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:488,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:488,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:489,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:493,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:495,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:497,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:501,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 132
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 509
    functionName: fu_engine_requirements_check_firmware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_engine_requirements_require_vercmp
    - fu_engine_requirements_check_vendor_id
    - g_prefix_error
    - fu_engine_requirements_check_fwupd_version
    - fu_release_get_device
    - g_object_ref
    - g_set_error
    - fu_device_get_version
    - xb_node_get_text
    - fu_device_get_version_bootloader
    - g_debug
    - fu_engine_requirements_check_not_child
    - g_ptr_array_index
    - fu_device_get_parent
    - fu_device_get_name
    - fu_device_get_children
    - xb_node_get_attr
    - _fu_device_has_guids_any
    - g_autoptr
    - fu_device_get_version_format
    - g_strsplit
    - g_set_object
    - fu_strtoll
    - g_set_error_literal
    - g_strcmp0
    - fwupd_guid_is_valid
    - fu_engine_get_devices_by_guid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_firmware(FuEngine *self,\n\t\t\t\t
      \     XbNode *req,\n\t\t\t\t      FuEngineRequirementsHelper *helper,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-requirements.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:518,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:522,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:523,1
    - Dst: fu_context_get_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements.c:529,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:529,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:531,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:535,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:538,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:543,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:543,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:544,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:548,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:550,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:552,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:556,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:562,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:563,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:564,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 568
    functionName: fu_engine_requirements_check_id
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - xb_node_get_text
    - fu_engine_requirements_require_vercmp
    - xb_node_get_attr
    - g_set_error_literal
    - g_autoptr
    - g_strcmp0
    - fu_engine_get_context
    - fu_context_get_runtime_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_id(FuEngine *self,\n\t\t\t\tXbNode
      *req,\n\t\t\t\tFuEngineRequirementsHelper *helper,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-requirements.c:576,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-requirements.c:577,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:578,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:581,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:585,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:586,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:594,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:594,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:596,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:597,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:603,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 609
    functionName: fu_engine_requirements_check_hardware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_release_get_device
    - g_set_error
    - g_auto
    - g_debug
    - xb_node_get_text
    - g_strsplit
    - fu_context_has_hwid_guid
    - fu_device_has_flag
    - g_set_error_literal
    - fu_engine_get_context
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_hardware(FuEngine *self,\n\t\t\t\t
      \     XbNode *req,\n\t\t\t\t      FuEngineRequirementsHelper *helper,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-requirements.c:617,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:618,1
    - Dst: fu_engine_requirements_check_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:621,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine-requirements.c:622,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:627,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:628,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:636,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:636,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:638,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 650
    functionName: fu_engine_requirements_check_not_hardware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - xb_node_get_text
    - g_prefix_error
    - g_strsplit
    - fu_context_has_hwid_guid
    - g_set_error_literal
    - fu_engine_get_context
    - fu_engine_requirements_check_fwupd_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_not_hardware(FuEngine *self,\n\t\t\t\t\t
      \ XbNode *req,\n\t\t\t\t\t  FuEngineRequirementsHelper *helper,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_request
      Src: /src/fwupd/src/fu-engine-requirements.c:658,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:660,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:663,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:664,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:672,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:672,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine-requirements.c:673,1
    - Dst: fwupd_feature_flag_from_string
      Src: /src/fwupd/src/fu-engine-requirements.c:679,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:682,1
    - Dst: fu_engine_capability_flag_from_string
      Src: /src/fwupd/src/fu-engine-requirements.c:693,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:702,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 712
    functionName: fu_engine_requirements_check_client
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - xb_node_get_text
    - fu_engine_request_get_feature_flags
    - g_strsplit
    - g_set_error_literal
    - fu_engine_capability_flag_from_string
    - fwupd_feature_flag_from_string
    - fu_release_get_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_client(FuEngine *self,\n\t\t\t\t
      \   XbNode *req,\n\t\t\t\t    FuEngineRequirementsHelper *helper,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-requirements.c:720,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:723,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:723,1
    - Dst: fu_engine_requirements_check_id
      Src: /src/fwupd/src/fu-engine-requirements.c:724,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:727,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:727,1
    - Dst: fu_engine_requirements_check_firmware
      Src: /src/fwupd/src/fu-engine-requirements.c:728,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:731,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:731,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:733,1
    - Dst: fu_engine_requirements_check_hardware
      Src: /src/fwupd/src/fu-engine-requirements.c:735,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:737,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:737,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:739,1
    - Dst: fu_engine_requirements_check_not_hardware
      Src: /src/fwupd/src/fu-engine-requirements.c:741,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:745,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:745,1
    - Dst: fu_engine_requirements_check_client
      Src: /src/fwupd/src/fu-engine-requirements.c:746,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:749,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:753,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 714
    functionDepth: 5
    functionLinenumber: 714
    functionLinenumberEnd: 755
    functionName: fu_engine_requirements_check_hard
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_engine_requirements_check_id
    - fu_engine_requirements_check_firmware
    - fu_engine_requirements_check_not_hardware
    - g_set_error
    - fu_engine_requirements_check_client
    - fu_engine_requirements_check_hardware
    - xb_node_get_element
    - g_strcmp0
    - fu_engine_get_context
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_hard(FuEngine *self,\n\t\t\t\t
      \ XbNode *req,\n\t\t\t\t  FuEngineRequirementsHelper *helper,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:763,1
    - Dst: fu_engine_requirements_check_hard
      Src: /src/fwupd/src/fu-engine-requirements.c:764,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:766,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine-requirements.c:769,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 773
    functionName: fu_engine_requirements_check_soft
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_propagate_error
    - fu_engine_requirements_check_hard
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_soft(FuEngine *self,\n\t\t\t\t
      \ XbNode *req,\n\t\t\t\t  FuEngineRequirementsHelper *helper,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:778,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:778,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:779,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:781,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 784
    functionName: fu_engine_requirements_is_specific_req
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_node_get_element
    - xb_node_get_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_requirements_is_specific_req(XbNode *req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_hard_reqs
      Src: /src/fwupd/src/fu-engine-requirements.c:789,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:790,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-requirements.c:790,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-requirements.c:794,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:794,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:798,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:799,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:799,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:800,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:800,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:801,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:802,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:805,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:809,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:814,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements.c:816,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:819,1
    - Dst: g_string_assign
      Src: /src/fwupd/src/fu-engine-requirements.c:822,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-requirements.c:829,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:829,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 830
    functionName: fu_engine_requirements_get_newest_fwupd_version
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - g_string_new
    - xb_node_get_text
    - g_steal_pointer
    - xb_node_get_attr
    - fu_version_compare
    - g_string_free
    - g_strsplit
    - g_strstr_len
    - g_string_assign
    - fu_release_get_hard_reqs
    - g_ptr_array_index
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_requirements_get_newest_fwupd_version(FuEngine *self, FuRelease *release,
      GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-requirements.c:838,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:841,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-engine-requirements.c:841,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:844,1
    - Dst: fu_engine_requirements_get_newest_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:849,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:854,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:855,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:856,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:860,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-requirements.c:861,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:866,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:867,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:867,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-requirements.c:868,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-engine-requirements.c:868,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:869,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:873,1
    - Dst: fu_release_get_hard_reqs
      Src: /src/fwupd/src/fu-engine-requirements.c:879,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:882,1
    - Dst: fu_engine_requirements_check_hard
      Src: /src/fwupd/src/fu-engine-requirements.c:883,1
    - Dst: fu_engine_requirements_is_specific_req
      Src: /src/fwupd/src/fu-engine-requirements.c:885,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:892,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:902,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:912,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:913,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:916,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:924,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:931,1
    - Dst: fu_release_get_soft_reqs
      Src: /src/fwupd/src/fu-engine-requirements.c:936,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:939,1
    - Dst: fu_engine_requirements_check_soft
      Src: /src/fwupd/src/fu-engine-requirements.c:940,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 4
    argNames:
    - self
    - release
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 832
    functionDepth: 7
    functionLinenumber: 832
    functionLinenumberEnd: 947
    functionName: fu_engine_requirements_check
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 22
    functionsReached:
    - g_new0
    - fu_release_get_protocol
    - fu_release_get_soft_reqs
    - fu_device_has_flag
    - fu_engine_requirements_check_soft
    - fu_device_get_id
    - fu_release_get_device
    - g_object_ref
    - g_set_error
    - g_ptr_array_index
    - fu_engine_requirements_is_specific_req
    - fu_device_get_name
    - g_info
    - fu_engine_requirements_get_newest_fwupd_version
    - fu_device_get_protocols
    - fu_strjoin
    - g_autoptr
    - fu_device_has_private_flag
    - fu_release_get_hard_reqs
    - fu_device_has_protocol
    - g_set_error_literal
    - fu_engine_requirements_check_hard
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check(FuEngine *self,\n\t\t\t     FuRelease
      *release,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:39,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:40,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: fu_daemon_get_engine
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 46
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DAEMON
    - GET_PRIVATE
    linkageType: ''
    returnType: FuEngine
    signature: 'FuEngine *

      fu_daemon_get_engine(FuDaemon *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:47,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-daemon.c:48,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - machine_kind
    argTypes:
    - FuDaemon*
    - FuDaemonMachineKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: fu_daemon_set_machine_kind
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - FU_IS_DAEMON
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_daemon_set_machine_kind(FuDaemon *self, FuDaemonMachineKind
      machine_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:56,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: fu_daemon_get_machine_kind
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DAEMON
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDaemonMachineKind
    signature: FuDaemonMachineKind fu_daemon_get_machine_kind(FuDaemon *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:63,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-daemon.c:64,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - update_in_progress
    argTypes:
    - FuDaemon*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_daemon_set_update_in_progress
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 1
    functionsReached:
    - FU_IS_DAEMON
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_daemon_set_update_in_progress(FuDaemon *self, gboolean update_in_progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:72,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_daemon_get_pending_stop
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DAEMON
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_get_pending_stop(FuDaemon *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:79,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:80,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-daemon.c:81,1
    - Dst: malloc_trim
      Src: /src/fwupd/src/fu-daemon.c:85,1
    - Dst: fu_context_housekeeping
      Src: /src/fwupd/src/fu-daemon.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: fu_daemon_schedule_housekeeping_cb
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - fu_context_housekeeping
    - malloc_trim
    - GET_PRIVATE
    - fu_engine_get_context
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_schedule_housekeeping_cb(gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:99,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:104,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-daemon.c:105,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-daemon.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: fu_daemon_schedule_housekeeping
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 4
    functionsReached:
    - g_timeout_add_seconds
    - g_getenv
    - g_source_remove
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_daemon_schedule_housekeeping(FuDaemon *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:114,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:116,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-daemon.c:118,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-daemon.c:121,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-daemon.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: fu_daemon_schedule_process_quit_cb
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_daemon_stop
    - GET_PRIVATE
    - g_autoptr
    - g_info
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_schedule_process_quit_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:129,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-daemon.c:133,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:139,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-daemon.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: fu_daemon_schedule_process_quit
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - g_warning
    - g_idle_add
    - g_source_remove
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_daemon_schedule_process_quit(FuDaemon *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-daemon.c:147,1
    - Dst: g_malloc0
      Src: /src/fwupd/src/fu-daemon.c:149,1
    - Dst: mlock
      Src: /src/fwupd/src/fu-daemon.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-daemon.c:151,1
    - Dst: munlock
      Src: /src/fwupd/src/fu-daemon.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-daemon.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 163
    functionName: fu_daemon_check_syscall_filtering
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_debug
    - munlock
    - mlock
    - g_malloc0
    - g_set_error_literal
    - g_getenv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_check_syscall_filtering(GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON_GET_CLASS
      Src: /src/fwupd/src/fu-daemon.c:168,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:169,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-daemon.c:170,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-daemon.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:173,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-daemon.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:174,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-daemon.c:174,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:176,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:177,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-daemon.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:178,1
    - Dst: fu_daemon_check_syscall_filtering
      Src: /src/fwupd/src/fu-daemon.c:181,1
    - Dst: fu_daemon_machine_kind_from_string
      Src: /src/fwupd/src/fu-daemon.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-daemon.c:188,1
    - Dst: FuDaemonClass*::setup
      Src: /src/fwupd/src/fu-daemon.c:198,1
    - Dst: fu_config_get_value_u64
      Src: /src/fwupd/src/fu-daemon.c:202,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-daemon.c:202,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-daemon.c:202,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-daemon.c:206,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-daemon.c:209,1
    - Dst: fu_engine_idle_inhibit
      Src: /src/fwupd/src/fu-daemon.c:210,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/src/fu-daemon.c:215,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/src/fu-daemon.c:216,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-daemon.c:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - socket_address
    - error
    argTypes:
    - FuDaemon*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 223
    functionName: fu_daemon_setup
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - fu_progress_traceback
    - fu_progress_get_profile
    - fu_config_get_value_u64
    - fu_engine_get_config
    - g_print
    - g_return_val_if_fail
    - FuDaemonClass*::setup
    - fu_engine_idle_inhibit
    - g_set_error
    - FU_IS_DAEMON
    - fu_daemon_machine_kind_from_string
    - FU_IS_ENGINE
    - g_timer_elapsed
    - g_autoptr
    - FU_CONFIG
    - g_getenv
    - fu_progress_new
    - g_timer_new
    - g_strdup_printf
    - fu_daemon_get_engine
    - GET_PRIVATE
    - fu_daemon_check_syscall_filtering
    - FU_DAEMON_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_setup(FuDaemon *self, const gchar *socket_address,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON_GET_CLASS
      Src: /src/fwupd/src/fu-daemon.c:228,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:231,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:232,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-daemon.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:240,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-daemon.c:240,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-daemon.c:242,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-daemon.c:245,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-daemon.c:246,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-daemon.c:247,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-daemon.c:248,1
    - Dst: FuDaemonClass*::start
      Src: /src/fwupd/src/fu-daemon.c:252,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-daemon.c:255,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-daemon.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 258
    functionName: fu_daemon_start
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - g_string_append_printf
    - g_debug
    - g_string_new
    - g_getenv
    - FuDaemonClass*::start
    - fu_daemon_schedule_housekeeping
    - FU_IS_DAEMON
    - GET_PRIVATE
    - fu_engine_get_report_metadata
    - g_autoptr
    - g_hash_table_iter_init
    - FU_DAEMON_GET_CLASS
    - g_hash_table_iter_next
    - g_return_val_if_fail
    - g_main_loop_run
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_start(FuDaemon *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON_GET_CLASS
      Src: /src/fwupd/src/fu-daemon.c:263,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:266,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:266,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:267,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-daemon.c:270,1
    - Dst: FuDaemonClass*::stop
      Src: /src/fwupd/src/fu-daemon.c:279,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-daemon.c:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 283
    functionName: fu_daemon_stop
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 4
    functionsReached:
    - g_main_loop_quit
    - g_set_error_literal
    - FU_IS_DAEMON
    - GET_PRIVATE
    - FuDaemonClass*::stop
    - FU_DAEMON_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_stop(FuDaemon *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:289,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-daemon.c:289,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-daemon.c:290,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-daemon.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: fu_daemon_init
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_new
    - GET_PRIVATE
    - g_autoptr
    - g_main_loop_new
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_daemon_init(FuDaemon *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:297,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:298,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-daemon.c:301,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:303,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:305,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-daemon.c:307,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-daemon.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 310
    functionName: fu_daemon_finalize
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_main_loop_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_source_remove
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: void fu_daemon_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-daemon.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDaemonClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: fu_daemon_class_init
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_daemon_class_init(FuDaemonClass *klass)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:43,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:45,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote.c:45,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:46,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:47,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/src/fu-remote.c:47,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:48,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-remote.c:51,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-remote.c:52,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-remote.c:55,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/src/fu-remote.c:56,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:60,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:61,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:62,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:64,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-remote.c:66,1
    - Dst: fwupd_remote_set_kind
      Src: /src/fwupd/src/fu-remote.c:67,1
    - Dst: fwupd_remote_set_kind
      Src: /src/fwupd/src/fu-remote.c:69,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/src/fu-remote.c:70,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:71,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:71,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:72,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote.c:72,1
    - Dst: fwupd_remote_set_kind
      Src: /src/fwupd/src/fu-remote.c:73,1
    - Dst: fwupd_remote_set_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:74,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-remote.c:77,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:82,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:83,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:84,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:86,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:88,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:89,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:90,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:92,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:94,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:95,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/src/fu-remote.c:96,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:98,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:99,1
    - Dst: fwupd_remote_set_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:100,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:102,1
    - Dst: fwupd_remote_set_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:103,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/src/fu-remote.c:105,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:107,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:108,1
    - Dst: fwupd_remote_set_report_uri
      Src: /src/fwupd/src/fu-remote.c:109,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:111,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:112,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/src/fu-remote.c:113,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:115,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:116,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/src/fu-remote.c:117,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:119,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:120,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:121,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:123,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:124,1
    - Dst: fwupd_remote_set_order_before
      Src: /src/fwupd/src/fu-remote.c:125,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:127,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:128,1
    - Dst: fwupd_remote_set_order_after
      Src: /src/fwupd/src/fu-remote.c:129,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:131,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:132,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:133,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:135,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:137,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:138,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:139,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote.c:147,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:147,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote.c:148,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:148,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/src/fu-remote.c:149,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/src/fu-remote.c:150,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-remote.c:154,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 156
    functionName: fu_remote_load_from_filename
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 8
    functionsReached:
    - fwupd_remote_set_order_after
    - fwupd_remote_set_username
    - fwupd_remote_set_report_uri
    - g_key_file_new
    - g_key_file_load_from_file
    - g_key_file_get_uint64
    - fwupd_remote_set_title
    - fwupd_remote_set_privacy_uri
    - g_key_file_has_key
    - fwupd_remote_get_username
    - g_key_file_get_boolean
    - g_return_val_if_fail
    - fwupd_remote_set_order_before
    - fwupd_remote_set_filename_cache
    - fwupd_remote_remove_flag
    - fwupd_remote_get_password
    - fwupd_remote_set_firmware_base_uri
    - G_IS_CANCELLABLE
    - fwupd_remote_set_password
    - fwupd_remote_set_id
    - g_autoptr
    - g_file_test
    - fwupd_remote_add_flag
    - fwupd_remote_set_kind
    - fwupd_remote_set_metadata_uri
    - g_str_has_prefix
    - fwupd_remote_set_filename_source
    - g_path_get_basename
    - FWUPD_IS_REMOTE
    - fwupd_remote_set_refresh_interval
    - g_strcmp0
    - g_key_file_get_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_remote_load_from_filename(FwupdRemote *self,\n\t\t\t     const
      gchar *filename,\n\t\t\t     GCancellable *cancellable,\n\t\t\t     GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:176,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-remote.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:178,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote.c:178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:180,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/src/fu-remote.c:180,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:181,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote.c:184,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:185,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote.c:188,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote.c:189,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:190,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote.c:190,1
    - Dst: fwupd_remote_get_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:191,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:192,1
    - Dst: fwupd_remote_get_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:192,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote.c:193,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:194,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote.c:194,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:195,1
    - Dst: g_key_file_set_uint64
      Src: /src/fwupd/src/fu-remote.c:196,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:199,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:200,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:201,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:201,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:202,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:203,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:203,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:204,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:205,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:208,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote.c:209,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-remote.c:210,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote.c:210,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:211,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote.c:213,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-remote.c:214,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote.c:214,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:215,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:217,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:218,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:219,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:220,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:221,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:222,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:223,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:224,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote.c:227,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 228
    functionName: fu_remote_save_to_filename
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 1
    functionsReached:
    - g_key_file_set_string
    - g_key_file_new
    - fwupd_remote_get_report_uri
    - g_key_file_set_uint64
    - fwupd_remote_get_username
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - g_return_val_if_fail
    - fwupd_remote_get_password
    - fwupd_remote_get_title
    - fwupd_remote_get_firmware_base_uri
    - G_IS_CANCELLABLE
    - g_key_file_save_to_file
    - g_autoptr
    - fwupd_remote_get_refresh_interval
    - fwupd_remote_get_order_after
    - FWUPD_IS_REMOTE
    - g_strjoinv
    - fwupd_remote_get_order_before
    - g_key_file_set_boolean
    - fwupd_remote_get_privacy_uri
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_remote_save_to_filename(FwupdRemote *self,\n\t\t\t   const
      gchar *filename,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: fu_remote_init
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_remote_init(FuRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRemoteClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: fu_remote_class_init
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_remote_class_init(FuRemoteClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/src/fu-remote.c:243,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-remote.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: fu_remote_new
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_REMOTE
    - g_object_new
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_remote_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-emulator.c:30,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:30,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-emulator.c:31,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - phase
    - write_cnt
    argTypes:
    - FuEngineEmulatorPhase
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: fu_engine_emulator_phase_to_filename
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - fu_engine_emulator_phase_to_string
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_emulator_phase_to_filename(FuEngineEmulatorPhase phase, guint write_cnt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:43,1
    - Dst: fu_archive_new
      Src: /src/fwupd/src/fu-engine-emulator.c:43,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:45,1
    - Dst: FU_IS_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:45,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:46,1
    - Dst: G_IS_OUTPUT_STREAM
      Src: /src/fwupd/src/fu-engine-emulator.c:46,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:47,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine-emulator.c:50,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine-emulator.c:51,1
    - Dst: fu_archive_add_entry
      Src: /src/fwupd/src/fu-engine-emulator.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-emulator.c:56,1
    - Dst: fu_archive_write
      Src: /src/fwupd/src/fu-engine-emulator.c:64,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:67,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:67,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:68,1
    - Dst: g_output_stream_flush
      Src: /src/fwupd/src/fu-engine-emulator.c:70,1
    - Dst: fu_error_convert
      Src: /src/fwupd/src/fu-engine-emulator.c:71,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-emulator.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngineEmulator*
    - GOutputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 78
    functionName: fu_engine_emulator_save
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - g_hash_table_remove_all
    - fu_archive_write
    - g_steal_pointer
    - g_output_stream_flush
    - fu_archive_new
    - FU_IS_ENGINE_EMULATOR
    - g_set_error_literal
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fu_output_stream_write_bytes
    - G_IS_OUTPUT_STREAM
    - g_return_val_if_fail
    - fu_archive_add_entry
    - g_byte_array_free_to_bytes
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulator_save(FuEngineEmulator *self, GOutputStream
      *stream, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine-emulator.c:83,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-emulator.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:85,1
    - Dst: json_parser_new
      Src: /src/fwupd/src/fu-engine-emulator.c:85,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/src/fu-engine-emulator.c:88,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-engine-emulator.c:89,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-emulator.c:90,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-engine-emulator.c:95,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:97,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine-emulator.c:98,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine-emulator.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - json_blob
    - error
    argTypes:
    - FuEngineEmulator*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: fu_engine_emulator_load_json_blob
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_from_json
    - json_parser_new
    - json_parser_load_from_data
    - g_bytes_get_size
    - FWUPD_CODEC
    - g_ptr_array_index
    - fu_context_get_backends
    - g_autoptr
    - json_parser_get_root
    - fu_engine_get_context
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulator_load_json_blob(FuEngineEmulator *self,
      GBytes *json_blob, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:113,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-emulator.c:115,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - phase
    - write_cnt
    - error
    argTypes:
    - FuEngineEmulator*
    - FuEngineEmulatorPhase
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: fu_engine_emulator_load_phase
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 3
    functionsReached:
    - g_hash_table_lookup
    - fu_engine_emulator_load_json_blob
    - fu_engine_emulator_phase_to_filename
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_load_phase(FuEngineEmulator *self,\n\t\t\t
      \     FuEngineEmulatorPhase phase,\n\t\t\t      guint write_cnt,\n\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-engine-emulator.c:125,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/src/fu-engine-emulator.c:126,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-engine-emulator.c:127,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-engine-emulator.c:128,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:130,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-emulator.c:133,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-engine-emulator.c:135,1
    - Dst: fu_device_add_json
      Src: /src/fwupd/src/fu-engine-emulator.c:136,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-engine-emulator.c:137,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-engine-emulator.c:139,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-engine-emulator.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:144,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-emulator.c:145,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/src/fu-engine-emulator.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - devices
    - json_builder
    argTypes:
    - FuEngineEmulator*
    - GPtrArray*
    - JsonBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: fu_engine_emulator_to_json
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - json_builder_begin_array
    - fu_device_clear_events
    - json_builder_end_array
    - json_builder_begin_object
    - fu_device_add_json
    - g_ptr_array_index
    - fu_device_has_flag
    - json_builder_set_member_name
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_to_json(FuEngineEmulator *self, GPtrArray *devices,
      JsonBuilder *json_builder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:162,1
    - Dst: g_memory_output_stream_new_resizable
      Src: /src/fwupd/src/fu-engine-emulator.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:163,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-engine-emulator.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:165,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-emulator.c:168,1
    - Dst: fu_engine_emulator_to_json
      Src: /src/fwupd/src/fu-engine-emulator.c:171,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/src/fu-engine-emulator.c:173,1
    - Dst: json_generator_new
      Src: /src/fwupd/src/fu-engine-emulator.c:174,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/src/fu-engine-emulator.c:175,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/src/fu-engine-emulator.c:176,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-emulator.c:178,1
    - Dst: json_generator_to_stream
      Src: /src/fwupd/src/fu-engine-emulator.c:179,1
    - Dst: g_output_stream_close
      Src: /src/fwupd/src/fu-engine-emulator.c:181,1
    - Dst: g_memory_output_stream_steal_as_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:183,1
    - Dst: G_MEMORY_OUTPUT_STREAM
      Src: /src/fwupd/src/fu-engine-emulator.c:183,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-emulator.c:185,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:186,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:187,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/src/fu-engine-emulator.c:191,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:192,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:193,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:197,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:198,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:200,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-emulator.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - self
    - phase
    - write_cnt
    - error
    argTypes:
    - FuEngineEmulator*
    - FuEngineEmulatorPhase
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 207
    functionName: fu_engine_emulator_save_phase
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 9
    functionsReached:
    - g_hash_table_insert
    - json_generator_new
    - fu_engine_get_devices
    - json_builder_get_root
    - fu_engine_emulator_to_json
    - g_memory_output_stream_new_resizable
    - json_generator_to_stream
    - g_info
    - fu_engine_emulator_phase_to_filename
    - g_steal_pointer
    - g_output_stream_close
    - g_memory_output_stream_steal_as_bytes
    - g_autoptr
    - G_MEMORY_OUTPUT_STREAM
    - json_builder_new
    - fu_strsafe_bytes
    - fu_engine_emulator_phase_to_string
    - g_bytes_get_size
    - json_generator_set_root
    - g_bytes_compare
    - g_hash_table_lookup
    - json_generator_set_pretty
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_save_phase(FuEngineEmulator *self,\n\t\t\t
      \     FuEngineEmulatorPhase phase,\n\t\t\t      guint write_cnt,\n\t\t\t      GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:220,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/src/fu-engine-emulator.c:223,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-emulator.c:224,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:227,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:228,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:232,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-emulator.c:235,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:236,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - self
    - archive
    - write_cnt
    - got_json
    - error
    argTypes:
    - FuEngineEmulator*
    - FuArchive*
    - guint
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: fu_engine_emulator_load_phases
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_engine_emulator_phase_to_string
    - fu_engine_emulator_phase_to_filename
    - g_steal_pointer
    - g_bytes_get_size
    - fu_archive_lookup_by_fn
    - g_autoptr
    - fu_engine_emulator_load_json_blob
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_load_phases(FuEngineEmulator *self,\n\t\t\t
      \      FuArchive *archive,\n\t\t\t       guint write_cnt,\n\t\t\t       gboolean
      *got_json,\n\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:251,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine-emulator.c:251,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-emulator.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:252,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:254,1
    - Dst: FU_IS_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:255,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine-emulator.c:255,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:256,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:259,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-emulator.c:261,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/src/fu-engine-emulator.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:266,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-emulator.c:267,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:268,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:271,1
    - Dst: fu_engine_emulator_load_phases
      Src: /src/fwupd/src/fu-engine-emulator.c:276,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-emulator.c:280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngineEmulator*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 289
    functionName: fu_engine_emulator_load
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_hash_table_remove_all
    - g_debug
    - strlen
    - fu_engine_emulator_load_json_blob
    - fu_engine_emulator_load_phases
    - FU_IS_ENGINE_EMULATOR
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_bytes_new_static
    - g_return_val_if_fail
    - fu_archive_new_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulator_load(FuEngineEmulator *self, GInputStream
      *stream, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:294,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-engine-emulator.c:297,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine-emulator.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 303
    functionName: fu_engine_emulator_get_property
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE_EMULATOR
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:311,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/src/fu-engine-emulator.c:314,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine-emulator.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: fu_engine_emulator_set_property
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - FU_ENGINE_EMULATOR
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: "void fu_engine_emulator_set_property(GObject *object,\n\t\t\t\tguint
      prop_id,\n\t\t\t\tconst GValue *value,\n\t\t\t\tGParamSpec *pspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine-emulator.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineEmulator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: fu_engine_emulator_init
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_init(FuEngineEmulator *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:332,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine-emulator.c:333,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-emulator.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: fu_engine_emulator_finalize
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE_EMULATOR
    - G_OBJECT_CLASS
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:340,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine-emulator.c:341,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-emulator.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: fu_engine_emulator_dispose
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE_EMULATOR
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_dispose(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-emulator.c:348,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-engine-emulator.c:357,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-engine-emulator.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineEmulatorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: fu_engine_emulator_class_init
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_class_init(FuEngineEmulatorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:368,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-emulator.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: fu_engine_emulator_new
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - FU_ENGINE_EMULATOR
    - g_object_new
    linkageType: ''
    returnType: FuEngineEmulator
    signature: 'FuEngineEmulator *

      fu_engine_emulator_new(FuEngine *engine)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-test.c:15,1
    - Dst: fu_polkit_agent_new
      Src: /src/fwupd/src/fu-polkit-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-test.c:16,1
    - Dst: fu_polkit_agent_open
      Src: /src/fwupd/src/fu-polkit-test.c:18,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-polkit-test.c:19,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-polkit-test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: fu_polkit_agent_func
    functionSourceFile: /src/fwupd/src/fu-polkit-test.c
    functionUses: 0
    functionsReached:
    - fu_polkit_agent_open
    - g_assert_true
    - fu_polkit_agent_new
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_polkit_agent_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-polkit-test.c:26,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-polkit-test.c:27,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-polkit-test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-polkit-test.c
    functionUses: 1
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:33,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:33,1
    - Dst: fwupd_report_flag_from_string
      Src: /src/fwupd/src/fu-engine-config.c:35,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:37,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-engine-config.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - report
    - flags_str
    - error
    argTypes:
    - FwupdReport*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: fu_engine_config_report_from_flags
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - g_strsplit
    - fwupd_report_add_flag
    - fwupd_report_flag_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_report_from_flags(FwupdReport *report, const
      gchar *flags_str, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:52,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:53,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/src/fu-engine-config.c:53,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:57,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:57,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine-config.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:59,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine-config.c:66,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-engine-config.c:67,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:70,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:72,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-engine-config.c:73,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine-config.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine-config.c:81,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/src/fu-engine-config.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:86,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/src/fu-engine-config.c:87,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:88,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/src/fu-engine-config.c:89,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:90,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/src/fu-engine-config.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:92,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/src/fu-engine-config.c:93,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:94,1
    - Dst: fu_engine_config_report_from_flags
      Src: /src/fwupd/src/fu-engine-config.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:108,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - self
    - report_spec
    - error
    argTypes:
    - FuEngineConfig*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 109
    functionName: fu_engine_config_report_from_spec
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fwupd_report_new
    - g_auto
    - g_prefix_error
    - fwupd_report_add_flag
    - fwupd_report_set_vendor_id
    - g_set_error
    - fwupd_report_set_remote_id
    - g_strv_length
    - fwupd_report_set_distro_version
    - g_steal_pointer
    - g_autoptr
    - g_get_os_info
    - fu_strtoull
    - g_str_has_prefix
    - g_strsplit
    - fwupd_report_set_distro_variant
    - fwupd_report_set_distro_id
    - fu_engine_config_report_from_flags
    - g_strdup
    - g_strcmp0
    linkageType: ''
    returnType: FwupdReport
    signature: 'FwupdReport *

      fu_engine_config_report_from_spec(FuEngineConfig *self, const gchar *report_spec,
      GError **error)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:114,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:115,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:116,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:117,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:118,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:119,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:120,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:126,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:127,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:127,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:130,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:130,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:134,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:135,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:135,1
    - Dst: fu_strstrip
      Src: /src/fwupd/src/fu-engine-config.c:138,1
    - Dst: g_strdelimit
      Src: /src/fwupd/src/fu-engine-config.c:141,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:142,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:142,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:147,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:148,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:148,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:151,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:151,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:155,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:156,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:156,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:159,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:159,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:163,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:164,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:164,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:167,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:167,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:171,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:171,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-config.c:173,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:176,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:176,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:178,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:181,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:181,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:183,1
    - Dst: g_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:186,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:187,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:191,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine-config.c:192,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-config.c:198,1
    - Dst: g_array_append_val
      Src: /src/fwupd/src/fu-engine-config.c:203,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:208,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:209,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:212,1
    - Dst: fu_engine_config_report_from_spec
      Src: /src/fwupd/src/fu-engine-config.c:214,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-config.c:216,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:221,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 224
    functionName: fu_engine_config_reload
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_warning
    - fu_config_get_value
    - g_auto
    - g_array_set_size
    - fu_config_get_value_strv
    - fu_strstrip
    - g_steal_pointer
    - g_array_append_val
    - g_ptr_array_set_size
    - g_strdup
    - g_setenv
    - g_autoptr
    - fu_engine_config_report_from_spec
    - FU_CONFIG
    - g_ptr_array_add
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_reload(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:229,1
    - Dst: fu_engine_config_reload
      Src: /src/fwupd/src/fu-engine-config.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - user_data
    argTypes:
    - FuEngineConfig*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: fu_engine_config_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE_CONFIG
    - fu_engine_config_reload
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_changed_cb(FuEngineConfig *config, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_u64
      Src: /src/fwupd/src/fu-engine-config.c:236,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: fu_engine_config_get_idle_timeout
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_u64
    linkageType: ''
    returnType: guint
    signature: guint fu_engine_config_get_idle_timeout(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:242,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: fu_engine_config_get_disabled_devices
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_config_get_disabled_devices(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:249,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: fu_engine_config_get_trusted_uids
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_engine_config_get_trusted_uids(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:256,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: fu_engine_config_get_trusted_reports
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONFIG
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_config_get_trusted_reports(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:263,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: fu_engine_config_get_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_config_get_blocked_firmware(FuEngineConfig *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-engine-config.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - scheme
    argTypes:
    - FuEngineConfig*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: fu_engine_config_get_uri_scheme_prio
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - g_ptr_array_find_with_equal_func
    linkageType: ''
    returnType: guint
    signature: guint fu_engine_config_get_uri_scheme_prio(FuEngineConfig *self, const
      gchar *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_u64
      Src: /src/fwupd/src/fu-engine-config.c:279,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: fu_engine_config_get_archive_size_max
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_u64
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_engine_config_get_archive_size_max(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:285,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: fu_engine_config_get_disabled_plugins
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_config_get_disabled_plugins(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:292,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: fu_engine_config_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_config_get_approved_firmware(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:299,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: fu_engine_config_get_update_motd
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_update_motd(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:305,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: fu_engine_config_get_ignore_power
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_ignore_power(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:311,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: fu_engine_config_get_only_trusted
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_only_trusted(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:317,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: fu_engine_config_get_show_device_private
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_show_device_private(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:323,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: fu_engine_config_get_test_devices
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 3
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_test_devices(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:329,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: fu_engine_config_get_ignore_requirements
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_ignore_requirements(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:335,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: fu_engine_config_get_ignore_efivars_free_space
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_ignore_efivars_free_space(FuEngineConfig
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:341,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: fu_engine_config_get_release_dedupe
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_release_dedupe(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:347,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:347,1
    - Dst: fu_release_priority_from_string
      Src: /src/fwupd/src/fu-engine-config.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: fu_engine_config_get_release_priority
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value
    - fu_release_priority_from_string
    linkageType: ''
    returnType: FuReleasePriority
    signature: FuReleasePriority fu_engine_config_get_release_priority(FuEngineConfig
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:355,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:355,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:356,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:356,1
    - Dst: fu_p2p_policy_from_string
      Src: /src/fwupd/src/fu-engine-config.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: fu_engine_config_get_p2p_policy
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 4
    functionsReached:
    - fu_config_get_value
    - g_auto
    - g_strsplit
    - FU_CONFIG
    - fu_p2p_policy_from_string
    linkageType: ''
    returnType: FuP2pPolicy
    signature: FuP2pPolicy fu_engine_config_get_p2p_policy(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:365,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: fu_engine_config_get_enumerate_all_devices
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_enumerate_all_devices(FuEngineConfig
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:371,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: fu_engine_config_get_require_immutable_enumeration
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_config_get_value_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_config_get_require_immutable_enumeration(FuEngineConfig
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:377,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: fu_engine_config_get_host_bkc
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_config_get_host_bkc(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-config.c:384,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: fu_engine_config_get_esp_location
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_CONFIG
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_config_get_esp_location(FuEngineConfig *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_get_memory_size
      Src: /src/fwupd/src/fu-engine-config.c:391,1
    - Dst: MIN
      Src: /src/fwupd/src/fu-engine-config.c:392,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-config.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: fu_engine_config_archive_size_max_default
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fu_common_get_memory_size
    - MIN
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_config_archive_size_max_default(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:400,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuEngineConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: fu_engine_config_set_default
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - FU_CONFIG
    - fu_config_set_default
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_set_default(FuEngineConfig *self, const gchar
      *key, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_config_archive_size_max_default
      Src: /src/fwupd/src/fu-engine-config.c:406,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:407,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:408,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:409,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:410,1
    - Dst: g_array_new
      Src: /src/fwupd/src/fu-engine-config.c:411,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:412,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:413,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-config.c:414,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-config.c:414,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-config.c:415,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-config.c:415,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:418,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:419,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:420,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:421,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:422,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:423,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:424,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:425,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:426,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:427,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:428,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:429,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:430,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:431,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:432,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:433,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:434,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:435,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:436,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:437,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:438,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:439,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:440,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:441,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 443
    functionName: fu_engine_config_init
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_archive_size_max_default
    - g_array_new
    - fu_engine_config_set_default
    - g_ptr_array_new_with_free_func
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_init(FuEngineConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:448,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:450,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:451,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:452,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:453,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:454,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:455,1
    - Dst: g_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:456,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-config.c:457,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-config.c:458,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-config.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: fu_engine_config_finalize
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_ENGINE_CONFIG
    - g_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-config.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: fu_engine_config_class_init
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_engine_config_class_init(FuEngineConfigClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:473,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-config.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: fu_engine_config_new
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 3
    functionsReached:
    - FU_ENGINE_CONFIG
    - g_object_new
    linkageType: ''
    returnType: FuEngineConfig
    signature: 'FuEngineConfig *

      fu_engine_config_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-main.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:32,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main.c:33,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main.c:34,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: fu_main_sigterm_cb
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_daemon_stop
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_main_sigterm_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-main.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:44,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main.c:45,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: fu_main_timed_exit_cb
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - fu_daemon_stop
    - g_warning
    - g_autoptr
    - FU_DAEMON
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_main_timed_exit_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-main.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:58,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-main.c:59,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main.c:60,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: fu_main_argv_changed_cb
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_daemon_stop
    - g_autoptr
    - g_info
    - FU_DAEMON
    linkageType: ''
    returnType: void
    signature: "void fu_main_argv_changed_cb(GFileMonitor *monitor,\n\t\t\tGFile *file,\n\t\t\tGFile
      *other_file,\n\t\t\tGFileMonitorEvent event_type,\n\t\t\tgpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:69,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-main.c:70,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main.c:71,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - memory_monitor
    - level
    - daemon
    argTypes:
    - GMemoryMonitor*
    - GMemoryMonitorWarningLevel
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: fu_main_memory_monitor_warning_cb
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - fu_daemon_stop
    - g_warning
    - g_info
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_main_memory_monitor_warning_cb(GMemoryMonitor *memory_monitor,\n\t\t\t\t
      \ GMemoryMonitorWarningLevel level,\n\t\t\t\t  FuDaemon *daemon)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:79,1
    - Dst: fu_cpu_get_attrs
      Src: /src/fwupd/src/fu-main.c:81,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-main.c:84,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-main.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: fu_main_is_hypervisor
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - fu_cpu_get_attrs
    - g_hash_table_lookup
    - g_strstr_len
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_main_is_hypervisor(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-main.c:95,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-main.c:97,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-main.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: fu_main_is_container
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_strstr_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_main_is_container(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-main.c:109,1
    - Dst: N_
      Src: /src/fwupd/src/fu-main.c:117,1
    - Dst: N_
      Src: /src/fwupd/src/fu-main.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:130,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-main.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:132,1
    - Dst: fu_daemon_new
      Src: /src/fwupd/src/fu-main.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:134,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-main.c:136,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-main.c:138,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-main.c:139,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-main.c:140,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-main.c:143,1
    - Dst: _
      Src: /src/fwupd/src/fu-main.c:143,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main.c:144,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-main.c:145,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main.c:146,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main.c:146,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-main.c:148,1
    - Dst: _
      Src: /src/fwupd/src/fu-main.c:148,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main.c:149,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:150,1
    - Dst: fu_main_is_hypervisor
      Src: /src/fwupd/src/fu-main.c:155,1
    - Dst: fu_daemon_set_machine_kind
      Src: /src/fwupd/src/fu-main.c:156,1
    - Dst: fu_main_is_container
      Src: /src/fwupd/src/fu-main.c:157,1
    - Dst: fu_daemon_set_machine_kind
      Src: /src/fwupd/src/fu-main.c:158,1
    - Dst: fu_daemon_set_machine_kind
      Src: /src/fwupd/src/fu-main.c:160,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-main.c:166,1
    - Dst: g_strrstr
      Src: /src/fwupd/src/fu-main.c:171,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-main.c:174,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-main.c:175,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-main.c:177,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-main.c:179,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main.c:184,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:185,1
    - Dst: g_unix_signal_add_full
      Src: /src/fwupd/src/fu-main.c:190,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/src/fu-main.c:194,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-main.c:195,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/src/fu-main.c:195,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-main.c:197,1
    - Dst: g_memory_monitor_dup_default
      Src: /src/fwupd/src/fu-main.c:201,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-main.c:203,1
    - Dst: G_MEMORY_MONITOR
      Src: /src/fwupd/src/fu-main.c:203,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-main.c:205,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-main.c:212,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-main.c:214,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-main.c:217,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-main.c:217,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main.c:218,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:219,1
    - Dst: sd_notify
      Src: /src/fwupd/src/fu-main.c:225,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/src/fu-main.c:229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 233
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 2
    functionsReached:
    - g_file_monitor_file
    - fu_main_is_hypervisor
    - g_message
    - g_file_monitor_cancel
    - fu_main_is_container
    - g_timeout_add_seconds
    - setlocale
    - g_option_context_set_summary
    - g_unix_signal_add_full
    - g_signal_connect
    - g_idle_add
    - g_option_context_new
    - textdomain
    - g_file_new_for_path
    - fu_daemon_new
    - G_MEMORY_MONITOR
    - fu_daemon_setup
    - fu_debug_get_option_group
    - N_
    - G_CALLBACK
    - sd_notify
    - g_option_context_add_group
    - fu_daemon_start
    - g_autoptr
    - g_option_context_add_main_entries
    - g_file_test
    - g_getenv
    - g_option_context_parse
    - bind_textdomain_codeset
    - bindtextdomain
    - G_FILE_MONITOR
    - g_printerr
    - _
    - g_unlink
    - g_strdup_printf
    - fu_daemon_set_machine_kind
    - g_memory_monitor_dup_default
    - g_strrstr
    - g_strdup
    - g_set_application_name
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: fu_release_get_appstream_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_appstream_id(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: fu_release_get_filename
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_filename(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: fu_release_get_version
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_version(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: fu_release_get_branch
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_branch(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: fu_release_get_remote_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_remote_id(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: fu_release_get_checksums
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_checksums(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: fu_release_get_reports
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_reports(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: fu_release_get_flags
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_flags(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: fu_release_add_flag
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_add_flag(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: fu_release_has_flag
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_has_flag(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: fu_release_add_tag
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_add_tag(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: fu_release_add_metadata
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_add_metadata(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: fu_release_set_branch
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_branch(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: fu_release_set_description
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_description(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: fu_release_set_flags
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_flags(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: fu_release_set_filename
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_filename(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - k
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: fu_release_add_metadata_item
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_add_metadata_item(r, k, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: fu_release_set_version
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_version(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: fu_release_set_protocol
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_protocol(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: fu_release_set_appstream_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_appstream_id(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: fu_release_add_checksum
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_add_checksum(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: fu_release_set_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_id(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: fu_release_set_remote_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_remote_id(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: fu_release_set_filename
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_set_filename(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: fu_release_get_metadata_item
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_metadata_item(r, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: fu_release_get_protocol
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_protocol(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: fu_release_get_metadata
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_metadata(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: fu_release_get_id
    functionSourceFile: /src/fwupd/src/fu-release.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_release_get_id(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:48,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:48,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:49,1
    - Dst: JCAT_IS_CONTEXT
      Src: /src/fwupd/src/fu-cabinet.c:49,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-cabinet.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - jcat_context
    argTypes:
    - FuCabinet*
    - JcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: fu_cabinet_set_jcat_context
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - g_set_object
    - JCAT_IS_CONTEXT
    - FU_IS_CABINET
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_set_jcat_context(FuCabinet *self, JcatContext *jcat_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:68,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:68,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:69,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:71,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-cabinet.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCabinet*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: fu_cabinet_get_silo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - g_object_ref
    - g_return_val_if_fail
    - FU_IS_CABINET
    linkageType: ''
    returnType: XbSilo
    signature: 'XbSilo *

      fu_cabinet_get_silo(FuCabinet *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:90,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/src/fu-cabinet.c:90,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:92,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:92,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:93,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:94,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-cabinet.c:96,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:96,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-cabinet.c:97,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:97,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-cabinet.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - basename
    - data
    argTypes:
    - FuCabinet*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: fu_cabinet_add_file
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 2
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_IS_CABINET
    - g_return_if_fail
    - FU_FIRMWARE
    - fu_cab_image_new
    - g_autoptr
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_add_file(FuCabinet *self, const gchar *basename, GBytes
      *data)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:117,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:121,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:126,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-cabinet.c:128,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:129,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:131,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:133,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:135,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-cabinet.c:144,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:148,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:154,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-cabinet.c:154,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:155,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:158,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-cabinet.c:161,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:163,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-cabinet.c:166,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:185,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:185,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:186,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:190,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:191,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-cabinet.c:192,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:194,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:198,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:203,1
    - Dst: jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:209,1
    - Dst: jcat_item_has_target
      Src: /src/fwupd/src/fu-cabinet.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:217,1
    - Dst: jcat_item_new
      Src: /src/fwupd/src/fu-cabinet.c:217,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:221,1
    - Dst: jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-cabinet.c:224,1
    - Dst: jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:225,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:229,1
    - Dst: jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-cabinet.c:232,1
    - Dst: jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:233,1
    - Dst: jcat_context_verify_target
      Src: /src/fwupd/src/fu-cabinet.c:235,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:242,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:252,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:255,1
    - Dst: jcat_context_verify_item
      Src: /src/fwupd/src/fu-cabinet.c:258,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:265,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:273,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-cabinet.c:276,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:277,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:277,1
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:285,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:287,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:290,1
    - Dst: jcat_blob_new
      Src: /src/fwupd/src/fu-cabinet.c:293,1
    - Dst: jcat_context_verify_blob
      Src: /src/fwupd/src/fu-cabinet.c:294,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:300,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:304,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:311,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:312,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 146
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuCabinet*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 316
    functionName: fu_cabinet_parse_release
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - strlen
    - FU_FIRMWARE
    - jcat_item_new
    - xb_node_query_first
    - g_set_error
    - jcat_file_get_item_by_id
    - xb_node_get_text
    - FU_CAB_FIRMWARE
    - jcat_blob_new_utf8
    - jcat_context_verify_target
    - jcat_context_verify_item
    - g_info
    - xb_node_get_attr
    - fu_firmware_get_image_by_id
    - fu_input_stream_compute_checksum
    - jcat_item_add_blob
    - jcat_blob_new
    - g_autoptr
    - g_bytes_new
    - fwupd_checksum_guess_kind
    - xb_node_query_text
    - g_strcmp0
    - fu_strtoull
    - fu_firmware_get_bytes
    - g_path_get_basename
    - g_strdup_printf
    - g_set_error_literal
    - jcat_item_has_target
    - xb_node_set_data
    - fu_input_stream_size
    - jcat_context_verify_blob
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_parse_release(FuCabinet *self, XbNode *release,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-cabinet.c:321,1
    - Dst: xb_builder_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-cabinet.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - bn1
    - bn2
    - user_data
    argTypes:
    - XbBuilderNode*
    - XbBuilderNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: fu_cabinet_sort_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_get_attr_as_uint
    linkageType: ''
    returnType: gint
    signature: gint fu_cabinet_sort_cb(XbBuilderNode *bn1, XbBuilderNode *bn2, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_sort_children
      Src: /src/fwupd/src/fu-cabinet.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - bn
    - user_data
    - error
    argTypes:
    - XbBuilderFixup*
    - XbBuilderNode*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: fu_cabinet_sort_priority_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_sort_children
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_sort_priority_cb(XbBuilderFixup *self,\n\t\t\t
      \   XbBuilderNode *bn,\n\t\t\t    gpointer user_data,\n\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_get_children
      Src: /src/fwupd/src/fu-cabinet.c:348,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:351,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:351,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:353,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:355,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:355,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-cabinet.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 6
    argNames:
    - bn
    - element
    - attr_name
    - attr_value
    - attr2_name
    - attr2_value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: _xb_builder_node_get_child_by_element_attr
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - xb_builder_node_get_attr
    - xb_builder_node_get_children
    - g_ptr_array_index
    - xb_builder_node_get_element
    - g_strcmp0
    linkageType: ''
    returnType: XbBuilderNode
    signature: "XbBuilderNode *\n_xb_builder_node_get_child_by_element_attr(XbBuilderNode
      *bn,\n\t\t\t\t\t   const gchar *element,\n\t\t\t\t\t   const gchar *attr_name,\n\t\t\t\t\t
      \  const gchar *attr_value,\n\t\t\t\t\t   const gchar *attr2_name,\n\t\t\t\t\t
      \  const gchar *attr2_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:364,1
    - Dst: _xb_builder_node_get_child_by_element_attr
      Src: /src/fwupd/src/fu-cabinet.c:367,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-cabinet.c:374,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:384,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:384,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:385,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-cabinet.c:386,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:387,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-cabinet.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bn
    - type
    - checksum
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 392
    functionName: fu_cabinet_ensure_container_checksum
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_warning
    - xb_builder_node_set_text
    - xb_builder_node_get_text
    - g_autoptr
    - _xb_builder_node_get_child_by_element_attr
    - xb_builder_node_insert
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_ensure_container_checksum(XbBuilderNode *bn, const
      gchar *type, const gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:400,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:403,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:403,1
    - Dst: fu_cabinet_ensure_container_checksum
      Src: /src/fwupd/src/fu-cabinet.c:406,1
    - Dst: fu_cabinet_ensure_container_checksum
      Src: /src/fwupd/src/fu-cabinet.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - builder_fixup
    - bn
    - user_data
    - error
    argTypes:
    - XbBuilderFixup*
    - XbBuilderNode*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: fu_cabinet_ensure_container_checksum_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CABINET
    - fu_cabinet_ensure_container_checksum
    - xb_builder_node_get_element
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_ensure_container_checksum_cb(XbBuilderFixup *builder_fixup,\n\t\t\t\t\tXbBuilderNode
      *bn,\n\t\t\t\t\tgpointer user_data,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_get_children
      Src: /src/fwupd/src/fu-cabinet.c:417,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:419,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:420,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:420,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:423,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:423,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:424,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/src/fu-cabinet.c:426,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-cabinet.c:427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - bn
    - element
    - attr_name
    - attr_value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: fu_cabinet_fixup_checksum_children
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_ascii_strdown
    - xb_builder_node_set_text
    - xb_builder_node_get_attr
    - xb_builder_node_get_children
    - g_ptr_array_index
    - xb_builder_node_get_text
    - xb_builder_node_get_element
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: "void fu_cabinet_fixup_checksum_children(XbBuilderNode *bn,\n\t\t\t\t
      \  const gchar *element,\n\t\t\t\t   const gchar *attr_name,\n\t\t\t\t   const
      gchar *attr_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:439,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:439,1
    - Dst: fu_cabinet_fixup_checksum_children
      Src: /src/fwupd/src/fu-cabinet.c:442,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:443,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:443,1
    - Dst: fu_cabinet_fixup_checksum_children
      Src: /src/fwupd/src/fu-cabinet.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - builder_fixup
    - bn
    - user_data
    - error
    argTypes:
    - XbBuilderFixup*
    - XbBuilderNode*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 447
    functionName: fu_cabinet_set_lowercase_checksum_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_cabinet_fixup_checksum_children
    - g_strcmp0
    - xb_builder_node_get_element
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_set_lowercase_checksum_cb(XbBuilderFixup *builder_fixup,\n\t\t\t\t
      \    XbBuilderNode *bn,\n\t\t\t\t     gpointer user_data,\n\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_get_first_child
      Src: /src/fwupd/src/fu-cabinet.c:455,1
    - Dst: xb_builder_node_add_flag
      Src: /src/fwupd/src/fu-cabinet.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - bn
    - user_data
    - error
    argTypes:
    - XbBuilderFixup*
    - XbBuilderNode*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: fu_cabinet_fixup_strip_inner_text_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_add_flag
    - xb_builder_node_get_first_child
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_fixup_strip_inner_text_cb(XbBuilderFixup *self,\n\t\t\t\t
      \    XbBuilderNode *bn,\n\t\t\t\t     gpointer user_data,\n\t\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:469,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-cabinet.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:470,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-cabinet.c:470,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-cabinet.c:474,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-cabinet.c:475,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:475,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-cabinet.c:476,1
    - Dst: xb_builder_source_set_prefix
      Src: /src/fwupd/src/fu-cabinet.c:479,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:482,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/src/fu-cabinet.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:489,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-cabinet.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - self
    - img
    - release_flags
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - FwupdReleaseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 500
    functionName: fu_cabinet_build_silo_file
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_builder_source_set_prefix
    - xb_builder_node_new
    - fu_firmware_get_id
    - xb_builder_source_set_info
    - fu_firmware_get_bytes
    - xb_builder_import_source
    - xb_builder_source_new
    - g_autoptr
    - xb_builder_source_load_bytes
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_build_silo_file(FuCabinet *self,\n\t\t\t   FuFirmware
      *img,\n\t\t\t   FwupdReleaseFlags release_flags,\n\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:507,1
    - Dst: jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:510,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:516,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:518,1
    - Dst: jcat_context_verify_item
      Src: /src/fwupd/src/fu-cabinet.c:521,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:528,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:530,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:536,1
    - Dst: fu_cabinet_build_silo_file
      Src: /src/fwupd/src/fu-cabinet.c:537,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-cabinet.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 544
    functionName: fu_cabinet_build_silo_metainfo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - jcat_file_get_item_by_id
    - g_prefix_error
    - fu_firmware_get_id
    - jcat_context_verify_item
    - fu_cabinet_build_silo_file
    - g_autoptr
    - g_info
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_build_silo_metainfo(FuCabinet *self, FuFirmware
      *img, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:550,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:552,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-cabinet.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:559,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:560,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/src/fu-cabinet.c:564,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/src/fu-cabinet.c:564,1
    - Dst: jcat_file_import_stream
      Src: /src/fwupd/src/fu-cabinet.c:566,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-cabinet.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 576
    functionName: fu_cabinet_build_jcat_folder
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - G_SEEKABLE
    - g_prefix_error
    - g_seekable_seek
    - g_set_error_literal
    - g_str_has_suffix
    - g_autoptr
    - jcat_file_import_stream
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_build_jcat_folder(FuCabinet *self, FuFirmware *img,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:582,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:584,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-cabinet.c:590,1
    - Dst: fu_cabinet_build_silo_metainfo
      Src: /src/fwupd/src/fu-cabinet.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 595
    functionName: fu_cabinet_build_silo_folder
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_cabinet_build_silo_metainfo
    - g_str_has_suffix
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_build_silo_folder(FuCabinet *self, FuFirmware *img,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:600,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:601,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:602,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:603,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:604,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-cabinet.c:607,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/src/fu-cabinet.c:608,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-cabinet.c:614,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:614,1
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:614,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:617,1
    - Dst: fu_cabinet_build_jcat_folder
      Src: /src/fwupd/src/fu-cabinet.c:618,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:625,1
    - Dst: fu_cabinet_build_silo_folder
      Src: /src/fwupd/src/fu-cabinet.c:626,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:631,1
    - Dst: xb_builder_fixup_set_max_depth
      Src: /src/fwupd/src/fu-cabinet.c:632,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:633,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:636,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:640,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:642,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:646,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:649,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:653,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-cabinet.c:657,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:659,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-cabinet.c:664,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:668,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-cabinet.c:671,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:675,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCabinet*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 681
    functionName: fu_cabinet_build_silo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_set_profile_flags
    - xb_builder_fixup_new
    - xb_builder_compile
    - xb_builder_add_fixup
    - FU_CAB_FIRMWARE
    - xb_silo_query_build_index
    - fu_cabinet_build_jcat_folder
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - xb_builder_fixup_set_max_depth
    - g_autoptr
    - fu_cabinet_build_silo_folder
    - g_getenv
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_build_silo(FuCabinet *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:692,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:693,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:695,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:697,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:698,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:701,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:701,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:704,1
    - Dst: jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:707,1
    - Dst: jcat_item_new
      Src: /src/fwupd/src/fu-cabinet.c:709,1
    - Dst: jcat_file_add_item
      Src: /src/fwupd/src/fu-cabinet.c:710,1
    - Dst: jcat_context_get_engine
      Src: /src/fwupd/src/fu-cabinet.c:714,1
    - Dst: jcat_engine_self_sign
      Src: /src/fwupd/src/fu-cabinet.c:718,1
    - Dst: jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:721,1
    - Dst: jcat_context_get_engine
      Src: /src/fwupd/src/fu-cabinet.c:724,1
    - Dst: jcat_engine_pubkey_sign
      Src: /src/fwupd/src/fu-cabinet.c:728,1
    - Dst: jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:736,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 7
    argNames:
    - self
    - filename
    - jcat_context
    - jcat_file
    - cert
    - privkey
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - JcatContext*
    - JcatFile*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 738
    functionName: fu_cabinet_sign_filename
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - jcat_file_get_item_by_id
    - jcat_file_add_item
    - fu_firmware_get_image_by_id
    - jcat_context_get_engine
    - jcat_item_add_blob
    - FU_FIRMWARE
    - jcat_item_new
    - g_autoptr
    - jcat_engine_self_sign
    - jcat_engine_pubkey_sign
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_sign_filename(FuCabinet *self,\n\t\t\t const gchar
      *filename,\n\t\t\t JcatContext *jcat_context,\n\t\t\t JcatFile *jcat_file,\n\t\t\t
      GBytes *cert,\n\t\t\t GBytes *privkey,\n\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:745,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-cabinet.c:748,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:751,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:756,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:757,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:758,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:759,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:759,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-cabinet.c:761,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:761,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:762,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:767,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:768,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:768,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:769,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:769,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:769,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - files
    - error
    argTypes:
    - FuCabinet*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 775
    functionName: fu_cabinet_sign_enumerate_metainfo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_error_convert
    - g_steal_pointer
    - g_error_matches
    - xb_node_get_text
    - fu_cabinet_get_silo
    - g_ptr_array_index
    - g_strdup
    - g_autoptr
    - xb_silo_query
    - g_propagate_error
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_sign_enumerate_metainfo(FuCabinet *self, GPtrArray
      *files, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:780,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:782,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-cabinet.c:784,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:787,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:793,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:794,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:795,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:796,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:796,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-cabinet.c:798,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:798,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:799,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:804,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:805,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:805,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:806,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:806,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - files
    - error
    argTypes:
    - FuCabinet*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 812
    functionName: fu_cabinet_sign_enumerate_firmware
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_error_convert
    - g_steal_pointer
    - g_error_matches
    - xb_node_get_attr
    - fu_cabinet_get_silo
    - g_ptr_array_index
    - g_strdup
    - g_autoptr
    - xb_silo_query
    - g_propagate_error
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_sign_enumerate_firmware(FuCabinet *self, GPtrArray
      *files, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:835,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:836,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:837,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:838,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-cabinet.c:838,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:839,1
    - Dst: jcat_context_new
      Src: /src/fwupd/src/fu-cabinet.c:839,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:840,1
    - Dst: jcat_file_new
      Src: /src/fwupd/src/fu-cabinet.c:840,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:842,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:843,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:845,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:848,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:850,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:850,1
    - Dst: jcat_file_import_stream
      Src: /src/fwupd/src/fu-cabinet.c:853,1
    - Dst: fu_cabinet_sign_enumerate_metainfo
      Src: /src/fwupd/src/fu-cabinet.c:858,1
    - Dst: fu_cabinet_sign_enumerate_firmware
      Src: /src/fwupd/src/fu-cabinet.c:860,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:865,1
    - Dst: fu_cabinet_sign_filename
      Src: /src/fwupd/src/fu-cabinet.c:866,1
    - Dst: g_memory_output_stream_new_resizable
      Src: /src/fwupd/src/fu-cabinet.c:877,1
    - Dst: jcat_file_export_stream
      Src: /src/fwupd/src/fu-cabinet.c:878,1
    - Dst: g_memory_output_stream_steal_as_bytes
      Src: /src/fwupd/src/fu-cabinet.c:880,1
    - Dst: G_MEMORY_OUTPUT_STREAM
      Src: /src/fwupd/src/fu-cabinet.c:880,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-cabinet.c:881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - self
    - cert
    - privkey
    - flags
    - error
    argTypes:
    - FuCabinet*
    - GBytes*
    - GBytes*
    - FuCabinetSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 883
    functionName: fu_cabinet_sign
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - fu_firmware_get_stream
    - fu_cabinet_sign_enumerate_metainfo
    - FU_FIRMWARE
    - g_return_val_if_fail
    - g_memory_output_stream_new_resizable
    - g_ptr_array_index
    - fu_cabinet_sign_filename
    - jcat_file_import_stream
    - fu_cabinet_sign_enumerate_firmware
    - fu_firmware_get_image_by_id
    - fu_cabinet_add_file
    - jcat_file_new
    - FU_IS_CABINET
    - g_memory_output_stream_steal_as_bytes
    - g_autoptr
    - jcat_file_export_stream
    - g_ptr_array_new_with_free_func
    - G_MEMORY_OUTPUT_STREAM
    - jcat_context_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_sign(FuCabinet *self,\n\t\tGBytes *cert,\n\t\tGBytes
      *privkey,\n\t\tFuCabinetSignFlags flags,\n\t\tGError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:891,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:893,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:894,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:895,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:897,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:899,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:905,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:913,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/src/fu-cabinet.c:917,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/src/fu-cabinet.c:921,1
    - Dst: fu_cabinet_build_silo
      Src: /src/fwupd/src/fu-cabinet.c:927,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:931,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:933,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet.c:942,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:951,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:952,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:953,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:953,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-cabinet.c:955,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:957,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:965,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:966,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:966,1
    - Dst: fu_cabinet_parse_release
      Src: /src/fwupd/src/fu-cabinet.c:967,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 885
    functionDepth: 5
    functionLinenumber: 885
    functionLinenumberEnd: 974
    functionName: fu_cabinet_parse
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_set_error
    - xb_node_query_full
    - fu_cabinet_parse_release
    - xb_node_get_attr
    - FU_IS_CABINET
    - fu_cabinet_build_silo
    - xb_query_new_full
    - g_ptr_array_index
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - g_autoptr
    - xb_silo_query
    - FU_CABINET
    - g_return_val_if_fail
    - g_info
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_parse(FuFirmware *firmware,\n\t\t GInputStream
      *stream,\n\t\t FuFirmwareParseFlags flags,\n\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:979,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:980,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:982,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:982,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:983,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:986,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:988,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCabinet*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: fu_cabinet_get_components
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_IS_CABINET
    - g_autoptr
    - xb_silo_query
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_cabinet_get_components(FuCabinet *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:1002,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1004,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:1004,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1005,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1006,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-cabinet.c:1008,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-cabinet.c:1009,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:1011,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1015
    functionName: fu_cabinet_get_component
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 10
    functionsReached:
    - xb_silo_query_first
    - g_steal_pointer
    - FU_IS_CABINET
    - g_strdup_printf
    - g_autoptr
    - g_return_val_if_fail
    - fwupd_error_convert
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_cabinet_get_component(FuCabinet *self, const gchar *id, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_cab_firmware_set_only_basename
      Src: /src/fwupd/src/fu-cabinet.c:1020,1
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:1020,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-cabinet.c:1021,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:1021,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-cabinet.c:1022,1
    - Dst: jcat_file_new
      Src: /src/fwupd/src/fu-cabinet.c:1023,1
    - Dst: jcat_context_new
      Src: /src/fwupd/src/fu-cabinet.c:1024,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-cabinet.c:1025,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-cabinet.c:1026,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-cabinet.c:1027,1
    - Dst: jcat_context_blob_kind_allow
      Src: /src/fwupd/src/fu-cabinet.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabinet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1029
    functionName: fu_cabinet_init
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CAB_FIRMWARE
    - fu_cab_firmware_set_only_basename
    - xb_builder_new
    - jcat_file_new
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - jcat_context_new
    - jcat_context_blob_kind_allow
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_init(FuCabinet *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:1034,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1036,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1038,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-cabinet.c:1039,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-cabinet.c:1040,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1041,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1042,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1044
    functionName: fu_cabinet_finalize
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CABINET
    - g_free
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:1049,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabinetClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    functionName: fu_cabinet_class_init
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_class_init(FuCabinetClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-cabinet.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1066
    functionName: fu_cabinet_new
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 15
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCabinet
    signature: 'FuCabinet *

      fu_cabinet_new(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/src/fu-bluez-backend.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:32,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/src/fu-bluez-backend.c:35,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/src/fu-bluez-backend.c:38,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/src/fu-bluez-backend.c:41,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:45,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:45,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:46,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-bluez-backend.c:49,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:55,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-bluez-backend.c:56,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:56,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:62,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:64,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:65,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:66,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-bluez-backend.c:71,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-bluez-backend.c:79,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-bluez-backend.c:80,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-bluez-backend.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuBluezBackend*
    - GDBusProxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 81
    functionName: fu_bluez_backend_object_properties_changed
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_get_object_path
    - g_variant_get_boolean
    - g_debug
    - FU_BACKEND
    - g_dbus_proxy_get_cached_property
    - g_object_new
    - fu_backend_device_removed
    - FU_DEVICE
    - fu_backend_device_added
    - g_autoptr
    - fu_backend_lookup_by_id
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_object_properties_changed(FuBluezBackend *self,
      GDBusProxy *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_backend_object_properties_changed
      Src: /src/fwupd/src/fu-bluez-backend.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - self
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: fu_bluez_backend_object_properties_changed_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - fu_bluez_backend_object_properties_changed
    linkageType: ''
    returnType: void
    signature: "void fu_bluez_backend_object_properties_changed_cb(GDBusProxy *proxy,\n\t\t\t\t\t
      \     GVariant *changed_properties,\n\t\t\t\t\t      GStrv invalidated_properties,\n\t\t\t\t\t
      \     FuBluezBackend *self)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:95,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/src/fu-bluez-backend.c:97,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:100,1
    - Dst: G_DBUS_INTERFACE
      Src: /src/fwupd/src/fu-bluez-backend.c:100,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:102,1
    - Dst: fu_bluez_backend_object_properties_changed
      Src: /src/fwupd/src/fu-bluez-backend.c:104,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/src/fu-bluez-backend.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - FuBluezBackend*
    - GDBusObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: fu_bluez_backend_object_added
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - fu_bluez_backend_object_properties_changed
    - G_CALLBACK
    - g_dbus_object_get_interface
    - g_autoptr
    - g_signal_connect
    - G_DBUS_INTERFACE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_object_added(FuBluezBackend *self, GDBusObject
      *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_backend_object_added
      Src: /src/fwupd/src/fu-bluez-backend.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - manager
    - object
    - self
    argTypes:
    - GDBusObjectManager*
    - GDBusObject*
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: fu_bluez_backend_object_added_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - fu_bluez_backend_object_added
    linkageType: ''
    returnType: void
    signature: "void fu_bluez_backend_object_added_cb(GDBusObjectManager *manager,\n\t\t\t\t
      GDBusObject *object,\n\t\t\t\t FuBluezBackend *self)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/src/fu-bluez-backend.c:120,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-bluez-backend.c:123,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:123,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-bluez-backend.c:126,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-bluez-backend.c:127,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - manager
    - object
    - self
    argTypes:
    - GDBusObjectManager*
    - GDBusObject*
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: fu_bluez_backend_object_removed_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND
    - g_dbus_object_get_object_path
    - fu_backend_device_removed
    - fu_backend_lookup_by_id
    - g_info
    linkageType: ''
    returnType: void
    signature: "void fu_bluez_backend_object_removed_cb(GDBusObjectManager *manager,\n\t\t\t\t
      \  GDBusObject *object,\n\t\t\t\t   FuBluezBackend *self)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-bluez-backend.c:142,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-bluez-backend.c:144,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-bluez-backend.c:145,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-bluez-backend.c:146,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-bluez-backend.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuBluezBackendHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: fu_bluez_backend_helper_free
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_main_loop_unref
    - g_object_unref
    - g_cancellable_cancel
    - g_free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_helper_free(FuBluezBackendHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_object_manager_client_new_for_bus_finish
      Src: /src/fwupd/src/fu-bluez-backend.c:157,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-bluez-backend.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source_object
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: fu_bluez_backend_connect_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_dbus_object_manager_client_new_for_bus_finish
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_connect_cb(GObject *source_object, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-bluez-backend.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: fu_bluez_backend_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_cancellable_cancel
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_backend_timeout_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:177,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-bluez-backend.c:177,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-bluez-backend.c:182,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-bluez-backend.c:183,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-bluez-backend.c:185,1
    - Dst: g_dbus_object_manager_client_new_for_bus
      Src: /src/fwupd/src/fu-bluez-backend.c:186,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-bluez-backend.c:196,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-bluez-backend.c:199,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:202,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/src/fu-bluez-backend.c:202,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:204,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:206,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/src/fu-bluez-backend.c:206,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 212
    functionName: fu_bluez_backend_setup
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - FU_BLUEZ_BACKEND
    - g_steal_pointer
    - g_new0
    - g_cancellable_new
    - g_timeout_add
    - g_dbus_object_manager_client_new_for_bus
    - g_autoptr
    - g_main_loop_run
    - G_DBUS_OBJECT_MANAGER
    - g_main_loop_new
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bluez_backend_setup(FuBackend *backend,\n\t\t       FuBackendSetupFlags
      flags,\n\t\t       FuProgress *progress,\n\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:217,1
    - Dst: g_autolist
      Src: /src/fwupd/src/fu-bluez-backend.c:218,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/src/fu-bluez-backend.c:223,1
    - Dst: G_DBUS_OBJECT
      Src: /src/fwupd/src/fu-bluez-backend.c:225,1
    - Dst: fu_bluez_backend_object_added
      Src: /src/fwupd/src/fu-bluez-backend.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: fu_bluez_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - G_DBUS_OBJECT
    - FU_BLUEZ_BACKEND
    - g_autolist
    - fu_bluez_backend_object_added
    - g_dbus_object_manager_get_objects
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:234,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-bluez-backend.c:236,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-bluez-backend.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: fu_bluez_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_BLUEZ_BACKEND
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: fu_bluez_backend_init
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_init(FuBluezBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-bluez-backend.c:248,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-bluez-backend.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBluezBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: fu_bluez_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bluez_backend_class_init(FuBluezBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:259,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-bluez-backend.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: fu_bluez_backend_new
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 1
    functionsReached:
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_bluez_backend_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:31,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:32,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - text
    - fg_color
    argTypes:
    - gchar*
    - FuConsoleColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_console_color_format
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_getenv
    - g_strdup_printf
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_color_format(const gchar *text, FuConsoleColor fg_color)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_node_depth
      Src: /src/fwupd/src/fu-util-common.c:45,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:47,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/src/fu-util-common.c:50,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-util-common.c:51,1
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-util-common.c:52,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:53,1
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:54,1
    - Dst: fu_util_remote_to_string
      Src: /src/fwupd/src/fu-util-common.c:55,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:56,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:57,1
    - Dst: fu_util_release_to_string
      Src: /src/fwupd/src/fu-util-common.c:58,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:59,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:63,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:65,1
    - Dst: fwupd_client_get_host_vendor
      Src: /src/fwupd/src/fu-util-common.c:66,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util-common.c:67,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:68,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:69,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:80,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:80,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:84,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:85,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:87,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:91,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:92,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:92,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:93,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:98,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:99,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:102,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:107,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:112,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:113,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - n
    - data
    argTypes:
    - FuUtilNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 117
    functionName: fu_util_traverse_tree
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - g_node_next_sibling
    - g_auto
    - g_string_new
    - fu_console_print_literal
    - g_string_append
    - FWUPD_RELEASE
    - fu_util_device_to_string
    - fu_util_remote_to_string
    - fwupd_client_get_host_vendor
    - g_info
    - g_node_depth
    - FWUPD_IS_RELEASE
    - g_string_prepend
    - fwupd_client_get_host_product
    - fu_util_release_to_string
    - g_autoptr
    - FWUPD_DEVICE
    - g_getenv
    - FWUPD_IS_REMOTE
    - g_strsplit
    - g_strdup_printf
    - FWUPD_IS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_traverse_tree(FuUtilNode *n, gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util-common.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - data
    argTypes:
    - FuUtilNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: fu_util_free_tree_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_free_tree_cb(FuUtilNode *n, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_node_traverse
      Src: /src/fwupd/src/fu-util-common.c:130,1
    - Dst: g_node_destroy
      Src: /src/fwupd/src/fu-util-common.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - FuUtilNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: fu_util_free_node
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_node_destroy
    - g_node_traverse
    linkageType: ''
    returnType: void
    signature: void fu_util_free_node(FuUtilNode *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_node_traverse
      Src: /src/fwupd/src/fu-util-common.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - console
    - client
    - n
    argTypes:
    - FuConsole*
    - FwupdClient*
    - FuUtilNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: fu_util_print_node
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 5
    functionsReached:
    - g_node_traverse
    linkageType: ''
    returnType: void
    signature: void fu_util_print_node(FuConsole *console, FwupdClient *client, FuUtilNode
      *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_get_children
      Src: /src/fwupd/src/fu-util-common.c:144,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:146,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-util-common.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: fu_util_is_interesting_child
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_children
    - g_ptr_array_index
    - fu_util_is_interesting_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_interesting_child(FwupdDevice *dev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:156,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:158,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:160,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:163,1
    - Dst: fu_util_is_interesting_child
      Src: /src/fwupd/src/fu-util-common.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - dev
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: fu_util_is_interesting_device
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 3
    functionsReached:
    - fu_util_is_interesting_child
    - fwupd_device_get_version
    - fwupd_device_get_flags
    - fwupd_device_get_update_error
    - fwupd_device_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_interesting_device(FwupdDevice *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_get_user_cache_dir
      Src: /src/fwupd/src/fu-util-common.c:173,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-util-common.c:174,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:178,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:179,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:183,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util-common.c:184,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:185,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fn
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 188
    functionName: fu_util_get_user_cache_path
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_get_user_cache_dir
    - g_build_filename
    - g_path_get_basename
    - g_file_test
    - g_getenv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_get_user_cache_path(const gchar *fn)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:194,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/src/fu-util-common.c:196,1
    - Dst: g_dbus_connection_call_sync
      Src: /src/fwupd/src/fu-util-common.c:202,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-util-common.c:207,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 220
    functionName: fu_util_update_shutdown
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_dbus_connection_call_sync
    - g_set_error_literal
    - g_autoptr
    - g_bus_get_sync
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_update_shutdown(GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:226,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/src/fu-util-common.c:228,1
    - Dst: g_dbus_connection_call_sync
      Src: /src/fwupd/src/fu-util-common.c:234,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-util-common.c:239,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 252
    functionName: fu_util_update_reboot
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_dbus_connection_call_sync
    - g_set_error_literal
    - g_autoptr
    - g_bus_get_sync
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_update_reboot(GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:257,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:257,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:260,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:261,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:261,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-util-common.c:264,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:265,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:269,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:271,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:275,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:280,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:283,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:286,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rel
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: fu_util_get_release_description_with_fallback
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_release_has_flag
    - g_string_append_printf
    - fwupd_release_get_description
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - _
    - g_autoptr
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_get_release_description_with_fallback(FwupdRelease *rel)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:299,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:300,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:300,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-util-common.c:303,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:303,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:304,1
    - Dst: fwupd_device_get_version_format
      Src: /src/fwupd/src/fu-util-common.c:305,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:307,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:311,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:312,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:313,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:314,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:316,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:320,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:321,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:322,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:323,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:325,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:329,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:330,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:331,1
    - Dst: fu_util_get_release_description_with_fallback
      Src: /src/fwupd/src/fu-util-common.c:335,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:337,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:339,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:343,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:347,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:348,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:351,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:352,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:356,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:359,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:363,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:365,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:367,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:372,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:378,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:381,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:381,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - console
    - device
    - release
    - machine
    - error
    argTypes:
    - FuConsole*
    - FwupdDevice*
    - FwupdRelease*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 391
    functionName: fu_util_prompt_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fwupd_device_get_version_format
    - fu_device_get_version
    - g_string_new
    - fwupd_device_get_version
    - fu_version_compare
    - fwupd_device_get_flags
    - fu_util_get_release_description_with_fallback
    - _
    - fu_util_convert_description
    - fu_console_input_bool
    - g_set_error_literal
    - g_autoptr
    - fwupd_release_get_version
    - fwupd_device_get_name
    - fu_console_box
    - g_string_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_prompt_warning(FuConsole *console,\n\t\t       FwupdDevice
      *device,\n\t\t       FwupdRelease *release,\n\t\t       const gchar *machine,\n\t\t
      \      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:398,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:402,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:405,1
    - Dst: fu_util_update_shutdown
      Src: /src/fwupd/src/fu-util-common.c:408,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:412,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:416,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:418,1
    - Dst: fu_util_update_reboot
      Src: /src/fwupd/src/fu-util-common.c:421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - console
    - flags
    - prompt
    - error
    argTypes:
    - FuConsole*
    - FwupdDeviceFlags
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 425
    functionName: fu_util_prompt_complete
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 5
    functionsReached:
    - fu_console_input_bool
    - _
    - fu_util_update_shutdown
    - fu_util_update_reboot
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_prompt_complete(FuConsole *console, FwupdDeviceFlags
      flags, gboolean prompt, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/src/fu-util-common.c:430,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util-common.c:431,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util-common.c:432,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util-common.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuUtilCmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: fu_util_cmd_free
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_util_cmd_free(FuUtilCmd *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util-common.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: fu_util_cmd_array_new
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_util_cmd_array_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - FuUtilCmd**
    - FuUtilCmd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: fu_util_cmd_sort_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_util_cmd_sort_cb(FuUtilCmd **item1, FuUtilCmd **item2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util-common.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: fu_util_cmd_array_sort
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_sort
    linkageType: ''
    returnType: void
    signature: void fu_util_cmd_array_sort(GPtrArray *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:461,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-util-common.c:463,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-util-common.c:464,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-util-common.c:465,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:468,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util-common.c:470,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:471,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:473,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:476,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:476,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:478,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util-common.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - array
    - name
    - arguments
    - description
    - callback
    argTypes:
    - GPtrArray*
    - gchar*
    - gchar*
    - gchar*
    - FuUtilCmdFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 482
    functionName: fu_util_cmd_array_add
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_auto
    - g_new0
    - g_strsplit
    - g_strdup_printf
    - _
    - g_return_if_fail
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fu_util_cmd_array_add(GPtrArray *array,\n\t\t      const gchar
      *name,\n\t\t      const gchar *arguments,\n\t\t      const gchar *description,\n\t\t
      \     FuUtilCmdFunc callback)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:491,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util-common.c:491,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-common.c:491,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:495,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:497,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:502,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:503,1
    - Dst: FuUtilCmd*::callback
      Src: /src/fwupd/src/fu-util-common.c:504,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:508,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - array
    - self
    - command
    - values
    - error
    argTypes:
    - GPtrArray*
    - FuUtil*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 514
    functionName: fu_util_cmd_array_run
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_auto
    - g_new0
    - _
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - g_strdup
    - FuUtilCmd*::callback
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_cmd_array_run(GPtrArray *array,\n\t\t      FuUtil
      *self,\n\t\t      const gchar *command,\n\t\t      gchar **values,\n\t\t      GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:524,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:526,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:527,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:528,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:529,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:531,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:532,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:533,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:537,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:538,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:539,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:541,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:543,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:544,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:545,1
    - Dst: g_string_set_size
      Src: /src/fwupd/src/fu-util-common.c:551,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - array
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 554
    functionName: fu_util_cmd_array_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_set_size
    - g_string_new
    - g_string_free
    - g_string_append_c
    - fu_strwidth
    - g_ptr_array_index
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_cmd_array_to_string(GPtrArray *array)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - branch
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: fu_util_branch_for_display
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_branch_for_display(const gchar *branch)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_release_get_name
      Src: /src/fwupd/src/fu-util-common.c:569,1
    - Dst: fwupd_release_get_categories
      Src: /src/fwupd/src/fu-util-common.c:570,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:573,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:574,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:577,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:577,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:579,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:582,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:582,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:584,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:587,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:587,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:589,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:592,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:592,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:594,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:597,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:599,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:602,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:602,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:604,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:607,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:607,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:609,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:613,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:613,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:615,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:619,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:619,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:621,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:624,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:624,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:626,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:628,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:628,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:630,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:633,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:633,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:635,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:637,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:637,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:639,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:641,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:641,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:643,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:645,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:645,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:647,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:649,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:649,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:651,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:653,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:653,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:655,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:658,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:658,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:660,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:663,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:663,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:665,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:668,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:668,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:670,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:673,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:673,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:675,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:677,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:677,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:679,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:681,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:681,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:683,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:686,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:686,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:688,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:691,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:691,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:693,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:696,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:696,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:698,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:701,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:701,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:703,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:705,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:705,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:707,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:710,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:710,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:712,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:714,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:714,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:716,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:718,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:718,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:720,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:722,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:722,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:729,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:729,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 1
    argNames:
    - release
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 730
    functionName: fu_util_release_get_name
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_categories
    - _
    - g_strdup_printf
    - fwupd_release_get_name
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_release_get_name(FwupdRelease *release)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:739,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:739,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:741,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:742,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:745,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:746,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:748,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:756,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:760,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:764,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:768,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:773,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:775,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:783,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:787,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:791,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - filter
    - include
    - exclude
    - error
    argTypes:
    - gchar*
    - FwupdDeviceFlags*
    - FwupdDeviceFlags*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 803
    functionName: fu_util_parse_filter_device_flags
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fwupd_device_flag_to_string
    - g_auto
    - g_str_has_prefix
    - g_strsplit
    - fwupd_device_flag_from_string
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_parse_filter_device_flags(const gchar *filter,\n\t\t\t\t
      \ FwupdDeviceFlags *include,\n\t\t\t\t  FwupdDeviceFlags *exclude,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:812,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:814,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:815,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:818,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:819,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:821,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:829,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:833,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:837,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:841,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:846,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:848,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:856,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:860,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:864,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - filter
    - include
    - exclude
    - error
    argTypes:
    - gchar*
    - FwupdReleaseFlags*
    - FwupdReleaseFlags*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 876
    functionName: fu_util_parse_filter_release_flags
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_auto
    - g_str_has_prefix
    - g_strsplit
    - fwupd_release_flag_to_string
    - fwupd_release_flag_from_string
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_parse_filter_release_flags(const gchar *filter,\n\t\t\t\t
      \  FwupdReleaseFlags *include,\n\t\t\t\t   FwupdReleaseFlags *exclude,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:890,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:890,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:891,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:892,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:892,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:893,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:894,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:894,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:895,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:896,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:896,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:897,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:898,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:898,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:899,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:899,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:900,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:900,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:901,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-util-common.c:905,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:906,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-util-common.c:906,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - n
    - user_data
    argTypes:
    - XbNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: fu_util_convert_description_head_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_string_append
    - xb_node_get_text
    - xb_node_get_element
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_convert_description_head_cb(XbNode *n, gpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:918,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:918,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:919,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:919,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:920,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:921,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:921,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:923,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:923,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:924,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:925,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:925,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:926,1
    - Dst: xb_node_get_tail
      Src: /src/fwupd/src/fu-util-common.c:930,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:931,1
    - Dst: xb_node_get_tail
      Src: /src/fwupd/src/fu-util-common.c:931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - n
    - user_data
    argTypes:
    - XbNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 934
    functionName: fu_util_convert_description_tail_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_string_append
    - xb_node_get_tail
    - xb_node_get_element
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_convert_description_tail_cb(XbNode *n, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:939,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:939,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:940,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:941,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-util-common.c:948,1
    - Dst: xb_silo_get_root
      Src: /src/fwupd/src/fu-util-common.c:953,1
    - Dst: xb_node_transmogrify
      Src: /src/fwupd/src/fu-util-common.c:954,1
    - Dst: fu_strstrip
      Src: /src/fwupd/src/fu-util-common.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 961
    functionName: fu_util_convert_description
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fu_strstrip
    - xb_node_transmogrify
    - xb_silo_new_from_xml
    - g_autoptr
    - xb_silo_get_root
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_convert_description(const gchar *xml, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:974,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:979,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:979,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:986,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:986,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:993,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:993,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:999,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 1000
    functionName: fu_util_time_to_str
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - ngettext
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_time_to_str(guint64 tmp)'
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1010,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1015,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1019,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1023,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1027,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1031,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1035,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1039,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1043,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1047,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1051,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1055,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1063,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1071,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1075,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1083,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1087,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1091,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1095,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1099,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1103,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1107,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1112,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1117,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1122,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1126,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1130,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1134,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1138,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1142,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1146,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1151,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1155,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 116
    argCount: 1
    argNames:
    - device_flag
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1161
    functionName: fu_util_device_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_device_flag_to_string(guint64 device_flag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1170,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1174,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1178,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - request_flag
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1185
    functionName: fu_util_request_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_request_flag_to_string(guint64 request_flag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1192,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1196,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1200,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1204,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - update_state
    argTypes:
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1211
    functionName: fu_util_update_state_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_update_state_to_string(FwupdUpdateState update_state)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1221,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1222,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1224,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1224,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1226,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1228,1
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1229,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1230,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1234,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1234,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1237,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1238,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1240,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1240,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1243,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1243,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1244,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1245,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1249,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1249,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1253,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1253,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1257,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1257,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1261,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1261,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1265,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1265,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1269,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1269,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1273,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1273,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1277,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1277,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1281,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1281,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1285,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1285,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 3
    argNames:
    - client
    - dev
    - problem
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1288
    functionName: fu_util_device_problem_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_client_get_battery_threshold
    - fwupd_client_get_battery_level
    - _
    - g_strdup_printf
    - fwupd_device_get_battery_threshold
    - fwupd_device_get_battery_level
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_device_problem_to_string(FwupdClient *client, FwupdDevice *dev, FwupdDeviceProblem
      problem)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_get_guids
      Src: /src/fwupd/src/fu-util-common.c:1294,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util-common.c:1295,1
    - Dst: fwupd_device_get_vendor_ids
      Src: /src/fwupd/src/fu-util-common.c:1296,1
    - Dst: fwupd_device_get_instance_ids
      Src: /src/fwupd/src/fu-util-common.c:1297,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1300,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/src/fu-util-common.c:1301,1
    - Dst: fwupd_device_get_request_flags
      Src: /src/fwupd/src/fu-util-common.c:1302,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1303,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1304,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1304,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:1307,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-common.c:1308,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-common.c:1308,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:1309,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:1313,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1316,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1318,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1321,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1321,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util-common.c:1321,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1324,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1324,1
    - Dst: fwupd_device_get_summary
      Src: /src/fwupd/src/fu-util-common.c:1324,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:1327,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1329,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1329,1
    - Dst: fwupd_device_get_version_build_date
      Src: /src/fwupd/src/fu-util-common.c:1330,1
    - Dst: fwupd_device_get_version_build_date
      Src: /src/fwupd/src/fu-util-common.c:1331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1332,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/src/fu-util-common.c:1332,1
    - Dst: g_date_time_format
      Src: /src/fwupd/src/fu-util-common.c:1333,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1334,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1337,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1341,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1345,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1345,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1348,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1351,1
    - Dst: fwupd_device_get_version_lowest
      Src: /src/fwupd/src/fu-util-common.c:1352,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1353,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1356,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util-common.c:1357,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1360,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:1362,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1363,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1365,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1365,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1368,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1368,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:1370,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1372,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1372,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1376,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1379,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util-common.c:1380,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1383,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:1385,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1385,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1387,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1387,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1391,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1391,1
    - Dst: fwupd_device_get_serial
      Src: /src/fwupd/src/fu-util-common.c:1391,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util-common.c:1394,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1396,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1399,1
    - Dst: fu_util_update_state_to_string
      Src: /src/fwupd/src/fu-util-common.c:1400,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util-common.c:1404,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1405,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1406,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1410,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1410,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1411,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1412,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1414,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1414,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1415,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1417,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1417,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1419,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1419,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-util-common.c:1424,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:1425,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1428,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1430,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1430,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1434,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util-common.c:1441,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util-common.c:1443,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1446,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1447,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1448,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1454,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1454,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-util-common.c:1457,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1459,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util-common.c:1460,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/src/fu-util-common.c:1461,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1462,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1465,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util-common.c:1466,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1471,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1473,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1476,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1480,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1483,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1488,1
    - Dst: fu_util_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1492,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1498,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1499,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1503,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1504,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1509,1
    - Dst: fu_util_request_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1513,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1519,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1520,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1524,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1525,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1529,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1530,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1533,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:1537,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1537,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 132
    argCount: 3
    argNames:
    - client
    - dev
    - idt
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1538
    functionName: fu_util_device_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 4
    functionsReached:
    - g_hash_table_insert
    - g_string_new
    - g_string_free
    - FWUPD_CODEC
    - fwupd_device_get_summary
    - fu_util_update_state_to_string
    - fwupd_device_get_vendor_ids
    - fwupd_device_get_version_bootloader
    - fwupd_device_get_modified
    - g_string_append_printf
    - g_date_time_new_from_unix_utc
    - fwupd_device_get_version
    - fu_console_color_format
    - fwupd_codec_string_append_time
    - fwupd_device_get_guids
    - g_ptr_array_index
    - fu_util_device_flag_to_string
    - fwupd_guid_hash_string
    - g_info
    - ngettext
    - fwupd_device_get_vendor
    - fwupd_device_get_install_duration
    - fwupd_codec_to_string
    - fwupd_device_get_flags
    - g_date_time_format
    - fwupd_device_get_update_error
    - fwupd_device_get_version_build_date
    - g_steal_pointer
    - g_hash_table_new_full
    - fwupd_device_get_id
    - fwupd_device_get_branch
    - fu_strjoin
    - fwupd_device_has_problem
    - fwupd_device_get_battery_threshold
    - fu_util_request_flag_to_string
    - g_autoptr
    - fwupd_device_get_name
    - g_getenv
    - fwupd_device_get_update_state
    - fwupd_codec_string_append
    - fu_util_time_to_str
    - fwupd_device_get_problems
    - fwupd_device_get_request_flags
    - fu_util_device_problem_to_string
    - fwupd_device_get_version_lowest
    - fwupd_device_get_serial
    - fwupd_device_get_issues
    - _
    - g_strdup_printf
    - fwupd_device_get_battery_level
    - g_strdup
    - fwupd_device_get_instance_ids
    - g_hash_table_lookup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_device_to_string(FwupdClient *client, FwupdDevice *dev, guint idt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:1543,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1543,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - FwupdPlugin**
    - FwupdPlugin**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1544
    functionName: fu_util_plugin_name_sort_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_plugin_get_name
    linkageType: ''
    returnType: gint
    signature: gint fu_util_plugin_name_sort_cb(FwupdPlugin **item1, FwupdPlugin **item2)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1559,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1559,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1563,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1563,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1567,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1567,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1571,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1571,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1575,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1575,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1578,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1580,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1584,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1584,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1589,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1589,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1593,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1593,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1597,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1597,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1601,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1601,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1605,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1605,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1609,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1609,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1613,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1613,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1617,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1617,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1621,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1621,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1625,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1625,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1629,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1629,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1630
    functionName: fu_util_plugin_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_plugin_flag_to_string
    - g_strdup_printf
    - _
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_plugin_flag_to_string(FwupdPluginFlags plugin_flag)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1635,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1647,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1652,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1661,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1632
    functionDepth: 2
    functionLinenumber: 1632
    functionLinenumberEnd: 1668
    functionName: fu_util_plugin_flag_to_cli_text
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_console_color_format
    - fu_util_plugin_flag_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_plugin_flag_to_cli_text(FwupdPluginFlags plugin_flag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1673,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1675,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1677,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1677,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1680,1
    - Dst: fu_util_plugin_flag_to_cli_text
      Src: /src/fwupd/src/fu-util-common.c:1682,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1683,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1684,1
    - Dst: fu_util_plugin_flag_to_cli_text
      Src: /src/fwupd/src/fu-util-common.c:1691,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1694,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1695,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:1702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - plugin
    - idt
    argTypes:
    - FwupdPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1703
    functionName: fu_util_plugin_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - g_string_free
    - fwupd_plugin_get_flags
    - _
    - g_strdup_printf
    - fu_util_plugin_flag_to_cli_text
    - fwupd_codec_string_append
    - fwupd_plugin_get_name
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_plugin_to_string(FwupdPlugin *plugin, guint idt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:1709,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1714,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1714,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:1718,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-common.c:1719,1
    - Dst: g_new0::g_new0
      Src: /src/fwupd/src/fu-util-common.c:1719,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:1722,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:1723,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1725,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-util-common.c:1731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - spdx_license
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1732
    functionName: fu_util_license_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - _
    - g_strjoinv
    - g_strv_length
    - g_strdup
    - g_new0::g_new0
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_license_to_string(const gchar *spdx_license)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1739,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1743,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1747,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1751,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - release_urgency
    argTypes:
    - FwupdReleaseUrgency
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1755
    functionName: fu_util_release_urgency_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_release_urgency_to_string(FwupdReleaseUrgency release_urgency)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1764,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1768,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1772,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1776,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1780,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1784,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1788,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1792,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1796,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1800,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - release_flag
    argTypes:
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1801
    functionName: fu_util_release_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    - fwupd_release_flag_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_release_flag_to_string(FwupdReleaseFlags release_flag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1809,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1809,1
    - Dst: fwupd_report_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1809,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1810,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1812,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1812,1
    - Dst: fwupd_report_get_created
      Src: /src/fwupd/src/fu-util-common.c:1812,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-util-common.c:1813,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1814,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1814,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-util-common.c:1814,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-util-common.c:1815,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1816,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-util-common.c:1818,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-util-common.c:1819,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1820,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-util-common.c:1822,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1824,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1824,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1826,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1829,1
    - Dst: fwupd_report_get_version_old
      Src: /src/fwupd/src/fu-util-common.c:1830,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1831,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1835,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/src/fu-util-common.c:1836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - report
    - idt
    - str
    argTypes:
    - FwupdReport*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1837
    functionName: fu_util_report_add_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_report_get_version_old
    - fwupd_codec_string_append_time
    - _
    - g_strdup_printf
    - fwupd_report_get_metadata_item
    - g_autoptr
    - fwupd_report_get_distro_variant
    - fwupd_report_get_created
    - fwupd_report_get_vendor
    - fwupd_report_get_distro_version
    - fwupd_report_get_distro_id
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_util_report_add_string(FwupdReport *report, guint idt, GString
      *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-util-common.c:1844,1
    - Dst: fwupd_release_get_issues
      Src: /src/fwupd/src/fu-util-common.c:1845,1
    - Dst: fwupd_release_get_tags
      Src: /src/fwupd/src/fu-util-common.c:1846,1
    - Dst: fwupd_release_get_reports
      Src: /src/fwupd/src/fu-util-common.c:1847,1
    - Dst: fwupd_release_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1848,1
    - Dst: fu_util_release_get_name
      Src: /src/fwupd/src/fu-util-common.c:1850,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1851,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:1853,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:1853,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1855,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1858,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1858,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:1858,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1860,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1863,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util-common.c:1864,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1865,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1868,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/src/fu-util-common.c:1869,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1870,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1873,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util-common.c:1874,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1875,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1878,1
    - Dst: fwupd_release_get_summary
      Src: /src/fwupd/src/fu-util-common.c:1879,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1880,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1883,1
    - Dst: fwupd_release_get_name_variant_suffix
      Src: /src/fwupd/src/fu-util-common.c:1884,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/src/fu-util-common.c:1885,1
    - Dst: fu_util_license_to_string
      Src: /src/fwupd/src/fu-util-common.c:1887,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/src/fu-util-common.c:1887,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1889,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1889,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/src/fu-util-common.c:1892,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1892,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/src/fu-util-common.c:1892,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1894,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1894,1
    - Dst: fwupd_release_get_created
      Src: /src/fwupd/src/fu-util-common.c:1894,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/src/fu-util-common.c:1895,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/src/fu-util-common.c:1896,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1897,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1900,1
    - Dst: fu_util_release_urgency_to_string
      Src: /src/fwupd/src/fu-util-common.c:1901,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1904,1
    - Dst: fu_util_report_add_string
      Src: /src/fwupd/src/fu-util-common.c:1905,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1907,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1910,1
    - Dst: fwupd_release_get_details_url
      Src: /src/fwupd/src/fu-util-common.c:1911,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1912,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1915,1
    - Dst: fwupd_release_get_source_url
      Src: /src/fwupd/src/fu-util-common.c:1916,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1917,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1920,1
    - Dst: fwupd_release_get_sbom_url
      Src: /src/fwupd/src/fu-util-common.c:1921,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1922,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1925,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1926,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1927,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:1929,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1929,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1931,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1931,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1933,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1936,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/src/fu-util-common.c:1937,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1938,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1941,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/src/fu-util-common.c:1942,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1945,1
    - Dst: fu_util_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1950,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1953,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1954,1
    - Dst: fu_util_get_release_description_with_fallback
      Src: /src/fwupd/src/fu-util-common.c:1958,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:1961,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1963,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:1963,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1965,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1965,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1968,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1970,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1974,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1977,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:1981,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1982,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1986,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1990,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-util-common.c:1991,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1998,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1998,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2001,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2001,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - rel
    - idt
    argTypes:
    - FwupdRelease*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 2002
    functionName: fu_util_release_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_release_get_tags
    - g_string_new
    - g_string_free
    - fu_util_convert_description
    - fwupd_release_get_update_message
    - fwupd_codec_string_append_size
    - fwupd_release_get_name_variant_suffix
    - fwupd_release_get_reports
    - fwupd_release_get_id
    - g_return_val_if_fail
    - fwupd_release_get_size
    - fu_util_release_get_name
    - fwupd_release_get_details_url
    - fwupd_release_get_flags
    - fwupd_codec_string_append_time
    - fwupd_release_get_urgency
    - fwupd_release_get_sbom_url
    - fwupd_release_get_update_image
    - g_ptr_array_index
    - fwupd_release_get_created
    - fwupd_release_get_branch
    - ngettext
    - fwupd_release_get_vendor
    - fwupd_release_get_remote_id
    - fwupd_release_get_license
    - FWUPD_IS_RELEASE
    - fu_util_release_urgency_to_string
    - g_steal_pointer
    - fu_util_get_release_description_with_fallback
    - fu_util_license_to_string
    - fwupd_release_get_source_url
    - fu_strjoin
    - g_autoptr
    - fwupd_release_get_version
    - fwupd_checksum_guess_kind
    - fwupd_codec_string_append
    - fu_util_time_to_str
    - fwupd_release_get_description
    - fu_util_release_flag_to_string
    - fwupd_release_get_checksums
    - _
    - fwupd_release_get_install_duration
    - g_strdup_printf
    - fu_util_report_add_string
    - g_strdup
    - fwupd_release_get_summary
    - fwupd_release_get_issues
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_release_to_string(FwupdRelease *rel, guint idt)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util-common.c:2007,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2010,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:2012,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:2012,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2014,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util-common.c:2014,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2017,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2017,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util-common.c:2017,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2020,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2020,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:2020,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2022,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2026,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2027,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util-common.c:2028,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2029,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2033,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2034,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2036,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2040,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2041,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2046,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2046,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-util-common.c:2046,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util-common.c:2049,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util-common.c:2050,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:2051,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util-common.c:2051,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2053,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2053,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-util-common.c:2055,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:2057,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-util-common.c:2057,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2059,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2059,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-util-common.c:2061,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2064,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2066,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2066,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2069,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2069,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-util-common.c:2069,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-util-common.c:2070,1
    - Dst: g_strnfill
      Src: /src/fwupd/src/fu-util-common.c:2072,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:2072,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2074,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2074,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2076,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2079,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-util-common.c:2080,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2081,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2084,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-util-common.c:2085,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2086,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2089,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-util-common.c:2090,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2091,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2094,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-util-common.c:2095,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2096,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2099,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-util-common.c:2100,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2101,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2104,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util-common.c:2105,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util-common.c:2106,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2109,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2109,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2110,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2114,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2115,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - remote
    - idt
    argTypes:
    - FwupdRemote*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2120
    functionName: fu_util_remote_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fwupd_remote_get_age
    - g_string_free
    - fwupd_remote_get_filename_cache
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_report_uri
    - fwupd_remote_get_username
    - fwupd_remote_get_checksum
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - g_return_val_if_fail
    - fwupd_remote_get_kind
    - fwupd_remote_get_priority
    - fwupd_remote_get_password
    - fwupd_remote_get_title
    - fwupd_remote_get_firmware_base_uri
    - g_steal_pointer
    - fwupd_remote_get_filename_source
    - fu_strwidth
    - g_strnfill
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_remote_get_refresh_interval
    - fu_util_time_to_str
    - fwupd_codec_string_append
    - fwupd_remote_kind_to_string
    - FWUPD_IS_REMOTE
    - _
    - g_strdup_printf
    - fwupd_remote_get_filename_cache_sig
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_remote_to_string(FwupdRemote *remote, guint idt)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2125,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2126,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2126,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2131,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2131,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2133,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2136,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2136,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2138,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2141,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2141,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2143,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2145,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2145,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2147,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2150,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2150,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2154,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2154,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2156,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-util-common.c:2160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - req
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2161
    functionName: fu_util_request_get_message
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_request_get_id
    - _
    - fwupd_request_get_message
    - g_strcmp0
    - fwupd_request_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_request_get_message(FwupdRequest *req)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2168,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2172,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2176,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2180,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2184,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2188,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2192,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2196,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2200,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2204,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2208,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2212,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2216,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2220,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - result
    argTypes:
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2223
    functionName: fu_util_security_attr_result_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_attr_result_to_string(FwupdSecurityAttrResult result)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2231,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2231,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2236,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2238,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2243
    functionName: fu_util_security_attr_get_result
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fu_util_security_attr_result_to_string
    - _
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_attr_get_result(FwupdSecurityAttr *attr)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2253,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2257,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2257,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2259,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2260,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2261,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2262,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2263,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2265,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2267,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:2268,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2269,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2270,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2272,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2272,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2274,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2275,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2277,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2277,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2279,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2282,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2282,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2284,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/src/fu-util-common.c:2287,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2288,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/src/fu-util-common.c:2288,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2290,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2292,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2292,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2294,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - attr
    - str
    - flags
    argTypes:
    - FwupdSecurityAttr*
    - GString*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2245
    functionDepth: 2
    functionLinenumber: 2245
    functionLinenumberEnd: 2295
    functionName: fu_util_security_attr_append_str
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fwupd_security_attr_has_flag
    - dgettext
    - fwupd_security_attr_get_name
    - fu_console_color_format
    - fu_util_security_attr_get_result
    - fwupd_security_attr_get_url
    - _
    - fwupd_security_attr_get_appstream_id
    - fu_strwidth
    - g_string_append
    linkageType: ''
    returnType: void
    signature: "void fu_util_security_attr_append_str(FwupdSecurityAttr *attr,\n\t\t\t\t
      GString *str,\n\t\t\t\t FuSecurityAttrToStringFlags flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2310,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2315,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2334,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2339,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2345,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2350,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2356,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2361,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2367,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2372,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2378,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2383,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2388,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2394,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2399,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2405,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2410,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2415,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2420,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2425,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2429,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2431,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2432,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2437,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2437,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2439,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2440,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:2441,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2445,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2446,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2446,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2447,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2450,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2452,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2453,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2457,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2458,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2458,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2459,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2462,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2464,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2464,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2468,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2468,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2469,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2472,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2474,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2474,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2475,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2476
    functionName: fu_util_security_event_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - dgettext
    - _
    - fwupd_security_attr_get_name
    - g_strdup_printf
    - fwupd_security_attr_get_appstream_id
    - g_strdup
    - fwupd_security_attr_get_result_fallback
    - fu_util_security_attr_result_to_string
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_event_to_string(FwupdSecurityAttr *attr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2481,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2481,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:2484,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2486,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-common.c:2487,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-common.c:2487,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:2488,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2493,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2494,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2500,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2501,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/src/fu-util-common.c:2505,1
    - Dst: fwupd_security_attr_get_created
      Src: /src/fwupd/src/fu-util-common.c:2505,1
    - Dst: g_date_time_format
      Src: /src/fwupd/src/fu-util-common.c:2506,1
    - Dst: fu_util_security_event_to_string
      Src: /src/fwupd/src/fu-util-common.c:2507,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2510,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2511,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2513,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2517,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2517,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2519,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2527,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2527,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - events
    - strflags
    argTypes:
    - GPtrArray*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2478
    functionDepth: 2
    functionLinenumber: 2478
    functionLinenumberEnd: 2528
    functionName: fu_util_security_events_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fwupd_security_attr_get_created
    - g_string_free
    - FWUPD_CODEC
    - g_string_append_printf
    - g_date_time_new_from_unix_utc
    - fu_console_color_format
    - g_ptr_array_index
    - g_info
    - fwupd_codec_to_string
    - g_date_time_format
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_steal_pointer
    - g_autoptr
    - fwupd_security_attr_get_result_fallback
    - g_getenv
    - _
    - fu_util_security_event_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_events_to_string(GPtrArray *events, FuSecurityAttrToStringFlags
      strflags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2533,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2533,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2536,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util-common.c:2537,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2541,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2545,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2547,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2549,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:2550,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2552,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2553,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2562,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2563
    functionName: fu_util_security_issues_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - fwupd_device_get_issues
    - _
    - g_ptr_array_index
    - g_autoptr
    - fwupd_device_get_name
    - fwupd_device_get_vendor
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_issues_to_string(GPtrArray *devices)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2573,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2581,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/src/fu-util-common.c:2582,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2585,1
    - Dst: fu_util_security_attr_append_str
      Src: /src/fwupd/src/fu-util-common.c:2588,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2591,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2593,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2597,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2597,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2599,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2605,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/src/fu-util-common.c:2606,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2610,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2613,1
    - Dst: fwupd_security_attr_flag_to_suffix
      Src: /src/fwupd/src/fu-util-common.c:2614,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2616,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2617,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2619,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2622,1
    - Dst: fu_util_security_attr_append_str
      Src: /src/fwupd/src/fu-util-common.c:2625,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2631,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2635,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2639,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2643,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2648,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2652,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2656,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 2
    argNames:
    - attrs
    - strflags
    argTypes:
    - GPtrArray*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2565
    functionDepth: 3
    functionLinenumber: 2565
    functionLinenumberEnd: 2657
    functionName: fu_util_security_attrs_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fwupd_security_attr_get_flags
    - g_string_new
    - fwupd_security_attr_get_level
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_flag_to_suffix
    - g_string_free
    - _
    - fu_util_security_attr_append_str
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_security_attrs_to_string(GPtrArray *attrs, FuSecurityAttrToStringFlags
      strflags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2665,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2666,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2667,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2668,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2670,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2671,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2672,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2673,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2677
    functionName: fu_util_sort_devices_by_flags_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    linkageType: ''
    returnType: gint
    signature: gint fu_util_sort_devices_by_flags_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2689,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2689,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2692,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2692,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2692,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2693,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2696,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2698,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2699,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2700,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2701,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2703,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2706,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2707,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:2711,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:2714,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2717,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2721,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2721,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util-common.c:2722,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util-common.c:2722,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util-common.c:2723,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util-common.c:2723,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2724,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2726,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2730,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - console
    - dev
    - rel
    - assume_yes
    - error
    argTypes:
    - FuConsole*
    - FwupdDevice*
    - FwupdRelease*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2679
    functionDepth: 2
    functionLinenumber: 2679
    functionLinenumberEnd: 2740
    functionName: fu_util_switch_branch_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fwupd_release_get_description
    - g_string_new
    - _
    - fu_util_convert_description
    - g_strdup_printf
    - fwupd_device_get_branch
    - fu_util_branch_for_display
    - fu_console_box
    - g_set_error_literal
    - g_autoptr
    - fu_console_input_bool
    - g_strcmp0
    - fwupd_release_get_branch
    - g_string_append
    - fwupd_release_get_vendor
    - fwupd_device_get_vendor
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_switch_branch_warning(FuConsole *console,\n\t\t\t
      \     FwupdDevice *dev,\n\t\t\t      FwupdRelease *rel,\n\t\t\t      gboolean
      assume_yes,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2746,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2746,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2748,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2751,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2754,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2755,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2756,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2759,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2760,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2761,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2763,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2766,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2766,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2769,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2769,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - console
    - dev
    - error
    argTypes:
    - FuConsole*
    - FwupdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2777
    functionName: fu_util_prompt_warning_fde
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_device_has_flag
    - _
    - g_set_error_literal
    - g_autoptr
    - fu_console_input_bool
    - fu_console_box
    - g_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_prompt_warning_fde(FuConsole *console, FwupdDevice
      *dev, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:2783,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util-common.c:2786,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - console
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2792
    functionName: fu_util_show_unsupported_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_console_print_full
    - g_getenv
    - _
    linkageType: ''
    returnType: void
    signature: void fu_util_show_unsupported_warning(FuConsole *console)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_remote_get_agreement
      Src: /src/fwupd/src/fu-util-common.c:2804,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:2807,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2812,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2812,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2814,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2818,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - console
    - remote
    - assume_yes
    - error
    argTypes:
    - FuConsole*
    - FwupdRemote*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2794
    functionDepth: 2
    functionLinenumber: 2794
    functionLinenumberEnd: 2827
    functionName: fu_util_modify_remote_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - _
    - fu_util_convert_description
    - g_set_error_literal
    - fwupd_remote_get_agreement
    - fu_console_input_bool
    - fu_console_box
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_modify_remote_warning(FuConsole *console,\n\t\t\t
      \     FwupdRemote *remote,\n\t\t\t      gboolean assume_yes,\n\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2834,1
    - Dst: curl_url
      Src: /src/fwupd/src/fu-util-common.c:2834,1
    - Dst: curl_url_set
      Src: /src/fwupd/src/fu-util-common.c:2835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2831
    functionDepth: 0
    functionLinenumber: 2831
    functionLinenumberEnd: 2836
    functionName: fu_util_is_url
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - curl_url
    - g_autoptr
    - curl_url_set
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_url(const gchar *perhaps_url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2842,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2843,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/src/fu-util-common.c:2846,1
    - Dst: json_generator_new
      Src: /src/fwupd/src/fu-util-common.c:2847,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/src/fu-util-common.c:2848,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/src/fu-util-common.c:2849,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/src/fu-util-common.c:2850,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2852,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:2860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - console
    - builder
    - error
    argTypes:
    - FuConsole*
    - JsonBuilder*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2862
    functionName: fu_util_print_builder
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 11
    functionsReached:
    - json_generator_new
    - json_generator_to_data
    - fu_console_print_literal
    - g_set_error_literal
    - json_builder_get_root
    - json_generator_set_root
    - g_autoptr
    - json_generator_set_pretty
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_print_builder(FuConsole *console, JsonBuilder *builder,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2867,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util-common.c:2867,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-common.c:2868,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2869,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-common.c:2870,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2871,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util-common.c:2872,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/src/fu-util-common.c:2872,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2873,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/src/fu-util-common.c:2874,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2875,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util-common.c:2876,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-common.c:2877,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-common.c:2878,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util-common.c:2879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - console
    - error
    argTypes:
    - FuConsole*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2864
    functionDepth: 2
    functionLinenumber: 2864
    functionLinenumberEnd: 2880
    functionName: fu_util_print_error_as_json
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_util_print_builder
    - json_builder_begin_object
    - g_quark_to_string
    - json_builder_new
    - json_builder_add_int_value
    - json_builder_set_member_name
    - g_autoptr
    - json_builder_end_object
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fu_util_print_error_as_json(FuConsole *console, const GError *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dependency_kind
    argTypes:
    - FuUtilDependencyKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2896
    functionName: fu_util_dependency_kind_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_dependency_kind_to_string(FuUtilDependencyKind dependency_kind)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:2901,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2902,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util-common.c:2903,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-util-common.c:2906,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2908,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util-common.c:2909,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-util-common.c:2912,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:2914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - str
    - dependency_kind
    argTypes:
    - gchar*
    - FuUtilDependencyKind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2915
    functionName: fu_util_parse_project_dependency
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - strlen
    - g_strdup
    - g_strndup
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_parse_project_dependency(const gchar *str, FuUtilDependencyKind *dependency_kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:2920,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2921,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2926
    functionName: fu_util_print_version_key_valid
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_str_has_prefix
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_print_version_key_valid(const gchar *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2934,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util-common.c:2934,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-common.c:2936,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2937,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util-common.c:2938,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util-common.c:2939,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util-common.c:2940,1
    - Dst: fu_util_print_version_key_valid
      Src: /src/fwupd/src/fu-util-common.c:2945,1
    - Dst: fu_util_parse_project_dependency
      Src: /src/fwupd/src/fu-util-common.c:2947,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util-common.c:2948,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2950,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util-common.c:2951,1
    - Dst: fu_util_dependency_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:2953,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2955,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util-common.c:2956,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util-common.c:2957,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util-common.c:2958,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-common.c:2959,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util-common.c:2961,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util-common.c:2962,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util-common.c:2963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - console
    - metadata
    - error
    argTypes:
    - FuConsole*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2928
    functionDepth: 2
    functionLinenumber: 2928
    functionLinenumberEnd: 2964
    functionName: fu_util_project_versions_as_json
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_util_print_version_key_valid
    - json_builder_begin_array
    - fu_util_print_builder
    - fu_util_parse_project_dependency
    - fu_util_dependency_kind_to_string
    - json_builder_begin_object
    - json_builder_end_array
    - json_builder_add_string_value
    - json_builder_set_member_name
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_project_versions_as_json(FuConsole *console, GHashTable
      *metadata, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2972,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2972,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util-common.c:2974,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util-common.c:2975,1
    - Dst: fu_util_print_version_key_valid
      Src: /src/fwupd/src/fu-util-common.c:2980,1
    - Dst: fu_util_parse_project_dependency
      Src: /src/fwupd/src/fu-util-common.c:2982,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2983,1
    - Dst: fu_util_dependency_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:2985,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2989,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2966
    functionDepth: 1
    functionLinenumber: 2966
    functionLinenumberEnd: 2990
    functionName: fu_util_project_versions_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fu_util_print_version_key_valid
    - g_string_new
    - g_steal_pointer
    - fu_util_parse_project_dependency
    - fu_util_dependency_kind_to_string
    - g_string_free
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_project_versions_to_string(GHashTable *metadata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strrstr
      Src: /src/fwupd/src/fu-util-common.c:2995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2999
    functionName: fu_util_get_prgname
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strrstr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_get_prgname(const gchar *argv0)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-idle.c:39,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-idle.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: fu_idle_check_cb
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - FU_IDLE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_idle_check_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-idle.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: fu_idle_start
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_timeout_add_seconds
    linkageType: ''
    returnType: void
    signature: void fu_idle_start(FuIdle *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-idle.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: fu_idle_stop
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_idle_stop(FuIdle *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-idle.c:68,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:70,1
    - Dst: fu_idle_inhibit_to_string
      Src: /src/fwupd/src/fu-idle.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:75,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-idle.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: fu_idle_emit_inhibit_changed
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    - fu_idle_reset
    - g_ptr_array_index
    - fu_idle_inhibit_to_string
    linkageType: ''
    returnType: void
    signature: void fu_idle_emit_inhibit_changed(FuIdle *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:84,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:84,1
    - Dst: fu_idle_stop
      Src: /src/fwupd/src/fu-idle.c:85,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle.c:86,1
    - Dst: fu_idle_start
      Src: /src/fwupd/src/fu-idle.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: fu_idle_reset
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 3
    functionsReached:
    - fu_idle_start
    - FU_IS_IDLE
    - fu_idle_has_inhibit
    - g_return_if_fail
    - fu_idle_stop
    linkageType: ''
    returnType: void
    signature: void fu_idle_reset(FuIdle *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:93,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:93,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:94,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:97,1
    - Dst: fu_idle_inhibit_to_string
      Src: /src/fwupd/src/fu-idle.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:100,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-idle.c:101,1
    - Dst: fu_idle_emit_inhibit_changed
      Src: /src/fwupd/src/fu-idle.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuIdle*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: fu_idle_uninhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - g_debug
    - fu_idle_emit_inhibit_changed
    - FU_IS_IDLE
    - g_return_if_fail
    - g_ptr_array_index
    - fu_idle_inhibit_to_string
    - g_ptr_array_remove_index
    linkageType: ''
    returnType: void
    signature: void fu_idle_uninhibit(FuIdle *self, guint32 token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_idle_inhibit_to_string
      Src: /src/fwupd/src/fu-idle.c:112,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:114,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:115,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:117,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-idle.c:118,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-idle.c:120,1
    - Dst: g_random_int_range
      Src: /src/fwupd/src/fu-idle.c:121,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-idle.c:122,1
    - Dst: fu_idle_emit_inhibit_changed
      Src: /src/fwupd/src/fu-idle.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: fu_idle_inhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 3
    functionsReached:
    - g_random_int_range
    - g_debug
    - fu_idle_emit_inhibit_changed
    - g_new0
    - FU_IS_IDLE
    - fu_idle_inhibit_to_string
    - g_strdup
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_idle_inhibit(FuIdle *self, FuIdleInhibit inhibit, const
      gchar *reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:131,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:132,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - inhibit
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: fu_idle_has_inhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 6
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - FU_IS_IDLE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_idle_has_inhibit(FuIdle *self, FuIdleInhibit inhibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:145,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:145,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:146,1
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-idle.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - timeout
    argTypes:
    - FuIdle*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: fu_idle_set_timeout
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - fu_idle_reset
    - FU_IS_IDLE
    - g_debug
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_idle_set_timeout(FuIdle *self, guint timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/src/fu-idle.c:154,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-idle.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuIdleItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: fu_idle_item_free
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_idle_item_free(FuIdleItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-idle.c:161,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-idle.c:162,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-idle.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: fu_idle_locker_new
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - g_new0
    - g_object_ref
    - fu_idle_inhibit
    linkageType: ''
    returnType: FuIdleLocker
    signature: 'FuIdleLocker *

      fu_idle_locker_new(FuIdle *self, FuIdleInhibit inhibit, const gchar *reason)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:170,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-idle.c:171,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-idle.c:172,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-idle.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - locker
    argTypes:
    - FuIdleLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: fu_idle_locker_free
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - fu_idle_uninhibit
    - g_object_unref
    - g_free
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_idle_locker_free(FuIdleLocker *locker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-idle.c:179,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-idle.c:183,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-idle.c:184,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-idle.c:193,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-idle.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIdleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: fu_idle_class_init
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_idle_class_init(FuIdleClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-idle.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: fu_idle_init
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_idle_init(FuIdle *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-idle.c:213,1
    - Dst: fu_idle_stop
      Src: /src/fwupd/src/fu-idle.c:215,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-idle.c:216,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-idle.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: fu_idle_finalize
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_IDLE
    - G_OBJECT_CLASS
    - fu_idle_stop
    linkageType: ''
    returnType: void
    signature: void fu_idle_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-idle.c:225,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-idle.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: fu_idle_new
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - FU_IDLE
    - g_object_new
    linkageType: ''
    returnType: FuIdle
    signature: 'FuIdle *

      fu_idle_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:35,1
    - Dst: fu_engine_request_flag_to_string
      Src: /src/fwupd/src/fu-engine-request.c:37,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-engine-request.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-engine-request.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-engine-request.c:41,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-engine-request.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: fu_engine_request_add_string
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_flag_to_string
    - fwupd_codec_string_append_hex
    - FU_ENGINE_REQUEST
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: fu_engine_request_codec_iface_init
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:54,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_engine_request_get_sender
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 21
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_request_get_sender(FuEngineRequest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:61,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: fu_engine_request_get_feature_flags
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 5
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdFeatureFlags
    signature: FwupdFeatureFlags fu_engine_request_get_feature_flags(FuEngineRequest
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:68,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: fu_engine_request_get_locale
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_request_get_locale(FuEngineRequest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:75,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuEngineRequest*
    - FuEngineRequestFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: fu_engine_request_add_flag
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_add_flag(FuEngineRequest *self, FuEngineRequestFlag
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:82,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuEngineRequest*
    - FuEngineRequestFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: fu_engine_request_has_flag
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 4
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_request_has_flag(FuEngineRequest *self, FuEngineRequestFlag
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:89,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - feature_flags
    argTypes:
    - FuEngineRequest*
    - FwupdFeatureFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: fu_engine_request_set_feature_flags
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 5
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_set_feature_flags(FuEngineRequest *self, FwupdFeatureFlags
      feature_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:96,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-request.c:99,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-request.c:102,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-request.c:103,1
    - Dst: g_strdelimit
      Src: /src/fwupd/src/fu-engine-request.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - locale
    argTypes:
    - FuEngineRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: fu_engine_request_set_locale
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 1
    functionsReached:
    - g_strdelimit
    - g_return_if_fail
    - FU_IS_ENGINE_REQUEST
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_set_locale(FuEngineRequest *self, const gchar
      *locale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:113,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - feature_flag
    argTypes:
    - FuEngineRequest*
    - FwupdFeatureFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fu_engine_request_has_feature_flag
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 3
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_request_has_feature_flag(FuEngineRequest *self,
      FwupdFeatureFlags feature_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:120,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: fu_engine_request_get_converter_flags
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdCodecFlags
    signature: FwupdCodecFlags fu_engine_request_get_converter_flags(FuEngineRequest
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:127,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - converter_flags
    argTypes:
    - FuEngineRequest*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: fu_engine_request_set_converter_flags
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_set_converter_flags(FuEngineRequest *self, FwupdCodecFlags
      converter_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-request.c:134,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device_flag
    argTypes:
    - FuEngineRequest*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: fu_engine_request_has_converter_flag
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 2
    functionsReached:
    - FU_IS_ENGINE_REQUEST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_request_has_converter_flag(FuEngineRequest *self,
      FwupdCodecFlags device_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_engine_request_init
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_init(FuEngineRequest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:149,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-request.c:150,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-request.c:151,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-request.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: fu_engine_request_finalize
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_ENGINE_REQUEST
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-request.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineRequestClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: fu_engine_request_class_init
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_engine_request_class_init(FuEngineRequestClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-request.c:166,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-request.c:167,1
    - Dst: FU_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine-request.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fu_engine_request_new
    functionSourceFile: /src/fwupd/src/fu-engine-request.c
    functionUses: 41
    functionsReached:
    - FU_ENGINE_REQUEST
    - g_strdup
    - g_object_new
    linkageType: ''
    returnType: FuEngineRequest
    signature: 'FuEngineRequest *

      fu_engine_request_new(const gchar *sender)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:62,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:62,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-device-list.c:62,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-device-list.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_device_list_emit_device_added
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_name
    - g_info
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_device_list_emit_device_added(FuDeviceList *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:69,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:69,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-device-list.c:69,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-device-list.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: fu_device_list_emit_device_removed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_name
    - g_info
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_device_list_emit_device_removed(FuDeviceList *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:76,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:76,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-device-list.c:76,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-device-list.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: fu_device_list_emit_device_changed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_name
    - g_info
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_device_list_emit_device_changed(FuDeviceList *self, FuDevice
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:83,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:85,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:87,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:90,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:95,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:96,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:98,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:103,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:104,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:106,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: fu_device_list_add_string
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_ptr_array_index
    - fu_device_has_flag
    - g_rw_lock_reader_unlock
    - fu_device_get_id
    - g_rw_lock_reader_lock
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_device_list_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:119,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:120,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:122,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:124,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:124,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: fu_device_list_get_children
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_index
    - g_rw_lock_reader_unlock
    - fu_device_get_parent
    - g_rw_lock_reader_lock
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_list_get_children(FuDeviceList *self, FuDevice *device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:133,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-device-list.c:136,1
    - Dst: fu_device_list_get_children
      Src: /src/fwupd/src/fu-device-list.c:139,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:141,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:142,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:144,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - device
    - depth
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: fu_device_list_depsolve_order_full
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 1
    functionsReached:
    - fu_device_list_get_children
    - fu_device_has_private_flag
    - fu_device_set_order
    - g_ptr_array_index
    - fu_device_list_depsolve_order_full
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_depsolve_order_full(FuDeviceList *self, FuDevice
      *device, guint depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:165,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/src/fu-device-list.c:165,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:166,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fu_device_list_depsolve_order
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 3
    functionsReached:
    - fu_device_get_root
    - fu_device_list_depsolve_order_full
    - g_autoptr
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_list_depsolve_order(FuDeviceList *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:187,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:187,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:188,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:190,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:192,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:193,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:196,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:199,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:199,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: fu_device_list_get_all
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - FU_IS_DEVICE_LIST
    - g_ptr_array_index
    - g_rw_lock_reader_unlock
    - g_rw_lock_reader_lock
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_list_get_all(FuDeviceList *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:221,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:221,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:222,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:223,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:225,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:226,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/src/fu-device-list.c:228,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:230,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:230,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: fu_device_list_get_active
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 14
    functionsReached:
    - g_object_ref
    - FU_IS_DEVICE_LIST
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_has_inhibit
    - g_rw_lock_reader_unlock
    - g_rw_lock_reader_lock
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_list_get_active(FuDeviceList *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:239,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:239,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:240,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: fu_device_list_find_by_device
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_rw_lock_reader_locker_new
    - g_ptr_array_index
    - g_return_val_if_fail
    - g_autoptr
    linkageType: ''
    returnType: FuDeviceItem
    signature: 'FuDeviceItem *

      fu_device_list_find_by_device(FuDeviceList *self, FuDevice *device)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:257,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:258,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:260,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:265,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDeviceList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: fu_device_list_find_by_guid
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_has_guid
    - g_rw_lock_reader_locker_new
    - g_ptr_array_index
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDeviceItem
    signature: 'FuDeviceItem *

      fu_device_list_find_by_guid(FuDeviceList *self, const gchar *guid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:279,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:282,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:283,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:288,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:288,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:289,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:289,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:296,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:296,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:297,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - self
    - physical_id
    - logical_id
    argTypes:
    - FuDeviceList*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 301
    functionName: fu_device_list_find_by_connection
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - g_rw_lock_reader_locker_new
    - g_ptr_array_index
    - fu_device_get_physical_id
    - g_autoptr
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDeviceItem
    signature: "FuDeviceItem *\nfu_device_list_find_by_connection(FuDeviceList *self,\n\t\t\t\t
      \ const gchar *physical_id,\n\t\t\t\t  const gchar *logical_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:308,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:308,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:310,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: fu_device_list_item_sort_by_priority_cb
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_get_priority
    linkageType: ''
    returnType: gint
    signature: gint fu_device_list_item_sort_by_priority_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:319,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-device-list.c:319,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:321,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-device-list.c:324,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:326,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:333,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:335,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:336,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-device-list.c:337,1
    - Dst: strncmp
      Src: /src/fwupd/src/fu-device-list.c:340,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:341,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:346,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-device-list.c:348,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-device-list.c:349,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:353,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:355,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:359,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-device-list.c:360,1
    - Dst: strncmp
      Src: /src/fwupd/src/fu-device-list.c:362,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:363,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:368,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-device-list.c:370,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-device-list.c:371,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:375,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 381
    functionName: fu_device_list_filter_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - strlen
    - strncmp
    - g_ptr_array_sort
    - g_steal_pointer
    - g_ptr_array_new
    - g_ptr_array_index
    - g_autoptr
    - fu_device_get_id
    - g_rw_lock_reader_lock
    - fu_device_get_equivalent_id
    - g_return_val_if_fail
    - g_rw_lock_reader_unlock
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_list_filter_by_id(FuDeviceList *self, const gchar *device_id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:387,1
    - Dst: fu_device_list_filter_by_id
      Src: /src/fwupd/src/fu-device-list.c:389,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:396,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:397,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:398,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 408
    functionName: fu_device_list_find_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_priority
    - g_ptr_array_index
    - g_autoptr
    - fu_device_list_filter_by_id
    linkageType: ''
    returnType: FuDeviceItem
    signature: 'FuDeviceItem *

      fu_device_list_find_by_id(FuDeviceList *self, const gchar *device_id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_list_find_by_device
      Src: /src/fwupd/src/fu-device-list.c:424,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: fu_device_list_get_old
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 2
    functionsReached:
    - fu_device_list_find_by_device
    - g_object_ref
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_list_get_old(FuDeviceList *self, FuDevice *device)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:435,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:435,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:436,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:438,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:442,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:443,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:444,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:452,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:458,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:459,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:460,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FuDeviceList*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 468
    functionName: fu_device_list_get_by_guids_removed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_has_guid
    - g_rw_lock_reader_locker_new
    - g_ptr_array_index
    - fu_device_has_instance_id
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDeviceItem
    signature: 'FuDeviceItem *

      fu_device_list_get_by_guids_removed(FuDeviceList *self, GPtrArray *guids)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:474,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:480,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-device-list.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:484,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:486,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:486,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:488,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:488,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:491,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:492,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:493,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:494,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:499,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:500,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:501,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:502,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 505
    functionName: fu_device_list_device_delayed_remove_cb
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_get_children
    - g_ptr_array_remove
    - fu_device_list_emit_device_removed
    - g_rw_lock_writer_lock
    - g_rw_lock_writer_unlock
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_get_id
    - fu_device_list_find_by_id
    - g_info
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_device_delayed_remove_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:512,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:513,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-device-list.c:514,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list.c:515,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 518
    functionName: fu_device_list_remove_with_delay
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_get_name
    - g_info
    - fu_device_get_remove_delay
    - g_timeout_add
    linkageType: ''
    returnType: void
    signature: void fu_device_list_remove_with_delay(FuDeviceItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:523,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:525,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: fu_device_list_should_remove_with_delay
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_device_get_remove_delay
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_should_remove_with_delay(FuDevice *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:552,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:552,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:553,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-device-list.c:553,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:556,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:556,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:558,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:558,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list.c:563,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-device-list.c:567,1
    - Dst: fu_device_list_should_remove_with_delay
      Src: /src/fwupd/src/fu-device-list.c:572,1
    - Dst: fu_device_list_remove_with_delay
      Src: /src/fwupd/src/fu-device-list.c:573,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:578,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-device-list.c:580,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:582,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:584,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:584,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:586,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:586,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:589,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:590,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:591,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:592,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:597,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:598,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:599,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 601
    functionName: fu_device_list_remove
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_DEVICE_LIST
    - fu_device_get_children
    - fu_device_add_private_flag
    - g_ptr_array_remove
    - fu_device_list_remove_with_delay
    - fu_device_list_emit_device_removed
    - g_rw_lock_writer_lock
    - g_return_if_fail
    - g_source_remove
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_list_should_remove_with_delay
    - fu_device_get_id
    - fu_device_list_find_by_id
    - g_info
    - g_rw_lock_writer_unlock
    linkageType: ''
    returnType: void
    signature: void fu_device_list_remove(FuDeviceList *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:614,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:614,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:616,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-device-list.c:617,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 619
    functionName: fu_device_list_remove_all
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE_LIST
    - g_rw_lock_writer_lock
    - g_return_if_fail
    - g_ptr_array_set_size
    - g_rw_lock_writer_unlock
    linkageType: ''
    returnType: void
    signature: void fu_device_list_remove_all(FuDeviceList *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-device-list.c:624,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:626,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:627,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:628,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:631,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:634,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-device-list.c:635,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - device_new
    - device_old
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 645
    functionName: fu_device_list_add_missing_guids
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_has_guid
    - fu_device_get_guids
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_has_instance_id
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_list_add_missing_guids(FuDevice *device_new, FuDevice
      *device_old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:651,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-device-list.c:653,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:656,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:657,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - where_the_object_was
    argTypes:
    - gpointer
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: fu_device_list_item_finalized_cb
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_LIST
    - g_ptr_array_remove
    - g_rw_lock_writer_lock
    - g_critical
    - g_rw_lock_writer_unlock
    linkageType: ''
    returnType: void
    signature: void fu_device_list_item_finalized_cb(gpointer data, GObject *where_the_object_was)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-device-list.c:664,1
    - Dst: fu_device_remove_children
      Src: /src/fwupd/src/fu-device-list.c:665,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - item
    - device
    argTypes:
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 667
    functionName: fu_device_list_item_set_device_old
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - fu_device_set_parent
    - fu_device_remove_children
    linkageType: ''
    returnType: void
    signature: void fu_device_list_item_set_device_old(FuDeviceItem *item, FuDevice
      *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_weak_unref
      Src: /src/fwupd/src/fu-device-list.c:674,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-device-list.c:674,1
    - Dst: g_object_weak_ref
      Src: /src/fwupd/src/fu-device-list.c:677,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-device-list.c:677,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - item
    - device
    argTypes:
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: fu_device_list_item_set_device
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - g_object_weak_unref
    - G_OBJECT
    - g_object_weak_ref
    linkageType: ''
    returnType: void
    signature: void fu_device_list_item_set_device(FuDeviceItem *item, FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-device-list.c:689,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:694,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:695,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:695,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:696,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:699,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:700,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:701,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:702,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:705,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:708,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:708,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - FuDeviceList*
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 710
    functionName: fu_device_list_clear_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_codec_to_string
    - fu_device_remove_private_flag
    - FWUPD_CODEC
    - fu_device_has_flag
    - fu_device_remove_flag
    - fu_device_get_id
    - g_source_remove
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_list_clear_wait_for_replug(FuDeviceList *self, FuDeviceItem
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_problem
      Src: /src/fwupd/src/fu-device-list.c:715,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:716,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-device-list.c:717,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-device-list.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 720
    functionName: _fu_device_incorporate_problem_update_in_progress
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_has_problem
    - fu_device_remove_problem
    - g_info
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void _fu_device_incorporate_problem_update_in_progress(FuDevice *self,
      FuDevice *donor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-device-list.c:725,1
    - Dst: fu_device_replace
      Src: /src/fwupd/src/fu-device-list.c:729,1
    - Dst: fu_device_list_add_missing_guids
      Src: /src/fwupd/src/fu-device-list.c:732,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-device-list.c:735,1
    - Dst: _fu_device_incorporate_problem_update_in_progress
      Src: /src/fwupd/src/fu-device-list.c:742,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:745,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:745,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:746,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/src/fu-device-list.c:747,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:748,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-device-list.c:749,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-device-list.c:749,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-device-list.c:750,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-device-list.c:751,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:755,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:756,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:757,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/src/fu-device-list.c:758,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:759,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-device-list.c:760,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-device-list.c:760,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-device-list.c:761,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-device-list.c:762,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:766,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:767,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:770,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list.c:771,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:774,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:777,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:778,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:779,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:779,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/src/fu-device-list.c:780,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:781,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:781,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-device-list.c:782,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:787,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:788,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:788,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list.c:789,1
    - Dst: fu_device_list_item_set_device_old
      Src: /src/fwupd/src/fu-device-list.c:793,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:794,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:795,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:798,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:798,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:799,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:802,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - self
    - item
    - device
    argTypes:
    - FuDeviceList*
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 803
    functionName: fu_device_list_replace
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - _fu_device_incorporate_problem_update_in_progress
    - fu_device_add_child
    - FWUPD_CODEC
    - fu_device_has_flag
    - fu_device_get_id
    - fu_device_set_version
    - fu_device_incorporate_flag
    - g_debug
    - fu_device_get_version
    - fu_device_set_parent
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_device_list_emit_device_changed
    - fu_device_get_parent
    - g_info
    - fu_device_incorporate
    - fu_device_list_item_set_device_old
    - fu_device_get_children
    - fwupd_codec_to_string
    - fu_device_list_clear_wait_for_replug
    - fu_device_list_add_missing_guids
    - fu_device_set_version_raw
    - fu_device_set_version_format
    - fu_device_replace
    - fu_device_get_version_format
    - fu_device_list_item_set_device
    - fu_device_has_private_flag
    - fu_device_get_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_list_replace(FuDeviceList *self, FuDeviceItem *item,
      FuDevice *device)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:832,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:832,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:833,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-device-list.c:833,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-device-list.c:836,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:839,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:839,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:843,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:843,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:844,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:845,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:851,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:851,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:852,1
    - Dst: _fu_device_incorporate_problem_update_in_progress
      Src: /src/fwupd/src/fu-device-list.c:854,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-device-list.c:855,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:859,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:860,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:861,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:862,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:867,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:868,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:868,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:869,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:869,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:869,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:871,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:872,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:873,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:874,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:875,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:880,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:880,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:881,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:882,1
    - Dst: fu_device_list_find_by_connection
      Src: /src/fwupd/src/fu-device-list.c:887,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:888,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:889,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:891,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:893,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:894,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:895,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:896,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:897,1
    - Dst: fu_device_list_get_by_guids_removed
      Src: /src/fwupd/src/fu-device-list.c:902,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-device-list.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:904,1
    - Dst: fu_device_get_counterpart_guids
      Src: /src/fwupd/src/fu-device-list.c:904,1
    - Dst: fu_device_list_get_by_guids_removed
      Src: /src/fwupd/src/fu-device-list.c:905,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:908,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:909,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:911,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:912,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:913,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:914,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:915,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:918,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:920,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:924,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-device-list.c:927,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:929,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:930,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:931,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:932,1
    - Dst: fu_device_list_emit_device_added
      Src: /src/fwupd/src/fu-device-list.c:933,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 934
    functionName: fu_device_list_add
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 14
    functionsReached:
    - _fu_device_incorporate_problem_update_in_progress
    - fu_device_list_emit_device_added
    - fu_device_list_get_by_guids_removed
    - fu_device_remove_private_flag
    - g_new0
    - fu_device_list_replace
    - fu_device_has_flag
    - fu_device_get_physical_id
    - fu_device_get_id
    - fu_device_get_plugin
    - FU_IS_DEVICE
    - fu_device_get_priority
    - fu_device_get_logical_id
    - g_return_if_fail
    - fu_device_list_emit_device_changed
    - fu_device_remove_flag
    - fu_device_convert_instance_ids
    - fu_device_list_find_by_id
    - g_info
    - fu_device_list_find_by_connection
    - g_rw_lock_writer_unlock
    - fu_device_incorporate
    - fu_device_list_clear_wait_for_replug
    - g_autoptr
    - g_ptr_array_add
    - FU_IS_DEVICE_LIST
    - fu_device_list_item_set_device
    - fu_device_get_guids
    - g_rw_lock_writer_lock
    - fu_device_get_counterpart_guids
    - g_set_object
    - fu_device_has_private_flag
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_device_list_add(FuDeviceList *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:952,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:952,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:953,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:954,1
    - Dst: fu_device_list_find_by_guid
      Src: /src/fwupd/src/fu-device-list.c:955,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:957,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: fu_device_list_get_by_guid
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_object_ref
    - FU_IS_DEVICE_LIST
    - g_return_val_if_fail
    - fu_device_list_find_by_guid
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_list_get_by_guid(FuDeviceList *self, const gchar *guid, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:965,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:967,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:968,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:969,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:970,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 973
    functionName: fu_device_list_get_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_device_has_flag
    - g_ptr_array_index
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_list_get_wait_for_replug(FuDeviceList *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:992,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-device-list.c:992,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:994,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:996,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:996,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:997,1
    - Dst: fu_device_list_get_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:1000,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:1002,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:1008,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:1009,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:1010,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-device-list.c:1016,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:1020,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:1025,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-device-list.c:1026,1
    - Dst: g_main_context_iteration
      Src: /src/fwupd/src/fu-device-list.c:1027,1
    - Dst: fu_device_list_get_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:1030,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-device-list.c:1033,1
    - Dst: fu_device_list_get_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:1036,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:1038,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:1038,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:1043,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:1043,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:1044,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:1048,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:1049,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:1050,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-device-list.c:1050,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:1050,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-device-list.c:1052,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:1053,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:1062,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceList*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1064
    functionName: fu_device_list_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 11
    functionsReached:
    - FWUPD_CODEC
    - fu_device_get_id
    - g_return_val_if_fail
    - g_set_error
    - g_debug
    - g_ptr_array_index
    - fu_device_remove_flag
    - fu_device_get_remove_delay
    - g_info
    - fwupd_codec_to_string
    - g_timer_elapsed
    - fu_strjoin
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_device_list_get_wait_for_replug
    - g_ptr_array_add
    - g_warning
    - FU_IS_DEVICE_LIST
    - g_timer_new
    - g_main_context_iteration
    - g_strdup
    - g_usleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_wait_for_replug(FuDeviceList *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:1084,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1084,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:1085,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:1086,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:1089,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1079
    functionDepth: 3
    functionLinenumber: 1079
    functionLinenumberEnd: 1095
    functionName: fu_device_list_get_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 16
    functionsReached:
    - fu_device_list_find_by_id
    - g_return_val_if_fail
    - FU_IS_DEVICE_LIST
    - g_object_ref
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_list_get_by_id(FuDeviceList *self, const gchar *device_id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-device-list.c:1101,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-device-list.c:1103,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:1104,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-device-list.c:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1106
    functionName: fu_device_list_item_free
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_object_unref
    - g_free
    - fu_device_list_item_set_device
    linkageType: ''
    returnType: void
    signature: void fu_device_list_item_free(FuDeviceItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1112
    functionName: fu_device_list_codec_iface_init
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_device_list_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1117,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-device-list.c:1120,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1123
    functionName: fu_device_list_dispose
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - G_OBJECT_CLASS
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_device_list_dispose(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1128,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1139,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1140,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1156,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1157,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1173,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1183
    functionName: fu_device_list_class_init
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_list_class_init(FuDeviceListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:1188,1
    - Dst: g_rw_lock_init
      Src: /src/fwupd/src/fu-device-list.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: fu_device_list_init
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_rw_lock_init
    linkageType: ''
    returnType: void
    signature: void fu_device_list_init(FuDeviceList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1195,1
    - Dst: g_rw_lock_clear
      Src: /src/fwupd/src/fu-device-list.c:1197,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-device-list.c:1198,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1201
    functionName: fu_device_list_finalize
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_rw_lock_clear
    - G_OBJECT_CLASS
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_device_list_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-device-list.c:1216,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1218
    functionName: fu_device_list_new
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 13
    functionsReached:
    - FU_DEVICE_LIST
    - g_object_new
    linkageType: ''
    returnType: FuDeviceList
    signature: 'FuDeviceList *

      fu_device_list_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:28,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-helper.c:29,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-helper.c:29,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-helper.c:32,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-engine-helper.c:32,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:36,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/src/fu-engine-helper.c:38,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-helper.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - self
    - request
    - dev
    - host_bkc
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: fu_engine_get_release_with_tag
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_auto
    - fu_engine_get_releases
    - g_strsplit
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_release_has_tag
    linkageType: ''
    returnType: FwupdRelease
    signature: "FwupdRelease *\nfu_engine_get_release_with_tag(FuEngine *self,\n\t\t\t
      \      FuEngineRequest *request,\n\t\t\t       FwupdDevice *dev,\n\t\t\t       const
      gchar *host_bkc,\n\t\t\t       GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_host_bkc
      Src: /src/fwupd/src/fu-engine-helper.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:59,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-helper.c:59,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-helper.c:63,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine-helper.c:64,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-helper.c:69,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:73,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-helper.c:76,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-helper.c:79,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-engine-helper.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:87,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-helper.c:88,1
    - Dst: fu_engine_get_release_with_tag
      Src: /src/fwupd/src/fu-engine-helper.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-helper.c:97,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-engine-helper.c:97,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-helper.c:98,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:105,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:106,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:106,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine-helper.c:109,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:110,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine-helper.c:114,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:119,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:120,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-engine-helper.c:122,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:126,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:127,1
    - Dst: _
      Src: /src/fwupd/src/fu-engine-helper.c:130,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:132,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:134,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:135,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-engine-helper.c:137,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:141,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:142,1
    - Dst: _
      Src: /src/fwupd/src/fu-engine-helper.c:145,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:147,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper.c:151,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-helper.c:152,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 51
    functionDepth: 9
    functionLinenumber: 51
    functionLinenumberEnd: 153
    functionName: fu_engine_update_motd
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fu_engine_get_upgrades
    - fu_engine_get_release_with_tag
    - fu_engine_get_devices
    - fu_device_has_flag
    - fu_path_from_kind
    - g_string_append
    - g_string_append_printf
    - g_debug
    - fwupd_device_get_version
    - fu_path_mkdir_parent
    - g_file_set_contents
    - g_ptr_array_index
    - fu_engine_get_host_bkc
    - ngettext
    - fu_engine_request_new
    - g_build_filename
    - fwupd_device_get_id
    - g_autoptr
    - fwupd_release_get_version
    - g_getenv
    - _
    - fu_engine_request_set_feature_flags
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_motd(FuEngine *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:163,1
    - Dst: fu_engine_config_get_show_device_private
      Src: /src/fwupd/src/fu-engine-helper.c:168,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-engine-helper.c:168,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-engine-helper.c:171,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-engine-helper.c:172,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-helper.c:174,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-engine-helper.c:176,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/src/fu-engine-helper.c:178,1
    - Dst: json_generator_new
      Src: /src/fwupd/src/fu-engine-helper.c:179,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/src/fu-engine-helper.c:180,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/src/fu-engine-helper.c:181,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/src/fu-engine-helper.c:182,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:184,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine-helper.c:191,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:192,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-helper.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: fu_engine_update_devices_file
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - json_generator_new
    - fwupd_codec_array_to_json
    - g_file_set_contents
    - fu_engine_config_get_show_device_private
    - json_builder_begin_object
    - g_build_filename
    - json_generator_to_data
    - fu_engine_get_devices
    - fu_engine_get_config
    - json_builder_get_root
    - json_generator_set_root
    - g_set_error_literal
    - g_autoptr
    - fu_path_from_kind
    - json_generator_set_pretty
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_devices_file(FuEngine *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-engine-helper.c:199,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-helper.c:200,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-helper.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - id
    - blob
    argTypes:
    - GHashTable*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: fu_engine_integrity_add_measurement
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_compute_checksum_for_bytes
    - g_steal_pointer
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_engine_integrity_add_measurement(GHashTable *self, const gchar
      *id, GBytes *blob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-engine-helper.c:206,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-helper.c:213,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:215,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-engine-helper.c:217,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:218,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:219,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: fu_engine_integrity_measure_acpi
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - fu_engine_integrity_add_measurement
    - g_build_filename
    - g_bytes_get_size
    - g_strdup_printf
    - fu_bytes_get_contents
    - g_autoptr
    - fu_path_from_kind
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_engine_integrity_measure_acpi(FuContext *ctx, GHashTable *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-engine-helper.c:228,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-helper.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:252,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/src/fu-engine-helper.c:253,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:255,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:262,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/src/fu-engine-helper.c:262,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:263,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:265,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/src/fu-engine-helper.c:266,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-engine-helper.c:266,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:267,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper.c:272,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 278
    functionName: fu_engine_integrity_measure_uefi
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_debug
    - g_bytes_get_size
    - g_strdup_printf
    - fu_efivars_get_data_bytes
    - fu_context_get_efivars
    - g_autoptr
    - fu_engine_integrity_add_measurement
    - fu_memmem_safe
    - G_N_ELEMENTS
    - fu_efivars_get_boot_data
    linkageType: ''
    returnType: void
    signature: void fu_engine_integrity_measure_uefi(FuContext *ctx, GHashTable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:283,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine-helper.c:283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:285,1
    - Dst: fu_engine_integrity_measure_uefi
      Src: /src/fwupd/src/fu-engine-helper.c:287,1
    - Dst: fu_engine_integrity_measure_acpi
      Src: /src/fwupd/src/fu-engine-helper.c:288,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-helper.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:292,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-helper.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: fu_engine_integrity_new
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 1
    functionsReached:
    - g_hash_table_size
    - g_steal_pointer
    - g_hash_table_new_full
    - fu_engine_integrity_measure_acpi
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_engine_integrity_measure_uefi
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_engine_integrity_new(FuContext *ctx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:305,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper.c:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:307,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-helper.c:310,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine-helper.c:314,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine-helper.c:315,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:316,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:317,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-helper.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 320
    functionName: fu_engine_integrity_to_string
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 1
    functionsReached:
    - g_hash_table_size
    - g_strdup_printf
    - fu_strjoin
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_integrity_to_string(GHashTable *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:326,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - errors
    - error_code
    argTypes:
    - GPtrArray*
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 331
    functionName: fu_engine_error_array_find
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_error_matches
    linkageType: ''
    returnType: GError
    signature: 'GError *

      fu_engine_error_array_find(GPtrArray *errors, FwupdError error_code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:338,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - errors
    - error_code
    argTypes:
    - GPtrArray*
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: fu_engine_error_array_count
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_error_matches
    linkageType: ''
    returnType: guint
    signature: guint fu_engine_error_array_count(GPtrArray *errors, FwupdError error_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:349,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - errors
    - error_codes
    argTypes:
    - GPtrArray*
    - FwupdError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: fu_engine_error_array_matches_any
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_error_matches
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_error_array_matches_any(GPtrArray *errors, FwupdError
      *error_codes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_error_array_count
      Src: /src/fwupd/src/fu-engine-helper.c:393,1
    - Dst: fu_engine_error_array_matches_any
      Src: /src/fwupd/src/fu-engine-helper.c:394,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:395,1
    - Dst: fu_engine_error_array_count
      Src: /src/fwupd/src/fu-engine-helper.c:401,1
    - Dst: fu_engine_error_array_matches_any
      Src: /src/fwupd/src/fu-engine-helper.c:402,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:403,1
    - Dst: fu_engine_error_array_find
      Src: /src/fwupd/src/fu-engine-helper.c:410,1
    - Dst: g_error_copy
      Src: /src/fwupd/src/fu-engine-helper.c:412,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - errors
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 417
    functionName: fu_engine_error_array_get_best
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - fu_engine_error_array_matches_any
    - g_error_copy
    - fu_engine_error_array_find
    - fu_engine_error_array_count
    - g_error_new
    linkageType: ''
    returnType: GError
    signature: 'GError *

      fu_engine_error_array_get_best(GPtrArray *errors)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:436,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:438,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:441,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:443,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-helper.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:447,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper.c:447,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:450,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:450,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:451,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:453,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:454,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:454,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:455,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:455,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:456,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:456,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:458,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:458,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:460,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine-helper.c:461,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:467,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine-helper.c:473,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:476,1
    - Dst: g_checksum_new
      Src: /src/fwupd/src/fu-engine-helper.c:483,1
    - Dst: g_checksum_update
      Src: /src/fwupd/src/fu-engine-helper.c:485,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-helper.c:485,1
    - Dst: g_checksum_update
      Src: /src/fwupd/src/fu-engine-helper.c:486,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:487,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/src/fu-engine-helper.c:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - salt
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 488
    functionName: fu_engine_build_machine_id
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - g_file_get_contents
    - g_getenv
    - strlen
    - g_build_filename
    - g_ptr_array_index
    - g_set_error_literal
    - g_checksum_update
    - g_checksum_new
    - g_strdup
    - g_autoptr
    - g_file_test
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - g_checksum_get_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_build_machine_id(const gchar *salt, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:40,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/src/fu-udev-backend.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_udev_backend_to_string
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_UDEV_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_to_string(FuBackend *backend, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:52,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:52,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:54,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:54,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:54,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/src/fu-udev-backend.c:57,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-udev-backend.c:58,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:60,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:61,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-udev-backend.c:64,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:64,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:68,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - dpaux_device
    argTypes:
    - FuUdevBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: fu_udev_backend_rescan_dpaux_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_get_backend_id
    - fu_device_probe_invalidate
    - fu_backend_lookup_by_id
    - fu_backend_device_removed
    - FU_DEVICE
    - fu_backend_device_added
    - g_autoptr
    - fu_device_locker_new
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_rescan_dpaux_device(FuUdevBackend *self, FuDevice
      *dpaux_device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:76,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:78,1
    - Dst: fu_udev_backend_rescan_dpaux_device
      Src: /src/fwupd/src/fu-udev-backend.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: fu_udev_backend_rescan_dpaux_devices_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FU_UDEV_BACKEND
    - fu_udev_backend_rescan_dpaux_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_rescan_dpaux_devices_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-udev-backend.c:89,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-udev-backend.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: fu_udev_backend_rescan_dpaux_devices
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_timeout_add_seconds
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_rescan_dpaux_devices(FuUdevBackend *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:105,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:108,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:108,1
    - Dst: fu_path_make_absolute
      Src: /src/fwupd/src/fu-udev-backend.c:109,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:111,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:114,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:116,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:119,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:120,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:121,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:123,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:126,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-udev-backend.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - udev_device
    argTypes:
    - FuUdevBackend*
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: fu_udev_backend_create_ddc_proxy
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_device_add_private_flag
    - fu_device_set_proxy
    - g_error_matches
    - g_build_filename
    - fu_udev_backend_create_device
    - FU_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_device_probe
    - fu_path_make_absolute
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_create_ddc_proxy(FuUdevBackend *self, FuUdevDevice
      *udev_device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-udev-backend.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - subsystem
    - devtype
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 158
    functionName: fu_udev_backend_get_gtype_for_subsystem_devtype
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - G_N_ELEMENTS
    linkageType: ''
    returnType: GType
    signature: GType fu_udev_backend_get_gtype_for_subsystem_devtype(const gchar *subsystem,
      const gchar *devtype)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:163,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:164,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:165,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:169,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:169,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:169,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-udev-backend.c:171,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:171,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:171,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-udev-backend.c:172,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-udev-backend.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:173,1
    - Dst: fu_udev_backend_get_gtype_for_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:183,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:184,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:184,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:185,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:185,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:187,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:189,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:189,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-udev-backend.c:190,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:191,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-udev-backend.c:192,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:198,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:198,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:198,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/src/fu-udev-backend.c:199,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:199,1
    - Dst: fu_udev_backend_create_ddc_proxy
      Src: /src/fwupd/src/fu-udev-backend.c:203,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:203,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:206,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:207,1
    - Dst: fu_udev_device_get_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:209,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:209,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:215,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/src/fu-udev-backend.c:216,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-udev-backend.c:222,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:223,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:224,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - backend
    - donor
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 225
    functionName: fu_udev_backend_create_device_for_donor
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_udev_backend_create_ddc_proxy
    - g_prefix_error
    - g_object_new
    - fu_udev_device_get_sysfs_path
    - fu_device_probe
    - FU_UDEV_BACKEND
    - FU_BACKEND
    - g_set_error
    - g_object_ref
    - fu_device_add_private_flag
    - fu_backend_get_context
    - fu_udev_device_get_subsystem
    - fu_udev_device_get_devtype
    - fu_udev_device_get_subsystem_devtype
    - g_ptr_array_index
    - FU_UDEV_DEVICE
    - fu_context_get_plugin_names_for_udev_subsystem
    - fu_device_incorporate
    - g_steal_pointer
    - fu_udev_backend_get_gtype_for_subsystem_devtype
    - g_autoptr
    - g_getenv
    - g_str_has_prefix
    - g_path_get_basename
    - fu_udev_device_add_open_flag
    - fu_device_add_possible_plugin
    - g_strcmp0
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_udev_backend_create_device_for_donor(FuBackend *backend, FuDevice *donor,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:230,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:231,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/src/fu-udev-backend.c:231,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:234,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-udev-backend.c:235,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:238,1
    - Dst: fu_udev_backend_create_device_for_donor
      Src: /src/fwupd/src/fu-udev-backend.c:238,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuUdevBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: fu_udev_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 1
    functionsReached:
    - fu_backend_get_context
    - fu_udev_device_new
    - g_prefix_error
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_probe
    - FU_BACKEND
    - fu_udev_backend_create_device_for_donor
    linkageType: ''
    returnType: FuUdevDevice
    signature: 'FuUdevDevice *

      fu_udev_backend_create_device(FuUdevBackend *self, const gchar *fn, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:247,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:247,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-udev-backend.c:249,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:249,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:256,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-udev-backend.c:258,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:260,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:261,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:265,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:265,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:271,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuUdevBackend*
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 272
    functionName: fu_udev_backend_device_add_from_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_debug
    - fu_device_get_backend_id
    - FU_BACKEND
    - fu_udev_device_get_subsystem
    - FU_DEVICE
    - fu_backend_device_added
    - g_autoptr
    - fu_device_locker_new
    - g_strcmp0
    - fu_udev_backend_rescan_dpaux_devices
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_device_add_from_device(FuUdevBackend *self, FuUdevDevice
      *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:280,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:280,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:282,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-udev-backend.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:286,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:286,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:286,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:288,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-udev-backend.c:290,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - sysfs_path
    argTypes:
    - FuUdevBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 292
    functionName: fu_udev_backend_device_remove
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_udev_backend_rescan_dpaux_devices
    - g_debug
    - FU_BACKEND
    - g_ptr_array_remove
    - fu_udev_device_get_subsystem
    - fu_backend_device_removed
    - FU_UDEV_DEVICE
    - g_strcmp0
    - fu_backend_lookup_by_id
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_device_remove(FuUdevBackend *self, const gchar
      *sysfs_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:299,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:299,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:301,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: fu_udev_backend_device_number_sort_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_number
    linkageType: ''
    returnType: gint
    signature: gint fu_udev_backend_device_number_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:312,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-udev-backend.c:313,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-udev-backend.c:315,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:317,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:318,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-udev-backend.c:321,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:324,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:325,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:327,1
    - Dst: fu_path_make_absolute
      Src: /src/fwupd/src/fu-udev-backend.c:329,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:331,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-udev-backend.c:336,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:337,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:340,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:342,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:344,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-udev-backend.c:349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:349,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-udev-backend.c:350,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:350,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-udev-backend.c:354,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:356,1
    - Dst: fu_udev_backend_device_add_from_device
      Src: /src/fwupd/src/fu-udev-backend.c:357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - self
    - fn
    argTypes:
    - FuUdevBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 359
    functionName: fu_udev_backend_coldplug_subsystem
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_dir_read_name
    - g_error_matches
    - g_hash_table_add
    - g_build_filename
    - fu_udev_backend_create_device
    - g_steal_pointer
    - g_ptr_array_sort
    - g_dir_open
    - g_ptr_array_index
    - g_autoptr
    - g_file_test
    - g_ptr_array_new_with_free_func
    - g_hash_table_contains
    - g_ptr_array_add
    - fu_udev_backend_device_add_from_device
    - fu_path_make_absolute
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_coldplug_subsystem(FuUdevBackend *self, const
      gchar *fn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:364,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:364,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-udev-backend.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:371,1
    - Dst: fu_struct_udev_monitor_netlink_header_parse_bytes
      Src: /src/fwupd/src/fu-udev-backend.c:374,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/src/fu-udev-backend.c:378,1
    - Dst: fu_struct_udev_monitor_netlink_header_get_properties_off
      Src: /src/fwupd/src/fu-udev-backend.c:379,1
    - Dst: fu_struct_udev_monitor_netlink_header_get_properties_len
      Src: /src/fwupd/src/fu-udev-backend.c:380,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-udev-backend.c:386,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:389,1
    - Dst: fu_strsafe
      Src: /src/fwupd/src/fu-udev-backend.c:391,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:393,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:399,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:400,1
    - Dst: fu_udev_action_from_string
      Src: /src/fwupd/src/fu-udev-backend.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:414,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:415,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:420,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:420,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:423,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:424,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:424,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:426,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-udev-backend.c:427,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:427,1
    - Dst: fu_udev_backend_device_remove
      Src: /src/fwupd/src/fu-udev-backend.c:432,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:439,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/src/fu-udev-backend.c:445,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:447,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:448,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:449,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:450,1
    - Dst: fu_udev_device_add_property
      Src: /src/fwupd/src/fu-udev-backend.c:452,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-udev-backend.c:456,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:462,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/src/fu-udev-backend.c:468,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:473,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:475,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:482,1
    - Dst: fu_udev_backend_create_device_for_donor
      Src: /src/fwupd/src/fu-udev-backend.c:482,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:483,1
    - Dst: fu_udev_backend_device_add_from_device
      Src: /src/fwupd/src/fu-udev-backend.c:489,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuUdevBackend*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 494
    functionName: fu_udev_backend_netlink_parse_blob
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_auto
    - strlen
    - fu_udev_device_add_property
    - fu_path_from_kind
    - fu_backend_lookup_by_id
    - FU_BACKEND
    - fu_udev_backend_device_add_from_device
    - fu_struct_udev_monitor_netlink_header_get_properties_len
    - g_set_error
    - fu_udev_action_from_string
    - fu_backend_get_context
    - fu_udev_device_get_subsystem
    - fu_udev_device_set_devtype
    - FU_UDEV_DEVICE
    - fu_strsafe
    - fu_udev_backend_rescan_dpaux_devices
    - fu_udev_device_new
    - g_build_filename
    - fu_struct_udev_monitor_netlink_header_get_properties_off
    - g_autoptr
    - fu_udev_backend_device_remove
    - fu_bytes_new_offset
    - g_bytes_get_data
    - fu_udev_device_set_subsystem
    - g_strsplit
    - fu_struct_udev_monitor_netlink_header_parse_bytes
    - g_set_object
    - g_set_error_literal
    - FU_DEVICE
    - fu_backend_device_changed
    - g_strcmp0
    - fu_udev_backend_create_device_for_donor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_netlink_parse_blob(FuUdevBackend *self, GBytes
      *blob, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:503,1
    - Dst: recv
      Src: /src/fwupd/src/fu-udev-backend.c:505,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-udev-backend.c:508,1
    - Dst: fu_udev_backend_netlink_parse_blob
      Src: /src/fwupd/src/fu-udev-backend.c:509,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:510,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:511,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - condition
    - user_data
    argTypes:
    - gint
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 518
    functionName: fu_udev_backend_netlink_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_error_matches
    - recv
    - g_bytes_new
    - g_autoptr
    - fu_udev_backend_netlink_parse_blob
    - FU_UDEV_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_netlink_cb(gint fd, GIOCondition condition,
      gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/fwupd/src/fu-udev-backend.c:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:528,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:532,1
    - Dst: socket
      Src: /src/fwupd/src/fu-udev-backend.c:539,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:541,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-udev-backend.c:545,1
    - Dst: bind
      Src: /src/fwupd/src/fu-udev-backend.c:548,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:549,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-udev-backend.c:553,1
    - Dst: g_unix_fd_source_new
      Src: /src/fwupd/src/fu-udev-backend.c:556,1
    - Dst: g_source_set_static_name
      Src: /src/fwupd/src/fu-udev-backend.c:557,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-udev-backend.c:558,1
    - Dst: g_source_set_can_recurse
      Src: /src/fwupd/src/fu-udev-backend.c:559,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-udev-backend.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 564
    functionName: fu_udev_backend_netlink_setup
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - bind
    - g_set_error
    - g_unix_fd_source_new
    - g_source_attach
    - getpid
    - g_source_set_can_recurse
    - g_set_error_literal
    - g_autoptr
    - socket
    - g_source_set_static_name
    - fwupd_strerror
    - g_source_set_callback
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_netlink_setup(FuUdevBackend *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:569,1
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:570,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-udev-backend.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:572,1
    - Dst: fu_context_get_udev_subsystems
      Src: /src/fwupd/src/fu-udev-backend.c:572,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-udev-backend.c:575,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-udev-backend.c:576,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:578,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-udev-backend.c:583,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:584,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:588,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:589,1
    - Dst: fu_udev_backend_coldplug_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:590,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:591,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:594,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:595,1
    - Dst: fu_udev_backend_coldplug_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:596,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:597,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 566
    functionDepth: 5
    functionLinenumber: 566
    functionLinenumberEnd: 606
    functionName: fu_udev_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_context_get_udev_subsystems
    - fu_backend_get_context
    - g_build_filename
    - g_strstr_len
    - fu_udev_backend_coldplug_subsystem
    - g_ptr_array_index
    - fu_path_from_kind
    - fu_progress_set_id
    - g_autoptr
    - g_file_test
    - FU_UDEV_BACKEND
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:614,1
    - Dst: fu_udev_backend_netlink_setup
      Src: /src/fwupd/src/fu-udev-backend.c:618,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-udev-backend.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 626
    functionName: fu_udev_backend_setup
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_BACKEND
    - fu_udev_backend_netlink_setup
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_backend_setup(FuBackend *backend,\n\t\t      FuBackendSetupFlags
      flags,\n\t\t      FuProgress *progress,\n\t\t      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:637,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-udev-backend.c:640,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:644,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:644,1
    - Dst: fu_udev_backend_get_gtype_for_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:645,1
    - Dst: g_strconcat
      Src: /src/fwupd/src/fu-udev-backend.c:647,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:647,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:647,1
    - Dst: g_strconcat
      Src: /src/fwupd/src/fu-udev-backend.c:653,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:653,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:653,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:657,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:659,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-udev-backend.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:664,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:664,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-udev-backend.c:667,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:667,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:667,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:669,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:676,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:688,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-udev-backend.c:691,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:692,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:692,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:696,1
    - Dst: fu_udev_device_match_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:698,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:700,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:700,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:701,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:703,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:703,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:706,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:707,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-udev-backend.c:711,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:712,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - backend
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 722
    functionName: fu_udev_backend_get_device_parent
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_object_new
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - FU_UDEV_BACKEND
    - g_set_error
    - fu_backend_get_context
    - g_path_get_dirname
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_strconcat
    - fu_udev_device_match_subsystem
    - g_free
    - g_steal_pointer
    - g_error_matches
    - fu_udev_backend_get_gtype_for_subsystem_devtype
    - g_autoptr
    - g_file_test
    - g_warning
    - fu_udev_device_set_subsystem
    - fu_udev_backend_create_device
    - g_strsplit
    - FU_DEVICE
    - g_set_error_literal
    - g_strdup
    - g_strcmp0
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_udev_backend_get_device_parent(FuBackend *backend,\n\t\t\t\t
      \ FuDevice *device,\n\t\t\t\t  const gchar *subsystem,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:728,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: fu_udev_backend_create_device_impl
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_udev_backend_create_device
    - FU_UDEV_BACKEND
    - FU_DEVICE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_udev_backend_create_device_impl(FuBackend *backend, const gchar *backend_id,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:734,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-udev-backend.c:736,1
    - Dst: g_close
      Src: /src/fwupd/src/fu-udev-backend.c:738,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-udev-backend.c:739,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-udev-backend.c:740,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-udev-backend.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 742
    functionName: fu_udev_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_close
    - g_ptr_array_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - FU_UDEV_BACKEND
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-udev-backend.c:747,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-udev-backend.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 749
    functionName: fu_udev_backend_init
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_init(FuUdevBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-udev-backend.c:754,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-udev-backend.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUdevBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 763
    functionName: fu_udev_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_class_init(FuUdevBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:768,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: fu_udev_backend_new
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 1
    functionsReached:
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_udev_backend_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-util.c:89,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/src/fu-util.c:90,1
    - Dst: fwupd_client_get_percentage
      Src: /src/fwupd/src/fu-util.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - object
    - pspec
    - self
    argTypes:
    - GObject*
    - GParamSpec*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: fu_util_client_notify_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress
    - fwupd_client_get_status
    - fwupd_client_get_percentage
    linkageType: ''
    returnType: void
    signature: void fu_util_client_notify_cb(GObject *object, GParamSpec *pspec, FuUtil
      *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-util.c:98,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-util.c:102,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:107,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:107,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:108,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-util.c:108,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:109,1
    - Dst: fu_console_beep
      Src: /src/fwupd/src/fu-util.c:110,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-util.c:114,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:115,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - client
    - request
    - self
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: fu_util_update_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_request_get_kind
    - fu_console_set_progress_title
    - g_object_ref
    - fu_console_beep
    - fu_console_color_format
    - _
    - g_strdup_printf
    - fwupd_request_get_message
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_util_update_device_request_cb(FwupdClient *client, FwupdRequest
      *request, FuUtil *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:128,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:130,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:135,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:135,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:136,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-util.c:137,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:142,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:143,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:144,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:145,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-util.c:146,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:146,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:153,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:153,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:153,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:154,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:157,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:157,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:157,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:158,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:161,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:161,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:161,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:162,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:164,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-util.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - client
    - device
    - self
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 167
    functionName: fu_util_update_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_set_progress_title
    - g_warning
    - g_debug
    - fwupd_device_has_flag
    - fwupd_status_to_string
    - _
    - g_strdup_printf
    - fwupd_device_get_composite_id
    - fwupd_device_get_status
    - g_set_object
    - fwupd_device_get_name
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_util_update_device_changed_cb(FwupdClient *client, FwupdDevice
      *device, FuUtil *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:174,1
    - Dst: fwupd_device_array_filter_flags
      Src: /src/fwupd/src/fu-util.c:177,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:186,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:188,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:192,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:193,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:200,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:208,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:210,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:211,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:214,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:215,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:218,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:218,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:226,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 228
    functionName: fu_util_prompt_for_device
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 12
    functionsReached:
    - g_object_ref
    - fwupd_device_array_filter_flags
    - fu_console_input_uint
    - _
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_device_get_name
    - fu_console_print
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fu_util_prompt_for_device(FuUtil *self, GPtrArray *devices, GError **error)'
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:235,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:236,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:238,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:243,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:248,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:250,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:252,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:252,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:257,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/src/fu-util.c:260,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:262,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:264,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:266,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:268,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:269,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:270,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util.c:271,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:272,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:273,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:275,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:276,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:287,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:288,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:292,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:296,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:298,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:302,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:304,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:304,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util.c:307,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:309,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:314,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:315,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:316,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:317,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:319,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:320,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/src/fu-util.c:321,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:321,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:331,1
    - Dst: fu_console_line
      Src: /src/fwupd/src/fu-util.c:335,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:339,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:341,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:343,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:344,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:345,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:347,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:348,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:349,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:355,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:357,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:359,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:360,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:361,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:363,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:364,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:365,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:370,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:372,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:375,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:379,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:381,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:382,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:386,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:389,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:390,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:391,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:393,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:402,1
    - Dst: fu_util_report_history
      Src: /src/fwupd/src/fu-util.c:411,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:416,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:420,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:423,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:424,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:425,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:427,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:430,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 117
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 443
    functionName: fu_util_perhaps_show_unreported
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_ptr_array_new
    - fu_console_print_literal
    - fwupd_remote_get_report_uri
    - fu_console_line
    - g_propagate_error
    - fwupd_remote_has_flag
    - fwupd_device_get_release_default
    - fwupd_device_match_flags
    - fwupd_update_state_to_string
    - g_debug
    - fwupd_device_get_version
    - fwupd_device_has_flag
    - g_hash_table_new
    - g_ptr_array_index
    - fwupd_remote_get_title
    - fu_console_input_bool
    - fu_util_report_history
    - fwupd_release_get_remote_id
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_get_id
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_device_get_name
    - fwupd_release_get_version
    - fwupd_client_get_remotes
    - g_ptr_array_add
    - fwupd_device_get_update_state
    - fwupd_client_get_history
    - fwupd_client_modify_remote
    - _
    - g_set_error_literal
    - g_hash_table_lookup
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_perhaps_show_unreported(FuUtil *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:448,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:448,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:449,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:450,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:450,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - self
    - root
    - dev
    argTypes:
    - FuUtil*
    - FuUtilNode*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: fu_util_build_device_tree_node
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_device_get_release_default
    - g_node_append_data
    linkageType: ''
    returnType: void
    signature: void fu_util_build_device_tree_node(FuUtil *self, FuUtilNode *root,
      FwupdDevice *dev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/src/fu-util.c:464,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:474,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-util.c:477,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-util.c:478,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-util.c:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - n
    - user_data
    argTypes:
    - FuUtilNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 483
    functionName: fu_util_build_device_tree_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - fu_util_is_interesting_device
    - FWUPD_IS_RELEASE
    - fwupd_device_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_build_device_tree_cb(FuUtilNode *n, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:490,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/src/fu-util.c:491,1
    - Dst: fu_util_build_device_tree_node
      Src: /src/fwupd/src/fu-util.c:493,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:498,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/src/fu-util.c:501,1
    - Dst: g_node_find
      Src: /src/fwupd/src/fu-util.c:503,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/src/fu-util.c:506,1
    - Dst: fu_util_build_device_tree_node
      Src: /src/fwupd/src/fu-util.c:509,1
    - Dst: g_node_traverse
      Src: /src/fwupd/src/fu-util.c:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - self
    - root
    - devs
    argTypes:
    - FuUtil*
    - FuUtilNode*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 514
    functionName: fu_util_build_device_tree
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 2
    functionsReached:
    - g_node_traverse
    - g_ptr_array_index
    - fwupd_device_get_parent
    - g_node_find
    - fu_util_build_device_tree_node
    linkageType: ''
    returnType: void
    signature: void fu_util_build_device_tree(FuUtil *self, FuUtilNode *root, GPtrArray
      *devs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:519,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:519,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:520,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:521,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:522,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:524,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:525,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:529,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:530,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:530,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:531,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:533,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:534,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - rels
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 536
    functionName: fu_util_get_releases_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_release_match_flags
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_releases_as_json(FuUtil *self, GPtrArray *rels,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:541,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:541,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:542,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:543,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:544,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:548,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:551,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:557,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:558,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:562,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:565,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:566,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-util.c:570,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:575,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:576,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:576,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:577,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:579,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:580,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - devs
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 582
    functionName: fu_util_get_devices_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_debug
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - fwupd_device_get_id
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_client_get_releases
    - fwupd_device_add_release
    - fwupd_release_match_flags
    - json_builder_end_object
    - json_builder_new
    - fwupd_device_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_devices_as_json(FuUtil *self, GPtrArray *devs,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:588,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:589,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:590,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:594,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:596,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:598,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:602,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:603,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:606,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:613,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:615,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:622,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:626,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:633,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 634
    functionName: fu_util_check_reboot_needed
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_device_has_flag
    - _
    - fwupd_client_get_devices
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fu_util_prompt_complete
    - fu_util_get_device_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_reboot_needed(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:639,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:639,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:640,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:643,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:644,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:646,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:649,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:652,1
    - Dst: fu_util_get_devices_as_json
      Src: /src/fwupd/src/fu-util.c:659,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-util.c:663,1
    - Dst: g_node_n_children
      Src: /src/fwupd/src/fu-util.c:664,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:665,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:669,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:672,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:675,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 679
    functionName: fu_util_get_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_build_device_tree
    - fu_util_get_devices_as_json
    - g_node_n_children
    - _
    - fu_util_perhaps_show_unreported
    - fu_util_print_node
    - fwupd_client_get_devices
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_util_get_device_by_id
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_devices(FuUtil *self, gchar **values, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:684,1
    - Dst: fwupd_client_get_plugins
      Src: /src/fwupd/src/fu-util.c:687,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:692,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:692,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:693,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:694,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:695,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:696,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:701,1
    - Dst: fu_util_plugin_to_string
      Src: /src/fwupd/src/fu-util.c:702,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/src/fu-util.c:702,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 708
    functionName: fu_util_get_plugins
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_plugins
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - g_ptr_array_sort
    - json_builder_begin_object
    - fu_console_print_literal
    - g_ptr_array_index
    - FWUPD_PLUGIN
    - g_autoptr
    - json_builder_end_object
    - fu_util_plugin_to_string
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_plugins(FuUtil *self, gchar **values, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:714,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:717,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:718,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-util.c:719,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:720,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-util.c:723,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:724,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:725,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-util.c:726,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-util.c:728,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-util.c:737,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - perhapsfn
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 740
    functionName: fu_util_download_if_required
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_path_mkdir_parent
    - g_steal_pointer
    - fu_util_get_user_cache_path
    - fwupd_client_download_bytes
    - fu_util_is_url
    - g_strdup
    - g_file_test
    - g_autoptr
    - fu_bytes_set_contents
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_download_if_required(FuUtil *self, const gchar *perhapsfn, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:749,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:749,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:753,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:754,1
    - Dst: fu_util_request_get_message
      Src: /src/fwupd/src/fu-util.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: fu_util_display_current_message
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 5
    functionsReached:
    - fu_util_request_get_message
    - g_ptr_array_index
    - _
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_util_display_current_message(FuUtil *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-util.c:772,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:774,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilDeviceTestHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: fu_util_device_test_helper_free
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_util_device_test_helper_free(FuUtilDeviceTestHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:781,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 784
    functionName: fu_util_device_test_helper_new
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_new0
    - json_builder_new
    linkageType: ''
    returnType: FuUtilDeviceTestHelper
    signature: 'FuUtilDeviceTestHelper *

      fu_util_device_test_helper_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:791,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:792,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:794,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:795,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:799,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:799,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:802,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 809
    functionName: fu_util_filter_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fwupd_device_match_flags
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_util_filter_devices(FuUtil *self, GPtrArray *devices, GError **error)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:820,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:823,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:824,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:825,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:826,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:828,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:829,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:830,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:831,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:835,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:836,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/src/fu-util.c:842,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:843,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:844,1
    - Dst: json_array_get_length
      Src: /src/fwupd/src/fu-util.c:845,1
    - Dst: json_array_get_element
      Src: /src/fwupd/src/fu-util.c:846,1
    - Dst: json_node_get_string
      Src: /src/fwupd/src/fu-util.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:849,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:850,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:852,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:854,1
    - Dst: fu_util_filter_devices
      Src: /src/fwupd/src/fu-util.c:857,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:861,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:868,1
    - Dst: fwupd_device_has_protocol
      Src: /src/fwupd/src/fu-util.c:869,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:871,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:872,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:875,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:879,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:881,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:883,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:885,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:890,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:891,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:892,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:892,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:893,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:897,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:904,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:906,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:907,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util.c:907,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:908,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util.c:912,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:919,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:920,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:921,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:921,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:922,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:926,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:936,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:936,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:937,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:938,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:940,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 4
    argNames:
    - self
    - helper
    - json_obj
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 945
    functionName: fu_util_device_test_component
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_has_protocol
    - fwupd_device_get_version_bootloader
    - json_builder_add_string_value
    - g_set_error
    - g_object_ref
    - g_debug
    - fwupd_device_get_version
    - fu_console_color_format
    - g_ptr_array_index
    - json_builder_set_member_name
    - json_object_get_array_member
    - fwupd_client_get_devices_by_guid
    - json_object_get_string_member
    - json_array_get_element
    - fwupd_device_get_branch
    - g_autoptr
    - json_node_get_string
    - json_builder_begin_array
    - fu_util_filter_devices
    - json_builder_end_array
    - _
    - g_set_error_literal
    - json_object_has_member
    - g_strcmp0
    - fu_console_print
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_component(FuUtil *self,\n\t\t\t      FuUtilDeviceTestHelper
      *helper,\n\t\t\t      JsonObject *json_obj,\n\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:950,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:952,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:956,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:957,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:958,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:960,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:961,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:966,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:967,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/src/fu-util.c:970,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:971,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 979
    functionName: fu_util_device_test_remove_emulated_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - fwupd_device_has_flag
    - g_error_matches
    - fwupd_device_get_id
    - fwupd_client_get_devices
    - g_ptr_array_index
    - g_autoptr
    - fwupd_client_modify_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_device_test_remove_emulated_devices(FuUtil *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:984,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util.c:986,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:987,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util.c:988,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:989,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:992,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util.c:995,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:996,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:997,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:999,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - maybe_basename
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1000
    functionName: fu_util_maybe_expand_basename
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - g_debug
    - g_str_has_prefix
    - g_strdup_printf
    - g_strdup
    - g_autoptr
    - fwupd_remote_get_firmware_base_uri
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_maybe_expand_basename(FuUtil *self, const gchar *maybe_basename, GError
      **error)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1016,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:1018,1
    - Dst: fu_util_maybe_expand_basename
      Src: /src/fwupd/src/fu-util.c:1020,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:1024,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1026,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1029,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:1031,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:1031,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1038,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1039,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1041,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1042,1
    - Dst: fwupd_client_emulation_load
      Src: /src/fwupd/src/fu-util.c:1043,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1047,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1053,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:1054,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1057,1
    - Dst: fu_util_maybe_expand_basename
      Src: /src/fwupd/src/fu-util.c:1059,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:1062,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1064,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1069,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1070,1
    - Dst: fwupd_client_install
      Src: /src/fwupd/src/fu-util.c:1075,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:1081,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1083,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1084,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:1088,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1090,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:1098,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:1098,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1105,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/src/fu-util.c:1111,1
    - Dst: json_array_get_length
      Src: /src/fwupd/src/fu-util.c:1112,1
    - Dst: json_array_get_element
      Src: /src/fwupd/src/fu-util.c:1113,1
    - Dst: json_node_get_object
      Src: /src/fwupd/src/fu-util.c:1114,1
    - Dst: fu_util_device_test_component
      Src: /src/fwupd/src/fu-util.c:1115,1
    - Dst: fu_util_device_test_remove_emulated_devices
      Src: /src/fwupd/src/fu-util.c:1121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1122,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1128,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/src/fu-util.c:1129,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 4
    argNames:
    - self
    - helper
    - json_obj
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1131
    functionName: fu_util_device_test_step
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_propagate_error
    - json_builder_add_string_value
    - fu_util_download_if_required
    - fu_console_color_format
    - json_builder_set_member_name
    - json_object_get_array_member
    - json_object_get_string_member
    - fu_util_maybe_expand_basename
    - fu_util_device_test_component
    - json_array_get_element
    - fwupd_client_emulation_load
    - g_steal_pointer
    - g_error_matches
    - json_builder_add_boolean_value
    - g_autoptr
    - json_node_get_object
    - fwupd_client_install
    - g_set_error_literal
    - g_strdup
    - json_object_has_member
    - fu_console_print
    - json_array_get_length
    - fu_util_device_test_remove_emulated_devices
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_step(FuUtil *self,\n\t\t\t FuUtilDeviceTestHelper
      *helper,\n\t\t\t JsonObject *json_obj,\n\t\t\t GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1143,1
    - Dst: json_parser_new
      Src: /src/fwupd/src/fu-util.c:1143,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1146,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1147,1
    - Dst: json_parser_load_from_file
      Src: /src/fwupd/src/fu-util.c:1150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1151,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/src/fu-util.c:1154,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/src/fu-util.c:1155,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1156,1
    - Dst: json_node_get_object
      Src: /src/fwupd/src/fu-util.c:1162,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1164,1
    - Dst: json_object_get_member
      Src: /src/fwupd/src/fu-util.c:1170,1
    - Dst: JSON_NODE_HOLDS_ARRAY
      Src: /src/fwupd/src/fu-util.c:1171,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1172,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1180,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/src/fu-util.c:1181,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1182,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:1183,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1185,1
    - Dst: json_object_get_boolean_member
      Src: /src/fwupd/src/fu-util.c:1186,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1187,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/src/fu-util.c:1188,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1190,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/src/fu-util.c:1191,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util.c:1193,1
    - Dst: json_array_get_length
      Src: /src/fwupd/src/fu-util.c:1194,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/src/fu-util.c:1195,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1196,1
    - Dst: json_object_has_member
      Src: /src/fwupd/src/fu-util.c:1208,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/src/fu-util.c:1209,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1210,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/src/fu-util.c:1211,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1213,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:1214,1
    - Dst: json_node_get_array
      Src: /src/fwupd/src/fu-util.c:1216,1
    - Dst: json_array_get_length
      Src: /src/fwupd/src/fu-util.c:1217,1
    - Dst: json_array_get_element
      Src: /src/fwupd/src/fu-util.c:1218,1
    - Dst: json_node_get_object
      Src: /src/fwupd/src/fu-util.c:1219,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:1220,1
    - Dst: fu_util_device_test_step
      Src: /src/fwupd/src/fu-util.c:1221,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:1223,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:1226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 4
    argNames:
    - self
    - helper
    - filename
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1133
    functionDepth: 4
    functionLinenumber: 1133
    functionLinenumberEnd: 1230
    functionName: fu_util_device_test_filename
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - json_object_get_member
    - g_prefix_error
    - json_parser_get_root
    - json_builder_add_string_value
    - json_array_get_string_element
    - json_parser_new
    - json_builder_begin_object
    - json_builder_add_int_value
    - json_builder_set_member_name
    - json_object_get_array_member
    - json_object_get_string_member
    - json_node_get_array
    - JSON_NODE_HOLDS_ARRAY
    - json_array_get_element
    - json_builder_add_boolean_value
    - json_parser_load_from_file
    - JSON_NODE_HOLDS_OBJECT
    - g_autoptr
    - json_node_get_object
    - g_strcmp0
    - json_object_get_int_member
    - fu_util_device_test_step
    - json_builder_begin_array
    - json_builder_end_array
    - g_set_error_literal
    - json_object_get_boolean_member
    - json_object_has_member
    - g_hash_table_lookup
    - json_builder_end_object
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_filename(FuUtil *self,\n\t\t\t     FuUtilDeviceTestHelper
      *helper,\n\t\t\t     const gchar *filename,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:1240,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilInhibitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1242
    functionName: fu_util_inhibit_helper_free
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_util_inhibit_helper_free(FuUtilInhibitHelper *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1250,1
    - Dst: fwupd_client_uninhibit
      Src: /src/fwupd/src/fu-util.c:1252,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:1256,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilInhibitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1260
    functionName: fu_util_inhibit_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_uninhibit
    - g_main_loop_quit
    - g_warning
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_inhibit_timeout_cb(FuUtilInhibitHelper *helper)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1267,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:1267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1268,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1268,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1270,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1272,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-util.c:1273,1
    - Dst: fwupd_client_inhibit
      Src: /src/fwupd/src/fu-util.c:1284,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1288,1
    - Dst: g_timeout_source_new
      Src: /src/fwupd/src/fu-util.c:1288,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:1289,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:1293,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1297,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1297,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1298,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1300,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1302,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1304,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1307,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1307,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:1309,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1309,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-util.c:1310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1312
    functionName: fu_util_inhibit
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_source_attach
    - g_string_new
    - g_new0
    - _
    - g_strv_length
    - g_timeout_source_new
    - g_autoptr
    - g_main_loop_run
    - fu_console_box
    - fwupd_client_inhibit
    - g_string_append
    - fu_strtoull
    - g_source_set_callback
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_inhibit(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1318,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1319,1
    - Dst: fwupd_client_uninhibit
      Src: /src/fwupd/src/fu-util.c:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1328
    functionName: fu_util_uninhibit
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_uninhibit
    - g_set_error_literal
    - g_strv_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_uninhibit(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1340,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1340,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:1341,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:1343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - client
    - device
    - helper
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtilWaitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1346
    functionName: fu_util_device_wait_added_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_main_loop_quit
    - fwupd_device_has_guid
    - fwupd_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_util_device_wait_added_cb(FwupdClient *client, FwupdDevice
      *device, FuUtilWaitHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1354
    functionName: fu_util_device_wait_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_device_wait_timeout_cb(gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1359,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1360,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1361,1
    - Dst: g_timeout_source_new_seconds
      Src: /src/fwupd/src/fu-util.c:1361,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1362,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-util.c:1362,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1367,1
    - Dst: fwupd_client_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:1375,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1378,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1378,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:1381,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1384,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1384,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-util.c:1389,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:1390,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:1390,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:1392,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:1394,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:1395,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-util.c:1396,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1400,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-util.c:1405,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1410,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1412,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-util.c:1413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1415
    functionName: fu_util_device_wait
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_timeout_source_new_seconds
    - g_source_attach
    - fwupd_client_get_device_by_id
    - fu_console_set_progress
    - fu_console_print_literal
    - g_main_loop_run
    - g_signal_connect
    - g_source_set_callback
    - g_set_error
    - g_strv_length
    - fwupd_client_get_devices_by_guid
    - G_CALLBACK
    - g_timer_elapsed
    - g_autoptr
    - g_timer_new
    - _
    - g_set_error_literal
    - FWUPD_CLIENT
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_device_wait(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_quit
      Src: /src/fwupd/src/fu-util.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1422
    functionName: fu_util_quit
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_quit(FuUtil *self, gchar **values, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1434,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1435,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1444,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:1449,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:1452,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:1453,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:1455,1
    - Dst: fu_util_device_test_filename
      Src: /src/fwupd/src/fu-util.c:1456,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:1458,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:1460,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:1463,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:1465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1471,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1471,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1472,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:1475,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:1477,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1485,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1490,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1494,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:1502,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - self
    - values
    - helper
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - FuUtilDeviceTestHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1424
    functionDepth: 5
    functionLinenumber: 1424
    functionLinenumberEnd: 1507
    functionName: fu_util_device_test_full
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_console_print_full
    - g_set_error
    - json_builder_begin_array
    - fu_util_print_builder
    - g_string_new
    - ngettext
    - json_builder_end_array
    - json_builder_begin_object
    - fu_util_device_test_filename
    - fu_util_perhaps_show_unreported
    - g_set_error_literal
    - g_strv_length
    - json_builder_set_member_name
    - fwupd_client_get_report_metadata
    - g_autoptr
    - json_builder_end_object
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_full(FuUtil *self,\n\t\t\t gchar **values,\n\t\t\t
      FuUtilDeviceTestHelper *helper,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1512,1
    - Dst: fu_util_device_test_helper_new
      Src: /src/fwupd/src/fu-util.c:1512,1
    - Dst: fu_util_device_test_full
      Src: /src/fwupd/src/fu-util.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1509
    functionDepth: 6
    functionLinenumber: 1509
    functionLinenumberEnd: 1517
    functionName: fu_util_device_emulate
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_device_test_full
    - fu_util_device_test_helper_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_device_emulate(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1522,1
    - Dst: fu_util_device_test_helper_new
      Src: /src/fwupd/src/fu-util.c:1522,1
    - Dst: fu_util_device_test_full
      Src: /src/fwupd/src/fu-util.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1519
    functionDepth: 6
    functionLinenumber: 1519
    functionLinenumberEnd: 1525
    functionName: fu_util_device_test
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_device_test_full
    - fu_util_device_test_helper_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_device_test(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1531,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1534,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1535,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-util.c:1543,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:1545,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1546,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-util.c:1553,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-util.c:1560,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-util.c:1561,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-util.c:1562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1527
    functionDepth: 1
    functionLinenumber: 1527
    functionLinenumberEnd: 1564
    functionName: fu_util_download
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_set_contents
    - g_path_get_basename
    - g_bytes_get_size
    - fwupd_client_download_bytes
    - g_set_error_literal
    - g_strv_length
    - g_file_test
    - g_autoptr
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_download(FuUtil *self, gchar **values, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1571,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1574,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1576,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:1577,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1582,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:1592,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-util.c:1598,1
    - Dst: fwupd_client_install
      Src: /src/fwupd/src/fu-util.c:1602,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:1610,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1614,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:1619,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1620
    functionName: fu_util_local_install
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_warning_fde
    - g_debug
    - fu_util_download_if_required
    - fu_util_display_current_message
    - fwupd_device_get_id
    - g_set_error_literal
    - g_strv_length
    - fwupd_client_install
    - g_autoptr
    - fu_util_prompt_complete
    - fu_util_get_device_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_local_install(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1625,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1626,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:1626,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1629,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1630,1
    - Dst: fwupd_client_get_details
      Src: /src/fwupd/src/fu-util.c:1640,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1644,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:1644,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:1645,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:1646,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:1647,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:1648,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-util.c:1651,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:1652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1655
    functionName: fu_util_get_details
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_build_device_tree
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - fwupd_client_get_details
    - json_builder_begin_object
    - fu_util_print_node
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - json_builder_end_object
    - json_builder_new
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_details(FuUtil *self, gchar **values, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1668,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1671,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/src/fu-util.c:1674,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:1684,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:1694,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:1698,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1699,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1699,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1700,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1700,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1702,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1702,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:1703,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1703,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1704,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:1713,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1724,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1725,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1729,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 5
    argNames:
    - self
    - devices
    - remote_filter
    - remote_upload
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - FwupdRemote*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1735
    functionName: fu_util_report_history_for_remote
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_upload_report
    - fwupd_remote_build_report_uri
    - fwupd_client_self_sign
    - _
    - fu_console_input_bool
    - g_set_error_literal
    - fwupd_client_build_report_history
    - fwupd_client_get_report_metadata
    - fu_console_print_kv
    - g_autoptr
    - fwupd_remote_has_flag
    - g_strcmp0
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_report_history_for_remote(FuUtil *self,\n\t\t\t\t
      \ GPtrArray *devices,\n\t\t\t\t  FwupdRemote *remote_filter,\n\t\t\t\t  FwupdRemote
      *remote_upload,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1740,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1741,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1742,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1742,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1745,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:1751,1
    - Dst: fu_util_report_history_for_remote
      Src: /src/fwupd/src/fu-util.c:1754,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1763,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1764,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1764,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:1765,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1766,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1775,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:1778,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1784
    functionName: fu_util_report_history_force
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fwupd_client_get_remote_by_id
    - g_debug
    - g_string_new
    - fwupd_client_get_history
    - fwupd_device_get_id
    - fu_console_print_literal
    - fu_util_report_history_for_remote
    - g_ptr_array_index
    - g_autoptr
    - fwupd_client_modify_device
    - ngettext
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_history_force(FuUtil *self, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1789,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1790,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:1791,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1792,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1795,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1798,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1801,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1805,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1807,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:1808,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1808,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1813,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:1817,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:1822,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1823,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1823,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1829,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1830,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1831,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1832,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/src/fu-util.c:1833,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1833,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:1836,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:1836,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1841,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1849,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1855,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1858,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/src/fu-util.c:1858,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1859,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1860,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1862,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:1862,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:1865,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/src/fu-util.c:1866,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-util.c:1873,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util.c:1873,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/src/fu-util.c:1874,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-util.c:1875,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-util.c:1876,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1881,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1882,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:1884,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-util.c:1891,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util.c:1891,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/src/fu-util.c:1892,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-util.c:1893,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-util.c:1894,1
    - Dst: fu_archive_firmware_set_format
      Src: /src/fwupd/src/fu-util.c:1898,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/src/fu-util.c:1898,1
    - Dst: fu_archive_firmware_set_compression
      Src: /src/fwupd/src/fu-util.c:1899,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/src/fu-util.c:1899,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:1901,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1901,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-util.c:1902,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/src/fu-util.c:1903,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1907,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1907,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1912
    functionName: fu_util_report_export
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_archive_firmware_set_format
    - g_ptr_array_new
    - fwupd_update_state_to_string
    - fwupd_device_match_flags
    - g_object_ref
    - g_debug
    - fwupd_device_has_flag
    - g_file_new_for_path
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - g_strv_length
    - fu_console_print_kv
    - FU_ARCHIVE_FIRMWARE
    - fu_firmware_write_file
    - fu_archive_firmware_new
    - fu_firmware_add_image
    - fwupd_device_get_id
    - fwupd_client_get_report_metadata
    - fwupd_client_build_report_history
    - g_autoptr
    - g_bytes_new
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fwupd_device_get_update_state
    - fu_firmware_set_id
    - fwupd_client_get_history
    - fwupd_device_has_guid
    - fwupd_client_self_sign
    - g_strdup_printf
    - _
    - g_set_error_literal
    - g_strcmp0
    - fu_archive_firmware_set_compression
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_export(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1919,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1923,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1926,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1931,1
    - Dst: fwupd_device_remove_flag
      Src: /src/fwupd/src/fu-util.c:1932,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1938,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:1939,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:1940,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:1940,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1941,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1945,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:1946,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:1952,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1956,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1957,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:1961,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1962,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:1962,1
    - Dst: fu_util_report_history_for_remote
      Src: /src/fwupd/src/fu-util.c:1967,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:1972,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:1974,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:1974,1
    - Dst: fu_util_report_history_force
      Src: /src/fwupd/src/fu-util.c:1985,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1986,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1995,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1996,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1996,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:1997,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1998,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2007,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - self
    - only_automatic_reports
    - error
    argTypes:
    - FuUtil*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 2009
    functionName: fu_util_report_history_full
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print_literal
    - g_propagate_error
    - fwupd_remote_has_flag
    - fu_util_report_history_force
    - g_debug
    - fwupd_device_has_flag
    - fu_util_report_history_for_remote
    - g_ptr_array_index
    - g_get_prgname
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_get_id
    - fwupd_remote_get_id
    - fwupd_device_remove_flag
    - g_autoptr
    - fwupd_device_get_name
    - fwupd_client_modify_device
    - fwupd_client_get_remotes
    - fwupd_client_get_history
    - _
    - g_strdup_printf
    - g_set_error_literal
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_history_full(FuUtil *self, gboolean only_automatic_reports,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2014,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2015,1
    - Dst: fu_util_report_history_full
      Src: /src/fwupd/src/fu-util.c:2021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2011
    functionDepth: 4
    functionLinenumber: 2011
    functionLinenumberEnd: 2022
    functionName: fu_util_report_history
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - g_strv_length
    - fu_util_report_history_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_history(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2027,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2028,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2028,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:2031,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2037,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:2037,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:2038,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:2039,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:2040,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:2041,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2046,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:2050,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2054,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2054,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:2056,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2059,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2059,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2065
    functionName: fu_util_get_history
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - fwupd_client_get_history
    - g_node_append_data
    - json_builder_begin_object
    - fwupd_device_match_flags
    - fu_util_print_node
    - g_ptr_array_index
    - g_autoptr
    - fwupd_device_get_release_default
    - json_builder_end_object
    - json_builder_new
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_history(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-util.c:2070,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2071,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:2073,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-util.c:2076,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2081,1
    - Dst: fwupd_client_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2089
    functionName: fu_util_get_device_by_id
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 3
    functionsReached:
    - fwupd_guid_is_valid
    - fwupd_client_get_device_by_id
    - g_set_error_literal
    - fwupd_client_get_devices_by_guid
    - g_autoptr
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fu_util_get_device_by_id(FuUtil *self, const gchar *id, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2094,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2097,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2098,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2099,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2100,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2106,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2114,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-util.c:2117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2091
    functionDepth: 2
    functionLinenumber: 2091
    functionLinenumberEnd: 2118
    functionName: fu_util_get_device_or_prompt
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_client_get_devices
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fu_util_prompt_for_device
    - fu_util_get_device_by_id
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fu_util_get_device_or_prompt(FuUtil *self, gchar **values, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2126,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2129,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2130,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2138,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-util.c:2139,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2139,1
    - Dst: fwupd_device_get_version_format
      Src: /src/fwupd/src/fu-util.c:2141,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2142,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2147,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - device
    - version
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2154
    functionName: fu_util_get_release_for_device_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_device_get_version_format
    - g_set_error
    - fu_version_compare
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_autoptr
    - fwupd_client_get_releases
    - fwupd_device_get_name
    - fwupd_release_get_version
    linkageType: ''
    returnType: FwupdRelease
    signature: "FwupdRelease *\nfu_util_get_release_for_device_version(FuUtil *self,\n\t\t\t\t
      \      FwupdDevice *device,\n\t\t\t\t       const gchar *version,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2159,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2161,1
    - Dst: fwupd_client_clear_results
      Src: /src/fwupd/src/fu-util.c:2165,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2156
    functionDepth: 3
    functionLinenumber: 2156
    functionLinenumberEnd: 2169
    functionName: fu_util_clear_results
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - fu_util_get_device_or_prompt
    - fwupd_client_clear_results
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_clear_results(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2174,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2177,1
    - Dst: fwupd_client_verify_update
      Src: /src/fwupd/src/fu-util.c:2181,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2182,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:2185,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2185,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2190,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2171
    functionDepth: 3
    functionLinenumber: 2171
    functionLinenumberEnd: 2193
    functionName: fu_util_verify_update
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_get_device_or_prompt
    - fwupd_client_verify_update
    - g_prefix_error
    - _
    - fwupd_device_get_id
    - fu_console_print_literal
    - g_autoptr
    - fwupd_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_verify_update(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2198,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:2201,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2204,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2207,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2208,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2211,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2214,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2214,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:2216,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2217,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-util.c:2223,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:2227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2195
    functionDepth: 3
    functionLinenumber: 2195
    functionLinenumberEnd: 2232
    functionName: fu_util_download_metadata_enable_lvfs
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - fu_util_modify_remote_warning
    - _
    - fwupd_client_refresh_remote
    - fu_console_print_literal
    - fwupd_remote_get_id
    - g_autoptr
    - fu_console_input_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_download_metadata_enable_lvfs(FuUtil *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2237,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2241,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2245,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:2246,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:2248,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-util.c:2251,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2253,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2254,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2255,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2256,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - self
    - age_oldest
    - error
    argTypes:
    - FuUtil*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2269
    functionName: fu_util_check_oldest_remote
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - g_debug
    - fwupd_remote_get_age
    - g_ptr_array_index
    - g_set_error_literal
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_remote_has_flag
    - fwupd_client_get_remotes
    - fwupd_remote_needs_refresh
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_oldest_remote(FuUtil *self, guint64 *age_oldest,
      GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2278,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2279,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2280,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:2280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2281,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2283,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2287,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:2288,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:2290,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-util.c:2294,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2295,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2296,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2297,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2301,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2303,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2304,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:2305,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2318,1
    - Dst: fu_util_download_metadata_enable_lvfs
      Src: /src/fwupd/src/fu-util.c:2322,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2328,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2333,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2342,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2348,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2349,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2351,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:2357,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2357,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:2359,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:2361,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2366,1
    - Dst: fu_util_report_history_full
      Src: /src/fwupd/src/fu-util.c:2369,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2370,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:2371,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:2371,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2374,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2271
    functionDepth: 4
    functionLinenumber: 2271
    functionLinenumberEnd: 2379
    functionName: fu_util_download_metadata
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fwupd_remote_get_age
    - fu_console_print_literal
    - g_propagate_error
    - fwupd_remote_has_flag
    - g_string_append
    - g_string_append_printf
    - fwupd_remote_get_kind
    - g_set_error
    - g_debug
    - fwupd_device_has_flag
    - fwupd_client_refresh_remote
    - g_ptr_array_index
    - ngettext
    - g_steal_pointer
    - g_error_matches
    - fu_util_download_metadata_enable_lvfs
    - fu_util_report_history_full
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_client_get_remotes
    - fwupd_remote_needs_refresh
    - _
    - fwupd_client_get_devices
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_download_metadata(FuUtil *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2384,1
    - Dst: fu_util_download_metadata
      Src: /src/fwupd/src/fu-util.c:2385,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2386,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2387,1
    - Dst: fwupd_client_update_metadata
      Src: /src/fwupd/src/fu-util.c:2395,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2407,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2381
    functionDepth: 5
    functionLinenumber: 2381
    functionLinenumberEnd: 2409
    functionName: fu_util_refresh
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_download_metadata
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_client_update_metadata
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_refresh(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2415,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2416,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2418,1
    - Dst: fwupd_client_get_results
      Src: /src/fwupd/src/fu-util.c:2422,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2423,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2429,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:2429,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:2430,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:2431,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2431,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:2432,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:2433,1
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-util.c:2435,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2411
    functionDepth: 3
    functionLinenumber: 2411
    functionLinenumberEnd: 2438
    functionName: fu_util_get_results
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_get_device_or_prompt
    - fu_util_print_builder
    - fu_util_device_to_string
    - json_builder_begin_object
    - FWUPD_CODEC
    - fwupd_device_get_id
    - fu_console_print_literal
    - fwupd_codec_to_json
    - g_autoptr
    - fwupd_client_get_results
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_results(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2443,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2444,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2447,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2452,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2453,1
    - Dst: fu_util_get_releases_as_json
      Src: /src/fwupd/src/fu-util.c:2461,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2465,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2465,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util.c:2468,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2470,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2472,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util.c:2476,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2476,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2477,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2480,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2480,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2482,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2483,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2487,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2487,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2440
    functionDepth: 3
    functionLinenumber: 2440
    functionLinenumberEnd: 2493
    functionName: fu_util_get_releases
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_util_get_device_or_prompt
    - fwupd_codec_to_string
    - g_node_append_data
    - FWUPD_CODEC
    - _
    - fu_util_get_releases_as_json
    - fwupd_device_get_id
    - fu_console_print_literal
    - g_ptr_array_index
    - fu_util_print_node
    - g_autoptr
    - fwupd_client_get_releases
    - g_getenv
    - fwupd_release_match_flags
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_releases(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2500,1
    - Dst: fwupd_release_array_filter_flags
      Src: /src/fwupd/src/fu-util.c:2503,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2512,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2513,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2517,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2517,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2519,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2520,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2523,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:2526,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2528,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2534,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - rels_unfiltered
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2536
    functionName: fu_util_prompt_for_release
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_console_input_uint
    - _
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_release_array_filter_flags
    - fu_console_print
    - fwupd_release_get_version
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fu_util_prompt_for_release(FuUtil *self, GPtrArray *rels_unfiltered, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2541,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2544,1
    - Dst: fwupd_client_verify
      Src: /src/fwupd/src/fu-util.c:2548,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2549,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:2552,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2552,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2557,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2538
    functionDepth: 3
    functionLinenumber: 2538
    functionLinenumberEnd: 2560
    functionName: fu_util_verify
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_get_device_or_prompt
    - g_prefix_error
    - _
    - fwupd_device_get_id
    - fu_console_print_literal
    - g_autoptr
    - fwupd_device_get_name
    - fwupd_client_verify
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_verify(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2565,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2568,1
    - Dst: fwupd_client_unlock
      Src: /src/fwupd/src/fu-util.c:2572,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2572,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2576,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2578,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:2581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2562
    functionDepth: 3
    functionLinenumber: 2562
    functionLinenumberEnd: 2582
    functionName: fu_util_unlock
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_get_device_or_prompt
    - fwupd_device_has_flag
    - fwupd_client_unlock
    - fwupd_device_get_id
    - g_autoptr
    - fu_util_prompt_complete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_unlock(FuUtil *self, gchar **values, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2592,1
    - Dst: fu_util_check_oldest_remote
      Src: /src/fwupd/src/fu-util.c:2596,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2605,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:2608,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2614,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2618,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2620,1
    - Dst: fu_util_download_metadata
      Src: /src/fwupd/src/fu-util.c:2625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2584
    functionDepth: 5
    functionLinenumber: 2584
    functionLinenumberEnd: 2626
    functionName: fu_util_perhaps_refresh_remotes
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_download_metadata
    - g_debug
    - _
    - fu_util_check_oldest_remote
    - fu_console_input_bool
    - fu_console_print
    - ngettext
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_perhaps_refresh_remotes(FuUtil *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2631,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:2631,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:2632,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:2633,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:2634,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2636,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2637,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2638,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2641,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:2645,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2646,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2650,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2654,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2655,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-util.c:2659,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:2663,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:2664,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2664,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:2665,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:2667,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:2668,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:2669,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2670
    functionName: fu_util_get_updates_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_client_get_upgrades
    - g_debug
    - json_builder_begin_array
    - fu_util_print_builder
    - fwupd_device_has_flag
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - fwupd_device_get_id
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_device_add_release
    - fwupd_release_match_flags
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_updates_as_json(FuUtil *self, GPtrArray *devices,
      GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2675,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2677,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2678,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:2678,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2679,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:2679,1
    - Dst: fu_util_perhaps_refresh_remotes
      Src: /src/fwupd/src/fu-util.c:2682,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2686,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2687,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:2691,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2692,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2693,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2695,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2702,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:2705,1
    - Dst: fu_util_get_updates_as_json
      Src: /src/fwupd/src/fu-util.c:2709,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2712,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2713,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2714,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2718,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2719,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:2721,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2725,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2726,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:2732,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2733,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2737,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2739,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2742,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2742,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2746,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2747,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2751,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2751,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2757,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2760,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2762,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2763,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2763,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2767,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2770,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2772,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2773,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2773,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:2778,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2783,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2787,1
    - Dst: g_node_n_nodes
      Src: /src/fwupd/src/fu-util.c:2791,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2792,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2796,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2800,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2672
    functionDepth: 6
    functionLinenumber: 2672
    functionLinenumberEnd: 2804
    functionName: fu_util_get_updates
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_perhaps_show_unreported
    - g_ptr_array_new
    - fu_console_print_literal
    - g_node_n_nodes
    - fu_util_get_device_by_id
    - fwupd_device_match_flags
    - fwupd_client_get_upgrades
    - g_set_error
    - g_object_ref
    - g_debug
    - g_ptr_array_sort
    - fwupd_device_has_flag
    - g_node_append_data
    - fu_util_perhaps_refresh_remotes
    - fu_util_print_node
    - g_ptr_array_index
    - g_strv_length
    - g_node_new
    - fwupd_device_get_id
    - g_autoptr
    - fwupd_device_get_name
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - _
    - fwupd_client_get_devices
    - g_set_error_literal
    - fu_util_get_updates_as_json
    - fu_console_print
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_updates(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2809,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2809,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2810,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2812,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2816,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:2816,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:2817,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:2818,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:2819,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:2820,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2825,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2825,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2830,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2831,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2831,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2806
    functionDepth: 2
    functionLinenumber: 2806
    functionLinenumberEnd: 2836
    functionName: fu_util_get_remotes
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - g_node_append_data
    - json_builder_begin_object
    - _
    - fu_console_print_literal
    - fu_util_print_node
    - g_ptr_array_index
    - g_autoptr
    - fwupd_client_get_remotes
    - json_builder_end_object
    - json_builder_new
    - g_node_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_remotes(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2841,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:2842,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:2842,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2845,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2846,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2852,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2853,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/src/fu-util.c:2858,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2859,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2864,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - dev
    - host_bkc
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2869
    functionName: fu_util_get_release_with_tag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_auto
    - g_strsplit
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_client_get_releases
    - fwupd_release_match_flags
    - fwupd_release_has_tag
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fu_util_get_release_with_tag(FuUtil *self, FwupdDevice *dev, const gchar *host_bkc,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2874,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2877,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2878,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2884,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2885,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2889,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:2889,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2890,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2894,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - dev
    - branch
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2871
    functionDepth: 1
    functionLinenumber: 2871
    functionLinenumberEnd: 2899
    functionName: fu_util_get_release_with_branch
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_client_get_releases
    - g_strcmp0
    - fwupd_release_get_branch
    - fwupd_release_match_flags
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fu_util_get_release_with_branch(FuUtil *self, FwupdDevice *dev, const gchar
      *branch, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_host_bkc
      Src: /src/fwupd/src/fu-util.c:2904,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:2905,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:2905,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2906,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2907,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2908,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:2908,1
    - Dst: fu_util_get_release_with_tag
      Src: /src/fwupd/src/fu-util.c:2915,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2917,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2918,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2919,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2919,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:2922,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:2922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2927,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:2927,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2927,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:2932,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2932,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:2933,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:2934,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2938,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2939,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:2942,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2946,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2951,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2951,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2952,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2961
    functionName: fu_util_prompt_warning_bkc
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_propagate_error
    - g_string_append
    - g_string_append_printf
    - fwupd_client_get_host_bkc
    - g_debug
    - fwupd_device_get_version
    - fu_console_input_bool
    - g_get_prgname
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_get_id
    - fu_util_get_release_with_tag
    - g_autoptr
    - fwupd_release_get_version
    - fu_console_box
    - _
    - g_strdup_printf
    - g_set_error_literal
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_prompt_warning_bkc(FuUtil *self, FwupdDevice *dev,
      FwupdRelease *rel, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2967,1
    - Dst: fwupd_checksum_get_best
      Src: /src/fwupd/src/fu-util.c:2970,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-util.c:2970,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2972,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2977,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2981,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2983,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2986,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2986,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2986,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2990,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:2990,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:2991,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2995,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2997,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2998,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3002,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3008,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/src/fu-util.c:3009,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:3011,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util.c:3012,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util.c:3013,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-util.c:3014,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 2963
    functionDepth: 3
    functionLinenumber: 2963
    functionLinenumberEnd: 3027
    functionName: fu_util_prompt_warning_composite
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_util_prompt_warning
    - fwupd_device_has_flag
    - fwupd_client_get_releases
    - fwupd_release_has_checksum
    - fwupd_release_get_checksums
    - g_strdup_printf
    - fwupd_device_get_id
    - fwupd_client_get_devices
    - g_ptr_array_index
    - fwupd_device_get_composite_id
    - fwupd_client_get_host_product
    - g_autoptr
    - fwupd_checksum_get_best
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_prompt_warning_composite(FuUtil *self, FwupdDevice
      *dev, FwupdRelease *rel, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3035,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3036,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:3040,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3040,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3041,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util.c:3046,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util.c:3050,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-util.c:3051,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-util.c:3053,1
    - Dst: fu_util_prompt_warning_composite
      Src: /src/fwupd/src/fu-util.c:3055,1
    - Dst: fu_util_prompt_warning_bkc
      Src: /src/fwupd/src/fu-util.c:3057,1
    - Dst: fwupd_client_install_release
      Src: /src/fwupd/src/fu-util.c:3060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3029
    functionDepth: 4
    functionLinenumber: 3029
    functionLinenumberEnd: 3067
    functionName: fu_util_update_device_with_release
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_warning_fde
    - g_set_error
    - fu_util_prompt_warning
    - fwupd_client_install_release
    - fwupd_device_has_flag
    - fwupd_device_get_update_error
    - _
    - g_strdup_printf
    - fu_util_prompt_warning_bkc
    - fwupd_client_get_host_product
    - fwupd_device_get_name
    - fu_util_prompt_warning_composite
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_update_device_with_release(FuUtil *self,\n\t\t\t\t
      \  FwupdDevice *dev,\n\t\t\t\t   FwupdRelease *rel,\n\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3072,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3073,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:3074,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3075,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3078,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:3079,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:3084,1
    - Dst: fu_util_report_history
      Src: /src/fwupd/src/fu-util.c:3085,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:3086,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3087,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3069
    functionDepth: 5
    functionLinenumber: 3069
    functionLinenumberEnd: 3091
    functionName: fu_util_maybe_send_reports
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_client_get_remote_by_id
    - fwupd_release_get_remote_id
    - g_debug
    - g_error_matches
    - g_autoptr
    - fwupd_remote_has_flag
    - fu_util_report_history
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_maybe_send_reports(FuUtil *self, FwupdRelease *rel,
      GError **error)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3097,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3098,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3098,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3099,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3099,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3100,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3111,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3119,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-util.c:3120,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/src/fu-util.c:3120,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3121,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:3131,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:3135,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3137,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3138,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3139,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3140,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3142,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3147,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3148,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3150,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3151,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3156,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:3158,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3158,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3163,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:3165,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:3172,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3173,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3177,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3179,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3183,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:3184,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:3188,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-util.c:3195,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3196,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3200,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:3202,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3203,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3204,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3209,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3212,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3215,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3218,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3224,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3224,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3231,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3234,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3236,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3237,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3237,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3241,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3244,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3246,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3247,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3247,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3251,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3255,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3257,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3258,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3258,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util.c:3262,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util.c:3264,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3267,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3274,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3283,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3287,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 125
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3093
    functionDepth: 6
    functionLinenumber: 3093
    functionLinenumberEnd: 3288
    functionName: fu_util_update
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new
    - fu_console_print_literal
    - g_propagate_error
    - fwupd_device_match_flags
    - fwupd_client_get_upgrades
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_util_maybe_send_reports
    - g_ptr_array_sort
    - fwupd_device_has_flag
    - fu_util_update_device_with_release
    - fu_util_display_current_message
    - g_ptr_array_index
    - g_strv_length
    - fwupd_device_id_is_valid
    - fu_util_prompt_complete
    - fu_console_print
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_get_id
    - fwupd_device_has_problem
    - g_autoptr
    - fwupd_device_get_name
    - g_ptr_array_add
    - g_warning
    - fwupd_device_get_problems
    - fu_util_device_problem_to_string
    - fwupd_device_has_guid
    - _
    - fwupd_client_get_devices
    - g_set_error_literal
    - g_strcmp0
    - fwupd_guid_is_valid
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_update(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3293,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3294,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3295,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3303,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3306,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:3307,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3318,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3320
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3320
    functionName: fu_util_remote_modify
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_remote_get_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_modify(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3325,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3326,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3327,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3333,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-util.c:3336,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3338,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:3339,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:3350,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3352,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3352,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:3356,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3360,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3362,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3364,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3364,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:3368,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3376,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3322
    functionDepth: 3
    functionLinenumber: 3322
    functionLinenumberEnd: 3378
    functionName: fu_util_remote_enable
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - fwupd_remote_get_kind
    - fwupd_client_modify_remote
    - fu_util_modify_remote_warning
    - _
    - fwupd_client_refresh_remote
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_remote_get_id
    - g_autoptr
    - fu_console_input_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_enable(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3383,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3385,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3386,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3394,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3397,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3409,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3380
    functionDepth: 1
    functionLinenumber: 3380
    functionLinenumberEnd: 3411
    functionName: fu_util_remote_disable
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_disable(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3418,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3419,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3420,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3423,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3431,1
    - Dst: fwupd_client_get_downgrades
      Src: /src/fwupd/src/fu-util.c:3436,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3437,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:3444,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3444,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3444,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:3445,1
    - Dst: fu_util_prompt_for_release
      Src: /src/fwupd/src/fu-util.c:3450,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3457,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3459,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3462,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3465,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3468,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3468,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3479,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3413
    functionDepth: 6
    functionLinenumber: 3413
    functionLinenumberEnd: 3484
    functionName: fu_util_downgrade
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_util_get_device_or_prompt
    - fwupd_client_get_downgrades
    - fu_util_maybe_send_reports
    - g_debug
    - fu_util_prompt_for_release
    - fu_util_update_device_with_release
    - g_steal_pointer
    - g_prefix_error
    - _
    - g_strdup_printf
    - fwupd_device_get_id
    - fu_util_display_current_message
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - fwupd_device_get_name
    - fu_util_prompt_complete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_downgrade(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3490,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3491,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3492,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3495,1
    - Dst: fu_util_get_release_for_device_version
      Src: /src/fwupd/src/fu-util.c:3501,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:3501,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3508,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3510,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3513,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3516,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3519,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3519,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3530,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3486
    functionDepth: 6
    functionLinenumber: 3486
    functionLinenumberEnd: 3535
    functionName: fu_util_reinstall
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_util_get_release_for_device_version
    - fu_util_get_device_or_prompt
    - g_debug
    - fwupd_device_get_version
    - fu_util_maybe_send_reports
    - g_steal_pointer
    - fu_util_update_device_with_release
    - fu_util_display_current_message
    - g_propagate_error
    - g_autoptr
    - fu_util_prompt_complete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_reinstall(FuUtil *self, gchar **values, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3541,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3542,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3543,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3546,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:3547,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-util.c:3547,1
    - Dst: fu_util_local_install
      Src: /src/fwupd/src/fu-util.c:3548,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3553,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3558,1
    - Dst: fu_util_get_release_for_device_version
      Src: /src/fwupd/src/fu-util.c:3559,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3563,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:3564,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3565,1
    - Dst: fu_util_prompt_for_release
      Src: /src/fwupd/src/fu-util.c:3570,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3577,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3579,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3582,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3585,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3588,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3588,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3599,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3537
    functionDepth: 6
    functionLinenumber: 3537
    functionLinenumberEnd: 3604
    functionName: fu_util_install
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_warning
    - fu_util_get_release_for_device_version
    - fu_util_get_device_or_prompt
    - g_debug
    - fu_util_maybe_send_reports
    - fu_util_prompt_for_release
    - fwupd_client_get_releases
    - fu_util_update_device_with_release
    - g_steal_pointer
    - fu_util_display_current_message
    - fwupd_device_get_id
    - fu_util_is_url
    - fu_util_local_install
    - g_strv_length
    - g_propagate_error
    - g_file_test
    - g_autoptr
    - fu_util_prompt_complete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_install(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3606
    functionDepth: 0
    functionLinenumber: 3606
    functionLinenumberEnd: 3610
    functionName: _g_str_equal0
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_str_equal0(gconstpointer str1, gconstpointer str2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3617,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3618,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3619,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:3619,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3620,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3621,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3626,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:3631,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3632,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3640,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:3641,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:3642,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-util.c:3646,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3648,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:3648,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3652,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3655,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3660,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3660,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3662,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3663,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3666,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:3670,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3670,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3672,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3678,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3682,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:3682,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3683,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3687,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3688,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3694,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3695,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:3695,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:3696,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3701,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3705,1
    - Dst: fu_util_switch_branch_warning
      Src: /src/fwupd/src/fu-util.c:3710,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3717,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3719,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3722,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3725,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3728,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3728,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3739,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3743,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3612
    functionDepth: 6
    functionLinenumber: 3612
    functionLinenumberEnd: 3744
    functionName: fu_util_switch_branch
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_find_with_equal_func
    - g_propagate_error
    - g_set_error
    - fu_util_get_device_or_prompt
    - g_object_ref
    - fu_util_maybe_send_reports
    - g_debug
    - fu_util_switch_branch_warning
    - fu_util_update_device_with_release
    - fu_util_display_current_message
    - g_ptr_array_index
    - fu_util_branch_for_display
    - g_strv_length
    - fu_util_prompt_complete
    - fwupd_release_get_branch
    - fu_console_print
    - g_steal_pointer
    - fwupd_device_get_id
    - fwupd_device_get_branch
    - g_autoptr
    - fwupd_device_get_name
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_warning
    - _
    - g_set_error_literal
    - g_strdup
    - fwupd_client_get_releases
    - g_strcmp0
    - fu_console_input_uint
    - fwupd_release_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_switch_branch(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3749,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3753,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:3755,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3759,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3760,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3765,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:3766,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:3769,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3770,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3771,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3774,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3783,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3792,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:3793,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3797,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3799,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3803,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3804,1
    - Dst: fwupd_client_activate
      Src: /src/fwupd/src/fu-util.c:3805,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3807,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3817,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3817,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3819
      start: 3746
    functionDepth: 2
    functionLinenumber: 3746
    functionLinenumberEnd: 3819
    functionName: fu_util_activate
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_has_flag
    - fwupd_client_activate
    - _
    - fwupd_device_get_id
    - fu_console_print_literal
    - fwupd_client_get_devices
    - g_ptr_array_index
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - fwupd_device_get_name
    - g_ptr_array_new_with_free_func
    - fu_console_print
    - g_ptr_array_add
    - fu_util_get_device_by_id
    - fwupd_device_match_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_activate(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:3824,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3827,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3828,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:3836,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-util.c:3838,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:3840,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:3842,1
    - Dst: fwupd_client_set_approved_firmware
      Src: /src/fwupd/src/fu-util.c:3846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3821
    functionDepth: 1
    functionLinenumber: 3821
    functionLinenumberEnd: 3850
    functionName: fu_util_set_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_auto
    - fwupd_client_set_approved_firmware
    - g_strsplit
    - g_set_error_literal
    - g_strv_length
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_set_approved_firmware(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3855,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:3855,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:3856,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/src/fu-util.c:3857,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/src/fu-util.c:3858,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/src/fu-util.c:3860,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/src/fu-util.c:3861,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:3862,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:3863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - csums
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3852
    functionDepth: 2
    functionLinenumber: 3852
    functionLinenumberEnd: 3864
    functionName: fu_util_get_checksums_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - fu_util_print_builder
    - json_builder_end_array
    - json_builder_begin_object
    - json_builder_add_string_value
    - json_builder_set_member_name
    - g_autoptr
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_checksums_as_json(FuUtil *self, gchar **csums,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:3869,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3872,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3873,1
    - Dst: fwupd_client_get_approved_firmware
      Src: /src/fwupd/src/fu-util.c:3881,1
    - Dst: fu_util_get_checksums_as_json
      Src: /src/fwupd/src/fu-util.c:3885,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3886,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3889,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3889,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3891,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:3895,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3895,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3866
    functionDepth: 3
    functionLinenumber: 3866
    functionLinenumberEnd: 3900
    functionName: fu_util_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_util_get_checksums_as_json
    - fwupd_client_get_approved_firmware
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_console_print
    - ngettext
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_approved_firmware(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3906,1
    - Dst: fwupd_client_modify_config
      Src: /src/fwupd/src/fu-util.c:3907,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3914,1
    - Dst: fwupd_client_modify_config
      Src: /src/fwupd/src/fu-util.c:3915,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3923,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:3934,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3938,1
    - Dst: fu_util_quit
      Src: /src/fwupd/src/fu-util.c:3942,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:3944,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3948,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3902
    functionDepth: 2
    functionLinenumber: 3902
    functionLinenumberEnd: 3950
    functionName: fu_util_modify_config
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_quit
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_console_input_bool
    - fwupd_client_connect
    - fwupd_client_modify_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_modify_config(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3956,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3957,1
    - Dst: fwupd_client_reset_config
      Src: /src/fwupd/src/fu-util.c:3963,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:3970,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3974,1
    - Dst: fu_util_quit
      Src: /src/fwupd/src/fu-util.c:3977,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:3979,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3983,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3983,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3952
    functionDepth: 2
    functionLinenumber: 3952
    functionLinenumberEnd: 3985
    functionName: fu_util_reset_config
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_quit
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fu_console_input_bool
    - fwupd_client_connect
    - fwupd_client_reset_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_reset_config(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3990,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:3993,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3998,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:3999,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:4001,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:4002,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 3987
    functionDepth: 1
    functionLinenumber: 3987
    functionLinenumberEnd: 4011
    functionName: fu_util_get_remote_with_report_uri
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_remote_get_report_uri
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fwupd_remote_has_flag
    - fwupd_client_get_remotes
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_util_get_remote_with_report_uri(FuUtil *self, GError **error)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4020,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4021,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4022,1
    - Dst: fu_util_get_remote_with_report_uri
      Src: /src/fwupd/src/fu-util.c:4025,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4027,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:4032,1
    - Dst: fwupd_client_build_report_security
      Src: /src/fwupd/src/fu-util.c:4035,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4041,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4042,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4046,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:4048,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:4055,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4066,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4067,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4068,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:4069,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4070,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4070,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4072,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4072,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4073,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4073,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4074,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:4083,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:4086,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4095,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4097,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4100,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4101,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4105,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:4106,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:4107,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - self
    - attrs
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4013
    functionDepth: 2
    functionLinenumber: 4013
    functionLinenumberEnd: 4117
    functionName: fu_util_upload_security
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_upload_report
    - fwupd_client_build_report_security
    - g_debug
    - fwupd_remote_build_report_uri
    - fwupd_client_modify_remote
    - _
    - fwupd_client_self_sign
    - fu_console_input_bool
    - fu_console_print_literal
    - fwupd_remote_get_report_uri
    - g_set_error_literal
    - fwupd_client_get_report_metadata
    - fu_console_print_kv
    - fwupd_remote_get_id
    - g_autoptr
    - fwupd_remote_get_title
    - fwupd_remote_has_flag
    - fu_util_get_remote_with_report_uri
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_upload_security(FuUtil *self, GPtrArray *attrs, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4127,1
    - Dst: json_builder_new
      Src: /src/fwupd/src/fu-util.c:4127,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/src/fu-util.c:4129,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4132,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4136,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:4143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4145,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util.c:4146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:4149,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:4149,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4152,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/src/fu-util.c:4158,1
    - Dst: fu_util_print_builder
      Src: /src/fwupd/src/fu-util.c:4159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - attrs
    - events
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GPtrArray*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4160
      start: 4119
    functionDepth: 2
    functionLinenumber: 4119
    functionLinenumberEnd: 4160
    functionName: fu_util_security_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_codec_array_to_json
    - fu_util_print_builder
    - json_builder_begin_object
    - fwupd_device_get_issues
    - json_builder_end_object
    - g_ptr_array_index
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_security_as_json(FuUtil *self,\n\t\t\t GPtrArray
      *attrs,\n\t\t\t GPtrArray *events,\n\t\t\t GPtrArray *devices,\n\t\t\t GError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_host_bkc
      Src: /src/fwupd/src/fu-util.c:4165,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4167,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4173,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4177,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4178,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4179,1
    - Dst: fu_util_get_release_with_tag
      Src: /src/fwupd/src/fu-util.c:4183,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-util.c:4184,1
    - Dst: fu_util_get_release_with_branch
      Src: /src/fwupd/src/fu-util.c:4185,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-util.c:4187,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4190,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4196,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4197,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4198,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4199,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4203,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4208,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:4208,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:4208,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4212,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4213,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:4214,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:4215,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:4216,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4217,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4218,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4219,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4223,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4223,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:4226,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4232,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4241,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4246,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4162
    functionDepth: 5
    functionLinenumber: 4162
    functionLinenumberEnd: 4247
    functionName: fu_util_sync
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_propagate_error
    - fwupd_client_get_host_bkc
    - g_set_error
    - g_debug
    - fwupd_device_get_version
    - fu_util_update_device_with_release
    - fu_util_display_current_message
    - g_ptr_array_index
    - fu_util_prompt_complete
    - g_steal_pointer
    - g_error_matches
    - fu_util_get_release_with_branch
    - fwupd_device_get_id
    - fu_device_get_branch
    - fu_util_get_release_with_tag
    - g_autoptr
    - fwupd_release_get_version
    - fwupd_client_get_devices
    - g_set_error_literal
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_sync(FuUtil *self, gchar **values, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4252,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4252,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4253,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4253,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4255,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4258,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-util.c:4259,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4261,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-util.c:4261,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-util.c:4263,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-util.c:4264,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-util.c:4265,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4266,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4267,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4270,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-util.c:4273,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-util.c:4274,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-util.c:4275,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4276,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4277,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4279,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4283,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4284,1
    - Dst: fwupd_security_attr_get_kernel_current_value
      Src: /src/fwupd/src/fu-util.c:4285,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4286,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4289,1
    - Dst: fwupd_security_attr_get_kernel_current_value
      Src: /src/fwupd/src/fu-util.c:4291,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4292,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4294,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4297,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4299,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4301,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4302,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4304,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:4310,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4313,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4313,1
    - Dst: fwupd_client_fix_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4315,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util.c:4316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuUtil*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4249
    functionDepth: 1
    functionLinenumber: 4249
    functionLinenumberEnd: 4324
    functionName: fu_util_security_fix_attr
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fwupd_security_attr_get_kernel_target_value
    - fwupd_security_attr_get_description
    - g_string_new
    - fwupd_security_attr_get_bios_setting_target_value
    - fwupd_security_attr_get_kernel_current_value
    - _
    - fwupd_security_attr_get_title
    - fwupd_security_attr_get_appstream_id
    - g_autoptr
    - fwupd_security_attr_get_bios_setting_id
    - fu_console_input_bool
    - fwupd_client_fix_host_security_attr
    - fu_console_box
    - g_string_append
    - fwupd_security_attr_get_bios_setting_current_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_fix_attr(FuUtil *self, FwupdSecurityAttr
      *attr, GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4332,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4333,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4337,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4341,1
    - Dst: fwupd_client_get_host_security_attrs
      Src: /src/fwupd/src/fu-util.c:4346,1
    - Dst: fwupd_client_get_host_security_events
      Src: /src/fwupd/src/fu-util.c:4351,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4356,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4357,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4359,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4359,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4365,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4367,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4368,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4368,1
    - Dst: fu_util_security_as_json
      Src: /src/fwupd/src/fu-util.c:4375,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4377,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4380,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/src/fu-util.c:4381,1
    - Dst: fu_util_security_attrs_to_string
      Src: /src/fwupd/src/fu-util.c:4388,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4389,1
    - Dst: fu_util_security_events_to_string
      Src: /src/fwupd/src/fu-util.c:4393,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4395,1
    - Dst: fu_util_security_issues_to_string
      Src: /src/fwupd/src/fu-util.c:4400,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4402,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4408,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util.c:4408,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4418,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util.c:4419,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util.c:4420,1
    - Dst: fu_util_security_fix_attr
      Src: /src/fwupd/src/fu-util.c:4421,1
    - Dst: fu_util_upload_security
      Src: /src/fwupd/src/fu-util.c:4429,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4436,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4326
    functionDepth: 4
    functionLinenumber: 4326
    functionLinenumberEnd: 4442
    functionName: fu_util_security
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_security_events_to_string
    - fu_console_print_literal
    - g_propagate_error
    - g_set_error
    - g_debug
    - fwupd_client_get_host_security_attrs
    - fwupd_client_get_host_security_id
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - fu_util_security_fix_attr
    - fu_util_prompt_complete
    - fwupd_client_get_host_security_events
    - g_error_matches
    - g_steal_pointer
    - fu_util_security_issues_to_string
    - fu_util_security_as_json
    - fwupd_security_attr_has_flag
    - fu_util_upload_security
    - g_autoptr
    - fu_util_security_attrs_to_string
    - _
    - fwupd_client_get_devices
    - g_strcmp0
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security(FuUtil *self, gchar **values, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - log_domain
    - log_level
    - message
    - user_data
    argTypes:
    - gchar*
    - GLogLevelFlags
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4444
    functionDepth: 0
    functionLinenumber: 4444
    functionLinenumberEnd: 4450
    functionName: fu_util_ignore_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fu_util_ignore_cb(const gchar *log_domain,\n\t\t  GLogLevelFlags
      log_level,\n\t\t  const gchar *message,\n\t\t  gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4457,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-util.c:4458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4460
      start: 4453
    functionDepth: 0
    functionLinenumber: 4453
    functionLinenumberEnd: 4460
    functionName: fu_util_sigint_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_cancellable_cancel
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_sigint_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4467,1
    - Dst: g_unix_signal_source_new
      Src: /src/fwupd/src/fu-util.c:4467,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:4468,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:4469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4463
    functionDepth: 0
    functionLinenumber: 4463
    functionLinenumberEnd: 4471
    functionName: fu_util_setup_signal_handlers
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_source_attach
    - g_steal_pointer
    - g_unix_signal_source_new
    - g_autoptr
    - g_source_set_callback
    linkageType: ''
    returnType: void
    signature: void fu_util_setup_signal_handlers(FuUtil *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_disconnect
      Src: /src/fwupd/src/fu-util.c:4480,1
    - Dst: g_main_context_iteration
      Src: /src/fwupd/src/fu-util.c:4481,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4484,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4487,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-util.c:4488,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-util.c:4489,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-util.c:4490,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4491,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4492,1
    - Dst: g_option_context_free
      Src: /src/fwupd/src/fu-util.c:4493,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:4494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4473
    functionDepth: 1
    functionLinenumber: 4473
    functionLinenumberEnd: 4495
    functionName: fu_util_private_free
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_main_loop_unref
    - g_object_unref
    - g_main_context_iteration
    - g_free
    - g_option_context_free
    - fwupd_client_disconnect
    - g_main_context_unref
    linkageType: ''
    returnType: void
    signature: void fu_util_private_free(FuUtil *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/src/fu-util.c:4500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4503,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4507,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4511,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4512,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4497
    functionDepth: 1
    functionLinenumber: 4497
    functionLinenumberEnd: 4523
    functionName: fu_util_check_daemon_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_daemon_version
    - g_set_error
    - _
    - g_set_error_literal
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_daemon_version(FuUtil *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util.c:4532,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/src/fu-util.c:4535,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util.c:4536,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:4537,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4549
      start: 4525
    functionDepth: 1
    functionLinenumber: 4525
    functionLinenumberEnd: 4549
    functionName: fu_util_check_polkit_actions
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - g_set_error_literal
    - fu_path_from_kind
    - g_file_test
    - g_getenv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_polkit_actions(GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4561,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4562,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:4564,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-util.c:4567,1
    - Dst: fu_util_prompt_for_release
      Src: /src/fwupd/src/fu-util.c:4570,1
    - Dst: fwupd_device_get_releases
      Src: /src/fwupd/src/fu-util.c:4570,1
    - Dst: fwupd_checksum_get_best
      Src: /src/fwupd/src/fu-util.c:4573,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-util.c:4573,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4575,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 4556
    functionDepth: 2
    functionLinenumber: 4556
    functionLinenumberEnd: 4582
    functionName: fu_util_get_history_checksum
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_releases
    - fu_util_prompt_for_release
    - fwupd_client_get_history
    - fwupd_release_get_checksums
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - fwupd_checksum_get_best
    - fu_util_prompt_for_device
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_get_history_checksum(FuUtil *self, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4589,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4590,1
    - Dst: fwupd_client_get_blocked_firmware
      Src: /src/fwupd/src/fu-util.c:4593,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4598,1
    - Dst: fu_util_get_history_checksum
      Src: /src/fwupd/src/fu-util.c:4599,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4603,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-util.c:4607,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4608,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4612,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4617,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4617,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:4620,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4620,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4622,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4623,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4625,1
    - Dst: fwupd_client_set_blocked_firmware
      Src: /src/fwupd/src/fu-util.c:4626,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4584
    functionDepth: 3
    functionLinenumber: 4584
    functionLinenumberEnd: 4627
    functionName: fu_util_block_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strv_contains
    - fwupd_client_set_blocked_firmware
    - g_new0
    - _
    - g_set_error_literal
    - g_strv_length
    - g_strdup
    - fu_util_get_history_checksum
    - g_strcmp0
    - fwupd_client_get_blocked_firmware
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_block_firmware(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4633,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4634,1
    - Dst: fwupd_client_get_blocked_firmware
      Src: /src/fwupd/src/fu-util.c:4638,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4643,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4644,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4648,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4653,1
    - Dst: fu_util_get_history_checksum
      Src: /src/fwupd/src/fu-util.c:4654,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4658,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-util.c:4662,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4663,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4667,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4672,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4672,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:4675,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4675,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4677,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:4678,1
    - Dst: fwupd_client_set_blocked_firmware
      Src: /src/fwupd/src/fu-util.c:4680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4681
      start: 4629
    functionDepth: 3
    functionLinenumber: 4629
    functionLinenumberEnd: 4681
    functionName: fu_util_unblock_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strv_contains
    - fwupd_client_set_blocked_firmware
    - g_new0
    - _
    - g_set_error_literal
    - g_strv_length
    - g_strdup
    - fu_util_get_history_checksum
    - g_strcmp0
    - fwupd_client_get_blocked_firmware
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_unblock_firmware(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4686,1
    - Dst: fwupd_client_get_blocked_firmware
      Src: /src/fwupd/src/fu-util.c:4689,1
    - Dst: fu_util_get_checksums_as_json
      Src: /src/fwupd/src/fu-util.c:4693,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4696,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4698,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4698,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4703,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4703,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4710
      start: 4683
    functionDepth: 3
    functionLinenumber: 4683
    functionLinenumberEnd: 4710
    functionName: fu_util_get_blocked_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_util_get_checksums_as_json
    - _
    - fu_console_print_literal
    - g_strv_length
    - fwupd_client_get_blocked_firmware
    - fu_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_blocked_firmware(FuUtil *self, gchar **values,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4716,1
    - Dst: fwupd_client_get_plugins
      Src: /src/fwupd/src/fu-util.c:4722,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4728,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-util.c:4729,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-util.c:4731,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-util.c:4733,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4748,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4748,1
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util.c:4751,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4754,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:4755,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util.c:4756,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4758,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4758,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:4759,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4764
      start: 4712
    functionDepth: 2
    functionLinenumber: 4712
    functionLinenumberEnd: 4764
    functionName: fu_util_show_plugin_warnings
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_plugin_has_flag
    - fwupd_client_get_plugins
    - g_string_append_printf
    - fu_console_print_full
    - g_string_new
    - fwupd_plugin_get_flags
    - _
    - g_strdup_printf
    - g_ptr_array_index
    - g_autoptr
    - fwupd_plugin_flag_to_string
    - fu_util_plugin_flag_to_string
    linkageType: ''
    returnType: void
    signature: void fu_util_show_plugin_warnings(FuUtil *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4769,1
    - Dst: fu_util_bios_settings_parse_argv
      Src: /src/fwupd/src/fu-util.c:4769,1
    - Dst: fwupd_client_modify_bios_setting
      Src: /src/fwupd/src/fu-util.c:4774,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4775,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:4776,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util.c:4784,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util.c:4785,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:4788,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4788,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4791,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4797,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - input
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4766
    functionDepth: 2
    functionLinenumber: 4766
    functionLinenumberEnd: 4802
    functionName: fu_util_set_bios_setting
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_client_modify_bios_setting
    - g_error_matches
    - g_prefix_error
    - _
    - fu_util_bios_settings_parse_argv
    - g_strdup_printf
    - fu_console_print_literal
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fu_util_prompt_complete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_set_bios_setting(FuUtil *self, gchar **input, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4807,1
    - Dst: fwupd_client_get_bios_settings
      Src: /src/fwupd/src/fu-util.c:4810,1
    - Dst: fu_util_bios_setting_console_print
      Src: /src/fwupd/src/fu-util.c:4814,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4817,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-util.c:4818,1
    - Dst: fu_util_bios_setting_to_string
      Src: /src/fwupd/src/fu-util.c:4819,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4820,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4825,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4829,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4833,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4804
    functionDepth: 3
    functionLinenumber: 4804
    functionLinenumberEnd: 4841
    functionName: fu_util_get_bios_setting
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - _
    - fwupd_client_get_bios_settings
    - fu_util_bios_setting_matches_args
    - fu_console_print_literal
    - g_ptr_array_index
    - fu_util_bios_setting_to_string
    - g_set_error_literal
    - g_autoptr
    - fu_util_bios_setting_console_print
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_bios_setting(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4847,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4851,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4855,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4856,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4861,1
    - Dst: fwupd_client_fix_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4864,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4871,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4843
    functionDepth: 1
    functionLinenumber: 4843
    functionLinenumberEnd: 4873
    functionName: fu_util_security_fix
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    - fwupd_client_fix_host_security_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_fix(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4881,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4882,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4883,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:4886,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:4889,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4894,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:4897,1
    - Dst: fwupd_client_build_report_devices
      Src: /src/fwupd/src/fu-util.c:4900,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4906,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4914,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4914,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4915,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4915,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4916,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4919,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:4922,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4923,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4927,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4929,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4930,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:4939,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4951,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4953,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4875
    functionDepth: 1
    functionLinenumber: 4875
    functionLinenumberEnd: 4957
    functionName: fu_util_report_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remote_by_id
    - fwupd_client_upload_report
    - fwupd_remote_build_report_uri
    - _
    - fu_console_print_literal
    - fwupd_client_get_devices
    - g_set_error_literal
    - fwupd_client_get_report_metadata
    - fu_console_print_kv
    - g_autoptr
    - fwupd_remote_get_title
    - fu_console_input_bool
    - fu_console_print
    - fwupd_client_build_report_devices
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_devices(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4963,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4967,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4971,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4972,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4977,1
    - Dst: fwupd_client_undo_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4980,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4990,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4992
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 4992
    functionName: fu_util_security_undo
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_client_undo_host_security_attr
    - _
    - fu_console_print_literal
    - g_set_error_literal
    - g_strv_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_undo(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4997,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:5001,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:5004,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:5005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 4994
    functionDepth: 3
    functionLinenumber: 4994
    functionLinenumberEnd: 5010
    functionName: fu_util_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - fu_util_get_device_or_prompt
    - g_autoptr
    - fwupd_client_modify_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_tag(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5015,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:5019,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:5022,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:5023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5028
      start: 5012
    functionDepth: 3
    functionLinenumber: 5012
    functionLinenumberEnd: 5028
    functionName: fu_util_emulation_untag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - fu_util_get_device_or_prompt
    - g_autoptr
    - fwupd_client_modify_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_untag(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:5034,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5035,1
    - Dst: fwupd_client_emulation_save
      Src: /src/fwupd/src/fu-util.c:5043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5044
      start: 5030
    functionDepth: 1
    functionLinenumber: 5030
    functionLinenumberEnd: 5044
    functionName: fu_util_emulation_save
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strv_length
    - fwupd_client_emulation_save
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_save(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:5050,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5051,1
    - Dst: fwupd_client_emulation_load
      Src: /src/fwupd/src/fu-util.c:5057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 5046
    functionDepth: 1
    functionLinenumber: 5046
    functionLinenumberEnd: 5058
    functionName: fu_util_emulation_load
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strv_length
    - fwupd_client_emulation_load
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_load(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5063,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:5067,1
    - Dst: fu_util_project_versions_as_json
      Src: /src/fwupd/src/fu-util.c:5073,1
    - Dst: fu_util_project_versions_to_string
      Src: /src/fwupd/src/fu-util.c:5074,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5060
    functionDepth: 3
    functionLinenumber: 5060
    functionLinenumberEnd: 5077
    functionName: fu_util_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_util_project_versions_as_json
    - fu_console_print_literal
    - fwupd_client_get_report_metadata
    - fu_util_project_versions_to_string
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_version(FuUtil *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5083,1
    - Dst: fu_console_setup
      Src: /src/fwupd/src/fu-util.c:5086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5079
    functionDepth: 1
    functionLinenumber: 5079
    functionLinenumberEnd: 5087
    functionName: fu_util_setup_interactive
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - fu_console_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_setup_interactive(FuUtil *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_is_running
      Src: /src/fwupd/src/fu-util.c:5093,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5096,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5096,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:5097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cancellable
    - user_data
    argTypes:
    - GCancellable*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5098
      start: 5089
    functionDepth: 1
    functionLinenumber: 5089
    functionLinenumberEnd: 5098
    functionName: fu_util_cancelled_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_main_loop_is_running
    - _
    - g_main_loop_quit
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_util_cancelled_cb(GCancellable *cancellable, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_util_print_error_as_json
      Src: /src/fwupd/src/fu-util.c:5104,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5100
    functionDepth: 3
    functionLinenumber: 5100
    functionLinenumberEnd: 5108
    functionName: fu_util_print_error
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_console_print_full
    - fu_util_print_error_as_json
    linkageType: ''
    returnType: void
    signature: void fu_util_print_error(FuUtil *self, const GError *error)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5126,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:5126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5127,1
    - Dst: g_date_time_new_now_utc
      Src: /src/fwupd/src/fu-util.c:5127,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5128,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5129,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5130,1
    - Dst: fu_util_cmd_array_new
      Src: /src/fwupd/src/fu-util.c:5130,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5132,1
    - Dst: fu_polkit_agent_new
      Src: /src/fwupd/src/fu-util.c:5132,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5144,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5152,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5160,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5168,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5176,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5184,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5192,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5200,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5208,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5216,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5224,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5232,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5240,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5248,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5256,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5264,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5272,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5280,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5288,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5296,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5304,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5312,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5321,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5330,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5338,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5346,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5356,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-util.c:5359,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-util.c:5361,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-util.c:5362,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-util.c:5363,1
    - Dst: g_set_prgname
      Src: /src/fwupd/src/fu-util.c:5364,1
    - Dst: fu_util_get_prgname
      Src: /src/fwupd/src/fu-util.c:5364,1
    - Dst: fwupd_error_quark
      Src: /src/fwupd/src/fu-util.c:5367,1
    - Dst: g_main_context_new
      Src: /src/fwupd/src/fu-util.c:5370,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-util.c:5371,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-util.c:5372,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:5373,1
    - Dst: fu_console_set_main_context
      Src: /src/fwupd/src/fu-util.c:5374,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5377,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5379,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5381,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5383,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5387,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5389,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5393,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5395,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5399,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5401,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5405,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5407,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5410,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5412,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5414,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5417,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5419,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5421,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5424,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5426,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5428,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5431,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5433,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5436,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5439,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5441,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5444,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5447,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5449,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5451,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5454,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5456,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5458,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5461,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5463,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5465,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5468,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5470,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5472,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5475,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5477,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5479,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5483,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5485,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5488,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5490,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5492,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5495,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5497,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5499,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5502,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5504,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5506,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5509,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5511,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5513,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5516,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5518,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5520,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5523,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5525,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5527,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5530,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5532,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5534,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5538,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5540,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5543,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5545,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5547,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5550,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5552,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5554,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5557,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5559,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5561,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5564,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5566,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5568,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5571,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5573,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5575,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5579,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5581,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5585,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5587,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5590,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5592,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5594,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5597,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5599,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5601,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5605,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5607,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5611,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5613,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5616,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5618,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5620,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5623,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5625,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5627,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5630,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5632,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5634,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5637,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5639,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5641,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5644,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5646,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5648,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5651,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5653,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5655,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5659,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5661,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5665,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5667,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5669,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5672,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5674,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5676,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5679,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5681,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5683,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5686,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5688,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5690,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5693,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5695,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5697,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5700,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5702,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5704,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5707,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5709,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5711,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5714,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5716,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5718,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5722,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-util.c:5726,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5727,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-util.c:5727,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5729,1
    - Dst: fu_util_cmd_array_sort
      Src: /src/fwupd/src/fu-util.c:5733,1
    - Dst: fu_util_setup_interactive
      Src: /src/fwupd/src/fu-util.c:5736,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util.c:5737,1
    - Dst: fu_console_set_interactive
      Src: /src/fwupd/src/fu-util.c:5749,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-util.c:5752,1
    - Dst: fu_util_cmd_array_to_string
      Src: /src/fwupd/src/fu-util.c:5753,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-util.c:5754,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/src/fu-util.c:5755,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5758,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-util.c:5763,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5763,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-util.c:5764,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-util.c:5765,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:5767,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5770,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5777,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5781,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5784,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/src/fu-util.c:5789,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5790,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5795,1
    - Dst: fu_util_parse_filter_device_flags
      Src: /src/fwupd/src/fu-util.c:5801,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:5807,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5807,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5808,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5809,1
    - Dst: fu_util_parse_filter_release_flags
      Src: /src/fwupd/src/fu-util.c:5814,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:5821,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5821,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5822,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5823,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5830,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5831,1
    - Dst: g_log_set_handler
      Src: /src/fwupd/src/fu-util.c:5833,1
    - Dst: fu_util_setup_signal_handlers
      Src: /src/fwupd/src/fu-util.c:5837,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5862,1
    - Dst: fu_polkit_agent_open
      Src: /src/fwupd/src/fu-util.c:5863,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:5864,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/src/fu-util.c:5872,1
    - Dst: fwupd_client_set_main_context
      Src: /src/fwupd/src/fu-util.c:5873,1
    - Dst: fwupd_client_download_set_retries
      Src: /src/fwupd/src/fu-util.c:5874,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5875,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5875,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5877,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5879,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5879,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5881,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5883,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5883,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5885,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5887,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5887,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5889,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:5893,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5895,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5898,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:5899,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5902,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5902,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5903,1
    - Dst: fwupd_client_get_tainted
      Src: /src/fwupd/src/fu-util.c:5907,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5908,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5912,1
    - Dst: fu_util_version
      Src: /src/fwupd/src/fu-util.c:5918,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5919,1
    - Dst: fu_util_show_plugin_warnings
      Src: /src/fwupd/src/fu-util.c:5927,1
    - Dst: fu_util_show_unsupported_warning
      Src: /src/fwupd/src/fu-util.c:5930,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/src/fu-util.c:5934,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:5934,1
    - Dst: fu_util_check_daemon_version
      Src: /src/fwupd/src/fu-util.c:5938,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5939,1
    - Dst: fu_util_check_polkit_actions
      Src: /src/fwupd/src/fu-util.c:5944,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5945,1
    - Dst: fwupd_client_set_feature_flags
      Src: /src/fwupd/src/fu-util.c:5957,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5962,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5962,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5963,1
    - Dst: fu_util_cmd_array_run
      Src: /src/fwupd/src/fu-util.c:5968,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-util.c:5973,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5977,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:5979,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:5980,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:5980,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5981,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:5981,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:5984,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5984,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5985,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:5986,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:5988,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:5990,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 220
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5997
      start: 5110
    functionDepth: 3
    functionLinenumber: 5110
    functionLinenumberEnd: 5997
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 3
    functionsReached:
    - fu_console_print_full
    - fu_util_print_error
    - fu_console_set_interactive
    - g_string_new
    - g_log_set_handler
    - fu_util_cmd_array_add
    - g_new0
    - fu_util_show_unsupported_warning
    - g_prefix_error
    - g_option_context_set_description
    - fu_console_print_literal
    - fu_util_show_plugin_warnings
    - fwupd_client_set_feature_flags
    - setlocale
    - g_main_loop_new
    - g_signal_connect
    - fu_util_cmd_array_sort
    - g_option_context_set_summary
    - fu_util_parse_filter_device_flags
    - fwupd_client_new
    - g_string_append_printf
    - fu_util_cmd_array_new
    - g_debug
    - g_option_context_new
    - fu_util_check_daemon_version
    - textdomain
    - fwupd_client_set_user_agent_for_package
    - fu_util_check_polkit_actions
    - FWUPD_CLIENT
    - g_critical
    - fu_util_cmd_array_run
    - N_
    - g_main_context_new
    - g_info
    - G_CALLBACK
    - g_get_prgname
    - fwupd_client_set_main_context
    - fu_util_get_prgname
    - fwupd_error_quark
    - g_error_matches
    - g_date_time_get_year
    - fu_util_cmd_array_to_string
    - G_CANCELLABLE
    - g_autoptr
    - g_setenv
    - g_set_prgname
    - g_ptr_array_new_with_free_func
    - g_option_context_add_main_entries
    - fwupd_client_download_set_retries
    - fwupd_client_connect
    - fu_console_set_main_context
    - fu_util_version
    - bindtextdomain
    - bind_textdomain_codeset
    - g_option_context_parse
    - fu_console_new
    - fu_polkit_agent_open
    - fu_util_setup_interactive
    - _
    - g_strdup_printf
    - g_cancellable_new
    - fu_util_setup_signal_handlers
    - fu_polkit_agent_new
    - fu_util_parse_filter_release_flags
    - g_date_time_new_now_utc
    - fwupd_client_get_tainted
    - g_set_application_name
    - fu_console_print
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/fwupd/src/fu-console.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-console.c:55,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-console.c:59,1
    - Dst: GetConsoleMode
      Src: /src/fwupd/src/fu-console.c:62,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-console.c:63,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-console.c:67,1
    - Dst: SetConsoleMode
      Src: /src/fwupd/src/fu-console.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-console.c:72,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-console.c:76,1
    - Dst: SetConsoleOutputCP
      Src: /src/fwupd/src/fu-console.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-console.c:80,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-console.c:84,1
    - Dst: SetConsoleCP
      Src: /src/fwupd/src/fu-console.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-console.c:88,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-console.c:92,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-console.c:96,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-console.c:96,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-console.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConsole*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 103
    functionName: fu_console_setup
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - GetConsoleMode
    - SetConsoleOutputCP
    - GetStdHandle
    - SetConsoleCP
    - isatty
    - SetConsoleMode
    - g_set_error_literal
    - GetLastError
    - fileno
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_setup(FuConsole *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: fu_console_erase_line
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_erase_line(FuConsole *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_erase_line
      Src: /src/fwupd/src/fu-console.c:117,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: fu_console_reset_line
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - fu_console_erase_line
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_reset_line(FuConsole *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-console.c:127,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:131,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:132,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:135,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:136,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:139,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - title
    - msg
    argTypes:
    - FuConsole*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 143
    functionName: fu_console_print_kv
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 4
    functionsReached:
    - g_auto
    - fu_console_reset_line
    - g_strsplit
    - fu_strwidth
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_print_kv(FuConsole *self, const gchar *title, const
      gchar *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:152,1
    - Dst: fgets
      Src: /src/fwupd/src/fu-console.c:153,1
    - Dst: g_strdelimit
      Src: /src/fwupd/src/fu-console.c:155,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-console.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: readline
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_strndup
    - fgets
    - g_print
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      readline(const gchar *prompt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:169,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:170,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:171,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-console.c:173,1
    - Dst: readline
      Src: /src/fwupd/src/fu-console.c:175,1
    - Dst: sscanf
      Src: /src/fwupd/src/fu-console.c:181,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:189,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - self
    - maxnum
    - format
    argTypes:
    - FuConsole*
    - guint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 193
    functionName: fu_console_input_uint
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - fu_console_print_full
    - va_end
    - readline
    - _
    - g_strdup_printf
    - sscanf
    - va_start
    - g_strdup_vprintf
    linkageType: ''
    returnType: guint
    signature: guint fu_console_input_uint(FuConsole *self, guint maxnum, const gchar
      *format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:202,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:203,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:204,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-console.c:206,1
    - Dst: readline
      Src: /src/fwupd/src/fu-console.c:213,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-console.c:215,1
    - Dst: g_ascii_toupper
      Src: /src/fwupd/src/fu-console.c:217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-console.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-console.c:220,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:226,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - def
    - format
    argTypes:
    - FuConsole*
    - gboolean
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: fu_console_input_bool
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 17
    functionsReached:
    - fu_console_print_full
    - va_end
    - strlen
    - g_ascii_toupper
    - readline
    - _
    - g_strdup_printf
    - va_start
    - g_strcmp0
    - g_strdup_vprintf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_input_bool(FuConsole *self, gboolean def, const
      gchar *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-console.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:236,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-console.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:237,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:237,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:246,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:249,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:250,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:256,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-console.c:257,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:257,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:258,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:259,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:264,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-console.c:265,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-console.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - text
    - line_len
    argTypes:
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 268
    functionName: fu_console_strsplit_words
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_auto
    - g_string_new
    - g_steal_pointer
    - g_strsplit
    - fu_strwidth
    - g_string_truncate
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_console_strsplit_words(const gchar *text, guint line_len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:279,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:280,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:283,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:284,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:287,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:289,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - start
    - text
    - end
    - padding
    - width
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: fu_console_box_line
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - fu_strwidth
    - g_print
    linkageType: ''
    returnType: void
    signature: "void fu_console_box_line(const gchar *start,\n\t\t    const gchar
      *text,\n\t\t    const gchar *end,\n\t\t    const gchar *padding,\n\t\t    guint
      width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:297,1
    - Dst: g_string_new_len
      Src: /src/fwupd/src/fu-console.c:297,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:299,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-console.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - width
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: fu_console_line
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - g_string_new_len
    - g_autoptr
    - fu_console_print_literal
    linkageType: ''
    returnType: void
    signature: void fu_console_line(FuConsole *self, guint width)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:311,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:316,1
    - Dst: fu_console_strsplit_words
      Src: /src/fwupd/src/fu-console.c:316,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-console.c:318,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:319,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:325,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-console.c:330,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:332,1
    - Dst: fu_console_strsplit_words
      Src: /src/fwupd/src/fu-console.c:332,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:335,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-console.c:341,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:342,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:349,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - title
    - body
    - width
    argTypes:
    - FuConsole*
    - gchar*
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 350
    functionName: fu_console_box
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - g_auto
    - fu_console_strsplit_words
    - fu_console_reset_line
    - g_strsplit
    - g_ptr_array_index
    - g_autoptr
    - fu_console_box_line
    linkageType: ''
    returnType: void
    signature: void fu_console_box(FuConsole *self, const gchar *title, const gchar
      *body, guint width)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:358,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:362,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:366,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:370,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:374,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:378,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:382,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:386,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:390,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:394,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:398,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:403,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:410,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - status
    argTypes:
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 411
    functionName: fu_console_status_to_string
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_status_to_string(FwupdStatus status)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - status
    argTypes:
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: _fu_status_is_predictable
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean _fu_status_is_predictable(FwupdStatus status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_timer_start
      Src: /src/fwupd/src/fu-console.c:437,1
    - Dst: _fu_status_is_predictable
      Src: /src/fwupd/src/fu-console.c:443,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-console.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 452
    functionName: fu_console_estimate_ready
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - _fu_status_is_predictable
    - g_timer_start
    - g_timer_elapsed
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_estimate_ready(FuConsole *self, guint percentage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:464,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:464,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:467,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-console.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 471
    functionName: fu_console_time_remaining_str
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - _
    - g_strdup
    - ngettext
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_time_remaining_str(FuConsole *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:478,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:478,1
    - Dst: fu_console_erase_line
      Src: /src/fwupd/src/fu-console.c:485,1
    - Dst: fu_console_status_to_string
      Src: /src/fwupd/src/fu-console.c:488,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:489,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:490,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:491,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:494,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:497,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:499,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:508,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:509,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-console.c:509,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:511,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:513,1
    - Dst: fu_console_estimate_ready
      Src: /src/fwupd/src/fu-console.c:516,1
    - Dst: fu_console_time_remaining_str
      Src: /src/fwupd/src/fu-console.c:517,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:519,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 525
    functionName: fu_console_refresh
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fu_console_estimate_ready
    - fu_console_erase_line
    - g_string_append_c
    - fu_strwidth
    - fu_console_status_to_string
    - g_autoptr
    - g_print
    - fu_console_time_remaining_str
    - g_string_append
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_console_refresh(FuConsole *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:539,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:539,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:541,1
    - Dst: g_string_append_vprintf
      Src: /src/fwupd/src/fu-console.c:542,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:543,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-console.c:547,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:547,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-console.c:548,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-console.c:549,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:553,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-console.c:555,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - flags
    - format
    argTypes:
    - FuConsole*
    - FuConsolePrintFlags
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 559
    functionName: fu_console_print_full
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 11
    functionsReached:
    - va_end
    - g_string_new
    - g_string_append_vprintf
    - g_string_prepend
    - fu_console_color_format
    - _
    - fu_console_reset_line
    - g_printerr
    - va_start
    - g_autoptr
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_print_full(FuConsole *self, FuConsolePrintFlags flags,
      const gchar *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:564,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: fu_console_print_literal
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 74
    functionsReached:
    - fu_console_reset_line
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_print_literal(FuConsole *self, const gchar *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:581,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:582,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:583,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-console.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 585
    functionName: fu_console_print
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 42
    functionsReached:
    - va_end
    - va_start
    - fu_console_print_literal
    - g_strdup_vprintf
    linkageType: ''
    returnType: void
    signature: void fu_console_print(FuConsole *self, const gchar *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_erase_line
      Src: /src/fwupd/src/fu-console.c:599,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:600,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: fu_console_set_progress_title
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 4
    functionsReached:
    - fu_console_refresh
    - fu_console_erase_line
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_set_progress_title(FuConsole *self, const gchar *title)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_context_ref
      Src: /src/fwupd/src/fu-console.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - main_ctx
    argTypes:
    - FuConsole*
    - GMainContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: fu_console_set_main_context
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 2
    functionsReached:
    - g_main_context_ref
    linkageType: ''
    returnType: void
    signature: void fu_console_set_main_context(FuConsole *self, GMainContext *main_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_get_monotonic_time
      Src: /src/fwupd/src/fu-console.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 631
    functionName: fu_console_spin_inc
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_get_monotonic_time
    linkageType: ''
    returnType: void
    signature: void fu_console_spin_inc(FuConsole *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONSOLE
      Src: /src/fwupd/src/fu-console.c:636,1
    - Dst: fu_console_spin_inc
      Src: /src/fwupd/src/fu-console.c:639,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: fu_console_spin_cb
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - fu_console_spin_inc
    - fu_console_refresh
    - FU_CONSOLE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_spin_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-console.c:651,1
    - Dst: g_timer_start
      Src: /src/fwupd/src/fu-console.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 661
    functionName: fu_console_spin_end
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_timer_start
    - g_source_destroy
    linkageType: ''
    returnType: void
    signature: void fu_console_spin_end(FuConsole *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-console.c:667,1
    - Dst: g_timeout_source_new
      Src: /src/fwupd/src/fu-console.c:668,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-console.c:669,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-console.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: fu_console_spin_start
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_source_destroy
    - g_timeout_source_new
    - g_source_attach
    - g_source_set_callback
    linkageType: ''
    returnType: void
    signature: void fu_console_spin_start(FuConsole *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:684,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:684,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-console.c:700,1
    - Dst: fu_console_status_to_string
      Src: /src/fwupd/src/fu-console.c:700,1
    - Dst: g_get_monotonic_time
      Src: /src/fwupd/src/fu-console.c:708,1
    - Dst: fu_console_spin_inc
      Src: /src/fwupd/src/fu-console.c:709,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:710,1
    - Dst: fu_console_spin_end
      Src: /src/fwupd/src/fu-console.c:716,1
    - Dst: fu_console_spin_start
      Src: /src/fwupd/src/fu-console.c:718,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:722,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - self
    - status
    - percentage
    argTypes:
    - FuConsole*
    - FwupdStatus
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 723
    functionName: fu_console_set_progress
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - fu_console_spin_end
    - fu_console_spin_start
    - g_get_monotonic_time
    - g_printerr
    - g_return_if_fail
    - FU_IS_CONSOLE
    - fu_console_spin_inc
    - fu_console_refresh
    - fu_console_status_to_string
    linkageType: ''
    returnType: void
    signature: void fu_console_set_progress(FuConsole *self, FwupdStatus status, guint
      percentage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:735,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - interactive
    argTypes:
    - FuConsole*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: fu_console_set_interactive
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 2
    functionsReached:
    - FU_IS_CONSOLE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_console_set_interactive(FuConsole *self, gboolean interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:749,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:749,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: fu_console_set_status_length
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONSOLE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_console_set_status_length(FuConsole *self, guint len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:764,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:764,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: fu_console_set_percentage_length
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONSOLE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_console_set_percentage_length(FuConsole *self, guint len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-console.c:774,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - count
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: fu_console_beep
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 2
    functionsReached:
    - g_usleep
    - g_print
    linkageType: ''
    returnType: void
    signature: void fu_console_beep(FuConsole *self, guint count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-console.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 787
    functionName: fu_console_init
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_timer_new
    linkageType: ''
    returnType: void
    signature: void fu_console_init(FuConsole *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONSOLE
      Src: /src/fwupd/src/fu-console.c:792,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:794,1
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-console.c:796,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-console.c:798,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/src/fu-console.c:799,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-console.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 802
    functionName: fu_console_finalize
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - FU_CONSOLE
    - fu_console_reset_line
    - g_source_destroy
    - g_timer_destroy
    - G_OBJECT_CLASS
    - g_main_context_unref
    linkageType: ''
    returnType: void
    signature: void fu_console_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-console.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuConsoleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 809
    functionName: fu_console_class_init
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_console_class_init(FuConsoleClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-console.c:820,1
    - Dst: FU_CONSOLE
      Src: /src/fwupd/src/fu-console.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 822
    functionName: fu_console_new
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 3
    functionsReached:
    - FU_CONSOLE
    - g_object_new
    linkageType: ''
    returnType: FuConsole
    signature: 'FuConsole *

      fu_console_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:70,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: fwupd_report_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_report_get_created(FwupdReport *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:86,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:87,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdReport*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: fwupd_report_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_created(FwupdReport *self, guint64 created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:105,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: fwupd_report_get_version_old
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_version_old(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:121,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:122,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:125,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:128,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_old
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: fwupd_report_set_version_old
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_version_old(FwupdReport *self, const gchar *version_old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:145,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:146,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: fwupd_report_get_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_vendor(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:162,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:163,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:166,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:169,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: fwupd_report_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_vendor(FwupdReport *self, const gchar *vendor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:187,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:188,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: fwupd_report_get_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_report_get_vendor_id(FwupdReport *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:205,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:206,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdReport*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: fwupd_report_set_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_vendor_id(FwupdReport *self, guint32 vendor_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:224,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: fwupd_report_get_device_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_device_name(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:240,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:241,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:241,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:244,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:247,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_name
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: fwupd_report_set_device_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_device_name(FwupdReport *self, const gchar *device_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:265,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: fwupd_report_get_distro_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_distro_id(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:281,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:282,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:282,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:285,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:288,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_id
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: fwupd_report_set_distro_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_distro_id(FwupdReport *self, const gchar *distro_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:306,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: fwupd_report_get_distro_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_distro_variant(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:322,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:323,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:323,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:326,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:329,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_variant
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: fwupd_report_set_distro_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_distro_variant(FwupdReport *self, const gchar
      *distro_variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:347,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: fwupd_report_get_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_remote_id(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:363,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:364,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:364,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:367,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:370,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - remote_id
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 372
    functionName: fwupd_report_set_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_remote_id(FwupdReport *self, const gchar *remote_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:388,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: fwupd_report_get_distro_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_distro_version(FwupdReport *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:404,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:405,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:405,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:408,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:411,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_version
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: fwupd_report_set_distro_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_distro_version(FwupdReport *self, const gchar
      *distro_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:428,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:429,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: fwupd_report_get_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_report_get_metadata(FwupdReport *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:446,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:447,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:447,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:448,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:449,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-report.c:450,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:450,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdReport*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: fwupd_report_add_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_metadata_item(FwupdReport *self, const gchar
      *key, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:468,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:469,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: fwupd_report_get_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_get_metadata_item(FwupdReport *self, const gchar *key)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:476,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:477,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:480,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:483,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:486,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:489,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:492,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:495,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:498,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:501,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:504,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:507,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:510,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:513,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:516,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:519,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:522,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-report.c:525,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:528,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:531,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-report.c:533,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:534,1
    - Dst: fwupd_hash_kv_to_variant
      Src: /src/fwupd/libfwupd/fwupd-report.c:537,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:540,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 545
    functionName: fwupd_report_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_variant_new_uint32
    - g_hash_table_size
    - g_variant_builder_add
    - FWUPD_REPORT
    - g_variant_new_uint64
    - GET_PRIVATE
    - fwupd_hash_kv_to_variant
    - g_variant_new_string
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:550,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:551,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:552,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:552,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:555,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/libfwupd/fwupd-report.c:556,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:556,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:559,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/libfwupd/fwupd-report.c:560,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:560,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:563,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-report.c:564,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:564,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:567,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:568,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-report.c:568,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:571,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/libfwupd/fwupd-report.c:572,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:572,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:575,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/libfwupd/fwupd-report.c:576,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:576,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:579,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/libfwupd/fwupd-report.c:580,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:580,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:583,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:584,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:584,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:587,1
    - Dst: fwupd_report_set_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:588,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:588,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:591,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:592,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-report.c:593,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdReport*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 596
    functionName: fwupd_report_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - fwupd_report_set_vendor
    - fwupd_report_set_device_name
    - g_variant_get_string
    - fwupd_report_set_distro_version
    - fwupd_variant_to_hash_kv
    - fwupd_report_set_remote_id
    - fwupd_report_set_created
    - fwupd_report_set_distro_variant
    - fwupd_report_set_version_old
    - g_hash_table_unref
    - fwupd_report_set_distro_id
    - g_variant_get_uint32
    - GET_PRIVATE
    - g_variant_get_uint64
    - g_strcmp0
    - fwupd_report_set_vendor_id
    - fwupd_report_set_flags
    linkageType: ''
    returnType: void
    signature: void fwupd_report_from_key_value(FwupdReport *self, const gchar *key,
      GVariant *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:601,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:602,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:603,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:605,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:606,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:607,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:608,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:609,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:610,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:611,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-report.c:613,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-report.c:617,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-report.c:618,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:623,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-report.c:624,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-report.c:626,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-report.c:630,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:633,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 636
    functionName: fwupd_report_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_int
    - fwupd_codec_json_append
    - json_builder_begin_array
    - fwupd_report_flag_to_string
    - FWUPD_REPORT
    - json_builder_end_array
    - json_builder_set_member_name
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:641,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-report.c:641,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-report.c:645,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:645,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:648,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:648,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-report.c:650,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - report_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 653
    functionName: fwupd_report_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_report_flag_to_string
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_report_string_append_flags(GString *str, guint idt, const
      gchar *key, guint64 report_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:658,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:659,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:660,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:662,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:663,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:664,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:665,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:666,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:667,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-report.c:668,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:669,1
    - Dst: fwupd_report_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:670,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-report.c:673,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:676,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 679
    functionName: fwupd_report_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - fwupd_report_string_append_flags
    - FWUPD_REPORT
    - fwupd_codec_string_append_int
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:694,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:695,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 697
    functionName: fwupd_report_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_report_get_flags(FwupdReport *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:711,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:712,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:712,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:716,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdReport*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 717
    functionName: fwupd_report_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_flags(FwupdReport *self, guint64 flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:731,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:732,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:732,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:738,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 739
    functionName: fwupd_report_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_flag(FwupdReport *self, FwupdReportFlags flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:753,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:754,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:754,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:760,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 761
    functionName: fwupd_report_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_report_remove_flag(FwupdReport *self, FwupdReportFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:777,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:778,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 780
    functionName: fwupd_report_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_report_has_flag(FwupdReport *self, FwupdReportFlags
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - report_flag
    argTypes:
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 802
    functionName: fwupd_report_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_report_flag_to_string(FwupdReportFlags report_flag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:817,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:819,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - report_flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 824
    functionName: fwupd_report_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdReportFlags
    signature: FwupdReportFlags fwupd_report_flag_from_string(const gchar *report_flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:829,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:830,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:833,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-report.c:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 839
    functionName: fwupd_report_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - GET_PRIVATE
    - g_value_set_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fwupd_report_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:844,1
    - Dst: fwupd_report_set_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:847,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:847,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-report.c:850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: fwupd_report_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - fwupd_report_set_flags
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    linkageType: ''
    returnType: void
    signature: void fwupd_report_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:858,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-report.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 860
    functionName: fwupd_report_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_report_init(FwupdReport *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:865,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:866,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:868,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:869,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:870,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:871,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:872,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:873,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:874,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:875,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-report.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 878
    functionName: fwupd_report_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - G_OBJECT_CLASS
    - g_hash_table_unref
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_report_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-report.c:883,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:897,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-report.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdReportClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 905
    functionName: fwupd_report_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_param_spec_uint64
    - g_object_class_install_property
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_report_class_init(FwupdReportClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:910,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-report.c:913,1
    - Dst: fwupd_report_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-report.c:914,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 917
    functionName: fwupd_report_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - g_variant_iter_next
    - g_variant_unref
    - fwupd_report_from_key_value
    linkageType: ''
    returnType: void
    signature: void fwupd_report_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 926
    functionName: fwupd_report_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_report_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-report.c:941,1
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 943
    functionName: fwupd_report_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - FWUPD_REPORT
    - g_object_new
    linkageType: ''
    returnType: FwupdReport
    signature: 'FwupdReport *

      fwupd_report_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FwupdRequestKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: fwupd_request_kind_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_kind_to_string(FwupdRequestKind kind)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:94,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: fwupd_request_kind_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRequestKind
    signature: FwupdRequestKind fwupd_request_kind_from_string(const gchar *kind)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: fwupd_request_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_flag_to_string(FwupdRequestFlags flag)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:142,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:144,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:146,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: fwupd_request_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRequestFlags
    signature: FwupdRequestFlags fwupd_request_flag_from_string(const gchar *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:165,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-request.c:166,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-request.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: fwupd_request_emit_invalidate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_request_emit_invalidate(FwupdRequest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:183,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:184,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: fwupd_request_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_get_id(FwupdRequest *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:200,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:201,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:201,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:204,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:207,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 209
    functionName: fwupd_request_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_id(FwupdRequest *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:225,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: fwupd_request_get_device_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_get_device_id(FwupdRequest *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:241,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:242,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:245,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:248,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_id
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: fwupd_request_set_device_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_device_id(FwupdRequest *self, const gchar *device_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:266,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: fwupd_request_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_request_get_created(FwupdRequest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:282,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:283,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdRequest*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: fwupd_request_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_created(FwupdRequest *self, guint64 created)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:290,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:291,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:294,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:297,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:300,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:303,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:306,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:309,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:312,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:315,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:318,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:321,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:324,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-request.c:327,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:330,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 335
    functionName: fwupd_request_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - g_variant_new_uint32
    - g_variant_builder_add
    - g_variant_new_uint64
    - GET_PRIVATE
    - g_variant_new_string
    linkageType: ''
    returnType: void
    signature: void fwupd_request_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:340,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:341,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:341,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:344,1
    - Dst: fwupd_request_set_created
      Src: /src/fwupd/libfwupd/fwupd-request.c:345,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:345,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:348,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:349,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:349,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:352,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-request.c:353,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:356,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-request.c:357,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:357,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:360,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-request.c:361,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-request.c:361,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:364,1
    - Dst: fwupd_request_set_flags
      Src: /src/fwupd/libfwupd/fwupd-request.c:365,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRequest*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: fwupd_request_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - g_variant_get_string
    - fwupd_request_set_created
    - fwupd_request_set_flags
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_variant_get_uint32
    - g_variant_get_uint64
    - fwupd_request_set_image
    - g_strcmp0
    - fwupd_request_set_device_id
    linkageType: ''
    returnType: void
    signature: void fwupd_request_from_key_value(FwupdRequest *self, const gchar *key,
      GVariant *value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:383,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:384,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:384,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-request.c:391,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:392,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:394,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:396,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:398,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:400,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:402,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 410
    functionName: fwupd_request_get_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 5
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_strcmp0
    - g_return_val_if_fail
    - fwupd_request_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_get_message(FwupdRequest *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:424,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:425,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:425,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:428,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:431,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:432,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:433,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - message
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: fwupd_request_set_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_message(FwupdRequest *self, const gchar *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:449,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:450,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: fwupd_request_get_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_request_get_image(FwupdRequest *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:466,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:467,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:467,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:470,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:473,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:474,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:475,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - image
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 476
    functionName: fwupd_request_set_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_image(FwupdRequest *self, const gchar *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:491,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:492,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: fwupd_request_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: FwupdRequestKind
    signature: FwupdRequestKind fwupd_request_get_kind(FwupdRequest *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:508,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:509,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:509,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:513,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FwupdRequest*
    - FwupdRequestKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: fwupd_request_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_kind(FwupdRequest *self, FwupdRequestKind kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:529,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:530,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: fwupd_request_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: FwupdRequestFlags
    signature: FwupdRequestFlags fwupd_request_get_flags(FwupdRequest *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:546,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:547,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:547,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:554,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: fwupd_request_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_flags(FwupdRequest *self, FwupdRequestFlags
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:569,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:570,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: fwupd_request_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_request_add_flag(FwupdRequest *self, FwupdRequestFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:586,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:587,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: fwupd_request_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_request_remove_flag(FwupdRequest *self, FwupdRequestFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:605,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:606,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: fwupd_request_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_REQUEST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_request_has_flag(FwupdRequest *self, FwupdRequestFlags
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:613,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:614,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:615,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:617,1
    - Dst: fwupd_request_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:620,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:622,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:625,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:626,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-request.c:627,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:628,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 630
    functionName: fwupd_request_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - fwupd_request_flag_to_string
    - fwupd_codec_string_append_time
    - fwupd_request_kind_to_string
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_request_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:635,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:636,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:639,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:642,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:645,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:648,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:651,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:654,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-request.c:657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 660
    functionName: fwupd_request_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint
    - g_value_set_string
    - GET_PRIVATE
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fwupd_request_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:665,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:668,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:668,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-request.c:671,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:671,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-request.c:674,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:674,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:677,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:677,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-request.c:680,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:680,1
    - Dst: fwupd_request_set_flags
      Src: /src/fwupd/libfwupd/fwupd-request.c:683,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:683,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-request.c:686,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 689
    functionName: fwupd_request_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - fwupd_request_set_kind
    - fwupd_request_set_flags
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    - g_value_get_uint64
    - fwupd_request_set_message
    - fwupd_request_set_id
    - fwupd_request_set_image
    - fwupd_request_set_device_id
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fwupd_request_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:694,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:695,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:697,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:698,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:699,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:700,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-request.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 703
    functionName: fwupd_request_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_request_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:708,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-request.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: fwupd_request_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_get_real_time
    linkageType: ''
    returnType: void
    signature: void fwupd_request_init(FwupdRequest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-request.c:715,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-request.c:731,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-request.c:732,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-request.c:734,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:749,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:750,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:759,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:766,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:775,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:782,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:791,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:796,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:806,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:807,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:816,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdRequestClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 822
    functionName: fwupd_request_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - g_param_spec_uint
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    linkageType: ''
    returnType: void
    signature: void fwupd_request_class_init(FwupdRequestClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:827,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-request.c:830,1
    - Dst: fwupd_request_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-request.c:831,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-request.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 834
    functionName: fwupd_request_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - FWUPD_REQUEST
    - g_variant_iter_next
    - g_variant_unref
    - fwupd_request_from_key_value
    linkageType: ''
    returnType: void
    signature: void fwupd_request_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 842
    functionName: fwupd_request_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_request_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-request.c:857,1
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 859
    functionName: fwupd_request_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - FWUPD_REQUEST
    - g_object_new
    linkageType: ''
    returnType: FwupdRequest
    signature: 'FwupdRequest *

      fwupd_request_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 69
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:64,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:65,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: fwupd_bios_setting_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_id(FwupdBiosSetting *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:80,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:81,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:84,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:87,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: fwupd_bios_setting_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_id(FwupdBiosSetting *self, const gchar
      *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:105,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: fwupd_bios_setting_get_read_only
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_get_read_only(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:122,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:123,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: fwupd_bios_setting_set_read_only
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_read_only(FwupdBiosSetting *self, gboolean
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:141,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:142,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fwupd_bios_setting_get_lower_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_bios_setting_get_lower_bound(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:160,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:161,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: fwupd_bios_setting_get_upper_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_bios_setting_get_upper_bound(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:179,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: fwupd_bios_setting_get_scalar_increment
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_bios_setting_get_scalar_increment(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:196,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:197,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: fwupd_bios_setting_set_upper_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_upper_bound(FwupdBiosSetting *self, guint64
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:214,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:215,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: fwupd_bios_setting_set_lower_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_lower_bound(FwupdBiosSetting *self, guint64
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:231,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:232,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: fwupd_bios_setting_set_scalar_increment
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_scalar_increment(FwupdBiosSetting *self,
      guint64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:249,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:250,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: fwupd_bios_setting_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: FwupdBiosSettingKind
    signature: FwupdBiosSettingKind fwupd_bios_setting_get_kind(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:266,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:267,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - FwupdBiosSetting*
    - FwupdBiosSettingKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: fwupd_bios_setting_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_kind(FwupdBiosSetting *self, FwupdBiosSettingKind
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:283,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:284,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:287,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:290,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: fwupd_bios_setting_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_name(FwupdBiosSetting *self, const gchar
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:306,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:307,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:310,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:313,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: fwupd_bios_setting_set_path
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_path(FwupdBiosSetting *self, const gchar
      *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:329,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:330,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:330,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:333,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:336,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: fwupd_bios_setting_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_description(FwupdBiosSetting *self, const
      gchar *description)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:344,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:346,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:348,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: fwupd_bios_setting_key_is_positive
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_strrstr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_key_is_positive(const gchar *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:359,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:361,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:363,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: fwupd_bios_setting_key_is_negative
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_strrstr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_key_is_negative(const gchar *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:389,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:394,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:394,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:395,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:398,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:406,1
    - Dst: fwupd_bios_setting_key_is_positive
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:407,1
    - Dst: fwupd_bios_setting_key_is_negative
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:408,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:410,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:416,1
    - Dst: fwupd_bios_setting_key_is_positive
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:419,1
    - Dst: fwupd_bios_setting_key_is_negative
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:420,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:424,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 431
    functionName: fwupd_bios_setting_map_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_bios_setting_key_is_positive
    - g_utf8_strdown
    - g_ptr_array_index
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_return_val_if_fail
    - fwupd_bios_setting_key_is_negative
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_map_possible_value(FwupdBiosSetting *self, const gchar *key,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:447,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:448,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:449,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:455,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: fwupd_bios_setting_has_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_has_possible_value(FwupdBiosSetting *self,
      const gchar *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:475,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:476,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:476,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:478,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:480,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - possible_value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 481
    functionName: fwupd_bios_setting_add_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_has_possible_value
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_possible_value(FwupdBiosSetting *self,
      const gchar *possible_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:497,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:497,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: fwupd_bios_setting_get_possible_values
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_bios_setting_get_possible_values(FwupdBiosSetting *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:515,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:516,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: fwupd_bios_setting_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_name(FwupdBiosSetting *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:533,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:534,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: fwupd_bios_setting_get_path
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_path(FwupdBiosSetting *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:553,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: fwupd_bios_setting_get_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_description(FwupdBiosSetting *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:572,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:573,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 575
    functionName: fwupd_bios_setting_get_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_current_value(FwupdBiosSetting *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:590,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:593,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:596,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 598
    functionName: fwupd_bios_setting_set_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_current_value(FwupdBiosSetting *self, const
      gchar *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:607,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:611,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:612,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - value
    - error
    argTypes:
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 617
    functionName: _fu_strtoull_simple
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_ascii_strtoull
    - g_str_has_prefix
    - strlen
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean _fu_strtoull_simple(const gchar *str, guint64 *value, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:622,1
    - Dst: _fu_strtoull_simple
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:626,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:629,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:640,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:653,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:666,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 687
    functionName: fwupd_bios_setting_validate_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - _fu_strtoull_simple
    - strlen
    - g_set_error_literal
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_validate_value(FwupdBiosSetting *self,
      const gchar *value, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:707,1
    - Dst: FWUPD_BIOS_SETTING_GET_CLASS
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:710,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:711,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:712,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:715,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:716,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:726,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:727,1
    - Dst: fwupd_bios_setting_map_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:737,1
    - Dst: fwupd_bios_setting_validate_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:743,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:748,1
    - Dst: FwupdBiosSettingClass*::write_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:753,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 754
    functionName: fwupd_bios_setting_write_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - FwupdBiosSettingClass*::write_value
    - fwupd_bios_setting_get_read_only
    - g_set_error_literal
    - GET_PRIVATE
    - FWUPD_IS_BIOS_SETTING
    - g_strcmp0
    - g_return_val_if_fail
    - FWUPD_BIOS_SETTING_GET_CLASS
    - fwupd_bios_setting_map_possible_value
    - fwupd_bios_setting_validate_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_write_value(FwupdBiosSetting *self, const
      gchar *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:759,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:759,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:763,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - trusted
    argTypes:
    - FwupdBiosSetting*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 766
    functionName: fwupd_bios_setting_trusted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_return_val_if_fail
    - fwupd_bios_setting_get_name
    - FWUPD_IS_BIOS_SETTING
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_trusted(FwupdBiosSetting *self, gboolean
      trusted)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:771,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:772,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:774,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:777,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:779,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:782,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:785,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:788,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:791,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:794,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:797,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:800,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:802,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:805,1
    - Dst: fwupd_bios_setting_trusted
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:807,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:808,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:811,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:815,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:818,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:819,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:822,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:824,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:827,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:832,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:835,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:836,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:839,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 842
    functionName: fwupd_bios_setting_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - g_variant_builder_add
    - g_new0
    - fwupd_bios_setting_trusted
    - g_ptr_array_index
    - g_variant_new_uint64
    - GET_PRIVATE
    - g_variant_new_string
    - g_variant_new_strv
    - g_variant_new_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_variant(FwupdCodec *codec, GVariantBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:847,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:848,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:848,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:851,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:852,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:852,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:855,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:856,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:856,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:859,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:860,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:860,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:863,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:864,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:864,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:867,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:868,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:868,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:871,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:872,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:874,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:877,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:878,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:878,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:881,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:882,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:882,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:885,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:886,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:886,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:889,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:890,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:890,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 893
    functionName: fwupd_bios_setting_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_variant_get_boolean
    - fwupd_bios_setting_set_read_only
    - g_variant_get_string
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_lower_bound
    - fwupd_bios_setting_set_current_value
    - fwupd_bios_setting_set_description
    - fwupd_bios_setting_set_upper_bound
    - g_variant_get_strv
    - g_variant_get_uint64
    - g_strcmp0
    - fwupd_bios_setting_set_id
    - fwupd_bios_setting_set_path
    - fwupd_bios_setting_add_possible_value
    - fwupd_bios_setting_set_name
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_from_key_value(FwupdBiosSetting *self, const
      gchar *key, GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:898,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:902,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:903,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:909,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:911,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:913,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:914,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:916,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:920,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:922,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:923,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:925,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:926,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:928,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:929,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:931,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:934,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:936,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:938,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:939,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:940,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:943,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:945,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:948,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:950,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:953,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:955,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:958,1
    - Dst: json_object_get_boolean_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 965
    functionName: fwupd_bios_setting_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_path
    - json_array_get_string_element
    - FWUPD_BIOS_SETTING
    - fwupd_bios_setting_set_name
    - json_object_get_boolean_member_with_default
    - fwupd_bios_setting_set_current_value
    - fwupd_bios_setting_set_upper_bound
    - json_object_get_array_member
    - fwupd_bios_setting_set_read_only
    - json_object_get_int_member_with_default
    - fwupd_bios_setting_set_lower_bound
    - JSON_NODE_HOLDS_OBJECT
    - json_object_get_string_member_with_default
    - json_node_get_object
    - fwupd_bios_setting_set_id
    - g_set_error_literal
    - fwupd_bios_setting_set_description
    - json_object_has_member
    - fwupd_bios_setting_add_possible_value
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:970,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:971,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:973,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:974,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:975,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:976,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:977,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:980,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:983,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:986,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:988,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:990,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:991,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:993,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:998,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1001,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 1010
    functionName: fwupd_bios_setting_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - fwupd_codec_json_append
    - fwupd_codec_json_append_int
    - json_builder_begin_array
    - json_builder_end_array
    - fwupd_codec_json_append_bool
    - g_ptr_array_index
    - json_builder_set_member_name
    - GET_PRIVATE
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1015,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1016,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1018,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1019,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1020,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1021,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1022,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1023,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1027,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1033,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1034,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1042,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1046,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1058
    functionName: fwupd_bios_setting_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - fwupd_codec_string_append_int
    - g_ptr_array_index
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdBiosSettingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1065
    functionName: fwupd_bios_setting_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_class_init(FwupdBiosSettingClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1070,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1072
    functionName: fwupd_bios_setting_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_init(FwupdBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1077,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1078,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1080,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1081,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1082,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1083,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1084,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1085,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1088
    functionName: fwupd_bios_setting_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1093,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1096,1
    - Dst: fwupd_bios_setting_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1097,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1100
    functionName: fwupd_bios_setting_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - fwupd_bios_setting_from_key_value
    - g_variant_iter_next
    - g_variant_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1110
    functionName: fwupd_bios_setting_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1128,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1130,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1132,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - path
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1135
    functionName: fwupd_bios_setting_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - fwupd_bios_setting_set_path
    - fwupd_bios_setting_set_name
    - g_object_new
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fwupd_bios_setting_new(const gchar *name, const gchar *path)'
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - status
    argTypes:
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 55
    functionName: fwupd_status_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_status_to_string(FwupdStatus status)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:70,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:72,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:74,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:76,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:78,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:80,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:82,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:86,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:88,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:94,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:98,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - status
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 101
    functionName: fwupd_status_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdStatus
    signature: FwupdStatus fwupd_status_from_string(const gchar *status)
  - BBCount: 40
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 80
    argCount: 1
    argNames:
    - device_flag
    argTypes:
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 195
    functionName: fwupd_device_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_flag_to_string(FwupdDeviceFlags device_flag)'
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:210,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:212,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:222,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:224,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:230,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:232,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:234,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:236,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:240,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:244,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:246,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:250,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:252,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:254,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:256,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:258,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:260,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:262,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:264,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:266,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:268,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:270,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:272,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:274,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:276,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:278,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:280,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:282,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:286,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 80
    argCount: 1
    argNames:
    - device_flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 289
    functionName: fwupd_device_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 2
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdDeviceFlags
    signature: FwupdDeviceFlags fwupd_device_flag_from_string(const gchar *device_flag)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - device_problem
    argTypes:
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 335
    functionName: fwupd_device_problem_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_problem_to_string(FwupdDeviceProblem device_problem)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:352,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:354,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:356,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:358,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:360,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:362,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:364,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:366,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:368,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:370,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:372,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:374,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:376,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - device_problem
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 379
    functionName: fwupd_device_problem_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdDeviceProblem
    signature: FwupdDeviceProblem fwupd_device_problem_from_string(const gchar *device_problem)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 439
    functionName: fwupd_plugin_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_plugin_flag_to_string(FwupdPluginFlags plugin_flag)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:454,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:456,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:458,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:460,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:462,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:464,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:466,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:468,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:470,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:472,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:474,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:476,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:478,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:480,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:482,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:484,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:486,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:488,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:490,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:492,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:494,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 497
    functionName: fwupd_plugin_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdPluginFlags
    signature: FwupdPluginFlags fwupd_plugin_flag_from_string(const gchar *plugin_flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - update_state
    argTypes:
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: fwupd_update_state_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_update_state_to_string(FwupdUpdateState update_state)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:540,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:542,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:544,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:546,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:548,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - update_state
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 553
    functionName: fwupd_update_state_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdUpdateState
    signature: FwupdUpdateState fwupd_update_state_from_string(const gchar *update_state)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - feature_flag
    argTypes:
    - FwupdFeatureFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 591
    functionName: fwupd_feature_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_feature_flag_to_string(FwupdFeatureFlags feature_flag)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:606,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:608,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:610,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:612,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:614,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:616,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:618,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:620,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:622,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:624,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - feature_flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 629
    functionName: fwupd_feature_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdFeatureFlags
    signature: FwupdFeatureFlags fwupd_feature_flag_from_string(const gchar *feature_flag)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - release_flag
    argTypes:
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 665
    functionName: fwupd_release_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_flag_to_string(FwupdReleaseFlags release_flag)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:680,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:682,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:686,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:688,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:690,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:692,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:694,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - release_flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 699
    functionName: fwupd_release_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdReleaseFlags
    signature: FwupdReleaseFlags fwupd_release_flag_from_string(const gchar *release_flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - release_urgency
    argTypes:
    - FwupdReleaseUrgency
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 723
    functionName: fwupd_release_urgency_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_urgency_to_string(FwupdReleaseUrgency release_urgency)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:738,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:740,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:742,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - release_urgency
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 747
    functionName: fwupd_release_urgency_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdReleaseUrgency
    signature: FwupdReleaseUrgency fwupd_release_urgency_from_string(const gchar *release_urgency)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:762,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:764,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:766,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:768,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:770,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:772,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:774,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:776,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:778,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:780,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:782,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:784,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:786,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:788,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 791
    functionName: fwupd_version_format_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 2
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fwupd_version_format_from_string(const gchar *str)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 835
    functionName: fwupd_version_format_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_version_format_to_string(FwupdVersionFormat kind)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:850,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:852,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:854,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:856,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:858,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:860,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:862,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-enums.c:864,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 868
    functionName: fwupd_install_flags_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdInstallFlags
    signature: FwupdInstallFlags fwupd_install_flags_from_string(const gchar *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - install_flags
    argTypes:
    - FwupdInstallFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 900
    functionName: fwupd_install_flags_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_install_flags_to_string(FwupdInstallFlags install_flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:36,1
    - Dst: g_error_free
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:38,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:40,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:42,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:44,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:46,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:47,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:48,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:49,1
    - Dst: g_main_context_pop_thread_default
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:50,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdClientHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: fwupd_client_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_main_loop_unref
    - g_object_unref
    - g_hash_table_unref
    - g_variant_unref
    - g_error_free
    - g_main_context_pop_thread_default
    - g_free
    - g_main_context_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_client_helper_free(FwupdClientHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:58,1
    - Dst: fwupd_client_get_main_context
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:59,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:60,1
    - Dst: g_main_context_push_thread_default
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: fwupd_client_helper_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_main_loop_new
    - g_main_context_push_thread_default
    - fwupd_client_get_main_context
    linkageType: ''
    returnType: FwupdClientHelper
    signature: 'FwupdClientHelper *

      fwupd_client_helper_new(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_connect_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:74,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:74,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fwupd_client_connect_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_connect_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_connect_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:95,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:97,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:98,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:99,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:102,1
    - Dst: fwupd_client_connect_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:103,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:104,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: fwupd_client_connect
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 4
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_connect(FwupdClient *self, GCancellable *cancellable,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_quit_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:116,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:116,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: fwupd_client_quit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_quit_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_quit_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:137,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:139,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:139,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:140,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:141,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:144,1
    - Dst: fwupd_client_quit_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:145,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:146,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: fwupd_client_quit
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_quit_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_quit(FwupdClient *self, GCancellable *cancellable,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_devices_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:158,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:158,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: fwupd_client_get_devices_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_devices_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:179,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:180,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:180,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:181,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:184,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:188,1
    - Dst: fwupd_client_get_devices_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:189,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:190,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:192,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:192,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 196
    functionName: fwupd_client_get_devices
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 12
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_devices_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_devices(FwupdClient *self, GCancellable *cancellable, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_plugins_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:202,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:202,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: fwupd_client_get_plugins_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_plugins_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_plugins_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:223,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:224,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:225,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:228,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:232,1
    - Dst: fwupd_client_get_plugins_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:233,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:234,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:236,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:236,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: fwupd_client_get_plugins
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_get_plugins_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_plugins(FwupdClient *self, GCancellable *cancellable, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_history_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:246,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:246,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: fwupd_client_get_history_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_history_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_history_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:267,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:268,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:268,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:269,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:272,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:276,1
    - Dst: fwupd_client_get_history_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:277,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:278,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:280,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:280,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: fwupd_client_get_history
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_get_history_async
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_history(FwupdClient *self, GCancellable *cancellable, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_releases_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:290,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:290,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: fwupd_client_get_releases_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_releases_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_releases_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:315,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:316,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:317,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:317,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:318,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:321,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:325,1
    - Dst: fwupd_client_get_releases_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:326,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:331,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:333,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:333,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 337
    functionName: fwupd_client_get_releases
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 8
    functionsReached:
    - fwupd_client_get_releases_async
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_releases(FwupdClient *self,\n\t\t\t
      \ const gchar *device_id,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_downgrades_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:344,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:344,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: fwupd_client_get_downgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_downgrades_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_downgrades_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:369,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:369,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:371,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:372,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:375,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:379,1
    - Dst: fwupd_client_get_downgrades_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:380,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:385,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:387,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:387,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 391
    functionName: fwupd_client_get_downgrades
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - fwupd_client_get_downgrades_async
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_downgrades(FwupdClient *self,\n\t\t\t
      \   const gchar *device_id,\n\t\t\t    GCancellable *cancellable,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_upgrades_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:397,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:397,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: fwupd_client_get_upgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_upgrades_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_upgrades_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:422,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:422,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:424,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:424,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:425,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:428,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:432,1
    - Dst: fwupd_client_get_upgrades_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:433,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:438,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:440,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:440,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 444
    functionName: fwupd_client_get_upgrades
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - fwupd_client_get_upgrades_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_upgrades(FwupdClient *self,\n\t\t\t
      \ const gchar *device_id,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_details_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:451,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:451,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: fwupd_client_get_details_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_details_bytes_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_details_bytes_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:474,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:476,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:476,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:478,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:479,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:482,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:486,1
    - Dst: fwupd_client_get_details_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:487,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:492,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:494,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:494,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - bytes
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GBytes*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 498
    functionName: fwupd_client_get_details_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_get_details_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_details_bytes(FwupdClient *self,\n\t\t\t
      \      GBytes *bytes,\n\t\t\t       GCancellable *cancellable,\n\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_details_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:506,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:506,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: fwupd_client_get_details_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_details_bytes_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_details_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:531,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:532,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:534,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:534,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:535,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:536,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:536,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:537,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:540,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:544,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:547,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:548,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:553,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:555,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:555,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:558,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 566
    functionName: fwupd_client_get_details
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_steal_pointer
    - fwupd_client_get_details_stream_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_details(FwupdClient *self,\n\t\t\t const
      gchar *filename,\n\t\t\t GCancellable *cancellable,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_verify_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:572,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:572,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: fwupd_client_verify_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_verify_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_verify_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:595,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:597,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:597,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:598,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:599,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:599,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:600,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:603,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:607,1
    - Dst: fwupd_client_verify_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:608,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:609,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:611,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 615
    functionName: fwupd_client_verify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - fwupd_client_verify_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_verify(FwupdClient *self,\n\t\t    const gchar
      *device_id,\n\t\t    GCancellable *cancellable,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_verify_update_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:621,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:621,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: fwupd_client_verify_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_verify_update_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_verify_update_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:644,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:646,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:646,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:647,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:648,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:648,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:649,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:652,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:656,1
    - Dst: fwupd_client_verify_update_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:657,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:662,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:664,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 668
    functionName: fwupd_client_verify_update
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_verify_update_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_verify_update(FwupdClient *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_unlock_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:674,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:674,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 676
    functionName: fwupd_client_unlock_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_unlock_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_unlock_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:697,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:699,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:699,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:700,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:701,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:701,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:702,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:705,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:709,1
    - Dst: fwupd_client_unlock_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:710,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:711,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:713,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 717
    functionName: fwupd_client_unlock
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_unlock_async
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_unlock(FwupdClient *self,\n\t\t    const gchar
      *device_id,\n\t\t    GCancellable *cancellable,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_inhibit_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:723,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:723,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: fwupd_client_inhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_inhibit_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_inhibit_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:750,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:752,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:752,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:754,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:754,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:755,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:758,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:762,1
    - Dst: fwupd_client_inhibit_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:763,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:764,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:766,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:766,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - reason
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 744
    functionDepth: 3
    functionLinenumber: 744
    functionLinenumberEnd: 770
    functionName: fwupd_client_inhibit
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_inhibit_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_inhibit(FwupdClient *self,\n\t\t     const gchar
      *reason,\n\t\t     GCancellable *cancellable,\n\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_uninhibit_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:776,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:776,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 778
    functionName: fwupd_client_uninhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_uninhibit_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_uninhibit_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:799,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:801,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:801,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:803,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:803,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:804,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:807,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:811,1
    - Dst: fwupd_client_uninhibit_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:812,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:817,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:819,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - inhibit_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 823
    functionName: fwupd_client_uninhibit
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - fwupd_client_uninhibit_async
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_uninhibit(FwupdClient *self,\n\t\t       const
      gchar *inhibit_id,\n\t\t       GCancellable *cancellable,\n\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_modify_config_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:829,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:829,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 831
    functionName: fwupd_client_modify_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_config_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:857,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:859,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:859,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:860,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:861,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:862,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:863,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:863,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:864,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:867,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:871,1
    - Dst: fwupd_client_modify_config_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:872,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:879,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:881,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - self
    - section
    - key
    - value
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 885
    functionName: fwupd_client_modify_config
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_modify_config_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_modify_config(FwupdClient *self,\n\t\t\t   const
      gchar *section,\n\t\t\t   const gchar *key,\n\t\t\t   const gchar *value,\n\t\t\t
      \  GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_reset_config_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:891,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:891,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 893
    functionName: fwupd_client_reset_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_reset_config_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_reset_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:915,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:917,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:917,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:918,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:919,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:919,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:920,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:923,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:927,1
    - Dst: fwupd_client_reset_config_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:928,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:933,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:935,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - section
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 939
    functionName: fwupd_client_reset_config
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - fwupd_client_reset_config_async
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_reset_config(FwupdClient *self,\n\t\t\t  const
      gchar *section,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_activate_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:945,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:945,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 947
    functionName: fwupd_client_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_activate_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_activate_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:969,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:971,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:971,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:973,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:973,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:974,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:977,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:981,1
    - Dst: fwupd_client_activate_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:982,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:983,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:985,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:985,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - cancellable
    - device_id
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 989
    functionName: fwupd_client_activate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_activate_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_activate(FwupdClient *self,\n\t\t      GCancellable
      *cancellable,\n\t\t      const gchar *device_id, /* yes, this is the wrong way
      around :/ */\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_clear_results_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:995,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:995,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 997
    functionName: fwupd_client_clear_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_clear_results_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_clear_results_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1018,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1020,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1020,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1021,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1022,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1022,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1023,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1026,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1030,1
    - Dst: fwupd_client_clear_results_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1031,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1036,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1038,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1042
    functionName: fwupd_client_clear_results
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_clear_results_async
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_clear_results(FwupdClient *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_results_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1048,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1048,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1050
    functionName: fwupd_client_get_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_results_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_results_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1071,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1073,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1073,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1074,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1075,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1075,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1076,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1079,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1083,1
    - Dst: fwupd_client_get_results_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1084,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1089,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1091,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1091,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1065
    functionDepth: 3
    functionLinenumber: 1065
    functionLinenumberEnd: 1095
    functionName: fwupd_client_get_results
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_get_results_async
    linkageType: ''
    returnType: FwupdDevice
    signature: "FwupdDevice *\nfwupd_client_get_results(FwupdClient *self,\n\t\t\t
      const gchar *device_id,\n\t\t\t GCancellable *cancellable,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_modify_bios_setting_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1102,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1102,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1104
    functionName: fwupd_client_modify_bios_setting_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_modify_bios_setting_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_bios_setting_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1128,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1128,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1130,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1130,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1131,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1134,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1138,1
    - Dst: fwupd_client_modify_bios_setting_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1139,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1144,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - settings
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GHashTable*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1150
    functionName: fwupd_client_modify_bios_setting
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - fwupd_client_modify_bios_setting_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_modify_bios_setting(FwupdClient *self,\n\t\t\t\t
      GHashTable *settings,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_bios_settings_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1157,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1157,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1159
    functionName: fwupd_client_get_bios_settings_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_bios_settings_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_bios_settings_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1178,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1179,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1180,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1183,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1187,1
    - Dst: fwupd_client_get_bios_settings_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1188,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1192,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1194,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1194,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1173
    functionDepth: 3
    functionLinenumber: 1173
    functionLinenumberEnd: 1198
    functionName: fwupd_client_get_bios_settings
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_get_bios_settings_async
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_bios_settings(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_host_security_attrs_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1205,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1205,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1207
    functionName: fwupd_client_get_host_security_attrs_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_get_host_security_attrs_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_host_security_attrs_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1226,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1227,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1228,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1231,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1235,1
    - Dst: fwupd_client_get_host_security_attrs_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1236,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1240,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1242,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1242,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1246
    functionName: fwupd_client_get_host_security_attrs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_host_security_attrs_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_host_security_attrs(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_host_security_events_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1253,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1253,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1255
    functionName: fwupd_client_get_host_security_events_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_host_security_events_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_host_security_events_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1278,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1279,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1280,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1283,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1287,1
    - Dst: fwupd_client_get_host_security_events_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1288,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1293,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1295,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1295,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - limit
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1270
    functionDepth: 3
    functionLinenumber: 1270
    functionLinenumberEnd: 1299
    functionName: fwupd_client_get_host_security_events
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_get_host_security_events_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_host_security_events(FwupdClient *self,\n\t\t\t\t
      \     guint limit,\n\t\t\t\t      GCancellable *cancellable,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_device_by_id_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1306,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1306,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1308
    functionName: fwupd_client_get_device_by_id_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_device_by_id_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_device_by_id_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1329,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1331,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1331,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1332,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1333,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1334,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1337,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1341,1
    - Dst: fwupd_client_get_device_by_id_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1342,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1347,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1323
    functionDepth: 3
    functionLinenumber: 1323
    functionLinenumberEnd: 1353
    functionName: fwupd_client_get_device_by_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_get_device_by_id_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: FwupdDevice
    signature: "FwupdDevice *\nfwupd_client_get_device_by_id(FwupdClient *self,\n\t\t\t
      \     const gchar *device_id,\n\t\t\t      GCancellable *cancellable,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_devices_by_guid_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1360,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1360,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: fwupd_client_get_devices_by_guid_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_get_devices_by_guid_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_devices_by_guid_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1384,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1386,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1386,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1388,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1389,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1392,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1396,1
    - Dst: fwupd_client_get_devices_by_guid_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1397,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1402,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1404,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1404,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - guid
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1408
    functionName: fwupd_client_get_devices_by_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_devices_by_guid_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_get_devices_by_guid(FwupdClient *self,\n\t\t\t\t
      const gchar *guid,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_install_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1415,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1415,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: fwupd_client_install_fd_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_install_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_fd_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1444,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1447,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1447,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1449,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1450,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1451,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1454,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1458,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1463,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1464,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1472,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1474,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1474,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - self
    - device_id
    - filename
    - install_flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - FwupdInstallFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1435
    functionDepth: 3
    functionLinenumber: 1435
    functionLinenumberEnd: 1485
    functionName: fwupd_client_install
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - fwupd_client_install_stream_async
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_install(FwupdClient *self,\n\t\t     const gchar
      *device_id,\n\t\t     const gchar *filename,\n\t\t     FwupdInstallFlags install_flags,\n\t\t
      \    GCancellable *cancellable,\n\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_install_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1491,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1491,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1493
    functionName: fwupd_client_install_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_install_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_bytes_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1518,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1520,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1520,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1521,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1522,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1523,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1523,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1524,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1527,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1531,1
    - Dst: fwupd_client_install_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1532,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1539,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1541,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - self
    - device_id
    - bytes
    - install_flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GBytes*
    - FwupdInstallFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1510
    functionDepth: 3
    functionLinenumber: 1510
    functionLinenumberEnd: 1545
    functionName: fwupd_client_install_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_install_bytes_async
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_install_bytes(FwupdClient *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   GBytes *bytes,\n\t\t\t   FwupdInstallFlags install_flags,\n\t\t\t
      \  GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_install_release_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1551,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1551,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1553
    functionName: fwupd_client_install_release_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_install_release_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1580,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1582,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1582,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1583,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1584,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1584,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1585,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1585,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1586,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1589,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1593,1
    - Dst: fwupd_client_install_release_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1594,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1602,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1604,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - self
    - device
    - release
    - install_flags
    - download_flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FwupdRelease*
    - FwupdInstallFlags
    - FwupdClientDownloadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1608
    functionName: fwupd_client_install_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_install_release_async
    - FWUPD_IS_RELEASE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - FWUPD_IS_DEVICE
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_install_release(FwupdClient *self,\n\t\t\t     FwupdDevice
      *device,\n\t\t\t     FwupdRelease *release,\n\t\t\t     FwupdInstallFlags install_flags,\n\t\t\t
      \    FwupdClientDownloadFlags download_flags,\n\t\t\t     GCancellable *cancellable,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_update_metadata_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1616,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1616,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1618
    functionName: fwupd_client_update_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_update_metadata_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_update_metadata_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1650,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1651,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1652,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1654,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1654,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1655,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1657,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1658,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1658,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1659,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1662,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1665,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1668,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1673,1
    - Dst: fwupd_client_update_metadata_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1674,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1681,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1683,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1683,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 6
    argNames:
    - self
    - remote_id
    - metadata_fn
    - signature_fn
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1694
    functionName: fwupd_client_update_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_update_metadata_stream_async
    - fwupd_client_connect
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_update_metadata(FwupdClient *self,\n\t\t\t     const
      gchar *remote_id,\n\t\t\t     const gchar *metadata_fn,\n\t\t\t     const gchar
      *signature_fn,\n\t\t\t     GCancellable *cancellable,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_update_metadata_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1701,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1701,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1703
    functionName: fwupd_client_update_metadata_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_update_metadata_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_update_metadata_bytes_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1735,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1738,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1739,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1739,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1740,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1743,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1747,1
    - Dst: fwupd_client_update_metadata_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1748,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1755,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1757,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - self
    - remote_id
    - metadata
    - signature
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GBytes*
    - GBytes*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1725
    functionDepth: 3
    functionLinenumber: 1725
    functionLinenumberEnd: 1761
    functionName: fwupd_client_update_metadata_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_update_metadata_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_update_metadata_bytes(FwupdClient *self,\n\t\t\t\t
      \  const gchar *remote_id,\n\t\t\t\t   GBytes *metadata,\n\t\t\t\t   GBytes
      *signature,\n\t\t\t\t   GCancellable *cancellable,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_refresh_remote_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1767,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1767,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1763
    functionDepth: 1
    functionLinenumber: 1763
    functionLinenumberEnd: 1769
    functionName: fwupd_client_refresh_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_refresh_remote_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_refresh_remote_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1794,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1795,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1795,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1796,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1796,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1797,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1800,1
    - Dst: fwupd_client_refresh_remote_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1801,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1807,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1809,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - remote
    - download_flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - FwupdRemote*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1785
    functionDepth: 2
    functionLinenumber: 1785
    functionLinenumberEnd: 1813
    functionName: fwupd_client_refresh_remote
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_REMOTE
    - FWUPD_IS_CLIENT
    - fwupd_client_refresh_remote_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_refresh_remote(FwupdClient *self,\n\t\t\t    FwupdRemote
      *remote,\n\t\t\t    FwupdClientDownloadFlags download_flags,\n\t\t\t    GCancellable
      *cancellable,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_modify_remote_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1819,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1819,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1821
    functionName: fwupd_client_modify_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_remote_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_remote_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1850,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1853,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1854,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1854,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1855,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1858,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1862,1
    - Dst: fwupd_client_modify_remote_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1863,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1870,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1872,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - self
    - remote_id
    - key
    - value
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1840
    functionDepth: 3
    functionLinenumber: 1840
    functionLinenumberEnd: 1876
    functionName: fwupd_client_modify_remote
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_modify_remote_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_modify_remote(FwupdClient *self,\n\t\t\t   const
      gchar *remote_id,\n\t\t\t   const gchar *key,\n\t\t\t   const gchar *value,\n\t\t\t
      \  GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_report_metadata_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1883,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1883,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 1885
    functionName: fwupd_client_get_report_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_get_report_metadata_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_report_metadata_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1902,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1904,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1904,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1905,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1905,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1906,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1909,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1913,1
    - Dst: fwupd_client_get_report_metadata_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1914,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1918,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1920,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1920,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1924
    functionName: fwupd_client_get_report_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_get_report_metadata_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_client_get_report_metadata(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_modify_device_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1930,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1930,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1932
    functionName: fwupd_client_modify_device_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_modify_device_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_device_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1960,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1962,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1963,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1964,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1965,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1966,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1966,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1967,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1970,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1974,1
    - Dst: fwupd_client_modify_device_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1975,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1982,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1984,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - self
    - device_id
    - key
    - value
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1952
    functionDepth: 3
    functionLinenumber: 1952
    functionLinenumberEnd: 1988
    functionName: fwupd_client_modify_device
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 5
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_modify_device_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_modify_device(FwupdClient *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   const gchar *key,\n\t\t\t   const gchar *value,\n\t\t\t
      \  GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_remotes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1994,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1994,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 1996
    functionName: fwupd_client_get_remotes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remotes_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_remotes_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2015,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2015,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2016,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2016,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2017,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2020,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2024,1
    - Dst: fwupd_client_get_remotes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2025,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2026,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2028,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2028,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2032
    functionName: fwupd_client_get_remotes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_remotes_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_remotes(FwupdClient *self, GCancellable *cancellable, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2038,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2039,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remotes
    - remote_id
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2043
    functionName: fwupd_client_get_remote_by_id_noref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fwupd_client_get_remote_by_id_noref(GPtrArray *remotes, const gchar *remote_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2065,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2067,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2067,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2068,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2069,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2069,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2070,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2073,1
    - Dst: fwupd_client_get_remote_by_id_noref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2076,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2078,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - remote_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2058
    functionDepth: 4
    functionLinenumber: 2058
    functionLinenumberEnd: 2088
    functionName: fwupd_client_get_remote_by_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 8
    functionsReached:
    - G_IS_CANCELLABLE
    - g_set_error
    - g_object_ref
    - fwupd_client_get_remote_by_id_noref
    - FWUPD_IS_CLIENT
    - g_autoptr
    - fwupd_client_get_remotes
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdRemote
    signature: "FwupdRemote *\nfwupd_client_get_remote_by_id(FwupdClient *self,\n\t\t\t
      \     const gchar *remote_id,\n\t\t\t      GCancellable *cancellable,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_approved_firmware_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2095,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2095,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2097
    functionName: fwupd_client_get_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_approved_firmware_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_approved_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2117,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2118,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2119,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2122,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2126,1
    - Dst: fwupd_client_get_approved_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2127,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2131,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2133,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2133,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2138,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2142
    functionName: fwupd_client_get_approved_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - g_new0
    - fwupd_client_get_approved_firmware_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_strdup
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_client_get_approved_firmware(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_set_approved_firmware_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2149,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2149,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2144
    functionDepth: 1
    functionLinenumber: 2144
    functionLinenumberEnd: 2151
    functionName: fwupd_client_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_set_approved_firmware_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_approved_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2173,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2175,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2177,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2178,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2181,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2186,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2186,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2189,1
    - Dst: fwupd_client_set_approved_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2190,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2195,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2197,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - checksums
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar**
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2166
    functionDepth: 3
    functionLinenumber: 2166
    functionLinenumberEnd: 2201
    functionName: fwupd_client_set_approved_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_set_approved_firmware_async
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_strdup
    - g_autoptr
    - g_main_loop_run
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_set_approved_firmware(FwupdClient *self,\n\t\t\t\t
      \  gchar **checksums,\n\t\t\t\t   GCancellable *cancellable,\n\t\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_blocked_firmware_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2208,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2208,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2210
    functionName: fwupd_client_get_blocked_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_blocked_firmware_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_blocked_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2230,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2230,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2231,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2232,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2235,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2239,1
    - Dst: fwupd_client_get_blocked_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2240,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2244,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2246,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2249,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2251,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2224
    functionDepth: 3
    functionLinenumber: 2224
    functionLinenumberEnd: 2255
    functionName: fwupd_client_get_blocked_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - g_new0
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_strdup
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - fwupd_client_get_blocked_firmware_async
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_client_get_blocked_firmware(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_set_blocked_firmware_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2262,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2262,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2264
    functionName: fwupd_client_set_blocked_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_blocked_firmware_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_blocked_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2285,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2286,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2288,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2289,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2290,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2291,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2294,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2298,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2298,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2301,1
    - Dst: fwupd_client_set_blocked_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2302,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2307,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2309,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - checksums
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar**
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2279
    functionDepth: 3
    functionLinenumber: 2279
    functionLinenumberEnd: 2313
    functionName: fwupd_client_set_blocked_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_strdup
    - g_autoptr
    - g_main_loop_run
    - fwupd_client_set_blocked_firmware_async
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fwupd_client_helper_new
    - g_ptr_array_add
    - g_propagate_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_set_blocked_firmware(FwupdClient *self,\n\t\t\t\t
      \ gchar **checksums,\n\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_set_feature_flags_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2320,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2320,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2315
    functionDepth: 1
    functionLinenumber: 2315
    functionLinenumberEnd: 2322
    functionName: fwupd_client_set_feature_flags_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_set_feature_flags_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_feature_flags_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2347,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2349,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2350,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2351,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2354,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2358,1
    - Dst: fwupd_client_set_feature_flags_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2359,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2364,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2366,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - feature_flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - FwupdFeatureFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2341
    functionDepth: 3
    functionLinenumber: 2341
    functionLinenumberEnd: 2370
    functionName: fwupd_client_set_feature_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_set_feature_flags_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_set_feature_flags(FwupdClient *self,\n\t\t\t
      \      FwupdFeatureFlags feature_flags,\n\t\t\t       GCancellable *cancellable,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_self_sign_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2376,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2376,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2372
    functionDepth: 1
    functionLinenumber: 2372
    functionLinenumberEnd: 2378
    functionName: fwupd_client_self_sign_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_self_sign_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_self_sign_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2403,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2404,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2405,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2405,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2406,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2409,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2413,1
    - Dst: fwupd_client_self_sign_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2414,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2420,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2422,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2422,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - value
    - flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - FwupdSelfSignFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2394
    functionDepth: 3
    functionLinenumber: 2394
    functionLinenumberEnd: 2426
    functionName: fwupd_client_self_sign
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - fwupd_client_self_sign_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_self_sign(FwupdClient *self,\n\t\t       const
      gchar *value,\n\t\t       FwupdSelfSignFlags flags,\n\t\t       GCancellable
      *cancellable,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2433,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2433,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2435
    functionName: fwupd_client_download_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_download_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_download_bytes_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2459,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2461,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2461,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2462,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2463,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2463,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2464,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2465,1
    - Dst: fwupd_client_get_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2465,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2468,1
    - Dst: fwupd_client_download_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2469,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2475,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - url
    - flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2452
    functionDepth: 2
    functionLinenumber: 2452
    functionLinenumberEnd: 2481
    functionName: fwupd_client_download_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_download_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_user_agent
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfwupd_client_download_bytes(FwupdClient *self,\n\t\t\t    const
      gchar *url,\n\t\t\t    FwupdClientDownloadFlags flags,\n\t\t\t    GCancellable
      *cancellable,\n\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2508,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2509,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2511,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2511,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2512,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2513,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2513,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2514,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2515,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2516,1
    - Dst: fwupd_client_get_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2516,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2519,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2523,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2523,1
    - Dst: g_output_stream_write_bytes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - self
    - url
    - file
    - flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GFile*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2499
    functionDepth: 3
    functionLinenumber: 2499
    functionLinenumberEnd: 2532
    functionName: fwupd_client_download_file
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_output_stream_write_bytes
    - FWUPD_IS_CLIENT
    - fwupd_client_download_bytes
    - G_OUTPUT_STREAM
    - G_IS_FILE
    - fwupd_client_get_user_agent
    - g_file_replace
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_download_file(FwupdClient *self,\n\t\t\t   const
      gchar *url,\n\t\t\t   GFile *file,\n\t\t\t   FwupdClientDownloadFlags flags,\n\t\t\t
      \  GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_upload_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2538,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2538,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2540
    functionName: fwupd_client_upload_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_upload_bytes_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_upload_bytes_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2568,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2570,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2570,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2571,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2572,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2573,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2573,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2574,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2577,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2581,1
    - Dst: fwupd_client_upload_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2582,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2590,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2592,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2592,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - self
    - url
    - payload
    - signature
    - flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - FwupdClientUploadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2559
    functionDepth: 3
    functionLinenumber: 2559
    functionLinenumberEnd: 2596
    functionName: fwupd_client_upload_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_upload_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfwupd_client_upload_bytes(FwupdClient *self,\n\t\t\t  const
      gchar *url,\n\t\t\t  const gchar *payload,\n\t\t\t  const gchar *signature,\n\t\t\t
      \ FwupdClientUploadFlags flags,\n\t\t\t  GCancellable *cancellable,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_upload_report_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2602,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2602,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2604
    functionName: fwupd_client_upload_report_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_upload_report_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_upload_report_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2634,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2634,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2635,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2636,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2637,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2637,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2638,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2641,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2645,1
    - Dst: fwupd_client_upload_report_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2646,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2654,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2656,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2656,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - self
    - url
    - payload
    - signature
    - flags
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - FwupdClientUploadFlags
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2623
    functionDepth: 3
    functionLinenumber: 2623
    functionLinenumberEnd: 2660
    functionName: fwupd_client_upload_report
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_connect
    - fwupd_client_upload_report_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_upload_report(FwupdClient *self,\n\t\t\t   const
      gchar *url,\n\t\t\t   const gchar *payload,\n\t\t\t   const gchar *signature,\n\t\t\t
      \  FwupdClientUploadFlags flags,\n\t\t\t   GCancellable *cancellable,\n\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_emulation_load_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2666,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2666,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2662
    functionDepth: 1
    functionLinenumber: 2662
    functionLinenumberEnd: 2668
    functionName: fwupd_client_emulation_load_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_emulation_load_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_emulation_load_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2691,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2693,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2693,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2694,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2695,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2695,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2696,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2699,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2703,1
    - Dst: fwupd_client_emulation_load_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2704,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2709,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2711,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2685
    functionDepth: 3
    functionLinenumber: 2685
    functionLinenumberEnd: 2715
    functionName: fwupd_client_emulation_load
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_emulation_load_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_emulation_load(FwupdClient *self,\n\t\t\t    const
      gchar *filename,\n\t\t\t    GCancellable *cancellable,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_emulation_save_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2721,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2721,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2723
    functionName: fwupd_client_emulation_save_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_emulation_save_finish
    - g_main_loop_quit
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_emulation_save_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2751,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2753,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2754,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2754,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2755,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2758,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2762,1
    - Dst: fwupd_client_emulation_save_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2763,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2768,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2770,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2745
    functionDepth: 3
    functionLinenumber: 2745
    functionLinenumberEnd: 2774
    functionName: fwupd_client_emulation_save
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_emulation_save_async
    - fwupd_client_connect
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_emulation_save(FwupdClient *self,\n\t\t\t    const
      gchar *filename,\n\t\t\t    GCancellable *cancellable,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_fix_host_security_attr_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2781,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2781,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2776
    functionDepth: 1
    functionLinenumber: 2776
    functionLinenumberEnd: 2783
    functionName: fwupd_client_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_fix_host_security_attr_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_fix_host_security_attr_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2804,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2806,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2806,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2807,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2808,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2808,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2809,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2812,1
    - Dst: fwupd_client_fix_host_security_attr_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2813,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2818,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2820,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - appstream_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2798
    functionDepth: 2
    functionLinenumber: 2798
    functionLinenumberEnd: 2824
    functionName: fwupd_client_fix_host_security_attr
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_fix_host_security_attr_async
    - FWUPD_IS_CLIENT
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_fix_host_security_attr(FwupdClient *self,\n\t\t\t\t
      \   const gchar *appstream_id,\n\t\t\t\t    GCancellable *cancellable,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_undo_host_security_attr_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2831,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2831,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2826
    functionDepth: 1
    functionLinenumber: 2826
    functionLinenumberEnd: 2833
    functionName: fwupd_client_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - fwupd_client_undo_host_security_attr_finish
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_undo_host_security_attr_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2854,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2856,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2856,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2857,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2858,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2858,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2859,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2862,1
    - Dst: fwupd_client_undo_host_security_attr_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2863,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2868,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2870,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - appstream_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2848
    functionDepth: 2
    functionLinenumber: 2848
    functionLinenumberEnd: 2874
    functionName: fwupd_client_undo_host_security_attr
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_undo_host_security_attr_async
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_return_val_if_fail
    - fwupd_client_helper_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_undo_host_security_attr(FwupdClient *self,\n\t\t\t\t
      \    const gchar *appstream_id,\n\t\t\t\t     GCancellable *cancellable,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fwupd_codec_default_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_default_init(FwupdCodecInterface *iface)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_node_get_node_type
      Src: /src/fwupd/libfwupd/fwupd-codec.c:32,1
    - Dst: json_node_get_value_type
      Src: /src/fwupd/libfwupd/fwupd-codec.c:34,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:36,1
    - Dst: json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupd/fwupd-codec.c:41,1
    - Dst: json_node_get_int
      Src: /src/fwupd/libfwupd/fwupd-codec.c:44,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupd/fwupd-codec.c:46,1
    - Dst: json_node_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-codec.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:51,1
    - Dst: json_node_get_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:55,1
    - Dst: json_array_get_elements
      Src: /src/fwupd/libfwupd/fwupd-codec.c:55,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:57,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:59,1
    - Dst: json_object_iter_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:62,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:62,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:63,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:64,1
    - Dst: json_object_iter_next
      Src: /src/fwupd/libfwupd/fwupd-codec.c:65,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - self
    - member_name
    - json_node
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - gchar*
    - JsonNode*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 73
    functionName: fwupd_codec_add_string_from_json_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - json_node_get_string
    - json_node_get_value_type
    - fwupd_codec_add_string_from_json_node
    - json_node_get_int
    - json_node_get_node_type
    - fwupd_codec_string_append_bool
    - json_node_get_boolean
    - json_object_iter_next
    - json_object_iter_init
    - json_array_get_elements
    - g_autoptr
    - json_node_get_object
    - g_strcmp0
    - fwupd_codec_string_append_hex
    - json_node_get_array
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_codec_add_string_from_json_node(FwupdCodec *self,\n\t\t\t\t
      \     const gchar *member_name,\n\t\t\t\t      JsonNode *json_node,\n\t\t\t\t
      \     guint idt,\n\t\t\t\t      GString *str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:90,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:90,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:91,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:93,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupd/fwupd-codec.c:93,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:94,1
    - Dst: FwupdCodecInterface*::add_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:100,1
    - Dst: json_builder_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:101,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:102,1
    - Dst: FwupdCodecInterface*::add_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:103,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:104,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/libfwupd/fwupd-codec.c:105,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:106,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: fwupd_codec_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - G_OBJECT_TYPE_NAME
    - FWUPD_CODEC_GET_IFACE
    - fwupd_codec_add_string_from_json_node
    - FWUPD_IS_CODEC
    - json_builder_begin_object
    - json_builder_end_object
    - FwupdCodecInterface*::add_string
    - g_return_if_fail
    - json_builder_get_root
    - g_critical
    - g_autoptr
    - FwupdCodecInterface*::add_json
    - json_builder_new
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_add_string(FwupdCodec *self, guint idt, GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:127,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:127,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:129,1
    - Dst: FwupdCodecInterface*::to_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:131,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:133,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:134,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-codec.c:135,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: fwupd_codec_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 9
    functionsReached:
    - FwupdCodecInterface*::to_string
    - FWUPD_CODEC_GET_IFACE
    - g_string_new
    - FWUPD_IS_CODEC
    - g_string_free
    - g_critical
    - fwupd_codec_add_string
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_codec_to_string(FwupdCodec *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:158,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:159,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:160,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-codec.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 171
    functionName: fwupd_codec_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 6
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - FWUPD_CODEC_GET_IFACE
    - FWUPD_IS_CODEC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_codec_from_json(FwupdCodec *self, JsonNode *json_node,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:188,1
    - Dst: json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:190,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:192,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-codec.c:194,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-codec.c:195,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:198,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/libfwupd/fwupd-codec.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - json
    - error
    argTypes:
    - FwupdCodec*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: fwupd_codec_from_json_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 4
    functionsReached:
    - json_parser_get_root
    - json_parser_new
    - FWUPD_IS_CODEC
    - json_parser_load_from_data
    - g_prefix_error
    - g_autoptr
    - fwupd_codec_from_json
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_codec_from_json_string(FwupdCodec *self, const gchar
      *json, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:216,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:216,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:217,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:219,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:221,1
    - Dst: FwupdCodecInterface*::add_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: fwupd_codec_to_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 8
    functionsReached:
    - FWUPD_CODEC_GET_IFACE
    - FWUPD_IS_CODEC
    - g_return_if_fail
    - g_critical
    - FwupdCodecInterface*::add_json
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_to_json(FwupdCodec *self, JsonBuilder *builder, FwupdCodecFlags
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:244,1
    - Dst: json_builder_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:247,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:247,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:248,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:250,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:251,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:252,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/libfwupd/fwupd-codec.c:253,1
    - Dst: json_generator_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:254,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/libfwupd/fwupd-codec.c:255,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/libfwupd/fwupd-codec.c:256,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/libfwupd/fwupd-codec.c:257,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-codec.c:259,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 263
    functionName: fwupd_codec_to_json_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 5
    functionsReached:
    - g_set_error
    - json_generator_new
    - g_steal_pointer
    - FWUPD_IS_CODEC
    - json_builder_begin_object
    - json_generator_to_data
    - fwupd_codec_to_json
    - json_builder_get_root
    - json_generator_set_root
    - g_autoptr
    - g_return_val_if_fail
    - json_builder_end_object
    - json_generator_set_pretty
    - json_builder_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_codec_to_json_string(FwupdCodec *self, FwupdCodecFlags flags, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:282,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:282,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:284,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:286,1
    - Dst: g_variant_get_type_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:291,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:293,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-codec.c:294,1
    - Dst: FwupdCodecInterface*::from_variant_iter
      Src: /src/fwupd/libfwupd/fwupd-codec.c:295,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:297,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-codec.c:298,1
    - Dst: FwupdCodecInterface*::from_variant_iter
      Src: /src/fwupd/libfwupd/fwupd-codec.c:299,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-codec.c:301,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-codec.c:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdCodec*
    - GVariant*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 315
    functionName: fwupd_codec_from_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - FWUPD_CODEC_GET_IFACE
    - g_variant_get
    - FWUPD_IS_CODEC
    - FwupdCodecInterface*::from_variant_iter
    - g_variant_get_type_string
    - g_set_error_literal
    - g_autoptr
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_codec_from_variant(FwupdCodec *self, GVariant *value,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:334,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:337,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-codec.c:339,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:340,1
    - Dst: g_variant_n_children
      Src: /src/fwupd/libfwupd/fwupd-codec.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:343,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:344,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:344,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:345,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:345,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-codec.c:347,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:347,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - value
    - gtype
    - error
    argTypes:
    - GVariant*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 350
    functionName: fwupd_codec_array_from_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - FWUPD_CODEC
    - g_object_new
    - fwupd_codec_from_variant
    - g_autoptr
    - g_variant_n_children
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - g_variant_get_child_value
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_codec_array_from_variant(GVariant *value, GType gtype, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:369,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:370,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:371,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:371,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:373,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:374,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:376,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:376,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:377,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:378,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:379,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - array
    - member_name
    - builder
    - flags
    argTypes:
    - GPtrArray*
    - gchar*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 382
    functionName: fwupd_codec_array_to_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 10
    functionsReached:
    - json_builder_begin_array
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - g_return_if_fail
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - JSON_IS_BUILDER
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: "void fwupd_codec_array_to_json(GPtrArray *array,\n\t\t\t  const gchar
      *member_name,\n\t\t\t  JsonBuilder *builder,\n\t\t\t  FwupdCodecFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:400,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:402,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:402,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:404,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:404,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:405,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:405,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - array
    - flags
    argTypes:
    - GPtrArray*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: fwupd_codec_array_to_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 7
    functionsReached:
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_variant
    - g_return_val_if_fail
    - g_variant_new
    - g_variant_builder_add_value
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fwupd_codec_array_to_variant(GPtrArray *array, FwupdCodecFlags flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:426,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:426,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:428,1
    - Dst: FwupdCodecInterface*::to_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:430,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:433,1
    - Dst: FwupdCodecInterface*::add_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:434,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:435,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: fwupd_codec_to_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 10
    functionsReached:
    - FwupdCodecInterface*::to_variant
    - FWUPD_CODEC_GET_IFACE
    - g_variant_builder_init
    - FWUPD_IS_CODEC
    - g_critical
    - FwupdCodecInterface*::add_variant
    - g_return_val_if_fail
    - g_variant_new
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fwupd_codec_to_variant(FwupdCodec *self, FwupdCodecFlags flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:448,1
    - Dst: g_utf8_get_char
      Src: /src/fwupd/libfwupd/fwupd-codec.c:451,1
    - Dst: g_unichar_iswide
      Src: /src/fwupd/libfwupd/fwupd-codec.c:452,1
    - Dst: g_unichar_iszerowidth
      Src: /src/fwupd/libfwupd/fwupd-codec.c:454,1
    - Dst: g_utf8_next_char
      Src: /src/fwupd/libfwupd/fwupd-codec.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 459
    functionName: _fu_strwidth
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - g_unichar_iswide
    - g_utf8_get_char
    - g_return_val_if_fail
    - g_unichar_iszerowidth
    - g_utf8_next_char
    linkageType: ''
    returnType: gsize
    signature: gsize _fu_strwidth(const gchar *text)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:478,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:479,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:480,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:486,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:488,1
    - Dst: _fu_strwidth
      Src: /src/fwupd/libfwupd/fwupd-codec.c:489,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-codec.c:494,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-codec.c:495,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:498,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:500,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:502,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:504,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:506,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 510
    functionName: fwupd_codec_string_append
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 17
    functionsReached:
    - g_string_append_printf
    - _fu_strwidth
    - g_auto
    - g_strsplit
    - g_return_if_fail
    - g_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append(GString *str, guint idt, const gchar
      *key, const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:528,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:529,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:534,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: fwupd_codec_string_append_int
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - fwupd_codec_string_append
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_int(GString *str, guint idt, const gchar
      *key, guint64 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:554,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:555,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:560,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 562
    functionName: fwupd_codec_string_append_hex
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 4
    functionsReached:
    - g_strdup_printf
    - fwupd_codec_string_append
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_hex(GString *str, guint idt, const gchar
      *key, guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:578,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:579,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: fwupd_codec_string_append_bool
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - fwupd_codec_string_append
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_bool(GString *str, guint idt, const
      gchar *key, gboolean value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:598,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:600,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:601,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupd/fwupd-codec.c:607,1
    - Dst: g_date_time_format
      Src: /src/fwupd/libfwupd/fwupd-codec.c:608,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: fwupd_codec_string_append_time
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 4
    functionsReached:
    - g_date_time_new_from_unix_utc
    - g_date_time_format
    - g_return_if_fail
    - g_autoptr
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_time(GString *str, guint idt, const
      gchar *key, guint64 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:628,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:629,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupd/fwupd-codec.c:634,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 636
    functionName: fwupd_codec_string_append_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - g_format_size
    - fwupd_codec_string_append
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_size(GString *str, guint idt, const
      gchar *key, guint64 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:651,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:651,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:652,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:655,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - builder
    - key
    - value
    argTypes:
    - JsonBuilder*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: fwupd_codec_json_append
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - JSON_IS_BUILDER
    - json_builder_set_member_name
    - json_builder_add_string_value
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append(JsonBuilder *builder, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:672,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:672,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:673,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:674,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - builder
    - key
    - value
    argTypes:
    - JsonBuilder*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: fwupd_codec_json_append_int
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - JSON_IS_BUILDER
    - json_builder_add_int_value
    - json_builder_set_member_name
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_int(JsonBuilder *builder, const gchar
      *key, guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:691,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:691,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:692,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:693,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - builder
    - key
    - value
    argTypes:
    - JsonBuilder*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: fwupd_codec_json_append_bool
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - JSON_IS_BUILDER
    - json_builder_set_member_name
    - json_builder_add_boolean_value
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_bool(JsonBuilder *builder, const gchar
      *key, gboolean value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:710,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:710,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:711,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:714,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:715,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:717,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - builder
    - key
    - value
    argTypes:
    - JsonBuilder*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 719
    functionName: fwupd_codec_json_append_strv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - json_builder_end_array
    - g_return_if_fail
    - json_builder_set_member_name
    - JSON_IS_BUILDER
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_strv(JsonBuilder *builder, const gchar
      *key, gchar **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:737,1
    - Dst: JSON_IS_BUILDER
      Src: /src/fwupd/libfwupd/fwupd-codec.c:737,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:738,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-codec.c:742,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:743,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:744,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-codec.c:745,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:746,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - builder
    - key
    - value
    argTypes:
    - JsonBuilder*
    - gchar*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 751
    functionName: fwupd_codec_json_append_map
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - fwupd_codec_json_append
    - json_builder_begin_object
    - g_return_if_fail
    - json_builder_set_member_name
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - JSON_IS_BUILDER
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_map(JsonBuilder *builder, const gchar
      *key, GHashTable *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/libfwupd/fwupd-client.c:134,1
    - Dst: curl_mime_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:136,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/libfwupd/fwupd-client.c:138,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:140,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdCurlHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: fwupd_client_curl_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - curl_mime_free
    - curl_easy_cleanup
    - curl_slist_free_all
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_client_curl_helper_free(FwupdCurlHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:156,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:157,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:158,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdClientContextHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: fwupd_client_context_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fwupd_client_context_helper_free(FwupdClientContextHelper *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:166,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:168,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:168,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:171,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:171,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:174,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - property_name
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: fwupd_client_context_object_notify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_object_notify
    - g_main_context_is_owner
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fwupd_client_context_object_notify(FwupdClient *self, const gchar
      *property_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:182,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:184,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:184,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:189,1
    - Dst: fwupd_client_context_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:193,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:194,1
    - Dst: fwupd_request_emit_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:195,1
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-client.c:195,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:200,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:202,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: fwupd_client_context_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - FWUPD_REQUEST
    - g_mutex_locker_new
    - fwupd_request_emit_invalidate
    - g_ptr_array_index
    - GET_PRIVATE
    - g_ptr_array_set_size
    - g_autoptr
    - FWUPD_CLIENT
    - g_strcmp0
    - g_return_val_if_fail
    - fwupd_client_context_object_notify
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_context_idle_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:216,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:216,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:222,1
    - Dst: g_idle_source_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:222,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/libfwupd/fwupd-client.c:223,1
    - Dst: g_source_attach
      Src: /src/fwupd/libfwupd/fwupd-client.c:224,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - helper
    argTypes:
    - FwupdClient*
    - FwupdClientContextHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 229
    functionName: fwupd_client_context_helper
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_mutex_locker_new
    - g_idle_source_new
    - g_source_attach
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_add
    - g_source_set_callback
    linkageType: ''
    returnType: void
    signature: void fwupd_client_context_helper(FwupdClient *self, FwupdClientContextHelper
      *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:235,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:239,1
    - Dst: fwupd_client_context_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:240,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:245,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:246,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:247,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - property_name
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: fwupd_client_object_notify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_main_context_is_owner
    - g_new0
    - GET_PRIVATE
    - g_strdup
    - fwupd_client_context_helper
    - fwupd_client_context_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_object_notify(FwupdClient *self, const gchar *property_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:255,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:259,1
    - Dst: fwupd_request_emit_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:260,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:265,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:266,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:267,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:268,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:268,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - request
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: fwupd_client_request_invalidate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_main_context_is_owner
    - g_new0
    - fwupd_request_emit_invalidate
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - fwupd_client_context_helper
    linkageType: ''
    returnType: void
    signature: void fwupd_client_request_invalidate(FwupdClient *self, FwupdRequest
      *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:276,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:280,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:281,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:286,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:287,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:289,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - signal_id
    - payload
    argTypes:
    - FwupdClient*
    - guint
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: fwupd_client_signal_emit_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_object_ref
    - g_main_context_is_owner
    - g_new0
    - GET_PRIVATE
    - fwupd_client_context_helper
    linkageType: ''
    returnType: void
    signature: void fwupd_client_signal_emit_object(FwupdClient *self, guint signal_id,
      GObject *payload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:297,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:301,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:302,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:307,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:308,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: fwupd_client_signal_emit_changed
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_object_ref
    - g_main_context_is_owner
    - g_new0
    - GET_PRIVATE
    - fwupd_client_context_helper
    linkageType: ''
    returnType: void
    signature: void fwupd_client_signal_emit_changed(FwupdClient *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:317,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:317,1
    - Dst: g_get_os_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:321,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:323,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:323,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:327,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupd/fwupd-client.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: fwupd_client_build_user_agent_os_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_strjoinv
    - g_autoptr
    - g_get_os_info
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_build_user_agent_os_release(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:339,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:339,1
    - Dst: memset
      Src: /src/fwupd/libfwupd/fwupd-client.c:343,1
    - Dst: uname
      Src: /src/fwupd/libfwupd/fwupd-client.c:344,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:345,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:346,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:355,1
    - Dst: setlocale
      Src: /src/fwupd/libfwupd/fwupd-client.c:355,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-client.c:358,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-client.c:359,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:360,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:360,1
    - Dst: fwupd_client_build_user_agent_os_release
      Src: /src/fwupd/libfwupd/fwupd-client.c:364,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:366,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:366,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:371,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupd/fwupd-client.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 373
    functionName: fwupd_client_build_user_agent_system
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_steal_pointer
    - g_strjoinv
    - g_strdup_printf
    - g_strdup
    - g_autoptr
    - setlocale
    - memset
    - g_ptr_array_new_with_free_func
    - fwupd_client_build_user_agent_os_release
    - uname
    - g_ptr_array_add
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_build_user_agent_system(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:379,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:379,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:384,1
    - Dst: fwupd_client_build_user_agent_system
      Src: /src/fwupd/libfwupd/fwupd-client.c:387,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:389,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:392,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:393,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:396,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:397,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:400,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:401,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 402
    functionName: fwupd_client_rebuild_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - fwupd_client_build_user_agent_system
    - GET_PRIVATE
    - g_autoptr
    - g_strcmp0
    - g_getenv
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_client_rebuild_user_agent(FwupdClient *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:410,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:413,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:414,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_vendor
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: fwupd_client_set_host_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_host_vendor(FwupdClient *self, const gchar *host_vendor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:421,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:424,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:427,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:428,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_product
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: fwupd_client_set_host_product
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_host_product(FwupdClient *self, const gchar *host_product)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:438,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:441,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:442,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_machine_id
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 444
    functionName: fwupd_client_set_host_machine_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_host_machine_id(FwupdClient *self, const gchar
      *host_machine_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:449,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:452,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:455,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:456,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_security_id
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: fwupd_client_set_host_security_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_host_security_id(FwupdClient *self, const gchar
      *host_security_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:472,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:475,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:478,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:479,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:480,1
    - Dst: fwupd_client_rebuild_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - daemon_version
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: fwupd_client_set_daemon_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_client_rebuild_user_agent
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_daemon_version(FwupdClient *self, const gchar
      *daemon_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:496,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:497,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - retries
    argTypes:
    - FwupdClient*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: fwupd_client_download_set_retries
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_client_download_set_retries(FwupdClient *self, guint retries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:504,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:507,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:511,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:514,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:515,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - host_bkc
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 517
    functionName: fwupd_client_set_host_bkc
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_host_bkc(FwupdClient *self, const gchar *host_bkc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:522,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:526,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:526,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FwupdClient*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 528
    functionName: fwupd_client_set_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_object_notify
    - g_debug
    - GET_PRIVATE
    - fwupd_status_to_string
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_status(FwupdClient *self, FwupdStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:533,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FwupdClient*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: fwupd_client_set_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_object_notify
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_percentage(FwupdClient *self, guint percentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:543,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:547,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FwupdClient*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: fwupd_client_set_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_object_notify
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_battery_level(FwupdClient *self, guint32 battery_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:553,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:557,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FwupdClient*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: fwupd_client_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_object_notify
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_battery_threshold(FwupdClient *self, guint32
      battery_threshold)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:567,1
    - Dst: g_variant_dict_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:570,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:572,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:573,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:575,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:575,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:578,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:579,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:581,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:582,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:585,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:586,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:587,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:589,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:590,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:593,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:594,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:595,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:597,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:597,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:600,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:601,1
    - Dst: fwupd_client_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-client.c:603,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:603,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:605,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:606,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:607,1
    - Dst: fwupd_client_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-client.c:609,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:609,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:612,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:613,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:615,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:615,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:617,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:618,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:618,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:620,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:620,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:623,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:624,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:626,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:626,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:628,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:629,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:630,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:632,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:632,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:635,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:636,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:638,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:638,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:640,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:641,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:642,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:644,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:644,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:647,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:648,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:650,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:651,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 99
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - self
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 654
    functionName: fwupd_client_properties_changed_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_variant_dict_contains
    - fwupd_client_set_host_product
    - g_variant_get_string
    - fwupd_client_set_host_vendor
    - g_variant_get_boolean
    - fwupd_client_set_host_bkc
    - fwupd_client_set_host_security_id
    - fwupd_client_set_percentage
    - g_dbus_proxy_get_cached_property
    - fwupd_client_set_status
    - g_variant_get_uint32
    - fwupd_client_object_notify
    - fwupd_client_set_daemon_version
    - fwupd_client_set_battery_threshold
    - fwupd_client_set_battery_level
    - g_autoptr
    - g_variant_dict_new
    - fwupd_client_set_host_machine_id
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_properties_changed_cb(GDBusProxy *proxy,\n\t\t\t\t
      \  GVariant *changed_properties,\n\t\t\t\t   GStrv invalidated_properties,\n\t\t\t\t
      \  FwupdClient *self)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:659,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:660,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:663,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:668,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:669,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:671,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:673,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:677,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 679
    functionName: fwupd_client_update_proxy_name_owner
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fwupd_client_set_status
    - g_dbus_proxy_get_name_owner
    - GET_PRIVATE
    - g_strcmp0
    - fwupd_client_signal_emit_changed
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_client_update_proxy_name_owner(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_update_proxy_name_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - proxy
    - pspec
    - self
    argTypes:
    - GDBusProxy*
    - GParamSpec*
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: fwupd_client_name_owner_changed_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_update_proxy_name_owner
    linkageType: ''
    returnType: void
    signature: void fwupd_client_name_owner_changed_cb(GDBusProxy *proxy, GParamSpec
      *pspec, FwupdClient *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:695,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:696,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:697,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:698,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:699,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:702,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:703,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:704,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:704,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:705,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:708,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:708,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:709,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:709,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:712,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:713,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:714,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:714,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:715,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:718,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:718,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:719,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:719,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:722,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:723,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:724,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:724,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:725,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:728,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:728,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:729,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:729,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:732,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-client.c:734,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:734,1
    - Dst: fwupd_client_request_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:736,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupd/fwupd-client.c:737,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:738,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:744,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:744,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:745,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:745,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:746,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:749,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:749,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:750,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:750,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:753,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:754,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-client.c:755,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:756,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:756,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:757,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:761,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 5
    argNames:
    - proxy
    - sender_name
    - signal_name
    - parameters
    - self
    argTypes:
    - GDBusProxy*
    - gchar*
    - gchar*
    - GVariant*
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 762
    functionName: fwupd_client_signal_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FWUPD_CODEC
    - g_hash_table_remove
    - fwupd_codec_from_variant
    - fwupd_client_signal_emit_changed
    - fwupd_client_request_invalidate
    - g_object_ref
    - g_debug
    - fwupd_device_new
    - G_OBJECT
    - fwupd_request_new
    - fwupd_request_get_kind
    - fwupd_request_get_id
    - fwupd_request_get_device_id
    - fwupd_device_get_id
    - g_autoptr
    - g_strcmp0
    - g_warning
    - fwupd_client_signal_emit_object
    - fwupd_device_get_status
    - GET_PRIVATE
    - g_strdup
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_signal_cb(GDBusProxy *proxy,\n\t\t       const gchar
      *sender_name,\n\t\t       const gchar *signal_name,\n\t\t       GVariant *parameters,\n\t\t
      \      FwupdClient *self)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:779,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:779,1
    - Dst: g_main_context_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:781,1
    - Dst: g_main_context_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: fwupd_client_get_main_context
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    - g_main_context_ref
    - g_return_val_if_fail
    - g_main_context_new
    linkageType: ''
    returnType: GMainContext
    signature: 'GMainContext *

      fwupd_client_get_main_context(FwupdClient *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:797,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:798,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:798,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:801,1
    - Dst: g_main_context_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - main_ctx
    argTypes:
    - FwupdClient*
    - GMainContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 804
    functionName: fwupd_client_set_main_context
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - g_clear_pointer
    - GET_PRIVATE
    - g_main_context_ref
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_main_context(FwupdClient *self, GMainContext
      *main_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:822,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:824,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:824,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:825,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:829,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupd/fwupd-client.c:832,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 840
    functionName: fwupd_client_ensure_networking
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strstr_len
    - FWUPD_IS_CLIENT
    - g_set_error_literal
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_ensure_networking(FwupdClient *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:849,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:850,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:856,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:857,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:861,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:862,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: fwupd_client_progress_callback_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_info
    - GET_PRIVATE
    - fwupd_client_set_percentage
    - FWUPD_CLIENT
    linkageType: ''
    returnType: int
    signature: "int fwupd_client_progress_callback_cb(void *clientp,\n\t\t\t\t  curl_off_t
      dltotal,\n\t\t\t\t  curl_off_t dlnow,\n\t\t\t\t  curl_off_t ultotal,\n\t\t\t\t
      \ curl_off_t ulnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:874,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:875,1
    - Dst: g_proxy_resolver_lookup
      Src: /src/fwupd/libfwupd/fwupd-client.c:877,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:879,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:882,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - helper
    - url
    - error
    argTypes:
    - FwupdClient*
    - FwupdCurlHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 887
    functionName: fwupd_client_curl_helper_set_proxy
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_auto
    - g_prefix_error
    - g_proxy_resolver_lookup
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_curl_helper_set_proxy(FwupdClient *self,\n\t\t\t\t
      \  FwupdCurlHelper *helper,\n\t\t\t\t   const gchar *url,\n\t\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:892,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:893,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:893,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-client.c:896,1
    - Dst: curl_easy_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:900,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:902,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:908,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:909,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:910,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:913,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:914,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:915,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:916,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:917,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:918,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:920,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client.c:922,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:923,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:927,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 929
    functionName: fwupd_client_curl_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_steal_pointer
    - g_new0
    - fwupd_client_ensure_networking
    - CURL_AT_LEAST_VERSION
    - g_set_error_literal
    - curl_easy_init
    - GET_PRIVATE
    - g_autoptr
    - g_getenv
    linkageType: ''
    returnType: FwupdCurlHelper
    signature: 'FwupdCurlHelper *

      fwupd_client_curl_new(FwupdClient *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:934,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:934,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:935,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:936,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:938,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:938,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:941,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:942,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:943,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:946,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:946,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 952
    functionName: fwupd_client_set_hints_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_hints_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:957,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:957,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:961,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:962,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:963,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:964,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:965,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:966,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:967,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:969,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:970,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:971,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:972,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:973,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:974,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:975,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:976,1
    - Dst: g_dbus_proxy_new_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:978,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:980,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:980,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:985,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:987,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:990,1
    - Dst: fwupd_client_update_proxy_name_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:991,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:994,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:994,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:996,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:998,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:998,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1000,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:1002,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1002,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1004,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1006,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:1008,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1008,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1009,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1011,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1012,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:1014,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:1014,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1015,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1017,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1018,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:1020,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1020,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1021,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:1023,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1023,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1024,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:1026,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1026,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1027,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:1029,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1029,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1030,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:1032,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1032,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1033,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1035,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1038,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1038,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1039,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-client.c:1040,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:1043,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1047,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1049,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1054,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 1055
    functionName: fwupd_client_connect_get_proxy_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_host_product
    - g_mutex_locker_new
    - g_variant_get_string
    - G_VARIANT_TYPE
    - fwupd_client_set_host_vendor
    - g_signal_connect
    - g_variant_get_boolean
    - G_DBUS_PROXY
    - fwupd_client_set_host_bkc
    - G_TASK
    - fwupd_client_set_host_security_id
    - g_dbus_proxy_get_cached_property
    - fwupd_client_set_status
    - g_variant_get_uint32
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_task_get_source_object
    - fwupd_client_set_daemon_version
    - G_CALLBACK
    - fwupd_client_update_proxy_name_owner
    - g_variant_new
    - g_dbus_proxy_new_finish
    - g_dbus_proxy_call
    - g_steal_pointer
    - g_variant_builder_init
    - g_autoptr
    - g_task_get_cancellable
    - g_task_return_boolean
    - fwupd_client_set_host_machine_id
    - g_variant_builder_add
    - GET_PRIVATE
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_connect_get_proxy_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1060,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1060,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:1061,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1062,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1063,1
    - Dst: g_dbus_connection_new_for_address_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1065,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1067,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1067,1
    - Dst: g_dbus_proxy_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1070,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1079
    functionName: fwupd_client_connect_get_connection_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - G_TASK
    - g_task_get_cancellable
    - g_dbus_connection_new_for_address_finish
    - g_autoptr
    - g_task_return_error
    - g_dbus_proxy_new
    linkageType: ''
    returnType: void
    signature: void fwupd_client_connect_get_connection_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1102,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:1103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1105,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1106,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1106,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1108,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1108,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1109,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1109,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1111,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1115,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1122,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1127,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:1128,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1130,1
    - Dst: g_dbus_connection_new_for_address
      Src: /src/fwupd/libfwupd/fwupd-client.c:1136,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1141,1
    - Dst: g_dbus_proxy_new_for_bus
      Src: /src/fwupd/libfwupd/fwupd-client.c:1146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1155
    functionName: fwupd_client_connect_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_mutex_locker_new
    - g_task_new
    - g_steal_pointer
    - g_dbus_connection_new_for_address
    - FWUPD_IS_CLIENT
    - g_strdup_printf
    - g_return_if_fail
    - g_dbus_proxy_new_for_bus
    - g_strrstr
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_getenv
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_connect_async(FwupdClient *self,\n\t\t\t   GCancellable
      *cancellable,\n\t\t\t   GAsyncReadyCallback callback,\n\t\t\t   gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1172,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1173,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1174,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1175,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1176
    functionName: fwupd_client_connect_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_connect_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1197,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1197,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1199,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:1206,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:1209,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1214
    functionName: fwupd_client_disconnect
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_mutex_locker_new
    - FWUPD_IS_CLIENT
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - g_signal_handlers_disconnect_by_data
    - g_return_val_if_fail
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_disconnect(FwupdClient *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1219,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1219,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1219,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1221,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1223,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1225,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1225,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1227,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1228,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1228,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1233,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1235
    functionName: fwupd_client_quit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_task_return_error
    - GET_PRIVATE
    - g_autoptr
    - FWUPD_CLIENT
    - g_task_get_source_object
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fwupd_client_quit_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1257,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1259,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1259,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1260,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1260,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1261,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1264,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1273
    functionName: fwupd_client_quit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_quit_async(FwupdClient *self,\n\t\t\tGCancellable
      *cancellable,\n\t\t\tGAsyncReadyCallback callback,\n\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1290,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1291,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1291,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1292,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1293,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1294
    functionName: fwupd_client_quit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_quit_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1301,1
    - Dst: g_dbus_error_is_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1304,1
    - Dst: g_dbus_error_get_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1308,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:1311,1
    - Dst: fwupd_error_from_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1313,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1314,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1315,1
    - Dst: g_dbus_error_strip_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1323
    functionName: fwupd_client_fixup_dbus_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_str_has_prefix
    - g_error_matches
    - g_dbus_error_strip_remote_error
    - g_dbus_error_is_remote_error
    - g_return_if_fail
    - fwupd_error_from_string
    - g_dbus_error_get_remote_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_fixup_dbus_error(GError *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1328,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1328,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1329,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1330,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1331,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1333,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1333,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1335,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1336,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1336,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1339,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1341,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1341,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1346,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1347
    functionName: fwupd_client_get_host_security_attrs_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_host_security_attrs_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1370,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1372,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1372,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1373,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1374,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1377,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1378,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1386
    functionName: fwupd_client_get_host_security_attrs_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_host_security_attrs_async(FwupdClient *self,\n\t\t\t\t\t
      \  GCancellable *cancellable,\n\t\t\t\t\t   GAsyncReadyCallback callback,\n\t\t\t\t\t
      \  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1403,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1404,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1404,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1405,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1406,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1407
    functionName: fwupd_client_get_host_security_attrs_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_host_security_attrs_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1412,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1412,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1413,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1414,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1416,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1416,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1418,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1419,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1419,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1425
    functionName: fwupd_client_modify_bios_setting_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_bios_setting_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1447,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1451,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1453,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1453,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1454,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1455,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:1455,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1456,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1456,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1457,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1460,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1461,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1461,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1462,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-client.c:1463,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:1466,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1468,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1470,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - settings
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GHashTable*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1476
    functionName: fwupd_client_modify_bios_setting_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_hash_table_size
    - g_task_new
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - g_variant_builder_add
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_modify_bios_setting_async(FwupdClient *self,\n\t\t\t\t
      \      GHashTable *settings,\n\t\t\t\t       GCancellable *cancellable,\n\t\t\t\t
      \      GAsyncReadyCallback callback,\n\t\t\t\t       gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1493,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1494,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1494,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1495,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1496,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1497
    functionName: fwupd_client_modify_bios_setting_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_modify_bios_setting_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1502,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1502,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1505,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1507,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1507,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1509,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1510,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1510,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1513,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1515,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1520,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1521
    functionName: fwupd_client_get_bios_settings_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_bios_settings_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1543,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1544,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1546,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1546,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1547,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1547,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1548,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1551,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1552,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1560
    functionName: fwupd_client_get_bios_settings_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_bios_settings_async(FwupdClient *self,\n\t\t\t\t
      \    GCancellable *cancellable,\n\t\t\t\t     GAsyncReadyCallback callback,\n\t\t\t\t
      \    gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1577,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1577,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1578,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1579,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1580,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1581
    functionName: fwupd_client_get_bios_settings_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_bios_settings_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1586,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1588,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1589,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1591,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1591,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1593,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1594,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1594,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1597,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1599,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1599,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1604,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1605
    functionName: fwupd_client_get_host_security_events_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_host_security_events_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1629,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1630,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1632,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1632,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1633,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1633,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1634,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1637,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1638,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1640,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - limit
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - guint
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1646
    functionName: fwupd_client_get_host_security_events_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_host_security_events_async(FwupdClient *self,\n\t\t\t\t\t
      \   guint limit,\n\t\t\t\t\t    GCancellable *cancellable,\n\t\t\t\t\t    GAsyncReadyCallback
      callback,\n\t\t\t\t\t    gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1663,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1663,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1664,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1664,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1665,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1666,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1667
    functionName: fwupd_client_get_host_security_events_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_host_security_events_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1674,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-client.c:1676,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:1677,1
    - Dst: g_variant_n_children
      Src: /src/fwupd/libfwupd/fwupd-client.c:1678,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1680,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:1683,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:1684,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-client.c:1685,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1685,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1688
    functionName: fwupd_client_report_metadata_hash_from_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_variant_get
    - g_hash_table_new_full
    - g_strdup
    - g_autoptr
    - g_variant_n_children
    - g_variant_get_child_value
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_client_report_metadata_hash_from_variant(GVariant *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1693,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1693,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1694,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1695,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1697,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1697,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1699,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1700,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1700,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1705,1
    - Dst: fwupd_client_report_metadata_hash_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1690
    functionDepth: 2
    functionLinenumber: 1690
    functionLinenumberEnd: 1708
    functionName: fwupd_client_get_report_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_client_report_metadata_hash_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_report_metadata_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1730,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1731,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1733,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1733,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1734,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1734,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1735,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1738,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1739,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1724
    functionDepth: 0
    functionLinenumber: 1724
    functionLinenumberEnd: 1747
    functionName: fwupd_client_get_report_metadata_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_report_metadata_async(FwupdClient *self,\n\t\t\t\t
      \      GCancellable *cancellable,\n\t\t\t\t       GAsyncReadyCallback callback,\n\t\t\t\t
      \      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1764,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1764,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1765,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1765,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1766,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1767,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1768
    functionName: fwupd_client_get_report_metadata_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_client_get_report_metadata_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1773,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1773,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1774,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1775,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1776,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1778,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1778,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1780,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1781,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1781,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1784,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1786,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1786,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/libfwupd/fwupd-client.c:1789,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1792,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1793
    functionName: fwupd_client_get_devices_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - fwupd_device_array_ensure_parents
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_devices_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1815,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1816,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1818,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1818,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1819,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1819,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1820,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1823,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1824,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1832
    functionName: fwupd_client_get_devices_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_devices_async(FwupdClient *self,\n\t\t\t       GCancellable
      *cancellable,\n\t\t\t       GAsyncReadyCallback callback,\n\t\t\t       gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1849,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1850,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1851,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1852,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1853
    functionName: fwupd_client_get_devices_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_devices_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1858,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1858,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1859,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1861,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1863,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1863,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1865,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1866,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1866,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1869,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1871,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1871,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1876,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1877
    functionName: fwupd_client_get_plugins_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_plugins_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1899,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1900,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1902,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1902,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1903,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1903,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1904,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1907,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1908,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1916
    functionName: fwupd_client_get_plugins_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_plugins_async(FwupdClient *self,\n\t\t\t       GCancellable
      *cancellable,\n\t\t\t       GAsyncReadyCallback callback,\n\t\t\t       gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1933,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1933,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1934,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1934,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1935,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1936,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1937
    functionName: fwupd_client_get_plugins_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_plugins_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1942,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1942,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1943,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1944,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1945,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1947,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1947,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1949,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1950,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1950,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1953,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1955,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1955,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/libfwupd/fwupd-client.c:1958,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1961,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1939
    functionDepth: 2
    functionLinenumber: 1939
    functionLinenumberEnd: 1962
    functionName: fwupd_client_get_history_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - fwupd_device_array_ensure_parents
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_history_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1984,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1985,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1987,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1987,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1988,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1988,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1989,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1992,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1993,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 2001
    functionName: fwupd_client_get_history_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_history_async(FwupdClient *self,\n\t\t\t       GCancellable
      *cancellable,\n\t\t\t       GAsyncReadyCallback callback,\n\t\t\t       gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2018,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2018,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2019,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2020,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2021,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2022
    functionName: fwupd_client_get_history_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_history_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2029,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2029,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2030,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2031,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2032,1
    - Dst: fwupd_client_get_devices_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2034,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2034,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2036,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2036,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-client.c:2041,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:2043,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupd/fwupd-client.c:2044,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:2044,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2046,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2059,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:2060,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2071
    functionName: fwupd_client_get_device_by_id_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices_finish
    - g_object_ref
    - g_steal_pointer
    - G_TASK
    - strlen
    - strncmp
    - g_task_return_new_error
    - g_task_get_task_data
    - fwupd_device_get_id
    - g_ptr_array_index
    - g_task_return_error
    - g_autoptr
    - FWUPD_CLIENT
    - g_task_return_pointer
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_device_by_id_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2095,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2096,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2098,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2098,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2099,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2100,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2100,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2101,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2104,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2105,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:2105,1
    - Dst: fwupd_client_get_devices_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:2106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2110
    functionName: fwupd_client_get_device_by_id_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_set_task_data
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - fwupd_client_get_devices_async
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_device_by_id_async(FwupdClient *self,\n\t\t\t\t
      \   const gchar *device_id,\n\t\t\t\t    GCancellable *cancellable,\n\t\t\t\t
      \   GAsyncReadyCallback callback,\n\t\t\t\t    gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2127,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2127,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2128,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2128,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2129,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2130,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2124
    functionDepth: 0
    functionLinenumber: 2124
    functionLinenumberEnd: 2131
    functionName: fwupd_client_get_device_by_id_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_client_get_device_by_id_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2136,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2136,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2138,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2139,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2140,1
    - Dst: fwupd_client_get_devices_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2143,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2143,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2145,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:2150,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:2152,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2153,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:2154,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:2154,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2159,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2168,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2169
    functionName: fwupd_client_get_devices_by_guid_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices_finish
    - g_object_ref
    - g_steal_pointer
    - G_TASK
    - g_task_return_new_error
    - fwupd_device_has_guid
    - g_task_get_task_data
    - g_ptr_array_index
    - g_task_return_error
    - g_autoptr
    - FWUPD_CLIENT
    - g_ptr_array_new_with_free_func
    - g_task_return_pointer
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_devices_by_guid_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2195,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2197,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2197,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2198,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2199,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2199,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2200,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2203,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2204,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:2204,1
    - Dst: fwupd_client_get_devices_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:2205,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - guid
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2187
    functionDepth: 1
    functionLinenumber: 2187
    functionLinenumberEnd: 2209
    functionName: fwupd_client_get_devices_by_guid_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_set_task_data
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - fwupd_client_get_devices_async
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_devices_by_guid_async(FwupdClient *self,\n\t\t\t\t
      \      const gchar *guid,\n\t\t\t\t       GCancellable *cancellable,\n\t\t\t\t
      \      GAsyncReadyCallback callback,\n\t\t\t\t       gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2226,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2227,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2228,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2229,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2230
    functionName: fwupd_client_get_devices_by_guid_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_devices_by_guid_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2235,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2237,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2238,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2240,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2240,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2242,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2243,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2243,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2246,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2248,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2248,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2253,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2254
    functionName: fwupd_client_get_releases_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_releases_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2278,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2279,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2281,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2281,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2282,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2283,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2283,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2284,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2287,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2288,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2290,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2296
    functionName: fwupd_client_get_releases_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_releases_async(FwupdClient *self,\n\t\t\t\tconst
      gchar *device_id,\n\t\t\t\tGCancellable *cancellable,\n\t\t\t\tGAsyncReadyCallback
      callback,\n\t\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2313,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2314,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2314,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2315,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2316,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2317
    functionName: fwupd_client_get_releases_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_releases_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2322,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2323,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2324,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2325,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2327,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2327,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2329,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2330,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2330,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2333,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2335,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2335,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2340,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2319
    functionDepth: 2
    functionLinenumber: 2319
    functionLinenumberEnd: 2341
    functionName: fwupd_client_get_downgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_downgrades_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2365,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2366,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2368,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2368,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2369,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2370,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2370,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2371,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2374,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2375,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2377,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2358
    functionDepth: 0
    functionLinenumber: 2358
    functionLinenumberEnd: 2383
    functionName: fwupd_client_get_downgrades_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_downgrades_async(FwupdClient *self,\n\t\t\t\t
      \ const gchar *device_id,\n\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2400,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2400,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2401,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2402,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2403,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2404
    functionName: fwupd_client_get_downgrades_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_downgrades_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2409,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2409,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2410,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2411,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2412,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2414,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2414,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2416,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2417,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2420,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2422,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2422,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2427,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2428
    functionName: fwupd_client_get_upgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_upgrades_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2452,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2453,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2455,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2455,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2456,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2457,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2457,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2458,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2461,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2462,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2464,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2470
    functionName: fwupd_client_get_upgrades_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_upgrades_async(FwupdClient *self,\n\t\t\t\tconst
      gchar *device_id,\n\t\t\t\tGCancellable *cancellable,\n\t\t\t\tGAsyncReadyCallback
      callback,\n\t\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2487,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2487,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2488,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2488,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2489,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2490,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2491
    functionName: fwupd_client_get_upgrades_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_upgrades_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2496,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2496,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2497,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2498,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2500,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2500,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2502,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2503,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2503,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2509
    functionName: fwupd_client_modify_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2535,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2536,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2538,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2538,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2539,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2540,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2541,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2542,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2542,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2543,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2546,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2547,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2549,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - self
    - section
    - key
    - value
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2555
    functionName: fwupd_client_modify_config_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_modify_config_async(FwupdClient *self,\n\t\t\t\t
      const gchar *section,\n\t\t\t\t const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t
      GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback callback,\n\t\t\t\t
      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2572,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2572,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2573,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2573,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2574,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2575,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2576
    functionName: fwupd_client_modify_config_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_modify_config_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2581,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2581,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2582,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2583,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2585,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2585,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2587,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2588,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2588,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2578
    functionDepth: 2
    functionLinenumber: 2578
    functionLinenumberEnd: 2594
    functionName: fwupd_client_reset_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_reset_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2616,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2617,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2619,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2619,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2620,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2621,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2621,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2622,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2625,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2626,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2628,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - section
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2634
    functionName: fwupd_client_reset_config_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_reset_config_async(FwupdClient *self,\n\t\t\t\tconst
      gchar *section,\n\t\t\t\tGCancellable *cancellable,\n\t\t\t\tGAsyncReadyCallback
      callback,\n\t\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2651,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2651,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2652,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2652,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2653,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2654,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2648
    functionDepth: 0
    functionLinenumber: 2648
    functionLinenumberEnd: 2655
    functionName: fwupd_client_reset_config_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_reset_config_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2660,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2660,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2661,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2662,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2664,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2664,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2666,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2667,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2667,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2657
    functionDepth: 2
    functionLinenumber: 2657
    functionLinenumberEnd: 2673
    functionName: fwupd_client_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_activate_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2695,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2696,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2698,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2698,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2699,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2700,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2700,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2701,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2704,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2705,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2707,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2713
    functionName: fwupd_client_activate_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_activate_async(FwupdClient *self,\n\t\t\t    const
      gchar *device_id,\n\t\t\t    GCancellable *cancellable,\n\t\t\t    GAsyncReadyCallback
      callback,\n\t\t\t    gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2730,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2731,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2731,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2732,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2733,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2734
    functionName: fwupd_client_activate_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_activate_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2739,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2739,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2740,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2741,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2743,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2743,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2745,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2746,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2746,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2736
    functionDepth: 2
    functionLinenumber: 2736
    functionLinenumberEnd: 2752
    functionName: fwupd_client_verify_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_verify_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2773,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2774,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2776,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2776,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2777,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2778,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2778,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2779,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2782,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2783,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2785,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2791
    functionName: fwupd_client_verify_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_verify_async(FwupdClient *self,\n\t\t\t  const gchar
      *device_id,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2808,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2808,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2809,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2810,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2811,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2812
      start: 2805
    functionDepth: 0
    functionLinenumber: 2805
    functionLinenumberEnd: 2812
    functionName: fwupd_client_verify_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_verify_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2817,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2817,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2818,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2819,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2821,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2821,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2823,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2824,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2824,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2814
    functionDepth: 2
    functionLinenumber: 2814
    functionLinenumberEnd: 2830
    functionName: fwupd_client_verify_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_verify_update_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2851,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2852,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2854,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2854,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2855,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2856,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2856,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2857,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2860,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2861,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2863,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2844
    functionDepth: 0
    functionLinenumber: 2844
    functionLinenumberEnd: 2869
    functionName: fwupd_client_verify_update_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_verify_update_async(FwupdClient *self,\n\t\t\t\t
      const gchar *device_id,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback
      callback,\n\t\t\t\t gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2886,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2886,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2887,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2887,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2888,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2889,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2890
    functionName: fwupd_client_verify_update_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_verify_update_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2895,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2895,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2896,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2897,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2899,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2899,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2901,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2902,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2902,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2892
    functionDepth: 2
    functionLinenumber: 2892
    functionLinenumberEnd: 2908
    functionName: fwupd_client_unlock_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_unlock_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2929,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2930,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2932,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2932,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2933,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2934,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2934,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2935,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2938,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2939,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2941,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2922
    functionDepth: 0
    functionLinenumber: 2922
    functionLinenumberEnd: 2947
    functionName: fwupd_client_unlock_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_unlock_async(FwupdClient *self,\n\t\t\t  const gchar
      *device_id,\n\t\t\t  GCancellable *cancellable,\n\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2964,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2964,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2965,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2965,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2966,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2967,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2961
    functionDepth: 0
    functionLinenumber: 2961
    functionLinenumberEnd: 2968
    functionName: fwupd_client_unlock_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_unlock_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2973,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2973,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2974,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2975,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2977,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2977,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2979,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2980,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2980,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2970
    functionDepth: 2
    functionLinenumber: 2970
    functionLinenumberEnd: 2986
    functionName: fwupd_client_clear_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_clear_results_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3007,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3008,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3010,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3010,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3011,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3012,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3012,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3013,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3016,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3017,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3019,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3000
    functionDepth: 0
    functionLinenumber: 3000
    functionLinenumberEnd: 3025
    functionName: fwupd_client_clear_results_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_clear_results_async(FwupdClient *self,\n\t\t\t\t
      const gchar *device_id,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback
      callback,\n\t\t\t\t gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3042,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3042,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3043,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3043,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3044,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3045,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3039
    functionDepth: 0
    functionLinenumber: 3039
    functionLinenumberEnd: 3046
    functionName: fwupd_client_clear_results_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_clear_results_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3051,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3051,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3052,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3052,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3053,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3054,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3056,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:3056,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3058,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3059,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3059,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:3062,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:3062,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3063,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3063,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3068,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3048
    functionDepth: 2
    functionLinenumber: 3048
    functionLinenumberEnd: 3069
    functionName: fwupd_client_get_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - FWUPD_CODEC
    - fwupd_codec_from_variant
    - fwupd_device_new
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_results_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3093,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3094,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3096,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3096,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3097,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3098,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3098,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3099,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3102,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3103,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3105,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3086
    functionDepth: 0
    functionLinenumber: 3086
    functionLinenumberEnd: 3111
    functionName: fwupd_client_get_results_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_results_async(FwupdClient *self,\n\t\t\t       const
      gchar *device_id,\n\t\t\t       GCancellable *cancellable,\n\t\t\t       GAsyncReadyCallback
      callback,\n\t\t\t       gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3128,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3128,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3129,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3130,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3131,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3125
    functionDepth: 0
    functionLinenumber: 3125
    functionLinenumberEnd: 3132
    functionName: fwupd_client_get_results_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_client_get_results_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3141,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3141,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3143,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:3143,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3147,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3148,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:3151,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3152,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3153,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3153,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3136
    functionDepth: 2
    functionLinenumber: 3136
    functionLinenumberEnd: 3159
    functionName: fwupd_client_install_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_steal_pointer
    - G_TASK
    - g_dbus_message_to_gerror
    - G_DBUS_CONNECTION
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - g_dbus_connection_send_message_with_reply_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_stream_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3171,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3175,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3175,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:3178,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3179,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:3179,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3181,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:3184,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3186,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-client.c:3189,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3192,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:3193,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3193,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3194,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:3198,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3201,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3203,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3203,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:3204,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:3204,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 8
    argNames:
    - self
    - device_id
    - istr
    - filename_hint
    - install_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GUnixInputStream*
    - gchar*
    - FwupdInstallFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3212
      start: 3161
    functionDepth: 0
    functionLinenumber: 3161
    functionLinenumberEnd: 3212
    functionName: fwupd_client_install_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_dbus_connection_send_message_with_reply
    - g_unix_input_stream_get_fd
    - g_unix_fd_list_new
    - g_task_new
    - g_steal_pointer
    - g_variant_builder_init
    - g_variant_builder_add
    - g_unix_fd_list_append
    - g_dbus_message_set_body
    - g_variant_new_uint64
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new_string
    - g_dbus_message_set_unix_fd_list
    - g_dbus_proxy_get_connection
    - g_dbus_message_new_method_call
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_install_stream_async(FwupdClient *self,\n\t\t\t\t
      \ const gchar *device_id,\n\t\t\t\t  GUnixInputStream *istr,\n\t\t\t\t  const
      gchar *filename_hint,\n\t\t\t\t  FwupdInstallFlags install_flags,\n\t\t\t\t
      \ GCancellable *cancellable,\n\t\t\t\t  GAsyncReadyCallback callback,\n\t\t\t\t
      \ gpointer callback_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3245,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3247,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3247,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3248,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3248,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3249,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:3252,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3254,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3254,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3255,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3255,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3269,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3269,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 7
    argNames:
    - self
    - device_id
    - bytes
    - install_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GBytes*
    - FwupdInstallFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3233
    functionDepth: 1
    functionLinenumber: 3233
    functionLinenumberEnd: 3275
    functionName: fwupd_client_install_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_unix_input_stream_from_bytes
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_task_return_error
    - fwupd_client_install_stream_async
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_install_bytes_async(FwupdClient *self,\n\t\t\t\t
      const gchar *device_id,\n\t\t\t\t GBytes *bytes,\n\t\t\t\t FwupdInstallFlags
      install_flags,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback
      callback,\n\t\t\t\t gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3292,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3293,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3294,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3295,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3289
    functionDepth: 0
    functionLinenumber: 3289
    functionLinenumberEnd: 3296
    functionName: fwupd_client_install_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_install_bytes_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3326,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3327,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3328,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3330,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3330,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3331,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3332,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3333,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3333,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3334,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:3337,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3339,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3339,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3340,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3340,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3354,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3354,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - self
    - device_id
    - filename
    - install_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - FwupdInstallFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3316
    functionDepth: 1
    functionLinenumber: 3316
    functionLinenumberEnd: 3360
    functionName: fwupd_client_install_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_task_return_error
    - fwupd_client_install_stream_async
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_install_async(FwupdClient *self,\n\t\t\t   const
      gchar *device_id,\n\t\t\t   const gchar *filename,\n\t\t\t   FwupdInstallFlags
      install_flags,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GAsyncReadyCallback
      callback,\n\t\t\t   gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3377,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3377,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3378,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3378,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3379,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3380,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3374
    functionDepth: 0
    functionLinenumber: 3374
    functionLinenumberEnd: 3381
    functionName: fwupd_client_install_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_install_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3393,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3394,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:3395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - FwupdClientInstallReleaseData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3390
    functionDepth: 0
    functionLinenumber: 3390
    functionLinenumberEnd: 3396
    functionName: fwupd_client_install_release_data_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_data_free(FwupdClientInstallReleaseData
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3402,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3402,1
    - Dst: fwupd_client_install_release_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3404,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3404,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3405,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3398
    functionDepth: 1
    functionLinenumber: 3398
    functionLinenumberEnd: 3411
    functionName: fwupd_client_install_release_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - G_TASK
    - FWUPD_CLIENT
    - fwupd_client_install_release_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3416,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3417,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3417,1
    - Dst: fwupd_client_install_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3419,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3419,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3420,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3420,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3413
    functionDepth: 1
    functionLinenumber: 3413
    functionLinenumberEnd: 3426
    functionName: fwupd_client_install_release_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - G_TASK
    - fwupd_client_install_bytes_finish
    - FWUPD_CLIENT
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_bytes_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3431,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3432,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3433,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3433,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3434,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:3436,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3440,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3440,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3442,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3442,1
    - Dst: fwupd_checksum_get_best
      Src: /src/fwupd/libfwupd/fwupd-client.c:3447,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:3447,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3448,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:3449,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:3450,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3451,1
    - Dst: fwupd_client_install_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3460,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3460,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3461,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3467
      start: 3428
    functionDepth: 2
    functionLinenumber: 3428
    functionLinenumberEnd: 3467
    functionName: fwupd_client_install_release_download_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_checksum_get_best
    - fwupd_client_download_bytes_finish
    - g_steal_pointer
    - G_TASK
    - g_task_return_new_error
    - fwupd_release_get_checksums
    - g_task_get_task_data
    - fwupd_device_get_id
    - FWUPD_CLIENT
    - g_task_return_error
    - g_compute_checksum_for_bytes
    - g_autoptr
    - g_task_get_cancellable
    - g_strcmp0
    - fwupd_checksum_guess_kind
    - fwupd_client_install_bytes_async
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_download_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3472,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-client.c:3472,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-client.c:3473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3469
    functionDepth: 0
    functionLinenumber: 3469
    functionLinenumberEnd: 3474
    functionName: fwupd_client_is_url_http
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_url
    - g_autoptr
    - curl_url_set
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_is_url_http(const gchar *perhaps_url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:3481,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:3481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3476
    functionDepth: 0
    functionLinenumber: 3476
    functionLinenumberEnd: 3482
    functionName: fwupd_client_is_url_ipfs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_is_url_ipfs(const gchar *perhaps_url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3487,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-client.c:3487,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3488,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-client.c:3489,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:3491,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:3492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3484
    functionDepth: 0
    functionLinenumber: 3484
    functionLinenumberEnd: 3493
    functionName: fwupd_client_is_localhost
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_url
    - curl_url_set
    - curl_url_get
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_is_localhost(const gchar *url)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_is_url_ipfs
      Src: /src/fwupd/libfwupd/fwupd-client.c:3500,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:3502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3505
      start: 3495
    functionDepth: 1
    functionLinenumber: 3495
    functionLinenumberEnd: 3505
    functionName: fwupd_client_is_url_p2p
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_is_url_ipfs
    - fwupd_client_is_localhost
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_is_url_p2p(const gchar *perhaps_url)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3513,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3514,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3515,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3515,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3516,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:3516,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3517,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:3518,1
    - Dst: fwupd_client_get_remote_by_id_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3521,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3521,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3523,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3523,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:3528,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3530,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3536,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3539,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:3540,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-client.c:3541,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-client.c:3542,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3543,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3544,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3545,1
    - Dst: fwupd_client_install_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3550,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3550,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3551,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3556,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3561,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3563,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:3563,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3567,1
    - Dst: fwupd_release_get_filename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3567,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3568,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:3569,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3577,1
    - Dst: fwupd_client_is_url_p2p
      Src: /src/fwupd/libfwupd/fwupd-client.c:3578,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3579,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3579,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:3580,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:3582,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3584,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3584,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3587,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3587,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:3589,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3593,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3601,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3601,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3606,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3507
    functionDepth: 2
    functionLinenumber: 3507
    functionLinenumberEnd: 3607
    functionName: fwupd_client_install_release_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_get_task_data
    - fwupd_remote_get_filename_cache
    - g_task_return_error
    - fwupd_remote_has_flag
    - fwupd_client_is_url_p2p
    - fwupd_remote_get_kind
    - g_debug
    - fwupd_client_install_async
    - G_TASK
    - g_path_get_dirname
    - g_ptr_array_index
    - fwupd_client_get_remote_by_id_finish
    - fwupd_checksum_get_by_kind
    - g_steal_pointer
    - fwupd_release_get_locations
    - g_build_filename
    - fwupd_client_download_bytes2_async
    - fwupd_device_get_id
    - g_autoptr
    - g_task_get_cancellable
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fwupd_release_get_filename
    - fwupd_client_is_url_http
    - g_path_get_basename
    - g_task_return_new_error
    - fwupd_release_get_checksums
    - g_strdup_printf
    - fwupd_remote_build_firmware_uri
    - g_strdup
    - FWUPD_CLIENT
    linkageType: ''
    returnType: void
    signature: void fwupd_client_install_release_remote_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3614,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:3614,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3616,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3617,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3620,1
    - Dst: fwupd_client_is_url_p2p
      Src: /src/fwupd/libfwupd/fwupd-client.c:3622,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3624,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3624,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3627,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - locations
    - download_flags
    - error
    argTypes:
    - GPtrArray*
    - FwupdClientDownloadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3634
      start: 3609
    functionDepth: 2
    functionLinenumber: 3609
    functionLinenumberEnd: 3634
    functionName: fwupd_client_filter_locations
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_index
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - fwupd_client_is_url_p2p
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_filter_locations(GPtrArray *locations,\n\t\t\t
      \     FwupdClientDownloadFlags download_flags,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3665,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3666,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3670,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3670,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3671,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3671,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3672,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3672,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3673,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3673,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3674,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3677,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:3678,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3679,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3680,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3683,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3686,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3688,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:3689,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3693,1
    - Dst: fwupd_client_get_remote_by_id_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3698,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 8
    argNames:
    - self
    - device
    - release
    - install_flags
    - download_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FwupdRelease*
    - FwupdInstallFlags
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3655
    functionDepth: 1
    functionLinenumber: 3655
    functionLinenumberEnd: 3703
    functionName: fwupd_client_install_release_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_object_ref
    - fwupd_release_get_remote_id
    - g_task_new
    - FWUPD_IS_RELEASE
    - fwupd_release_get_locations
    - g_new0
    - g_task_set_task_data
    - g_steal_pointer
    - fwupd_client_get_remote_by_id_async
    - FWUPD_IS_CLIENT
    - fwupd_client_download_bytes2_async
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_install_release_async(FwupdClient *self,\n\t\t\t\t
      \  FwupdDevice *device,\n\t\t\t\t   FwupdRelease *release,\n\t\t\t\t   FwupdInstallFlags
      install_flags,\n\t\t\t\t   FwupdClientDownloadFlags download_flags,\n\t\t\t\t
      \  GCancellable *cancellable,\n\t\t\t\t   GAsyncReadyCallback callback,\n\t\t\t\t
      \  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3720,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3720,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3721,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3721,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3722,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3723,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3717
    functionDepth: 0
    functionLinenumber: 3717
    functionLinenumberEnd: 3724
    functionName: fwupd_client_install_release_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_install_release_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3731,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3732,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3733,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3734,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3734,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3736,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:3736,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3740,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3741,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3741,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:3744,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3745,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3746,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3746,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:3750,1
    - Dst: g_dbus_message_get_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3750,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3752,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3752,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3757,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3758
      start: 3728
    functionDepth: 2
    functionLinenumber: 3728
    functionLinenumberEnd: 3758
    functionName: fwupd_client_get_details_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_steal_pointer
    - G_TASK
    - g_dbus_message_to_gerror
    - G_DBUS_CONNECTION
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - g_dbus_message_get_body
    - g_dbus_connection_send_message_with_reply_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_details_stream_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3767,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3768,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3770,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3771,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3771,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3774,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:3775,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3776,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:3780,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3783,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3783,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:3784,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:3784,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - self
    - istr
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GUnixInputStream*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3760
    functionDepth: 0
    functionLinenumber: 3760
    functionLinenumberEnd: 3792
    functionName: fwupd_client_get_details_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_dbus_connection_send_message_with_reply
    - g_unix_input_stream_get_fd
    - g_unix_fd_list_new
    - g_task_new
    - g_steal_pointer
    - g_dbus_message_set_body
    - GET_PRIVATE
    - g_autoptr
    - g_unix_fd_list_append
    - g_dbus_message_set_unix_fd_list
    - g_dbus_proxy_get_connection
    - g_dbus_message_new_method_call
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_details_stream_async(FwupdClient *self,\n\t\t\t\t
      \     GUnixInputStream *istr,\n\t\t\t\t      GCancellable *cancellable,\n\t\t\t\t
      \     GAsyncReadyCallback callback,\n\t\t\t\t      gpointer callback_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3815,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3816,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3817,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3819,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3819,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3820,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3820,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3821,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:3824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3826,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3826,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3827,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3827,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3832,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3834,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3834,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - self
    - bytes
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GBytes*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3840
      start: 3807
    functionDepth: 1
    functionLinenumber: 3807
    functionLinenumberEnd: 3840
    functionName: fwupd_client_get_details_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_unix_input_stream_from_bytes
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - fwupd_client_get_details_stream_async
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_details_bytes_async(FwupdClient *self,\n\t\t\t\t
      \    GBytes *bytes,\n\t\t\t\t     GCancellable *cancellable,\n\t\t\t\t     GAsyncReadyCallback
      callback,\n\t\t\t\t     gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3857,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3857,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3858,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3858,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3859,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3860,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3854
    functionDepth: 0
    functionLinenumber: 3854
    functionLinenumberEnd: 3861
    functionName: fwupd_client_get_details_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_details_bytes_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3883,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3884,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3885,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3887,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3887,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3888,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3889,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3889,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3890,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:3893,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3895,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3895,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3896,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3896,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3901,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3903,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3903,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3875
    functionDepth: 1
    functionLinenumber: 3875
    functionLinenumberEnd: 3909
    functionName: fwupd_client_get_details_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - fwupd_client_get_details_stream_async
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_details_async(FwupdClient *self,\n\t\t\t       const
      gchar *filename,\n\t\t\t       GCancellable *cancellable,\n\t\t\t       GAsyncReadyCallback
      callback,\n\t\t\t       gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3926,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3926,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3927,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3927,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3928,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3929,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3930
    functionName: fwupd_client_get_details_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_details_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3946,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3948
    functionName: fwupd_client_get_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: guint
    signature: guint fwupd_client_get_percentage(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3963,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3964,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3960
    functionDepth: 0
    functionLinenumber: 3960
    functionLinenumberEnd: 3966
    functionName: fwupd_client_get_daemon_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_daemon_version(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3981,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3982,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3978
    functionDepth: 0
    functionLinenumber: 3978
    functionLinenumberEnd: 3984
    functionName: fwupd_client_get_host_bkc
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_bkc(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3999,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4000,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3996
    functionDepth: 0
    functionLinenumber: 3996
    functionLinenumberEnd: 4002
    functionName: fwupd_client_get_host_product
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_product(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4018,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4020
    functionName: fwupd_client_get_host_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_vendor(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4035,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4036,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 4032
    functionDepth: 0
    functionLinenumber: 4032
    functionLinenumberEnd: 4038
    functionName: fwupd_client_get_host_machine_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_machine_id(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4053,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4054,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4056
    functionName: fwupd_client_get_host_security_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_security_id(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4071,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4072,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 4068
    functionDepth: 0
    functionLinenumber: 4068
    functionLinenumberEnd: 4074
    functionName: fwupd_client_get_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_client_get_battery_level(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4091,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4087
    functionDepth: 0
    functionLinenumber: 4087
    functionLinenumberEnd: 4093
    functionName: fwupd_client_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_client_get_battery_threshold(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4109,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4105
    functionDepth: 0
    functionLinenumber: 4105
    functionLinenumberEnd: 4111
    functionName: fwupd_client_get_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: FwupdStatus
    signature: FwupdStatus fwupd_client_get_status(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4127,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 4123
    functionDepth: 0
    functionLinenumber: 4123
    functionLinenumberEnd: 4129
    functionName: fwupd_client_get_tainted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_get_tainted(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4145,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4141
    functionDepth: 0
    functionLinenumber: 4141
    functionLinenumberEnd: 4147
    functionName: fwupd_client_get_only_trusted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_get_only_trusted(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4163,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4159
    functionDepth: 0
    functionLinenumber: 4159
    functionLinenumberEnd: 4165
    functionName: fwupd_client_get_daemon_interactive
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_get_daemon_interactive(FwupdClient *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4174,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4174,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4176,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:4176,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4180,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4181,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4181,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:4184,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4185,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4186,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4186,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4192
      start: 4169
    functionDepth: 2
    functionLinenumber: 4169
    functionLinenumberEnd: 4192
    functionName: fwupd_client_update_metadata_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_steal_pointer
    - G_TASK
    - g_dbus_message_to_gerror
    - G_DBUS_CONNECTION
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - g_dbus_connection_send_message_with_reply_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_update_metadata_stream_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4203,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4204,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4205,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4206,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4206,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4209,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:4210,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4210,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:4211,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4211,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4212,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:4216,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:4219,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4220,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4222,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4223,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:4224,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:4224,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 7
    argNames:
    - self
    - remote_id
    - istr
    - istr_sig
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GUnixInputStream*
    - GUnixInputStream*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4194
    functionDepth: 0
    functionLinenumber: 4194
    functionLinenumberEnd: 4232
    functionName: fwupd_client_update_metadata_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_dbus_connection_send_message_with_reply
    - g_unix_input_stream_get_fd
    - g_unix_fd_list_new
    - g_task_new
    - g_steal_pointer
    - g_dbus_message_set_body
    - GET_PRIVATE
    - g_autoptr
    - g_unix_fd_list_append
    - g_dbus_message_set_unix_fd_list
    - g_dbus_proxy_get_connection
    - g_dbus_message_new_method_call
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_update_metadata_stream_async(FwupdClient *self,\n\t\t\t\t\t
      \ const gchar *remote_id,\n\t\t\t\t\t  GUnixInputStream *istr,\n\t\t\t\t\t  GUnixInputStream
      *istr_sig,\n\t\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t\t\t  gpointer callback_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4268,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4269,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4271,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4273,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4273,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4274,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4275,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4276,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4277,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4277,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4278,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4283,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4283,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4284,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4284,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4287,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4289,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4289,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4290,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4290,1
    - Dst: fwupd_client_update_metadata_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4303,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4303,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - self
    - remote_id
    - metadata
    - signature
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GBytes*
    - GBytes*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4258
    functionDepth: 1
    functionLinenumber: 4258
    functionLinenumberEnd: 4309
    functionName: fwupd_client_update_metadata_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_unix_input_stream_from_bytes
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_return_new_error
    - FWUPD_IS_CLIENT
    - fwupd_client_update_metadata_stream_async
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_update_metadata_bytes_async(FwupdClient *self,\n\t\t\t\t\t
      const gchar *remote_id,\n\t\t\t\t\t GBytes *metadata,\n\t\t\t\t\t GBytes *signature,\n\t\t\t\t\t
      GCancellable *cancellable,\n\t\t\t\t\t GAsyncReadyCallback callback,\n\t\t\t\t\t
      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4326,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4327,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4328,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4329,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4330
      start: 4323
    functionDepth: 0
    functionLinenumber: 4323
    functionLinenumberEnd: 4330
    functionName: fwupd_client_update_metadata_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_update_metadata_bytes_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4343,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4345,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4346,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:4347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - FwupdClientRefreshRemoteData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4339
    functionDepth: 0
    functionLinenumber: 4339
    functionLinenumberEnd: 4348
    functionName: fwupd_client_refresh_remote_data_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_client_refresh_remote_data_free(FwupdClientRefreshRemoteData
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4353,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4354,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4354,1
    - Dst: fwupd_client_update_metadata_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4357,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4357,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4358,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4358,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4350
    functionDepth: 1
    functionLinenumber: 4350
    functionLinenumberEnd: 4364
    functionName: fwupd_client_refresh_remote_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - G_TASK
    - fwupd_client_update_metadata_bytes_finish
    - FWUPD_CLIENT
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_client_refresh_remote_update_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4370,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4371,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4371,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4372,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:4373,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:4374,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4377,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4377,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4379,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4381,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4382,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4382,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4385,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4388,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4390,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4390,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4392,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4393,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4393,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4394,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4398,1
    - Dst: fwupd_client_update_metadata_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4405,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4406,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4412
      start: 4366
    functionDepth: 2
    functionLinenumber: 4366
    functionLinenumberEnd: 4412
    functionName: fwupd_client_refresh_remote_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_download_bytes_finish
    - g_steal_pointer
    - G_TASK
    - fwupd_client_update_metadata_bytes_async
    - g_prefix_error
    - g_task_return_new_error
    - g_task_get_task_data
    - FWUPD_CLIENT
    - g_task_return_error
    - fwupd_remote_get_id
    - g_autoptr
    - g_task_get_cancellable
    - g_compute_checksum_for_bytes
    - g_task_get_source_object
    - fwupd_checksum_guess_kind
    - fwupd_remote_get_checksum_metadata
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fwupd_client_refresh_remote_metadata_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4417,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4419,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4419,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4420,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:4421,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:4422,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4423,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:4423,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4426,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4428,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4430,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4431,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4431,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4434,1
    - Dst: fwupd_remote_load_signature_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4435,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4436,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4437,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4437,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4442,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4444,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4444,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4445,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4447,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:4448,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4449,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4449,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:4450,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4451,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4452,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4458,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4459,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/libfwupd/fwupd-client.c:4460,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/libfwupd/fwupd-client.c:4461,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:4463,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4463,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4464,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:4465,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4467,1
    - Dst: fwupd_remote_build_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4470,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4472,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4472,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4475,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4475,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4483
    functionName: fwupd_client_refresh_remote_signature_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_task_get_task_data
    - g_task_return_error
    - fwupd_remote_get_username
    - fwupd_remote_get_checksum
    - fwupd_remote_has_flag
    - fwupd_remote_get_metadata_uri
    - G_TASK
    - fwupd_remote_get_password
    - g_task_get_source_object
    - g_info
    - g_steal_pointer
    - fwupd_client_download_bytes2_async
    - fwupd_remote_get_id
    - g_autoptr
    - g_task_get_cancellable
    - g_ptr_array_new_with_free_func
    - fwupd_checksum_guess_kind
    - g_ptr_array_add
    - g_strcmp0
    - g_bytes_get_data
    - g_task_return_boolean
    - fwupd_client_download_bytes_finish
    - g_path_get_basename
    - g_bytes_get_size
    - g_strdup_printf
    - fwupd_remote_load_signature_bytes
    - FWUPD_CLIENT
    - g_compute_checksum_for_data
    - fwupd_remote_get_checksum_metadata
    - fwupd_remote_build_metadata_uri
    linkageType: ''
    returnType: void
    signature: void fwupd_client_refresh_remote_signature_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4512,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4513,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4515,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4515,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4516,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4516,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4517,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4517,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4519,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4520,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4522,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4523,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4524,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4528,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:4529,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4530,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:4531,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4531,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4532,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/libfwupd/fwupd-client.c:4537,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4538,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4539,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4543,1
    - Dst: fwupd_remote_build_metadata_sig_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4548,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4550,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4550,1
    - Dst: fwupd_client_download_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - self
    - remote
    - download_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - FwupdRemote*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4502
    functionDepth: 1
    functionLinenumber: 4502
    functionLinenumberEnd: 4559
    functionName: fwupd_client_refresh_remote_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_client_download_bytes_async
    - g_new0
    - fwupd_remote_get_metadata_uri_sig
    - g_task_return_error
    - fwupd_remote_get_metadata_uri
    - g_object_ref
    - fwupd_remote_get_kind
    - g_debug
    - g_return_if_fail
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_set_task_data
    - FWUPD_IS_CLIENT
    - fwupd_remote_get_id
    - g_autoptr
    - g_task_return_boolean
    - fwupd_remote_kind_to_string
    - FWUPD_IS_REMOTE
    - g_task_return_new_error
    - fwupd_remote_build_metadata_sig_uri
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_refresh_remote_async(FwupdClient *self,\n\t\t\t\t
      \ FwupdRemote *remote,\n\t\t\t\t  FwupdClientDownloadFlags download_flags,\n\t\t\t\t
      \ GCancellable *cancellable,\n\t\t\t\t  GAsyncReadyCallback callback,\n\t\t\t\t
      \ gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4576,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4576,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4577,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4577,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4578,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4579,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: fwupd_client_refresh_remote_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_refresh_remote_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4585,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4585,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4588,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4590,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4590,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4592,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4593,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4593,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:4596,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4598,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4598,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4603,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4582
    functionDepth: 2
    functionLinenumber: 4582
    functionLinenumberEnd: 4604
    functionName: fwupd_client_get_remotes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_remotes_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4626,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4627,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4629,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4629,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4630,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4630,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4631,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4634,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4635,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4620
    functionDepth: 0
    functionLinenumber: 4620
    functionLinenumberEnd: 4643
    functionName: fwupd_client_get_remotes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_remotes_async(FwupdClient *self,\n\t\t\t       GCancellable
      *cancellable,\n\t\t\t       GAsyncReadyCallback callback,\n\t\t\t       gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4660,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4660,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4661,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4661,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4662,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4663,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4664
    functionName: fwupd_client_get_remotes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_remotes_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:4669,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4670,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4670,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4671,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4672,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:4672,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4673,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4675,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4675,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4677,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4678,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4678,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:4682,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4684,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:4684,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4687,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4688
      start: 4666
    functionDepth: 2
    functionLinenumber: 4666
    functionLinenumberEnd: 4688
    functionName: fwupd_client_get_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_auto
    - g_variant_get
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_strdup
    - g_autoptr
    - g_task_return_error
    - g_ptr_array_new_with_free_func
    - g_task_return_pointer
    - g_ptr_array_add
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_approved_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4710,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4711,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4713,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4713,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4714,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4714,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4715,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4718,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4719,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4727
      start: 4704
    functionDepth: 0
    functionLinenumber: 4704
    functionLinenumberEnd: 4727
    functionName: fwupd_client_get_approved_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_approved_firmware_async(FwupdClient *self,\n\t\t\t\t\t
      GCancellable *cancellable,\n\t\t\t\t\t GAsyncReadyCallback callback,\n\t\t\t\t\t
      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4744,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4744,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4745,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4745,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4746,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4747,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4748
      start: 4741
    functionDepth: 0
    functionLinenumber: 4741
    functionLinenumberEnd: 4748
    functionName: fwupd_client_get_approved_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_approved_firmware_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4753,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4753,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4754,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4755,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4757,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4757,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4759,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4760,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4760,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4766
      start: 4750
    functionDepth: 2
    functionLinenumber: 4750
    functionLinenumberEnd: 4766
    functionName: fwupd_client_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_approved_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4787,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4788,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:4789,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4791,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4791,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4792,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4792,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4793,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4796,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4797,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:4799,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:4800,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4802,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4804,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - checksums
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4810
    functionName: fwupd_client_set_approved_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_auto
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - g_new0
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_set_approved_firmware_async(FwupdClient *self,\n\t\t\t\t\t
      GPtrArray *checksums,\n\t\t\t\t\t GCancellable *cancellable,\n\t\t\t\t\t GAsyncReadyCallback
      callback,\n\t\t\t\t\t gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4827,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4827,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4828,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4828,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4829,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4830,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4831
      start: 4824
    functionDepth: 0
    functionLinenumber: 4824
    functionLinenumberEnd: 4831
    functionName: fwupd_client_set_approved_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_set_approved_firmware_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:4836,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4837,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4837,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4838,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4839,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:4839,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4840,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4842,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4842,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4844,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4845,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4845,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:4849,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4851,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:4851,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4854,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4855
      start: 4833
    functionDepth: 2
    functionLinenumber: 4833
    functionLinenumberEnd: 4855
    functionName: fwupd_client_get_blocked_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_auto
    - g_variant_get
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_strdup
    - g_autoptr
    - g_task_return_error
    - g_ptr_array_new_with_free_func
    - g_task_return_pointer
    - g_ptr_array_add
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_blocked_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4877,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4878,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4880,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4880,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4881,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4881,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4882,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4885,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4886,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4894
      start: 4871
    functionDepth: 0
    functionLinenumber: 4871
    functionLinenumberEnd: 4894
    functionName: fwupd_client_get_blocked_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_blocked_firmware_async(FwupdClient *self,\n\t\t\t\t\tGCancellable
      *cancellable,\n\t\t\t\t\tGAsyncReadyCallback callback,\n\t\t\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4911,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4911,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4912,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4912,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4913,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4914,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4908
    functionDepth: 0
    functionLinenumber: 4908
    functionLinenumberEnd: 4915
    functionName: fwupd_client_get_blocked_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_blocked_firmware_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4920,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4920,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4921,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4922,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4924,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4924,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4926,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4927,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4927,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4933
      start: 4917
    functionDepth: 2
    functionLinenumber: 4917
    functionLinenumberEnd: 4933
    functionName: fwupd_client_set_blocked_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_blocked_firmware_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4954,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4955,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:4956,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4958,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4958,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4959,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4959,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4960,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4963,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4964,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:4966,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:4967,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4969,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4971,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - checksums
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4947
    functionDepth: 0
    functionLinenumber: 4947
    functionLinenumberEnd: 4977
    functionName: fwupd_client_set_blocked_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_auto
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - g_new0
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_set_blocked_firmware_async(FwupdClient *self,\n\t\t\t\t\tGPtrArray
      *checksums,\n\t\t\t\t\tGCancellable *cancellable,\n\t\t\t\t\tGAsyncReadyCallback
      callback,\n\t\t\t\t\tgpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4994,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4994,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4995,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4995,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4996,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4997,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4991
    functionDepth: 0
    functionLinenumber: 4991
    functionLinenumberEnd: 4998
    functionName: fwupd_client_set_blocked_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_set_blocked_firmware_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5003,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5004,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5005,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5007,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5007,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5009,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5010,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5010,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 5000
    functionDepth: 2
    functionLinenumber: 5000
    functionLinenumberEnd: 5016
    functionName: fwupd_client_set_feature_flags_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_feature_flags_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5039,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5040,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5042,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5042,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5043,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5043,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5044,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5047,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5048,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5050,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - feature_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - FwupdFeatureFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5032
    functionDepth: 0
    functionLinenumber: 5032
    functionLinenumberEnd: 5056
    functionName: fwupd_client_set_feature_flags_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_set_feature_flags_async(FwupdClient *self,\n\t\t\t\t
      \    FwupdFeatureFlags feature_flags,\n\t\t\t\t     GCancellable *cancellable,\n\t\t\t\t
      \    GAsyncReadyCallback callback,\n\t\t\t\t     gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5073,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5073,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5074,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5074,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5075,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5076,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5070
    functionDepth: 0
    functionLinenumber: 5070
    functionLinenumberEnd: 5077
    functionName: fwupd_client_set_feature_flags_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_set_feature_flags_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5083,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5083,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5084,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5085,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5087,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5087,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5089,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5090,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5090,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:5095,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5096,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5097
      start: 5079
    functionDepth: 2
    functionLinenumber: 5079
    functionLinenumberEnd: 5097
    functionName: fwupd_client_self_sign_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_variant_get
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_self_sign_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5123,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5125,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5127,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5127,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5128,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5129,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5129,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5130,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:5133,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:5135,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5138,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:5141,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5141,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5145,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5146,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - self
    - value
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - FwupdSelfSignFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 5115
    functionDepth: 0
    functionLinenumber: 5115
    functionLinenumberEnd: 5154
    functionName: fwupd_client_self_sign_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_variant_builder_init
    - g_variant_builder_add
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new_boolean
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_self_sign_async(FwupdClient *self,\n\t\t\t     const
      gchar *value,\n\t\t\t     FwupdSelfSignFlags flags,\n\t\t\t     GCancellable
      *cancellable,\n\t\t\t     GAsyncReadyCallback callback,\n\t\t\t     gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5171,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5172,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5173,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5174,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5168
    functionDepth: 0
    functionLinenumber: 5168
    functionLinenumberEnd: 5175
    functionName: fwupd_client_self_sign_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_self_sign_finish(FwupdClient *self, GAsyncResult *res, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5180,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5182,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5184,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5184,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5186,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5187,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5187,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5193
      start: 5177
    functionDepth: 2
    functionLinenumber: 5177
    functionLinenumberEnd: 5193
    functionName: fwupd_client_modify_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_remote_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5219,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5221,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5221,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5222,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5223,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5224,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5225,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5225,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5226,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5229,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5230,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5232,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - self
    - remote_id
    - key
    - value
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5209
    functionDepth: 0
    functionLinenumber: 5209
    functionLinenumberEnd: 5238
    functionName: fwupd_client_modify_remote_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_modify_remote_async(FwupdClient *self,\n\t\t\t\t
      const gchar *remote_id,\n\t\t\t\t const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t
      GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback callback,\n\t\t\t\t
      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5255,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5255,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5256,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5256,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5257,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5258,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5259
      start: 5252
    functionDepth: 0
    functionLinenumber: 5252
    functionLinenumberEnd: 5259
    functionName: fwupd_client_modify_remote_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_modify_remote_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5264,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5264,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5265,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5266,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5268,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5268,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5270,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5271,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5271,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5277
      start: 5261
    functionDepth: 2
    functionLinenumber: 5261
    functionLinenumberEnd: 5277
    functionName: fwupd_client_modify_device_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_modify_device_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5303,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5304,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5306,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5306,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5307,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5308,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5309,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5310,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5310,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5311,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5314,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5315,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5317,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - self
    - device_id
    - key
    - value
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5294
    functionDepth: 0
    functionLinenumber: 5294
    functionLinenumberEnd: 5323
    functionName: fwupd_client_modify_device_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_modify_device_async(FwupdClient *self,\n\t\t\t\t
      const gchar *device_id,\n\t\t\t\t const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t
      GCancellable *cancellable,\n\t\t\t\t GAsyncReadyCallback callback,\n\t\t\t\t
      gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5340,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5340,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5341,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5342,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5343,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5344
      start: 5337
    functionDepth: 0
    functionLinenumber: 5337
    functionLinenumberEnd: 5344
    functionName: fwupd_client_modify_device_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_modify_device_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:5350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:5351,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:5351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remotes
    - remote_id
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5346
    functionDepth: 1
    functionLinenumber: 5346
    functionLinenumberEnd: 5355
    functionName: fwupd_client_get_remote_by_id_noref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_remote_get_id
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fwupd_client_get_remote_by_id_noref(GPtrArray *remotes, const gchar *remote_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5361,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5362,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5363,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5364,1
    - Dst: fwupd_client_get_remotes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5366,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5366,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5368,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5368,1
    - Dst: fwupd_client_get_remote_by_id_noref
      Src: /src/fwupd/libfwupd/fwupd-client.c:5372,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5374,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5383,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:5383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5357
    functionDepth: 1
    functionLinenumber: 5357
    functionLinenumberEnd: 5384
    functionName: fwupd_client_get_remote_by_id_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - G_TASK
    - fwupd_client_get_remote_by_id_noref
    - g_task_return_new_error
    - g_task_get_task_data
    - g_task_return_error
    - g_autoptr
    - FWUPD_CLIENT
    - fwupd_client_get_remotes_finish
    - g_task_return_pointer
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_remote_by_id_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5405,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5406,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5408,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5408,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5409,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5410,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5410,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5411,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5414,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5415,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5415,1
    - Dst: fwupd_client_get_remotes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:5416,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - remote_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5420
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5420
    functionName: fwupd_client_get_remote_by_id_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_task_set_task_data
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - fwupd_client_get_remotes_async
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_get_remote_by_id_async(FwupdClient *self,\n\t\t\t\t
      \   const gchar *remote_id,\n\t\t\t\t    GCancellable *cancellable,\n\t\t\t\t
      \   GAsyncReadyCallback callback,\n\t\t\t\t    gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5437,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5437,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5438,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5438,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5439,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5440,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5441
      start: 5434
    functionDepth: 0
    functionLinenumber: 5434
    functionLinenumberEnd: 5441
    functionName: fwupd_client_get_remote_by_id_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fwupd_client_get_remote_by_id_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5456,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5458,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5458,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5459,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:5462,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5465,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - user_agent
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5467
      start: 5453
    functionDepth: 0
    functionLinenumber: 5453
    functionLinenumberEnd: 5467
    functionName: fwupd_client_set_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_user_agent(FwupdClient *self, const gchar *user_agent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5484,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5485,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5481
    functionDepth: 0
    functionLinenumber: 5481
    functionLinenumberEnd: 5487
    functionName: fwupd_client_get_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_user_agent(FwupdClient *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5512,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5514,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5514,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5515,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5516,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5518,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5519,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:5520,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5521,1
    - Dst: fwupd_client_rebuild_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client.c:5522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - package_name
    - package_version
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5523
      start: 5507
    functionDepth: 3
    functionLinenumber: 5507
    functionLinenumberEnd: 5523
    functionName: fwupd_client_set_user_agent_for_package
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_path_get_basename
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fwupd_client_rebuild_user_agent
    - g_free
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_set_user_agent_for_package(FwupdClient *self,\n\t\t\t\t\tconst
      gchar *package_name,\n\t\t\t\t\tconst gchar *package_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:5530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5532
      start: 5525
    functionDepth: 0
    functionLinenumber: 5525
    functionLinenumberEnd: 5532
    functionName: fwupd_client_download_write_callback_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: size_t
    signature: size_t fwupd_client_download_write_callback_cb(char *ptr, size_t size,
      size_t nmemb, void *userdata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5542,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5543,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5544,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5547,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:5548,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:5551,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:5552,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:5553,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:5554,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5556,1
    - Dst: g_subprocess_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5560,1
    - Dst: g_subprocess_communicate
      Src: /src/fwupd/libfwupd/fwupd-client.c:5563,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5565,1
    - Dst: g_subprocess_get_exit_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5566,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5567,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5568,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - url
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5576
      start: 5534
    functionDepth: 3
    functionLinenumber: 5534
    functionLinenumberEnd: 5576
    functionName: fwupd_client_download_ipfs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_subprocess_new
    - g_str_has_prefix
    - g_subprocess_communicate
    - g_steal_pointer
    - fwupd_client_set_percentage
    - g_strdup_printf
    - fwupd_client_set_status
    - g_strdup
    - g_autoptr
    - g_bytes_get_data
    - g_subprocess_get_exit_status
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfwupd_client_download_ipfs(FwupdClient *self,\n\t\t\t   const
      gchar *url,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5584,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5584,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:5587,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:5587,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5588,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5589,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5591,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5592,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5595,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5596,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5597,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5598,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5601,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/libfwupd/fwupd-client.c:5602,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5603,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:5604,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5607,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5614,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:5618,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/libfwupd/fwupd-client.c:5623,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5624,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:5626,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5633,1
    - Dst: MIN
      Src: /src/fwupd/libfwupd/fwupd-client.c:5633,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupd/fwupd-client.c:5634,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5635,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5643,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5651,1
    - Dst: MIN
      Src: /src/fwupd/libfwupd/fwupd-client.c:5651,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupd/fwupd-client.c:5652,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5653,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5661,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5669,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - self
    - curl
    - url
    - error
    argTypes:
    - FwupdClient*
    - CURL*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5670
      start: 5578
    functionDepth: 3
    functionLinenumber: 5578
    functionLinenumberEnd: 5670
    functionName: fwupd_client_download_http
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_set_error
    - curl_easy_strerror
    - g_str_is_ascii
    - g_strndup
    - g_byte_array_new
    - fwupd_client_set_percentage
    - fwupd_client_set_status
    - g_set_error_literal
    - MIN
    - g_autoptr
    - g_bytes_new
    - curl_easy_getinfo
    - g_getenv
    - g_info
    - fwupd_client_is_localhost
    - curl_easy_perform
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_client_download_http(FwupdClient *self, CURL *curl, const gchar *url,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:5675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5672
    functionDepth: 0
    functionLinenumber: 5672
    functionLinenumberEnd: 5678
    functionName: fwupd_client_download_error_is_fatal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_error_matches
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_download_error_is_fatal(const GError *error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5683,1
    - Dst: g_network_monitor_get_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:5684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5686,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5687,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5688,1
    - Dst: g_uri_parse
      Src: /src/fwupd/libfwupd/fwupd-client.c:5691,1
    - Dst: g_network_address_parse
      Src: /src/fwupd/libfwupd/fwupd-client.c:5694,1
    - Dst: g_uri_get_host
      Src: /src/fwupd/libfwupd/fwupd-client.c:5694,1
    - Dst: g_uri_get_port
      Src: /src/fwupd/libfwupd/fwupd-client.c:5694,1
    - Dst: g_network_monitor_can_reach
      Src: /src/fwupd/libfwupd/fwupd-client.c:5697,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5698,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5707,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5708,1
    - Dst: fwupd_client_download_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:5710,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5712,1
    - Dst: fwupd_client_download_error_is_fatal
      Src: /src/fwupd/libfwupd/fwupd-client.c:5714,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5715,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5715,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:5718,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupd/fwupd-client.c:5719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - self
    - curl
    - url
    - error
    argTypes:
    - FwupdClient*
    - CURL*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5722
      start: 5680
    functionDepth: 4
    functionLinenumber: 5680
    functionLinenumberEnd: 5722
    functionName: fwupd_client_download_http_retry
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_steal_pointer
    - g_uri_get_host
    - g_network_monitor_get_default
    - g_uri_parse
    - g_network_address_parse
    - g_network_monitor_can_reach
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - g_uri_get_port
    - fwupd_client_download_error_is_fatal
    - g_usleep
    - fwupd_client_download_http
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_client_download_http_retry(FwupdClient *self, CURL *curl, const gchar
      *url, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5729,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5730,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5731,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:5734,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5735,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5736,1
    - Dst: fwupd_client_curl_helper_set_proxy
      Src: /src/fwupd/libfwupd/fwupd-client.c:5737,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5738,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5738,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:5741,1
    - Dst: fwupd_client_download_http_retry
      Src: /src/fwupd/libfwupd/fwupd-client.c:5742,1
    - Dst: fwupd_client_is_url_ipfs
      Src: /src/fwupd/libfwupd/fwupd-client.c:5745,1
    - Dst: fwupd_client_download_ipfs
      Src: /src/fwupd/libfwupd/fwupd-client.c:5746,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5750,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5757,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5757,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:5760,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5761,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5762,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5764,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5764,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - task
    - source_object
    - task_data
    - cancellable
    argTypes:
    - GTask*
    - gpointer
    - gpointer
    - GCancellable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5765
      start: 5723
    functionDepth: 5
    functionLinenumber: 5723
    functionLinenumberEnd: 5765
    functionName: fwupd_client_download_bytes_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fwupd_client_is_url_http
    - g_task_get_task_data
    - fwupd_client_set_percentage
    - fwupd_client_curl_helper_set_proxy
    - fwupd_client_set_status
    - g_ptr_array_index
    - g_task_return_error
    - fwupd_client_download_http_retry
    - g_autoptr
    - FWUPD_CLIENT
    - g_task_return_pointer
    - fwupd_client_is_url_ipfs
    - g_info
    - fwupd_client_download_ipfs
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_download_bytes_thread_cb(GTask *task,\n\t\t\t\t
      \     gpointer source_object,\n\t\t\t\t      gpointer task_data,\n\t\t\t\t      GCancellable
      *cancellable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5776,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5777,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5778,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5780,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5780,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5781,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5782,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5782,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5785,1
    - Dst: fwupd_client_curl_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5786,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5788,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5788,1
    - Dst: fwupd_client_filter_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:5791,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5793,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5793,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5796,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5797,1
    - Dst: g_task_run_in_thread
      Src: /src/fwupd/libfwupd/fwupd-client.c:5801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - self
    - urls
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5768
    functionDepth: 3
    functionLinenumber: 5768
    functionLinenumberEnd: 5802
    functionName: fwupd_client_download_bytes2_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 3
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - fwupd_client_curl_new
    - g_steal_pointer
    - g_task_set_task_data
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - g_task_run_in_thread
    - fwupd_client_filter_locations
    - g_autoptr
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_download_bytes2_async(FwupdClient *self,\n\t\t\t\t
      \  GPtrArray *urls,\n\t\t\t\t   FwupdClientDownloadFlags flags,\n\t\t\t\t   GCancellable
      *cancellable,\n\t\t\t\t   GAsyncReadyCallback callback,\n\t\t\t\t   gpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5833,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:5833,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5835,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5835,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5836,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5837,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5837,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:5840,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5840,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:5841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - self
    - url
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5825
    functionDepth: 4
    functionLinenumber: 5825
    functionLinenumberEnd: 5842
    functionName: fwupd_client_download_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - G_IS_CANCELLABLE
    - FWUPD_IS_CLIENT
    - fwupd_client_download_bytes2_async
    - g_return_if_fail
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_download_bytes_async(FwupdClient *self,\n\t\t\t\t
      \ const gchar *url,\n\t\t\t\t  FwupdClientDownloadFlags flags,\n\t\t\t\t  GCancellable
      *cancellable,\n\t\t\t\t  GAsyncReadyCallback callback,\n\t\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5859,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5859,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5860,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5860,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5861,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5862,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5863
      start: 5856
    functionDepth: 0
    functionLinenumber: 5856
    functionLinenumberEnd: 5863
    functionName: fwupd_client_download_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 4
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_client_download_bytes_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5871,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5872,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5875,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5875,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5877,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5878,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5881,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/libfwupd/fwupd-client.c:5882,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5883,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/libfwupd/fwupd-client.c:5886,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5887,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5889,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5896,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:5900,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5904,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - task
    - source_object
    - task_data
    - cancellable
    argTypes:
    - GTask*
    - gpointer
    - gpointer
    - GCancellable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5907
      start: 5865
    functionDepth: 3
    functionLinenumber: 5865
    functionLinenumberEnd: 5907
    functionName: fwupd_client_upload_bytes_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_strerror
    - g_task_return_new_error
    - g_task_get_task_data
    - fwupd_client_set_status
    - g_autoptr
    - FWUPD_CLIENT
    - g_bytes_new
    - curl_easy_getinfo
    - g_task_return_pointer
    - g_info
    - g_byte_array_new
    - curl_easy_perform
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_upload_bytes_thread_cb(GTask *task,\n\t\t\t\t    gpointer
      source_object,\n\t\t\t\t    gpointer task_data,\n\t\t\t\t    GCancellable *cancellable)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5942,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5943,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5944,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5945,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5947,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5947,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5948,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5949,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5950,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5950,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5951,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5954,1
    - Dst: fwupd_client_curl_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5955,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5957,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5957,1
    - Dst: curl_mime_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:5964,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5965,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/libfwupd/fwupd-client.c:5966,1
    - Dst: curl_mime_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5967,1
    - Dst: curl_mime_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:5968,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/libfwupd/fwupd-client.c:5970,1
    - Dst: curl_mime_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5971,1
    - Dst: curl_mime_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:5972,1
    - Dst: curl_slist_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:5975,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5976,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5977,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5978,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-client.c:5978,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5979,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:5983,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:5983,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5984,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5985,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5987,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5988,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5991,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5992,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5993,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5994,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5995,1
    - Dst: g_task_run_in_thread
      Src: /src/fwupd/libfwupd/fwupd-client.c:5997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 8
    argNames:
    - self
    - url
    - payload
    - signature
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - FwupdClientUploadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5932
    functionDepth: 3
    functionLinenumber: 5932
    functionLinenumberEnd: 5998
    functionName: fwupd_client_upload_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_client_curl_new
    - strlen
    - g_return_if_fail
    - fwupd_client_set_status
    - g_task_run_in_thread
    - curl_slist_append
    - curl_mime_addpart
    - fwupd_client_is_localhost
    - g_info
    - curl_easy_setopt
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - curl_mime_init
    - curl_mime_name
    - g_task_set_task_data
    - curl_mime_data
    - FWUPD_IS_CLIENT
    - g_autoptr
    - g_getenv
    - GET_PRIVATE
    - g_task_return_error
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_upload_bytes_async(FwupdClient *self,\n\t\t\t\tconst
      gchar *url,\n\t\t\t\tconst gchar *payload,\n\t\t\t\tconst gchar *signature,\n\t\t\t\tFwupdClientUploadFlags
      flags,\n\t\t\t\tGCancellable *cancellable,\n\t\t\t\tGAsyncReadyCallback callback,\n\t\t\t\tgpointer
      callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6015,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6015,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6016,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6016,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6017,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6018,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6019
      start: 6012
    functionDepth: 0
    functionLinenumber: 6012
    functionLinenumberEnd: 6019
    functionName: fwupd_client_upload_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_client_upload_bytes_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6029,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6030,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6031,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6031,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6032,1
    - Dst: fwupd_client_upload_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6035,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6035,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6037,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6038,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6038,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6043,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6044,1
    - Dst: json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6052,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6053,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6053,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6053,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6054,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6055,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:6063,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6065,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6072,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6074,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-client.c:6083,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/libfwupd/fwupd-client.c:6084,1
    - Dst: json_object_get_boolean_member
      Src: /src/fwupd/libfwupd/fwupd-client.c:6087,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6088,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6098,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-client.c:6099,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6100,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/libfwupd/fwupd-client.c:6100,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6105,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6108,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 6021
    functionDepth: 1
    functionLinenumber: 6021
    functionLinenumberEnd: 6109
    functionName: fwupd_client_upload_report_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - json_parser_load_from_data
    - g_prefix_error
    - json_parser_get_root
    - json_parser_new
    - G_TASK
    - FWUPD_CLIENT
    - json_object_get_string_member
    - g_info
    - g_steal_pointer
    - fwupd_client_upload_bytes_finish
    - g_autoptr
    - json_node_get_object
    - g_task_return_pointer
    - g_bytes_get_data
    - g_task_return_new_error
    - g_bytes_get_size
    - json_object_get_boolean_member
    - g_strdup
    - g_task_return_error
    - json_object_has_member
    - g_strndup
    linkageType: ''
    returnType: void
    signature: void fwupd_client_upload_report_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6145,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6147,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6147,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6148,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6149,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6150,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6150,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6151,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6153,1
    - Dst: fwupd_client_upload_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:6154,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 8
    argNames:
    - self
    - url
    - payload
    - signature
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - FwupdClientUploadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6134
    functionDepth: 4
    functionLinenumber: 6134
    functionLinenumberEnd: 6162
    functionName: fwupd_client_upload_report_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - fwupd_client_upload_bytes_async
    - g_task_new
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_upload_report_async(FwupdClient *self,\n\t\t\t\t
      const gchar *url,\n\t\t\t\t const gchar *payload,\n\t\t\t\t const gchar *signature,\n\t\t\t\t
      FwupdClientUploadFlags flags,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t
      GAsyncReadyCallback callback,\n\t\t\t\t gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6179,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6180,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6180,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6181,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6182,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6183
      start: 6176
    functionDepth: 0
    functionLinenumber: 6176
    functionLinenumberEnd: 6183
    functionName: fwupd_client_upload_report_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_upload_report_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6189,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6189,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6191,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6193,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6193,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6195,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6196,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6196,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:6201,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6202,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6185
    functionDepth: 2
    functionLinenumber: 6185
    functionLinenumberEnd: 6203
    functionName: fwupd_client_inhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_variant_get
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_inhibit_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6228,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6230,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6230,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6231,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6232,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6232,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6233,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6236,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6237,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6239,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - reason
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6220
    functionDepth: 0
    functionLinenumber: 6220
    functionLinenumberEnd: 6245
    functionName: fwupd_client_inhibit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_inhibit_async(FwupdClient *self,\n\t\t\t   const
      gchar *reason,\n\t\t\t   GCancellable *cancellable,\n\t\t\t   GAsyncReadyCallback
      callback,\n\t\t\t   gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6263,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6264,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6265,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6266,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6260
    functionDepth: 0
    functionLinenumber: 6260
    functionLinenumberEnd: 6267
    functionName: fwupd_client_inhibit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    - g_task_propagate_pointer
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_inhibit_finish(FwupdClient *self, GAsyncResult *res, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6272,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6272,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6273,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6274,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6276,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6276,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6278,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6279,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6279,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6269
    functionDepth: 2
    functionLinenumber: 6269
    functionLinenumberEnd: 6285
    functionName: fwupd_client_uninhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_uninhibit_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6306,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6307,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6309,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6309,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6310,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6311,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6311,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6312,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6315,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6316,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6318,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - inhibit_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6299
    functionDepth: 0
    functionLinenumber: 6299
    functionLinenumberEnd: 6324
    functionName: fwupd_client_uninhibit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_uninhibit_async(FwupdClient *self,\n\t\t\t     const
      gchar *inhibit_id,\n\t\t\t     GCancellable *cancellable,\n\t\t\t     GAsyncReadyCallback
      callback,\n\t\t\t     gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6341,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6342,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6343,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6344,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6345
      start: 6338
    functionDepth: 0
    functionLinenumber: 6338
    functionLinenumberEnd: 6345
    functionName: fwupd_client_uninhibit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_uninhibit_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6360,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6362,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6362,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6363,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-client.c:6365,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6365,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6366
      start: 6357
    functionDepth: 0
    functionLinenumber: 6357
    functionLinenumberEnd: 6366
    functionName: fwupd_client_add_hint
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_client_add_hint(FwupdClient *self, const gchar *key, const
      gchar *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6372,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6372,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6373,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6374,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6376,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:6376,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6380,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6381,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6381,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:6384,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6385,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6386,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6386,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6392
      start: 6369
    functionDepth: 2
    functionLinenumber: 6369
    functionLinenumberEnd: 6392
    functionName: fwupd_client_emulation_load_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_steal_pointer
    - G_TASK
    - g_dbus_message_to_gerror
    - G_DBUS_CONNECTION
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - g_dbus_connection_send_message_with_reply_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_emulation_load_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6417,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6420,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6420,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6421,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6422,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6424,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6424,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6425,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6426,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6426,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6427,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:6429,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6431,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6431,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6436,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:6437,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6437,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6438,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:6442,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:6445,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6445,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6445,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:6446,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:6446,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6453,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6455,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6455,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6409
    functionDepth: 1
    functionLinenumber: 6409
    functionLinenumberEnd: 6461
    functionName: fwupd_client_emulation_load_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_dbus_connection_send_message_with_reply
    - g_task_return_new_error_literal
    - g_unix_fd_list_append
    - g_unix_input_stream_get_fd
    - g_return_if_fail
    - g_variant_new
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_task_new
    - g_steal_pointer
    - g_unix_fd_list_new
    - FWUPD_IS_CLIENT
    - g_dbus_message_set_body
    - g_autoptr
    - g_dbus_message_new_method_call
    - GET_PRIVATE
    - g_dbus_message_set_unix_fd_list
    - g_task_return_error
    - g_dbus_proxy_get_connection
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_emulation_load_async(FwupdClient *self,\n\t\t\t\t
      \ const gchar *filename,\n\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6478,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6479,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6480,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6481,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6482
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6482
    functionName: fwupd_client_emulation_load_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_emulation_load_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6488,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6488,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6489,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6490,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6492,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:6492,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6496,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6497,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6497,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:6500,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6501,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6502,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6502,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6508
      start: 6485
    functionDepth: 2
    functionLinenumber: 6485
    functionLinenumberEnd: 6508
    functionName: fwupd_client_emulation_save_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_steal_pointer
    - G_TASK
    - g_dbus_message_to_gerror
    - G_DBUS_CONNECTION
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - g_dbus_connection_send_message_with_reply_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_emulation_save_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6541,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6542,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6543,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6544,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6545,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6546,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6548,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6548,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6549,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6550,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6550,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6551,1
    - Dst: fwupd_unix_output_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:6553,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6555,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6555,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6560,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:6561,1
    - Dst: g_unix_output_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6561,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6562,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:6566,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:6569,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6569,1
    - Dst: g_unix_output_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6569,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:6570,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:6570,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6579,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6579,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6585
      start: 6533
    functionDepth: 1
    functionLinenumber: 6533
    functionLinenumberEnd: 6585
    functionName: fwupd_client_emulation_save_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_dbus_connection_send_message_with_reply
    - g_unix_output_stream_get_fd
    - g_task_return_new_error_literal
    - g_unix_fd_list_append
    - g_return_if_fail
    - g_variant_new
    - G_IS_CANCELLABLE
    - g_unix_fd_list_new
    - g_task_new
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_dbus_message_set_body
    - g_autoptr
    - g_dbus_message_new_method_call
    - fwupd_unix_output_stream_from_fn
    - GET_PRIVATE
    - g_dbus_message_set_unix_fd_list
    - g_task_return_error
    - g_dbus_proxy_get_connection
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_emulation_save_async(FwupdClient *self,\n\t\t\t\t
      \ const gchar *filename,\n\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t  GAsyncReadyCallback
      callback,\n\t\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6602,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6602,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6603,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6603,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6604,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6605,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6606
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6606
    functionName: fwupd_client_emulation_save_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_emulation_save_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6611,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6611,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6612,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6613,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6615,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6615,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6617,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6618,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6618,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6608
    functionDepth: 2
    functionLinenumber: 6608
    functionLinenumberEnd: 6624
    functionName: fwupd_client_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_fix_host_security_attr_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6645,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6646,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6648,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6649,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6649,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6650,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6650,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6651,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6654,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6655,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6657,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - appstream_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6663
      start: 6638
    functionDepth: 0
    functionLinenumber: 6638
    functionLinenumberEnd: 6663
    functionName: fwupd_client_fix_host_security_attr_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_fix_host_security_attr_async(FwupdClient *self,\n\t\t\t\t\t
      \ const gchar *appstream_id,\n\t\t\t\t\t  GCancellable *cancellable,\n\t\t\t\t\t
      \ GAsyncReadyCallback callback,\n\t\t\t\t\t  gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6680,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6680,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6681,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6681,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6682,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6683,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6684
      start: 6677
    functionDepth: 0
    functionLinenumber: 6677
    functionLinenumberEnd: 6684
    functionName: fwupd_client_fix_host_security_attr_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_fix_host_security_attr_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6689,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6689,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6690,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6691,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6693,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6693,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6695,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6696,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6696,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6702
      start: 6686
    functionDepth: 2
    functionLinenumber: 6686
    functionLinenumberEnd: 6702
    functionName: fwupd_client_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_PROXY
    - g_steal_pointer
    - G_TASK
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_task_return_error
    - g_task_return_boolean
    - fwupd_client_fixup_dbus_error
    linkageType: ''
    returnType: void
    signature: void fwupd_client_undo_host_security_attr_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6723,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6724,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6726,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6727,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6727,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6728,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6728,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6729,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6732,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6733,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6735,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - appstream_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6741
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6741
    functionName: fwupd_client_undo_host_security_attr_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_IS_CANCELLABLE
    - g_task_new
    - g_dbus_proxy_call
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_return_if_fail
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_undo_host_security_attr_async(FwupdClient *self,\n\t\t\t\t\t
      \  const gchar *appstream_id,\n\t\t\t\t\t   GCancellable *cancellable,\n\t\t\t\t\t
      \  GAsyncReadyCallback callback,\n\t\t\t\t\t   gpointer callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6758,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6758,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6759,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6759,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6760,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6761,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6762
      start: 6755
    functionDepth: 0
    functionLinenumber: 6755
    functionLinenumberEnd: 6762
    functionName: fwupd_client_undo_host_security_attr_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - G_TASK
    - g_task_propagate_boolean
    - g_task_is_valid
    - FWUPD_IS_CLIENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_undo_host_security_attr_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:6771,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-client.c:6772,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6773,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - builder
    - metadata
    argTypes:
    - JsonBuilder*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6776
      start: 6764
    functionDepth: 0
    functionLinenumber: 6764
    functionLinenumberEnd: 6776
    functionName: fwupd_client_build_report_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - json_builder_set_member_name
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_client_build_report_metadata(JsonBuilder *builder, GHashTable
      *metadata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6803,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6806,1
    - Dst: json_builder_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6806,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6807,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6808,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6810,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6810,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6811,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6813,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6815,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6816,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6817,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6818,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6819,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6821,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6822,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6826,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6827,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6828,1
    - Dst: fwupd_client_build_report_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:6829,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6830,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6834,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6835,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:6837,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6838,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6839,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:6840,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:6840,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6843,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-client.c:6844,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:6844,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6845,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6848,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6849,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6853,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:6861,1
    - Dst: json_generator_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6862,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/libfwupd/fwupd-client.c:6863,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:6864,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6865,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6867,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6873,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - self
    - devices
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6874
      start: 6797
    functionDepth: 1
    functionLinenumber: 6797
    functionLinenumberEnd: 6874
    functionName: fwupd_client_build_report_devices
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - json_generator_new
    - FWUPD_CODEC
    - json_builder_get_root
    - g_return_val_if_fail
    - json_builder_add_string_value
    - g_hash_table_size
    - g_debug
    - fwupd_device_has_flag
    - json_builder_begin_object
    - g_ptr_array_index
    - json_builder_add_int_value
    - json_builder_set_member_name
    - fwupd_client_build_report_metadata
    - g_steal_pointer
    - json_generator_to_data
    - FWUPD_IS_CLIENT
    - fwupd_device_get_id
    - fwupd_codec_to_json
    - g_autoptr
    - json_builder_new
    - json_builder_begin_array
    - json_builder_end_array
    - g_set_error_literal
    - GET_PRIVATE
    - json_generator_set_root
    - json_builder_end_object
    - json_generator_set_pretty
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_build_report_devices(FwupdClient *self,\n\t\t\t\t
      \ GPtrArray *devices,\n\t\t\t\t  GHashTable *metadata,\n\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:6879,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:6881,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:6886,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:6888,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6890,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6891,1
    - Dst: fwupd_device_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:6897,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6899,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6900,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:6902,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6903,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6905,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6909,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6910,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:6910,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-client.c:6913,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6914,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6915,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-client.c:6915,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6919,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6920,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:6920,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6921,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6922,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6923,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6923,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-client.c:6925,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6926,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6927,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-client.c:6927,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-client.c:6931,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6932,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6933,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-client.c:6933,1
    - Dst: fwupd_device_get_guids
      Src: /src/fwupd/libfwupd/fwupd-client.c:6937,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6939,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6940,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:6942,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6943,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:6945,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6948,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6949,1
    - Dst: fwupd_device_get_plugin
      Src: /src/fwupd/libfwupd/fwupd-client.c:6949,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6952,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6953,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:6953,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6954,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6955,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:6955,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6958,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6959,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/libfwupd/fwupd-client.c:6959,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6962,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6963,1
    - Dst: fwupd_device_get_created
      Src: /src/fwupd/libfwupd/fwupd-client.c:6963,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6964,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:6965,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/libfwupd/fwupd-client.c:6965,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6968,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6969,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6970,1
    - Dst: fwupd_client_build_report_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:6971,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6972,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 2
    argNames:
    - builder
    - dev
    argTypes:
    - JsonBuilder*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6974
      start: 6876
    functionDepth: 1
    functionLinenumber: 6876
    functionLinenumberEnd: 6974
    functionName: fwupd_client_build_report_history_device
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_protocol
    - fwupd_device_get_checksums
    - fwupd_release_get_update_message
    - fwupd_device_get_release_default
    - fwupd_device_get_plugin
    - fwupd_release_get_id
    - fwupd_device_get_modified
    - json_builder_add_string_value
    - g_hash_table_size
    - fwupd_device_get_version
    - json_builder_begin_object
    - fwupd_device_get_guids
    - g_ptr_array_index
    - json_builder_add_int_value
    - json_builder_set_member_name
    - fwupd_device_get_created
    - fwupd_client_build_report_metadata
    - fwupd_release_get_metadata
    - fwupd_checksum_get_by_kind
    - fwupd_device_get_install_duration
    - fwupd_device_get_flags
    - fwupd_device_get_update_error
    - fwupd_release_get_version
    - fwupd_device_get_update_state
    - json_builder_begin_array
    - json_builder_end_array
    - fwupd_release_get_checksums
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fwupd_client_build_report_history_device(JsonBuilder *builder,
      FwupdDevice *dev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7006,1
    - Dst: json_builder_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7006,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7007,1
    - Dst: json_generator_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7007,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7008,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7010,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7011,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7012,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7012,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7013,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:7016,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7017,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7021,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7026,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7027,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7028,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7029,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7030,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7032,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7033,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7037,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7038,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7039,1
    - Dst: fwupd_client_build_report_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:7040,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7041,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7045,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7046,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7048,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7050,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7051,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7051,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7054,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7055,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7055,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7058,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7059,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7060,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7061,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7062,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7062,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:7068,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7069,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7070,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7070,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:7073,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7073,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7074,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7075,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7076,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7077,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7078,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7083,1
    - Dst: fwupd_client_build_report_history_device
      Src: /src/fwupd/libfwupd/fwupd-client.c:7084,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7085,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7088,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7089,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7093,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:7101,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/libfwupd/fwupd-client.c:7102,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:7103,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:7104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7112,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 5
    argNames:
    - self
    - devices
    - remote
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - FwupdRemote*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 6996
    functionDepth: 2
    functionLinenumber: 6996
    functionLinenumberEnd: 7113
    functionName: fwupd_client_build_report_history
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - json_generator_new
    - fwupd_remote_get_report_uri
    - json_builder_get_root
    - fwupd_device_get_release_default
    - g_return_val_if_fail
    - json_builder_add_string_value
    - fwupd_update_state_to_string
    - g_set_error
    - g_hash_table_size
    - g_debug
    - fwupd_device_has_flag
    - json_builder_begin_object
    - g_ptr_array_index
    - json_builder_add_int_value
    - json_builder_set_member_name
    - fwupd_client_build_report_metadata
    - fwupd_client_build_report_history_device
    - fwupd_release_get_remote_id
    - g_steal_pointer
    - json_generator_to_data
    - FWUPD_IS_CLIENT
    - fwupd_device_get_id
    - fwupd_remote_get_id
    - g_autoptr
    - json_builder_new
    - fwupd_device_get_update_state
    - json_builder_begin_array
    - json_builder_end_array
    - FWUPD_IS_REMOTE
    - g_set_error_literal
    - GET_PRIVATE
    - json_generator_set_root
    - g_strcmp0
    - json_builder_end_object
    - json_generator_set_pretty
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_build_report_history(FwupdClient *self,\n\t\t\t\t
      \ GPtrArray *devices,\n\t\t\t\t  FwupdRemote *remote,\n\t\t\t\t  GHashTable
      *metadata,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7140,1
    - Dst: json_builder_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7141,1
    - Dst: json_generator_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7144,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7145,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7146,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7147,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7150,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7151,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7152,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7153,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7154,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7156,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7157,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7161,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7161,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7162,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7163,1
    - Dst: fwupd_client_build_report_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:7164,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7165,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:7166,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7166,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7167,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:7171,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7172,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7174,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7175,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-client.c:7176,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:7176,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7177,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7180,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7185,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:7193,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/libfwupd/fwupd-client.c:7194,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/libfwupd/fwupd-client.c:7195,1
    - Dst: json_generator_to_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:7196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7198,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 4
    argNames:
    - self
    - attrs
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7205
      start: 7131
    functionDepth: 1
    functionLinenumber: 7131
    functionLinenumberEnd: 7205
    functionName: fwupd_client_build_report_security
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - json_generator_new
    - FWUPD_CODEC
    - json_builder_get_root
    - g_return_val_if_fail
    - json_builder_add_string_value
    - g_hash_table_size
    - json_builder_begin_object
    - fwupd_client_get_host_security_id
    - g_ptr_array_index
    - json_builder_add_int_value
    - json_builder_set_member_name
    - fwupd_client_build_report_metadata
    - g_steal_pointer
    - json_generator_to_data
    - FWUPD_IS_CLIENT
    - fwupd_codec_to_json
    - g_autoptr
    - json_builder_new
    - json_builder_begin_array
    - json_builder_end_array
    - g_set_error_literal
    - GET_PRIVATE
    - json_generator_set_root
    - json_builder_end_object
    - json_generator_set_pretty
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_client_build_report_security(FwupdClient *self,\n\t\t\t\t
      \  GPtrArray *attrs,\n\t\t\t\t   GHashTable *metadata,\n\t\t\t\t   GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7210,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7211,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7215,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7218,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7221,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7224,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7227,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7230,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7233,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7236,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7239,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7242,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7245,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7248,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7251,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-client.c:7254,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7257
      start: 7207
    functionDepth: 0
    functionLinenumber: 7207
    functionLinenumberEnd: 7257
    functionName: fwupd_client_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint
    - g_value_set_string
    - GET_PRIVATE
    - FWUPD_CLIENT
    - g_value_set_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7262,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7263,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7267,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7270,1
    - Dst: fwupd_client_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-client.c:7273,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7273,1
    - Dst: fwupd_client_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-client.c:7276,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7276,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:7279,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7279,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:7282,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7282,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:7285,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7285,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7288,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7288,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7291,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7291,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-client.c:7294,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7297
      start: 7259
    functionDepth: 3
    functionLinenumber: 7259
    functionLinenumberEnd: 7297
    functionName: fwupd_client_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_host_product
    - fwupd_client_set_host_bkc
    - fwupd_client_set_host_machine_id
    - fwupd_client_set_host_security_id
    - fwupd_client_set_battery_threshold
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    - fwupd_client_set_battery_level
    - GET_PRIVATE
    - fwupd_client_set_host_vendor
    - FWUPD_CLIENT
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7303,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7317,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7318,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7320,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7338,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7339,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7341,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7359,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7360,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7362,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7381,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7382,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7384,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7403,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7404,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7406,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7425,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7426,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7428,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7443,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7450,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7459,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7464,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7473,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7478,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7487,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7494,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7503,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7508,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7517,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7522,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7531,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7536,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7545,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7550,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7559,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7564,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7573,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7578,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7587,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7592,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7601,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7608,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7617,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdClientClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7625
      start: 7299
    functionDepth: 0
    functionLinenumber: 7299
    functionLinenumberEnd: 7625
    functionName: fwupd_client_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint
    - g_object_class_install_property
    - g_param_spec_boolean
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    linkageType: ''
    returnType: void
    signature: void fwupd_client_class_init(FwupdClientClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7630,1
    - Dst: g_mutex_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:7631,1
    - Dst: g_mutex_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:7632,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:7634,1
    - Dst: g_proxy_resolver_get_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:7635,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-client.c:7636,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-client.c:7640,1
    - Dst: fwupd_client_add_hint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7643,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:7643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7644
      start: 7627
    functionDepth: 1
    functionLinenumber: 7627
    functionLinenumberEnd: 7644
    functionName: fwupd_client_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - g_hash_table_new_full
    - g_mutex_init
    - GET_PRIVATE
    - g_proxy_resolver_get_default
    - g_ptr_array_new_with_free_func
    - fwupd_client_add_hint
    linkageType: ''
    returnType: void
    signature: void fwupd_client_init(FwupdClient *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7649,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7650,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7652,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7653,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7654,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7655,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7656,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7657,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7658,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7659,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7660,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7661,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7662,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7663,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7664,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/libfwupd/fwupd-client.c:7665,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupd/fwupd-client.c:7667,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7668,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/libfwupd/fwupd-client.c:7669,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7671,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7674
      start: 7646
    functionDepth: 0
    functionLinenumber: 7646
    functionLinenumberEnd: 7674
    functionName: fwupd_client_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_mutex_clear
    - g_object_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - g_source_remove
    - g_clear_pointer
    - GET_PRIVATE
    - FWUPD_CLIENT
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_client_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7689,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7691
      start: 7685
    functionDepth: 0
    functionLinenumber: 7685
    functionLinenumberEnd: 7691
    functionName: fwupd_client_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - FWUPD_CLIENT
    - g_object_new
    linkageType: ''
    returnType: FwupdClient
    signature: 'FwupdClient *

      fwupd_client_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_STRINGIFY
      Src: /src/fwupd/libfwupd/fwupd-version.c:26,1
    - Dst: G_STRINGIFY
      Src: /src/fwupd/libfwupd/fwupd-version.c:26,1
    - Dst: G_STRINGIFY
      Src: /src/fwupd/libfwupd/fwupd-version.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fwupd_version_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-version.c
    functionUses: 1
    functionsReached:
    - G_STRINGIFY
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_version_string(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 206
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:108,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: fwupd_device_ensure_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_checksums(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:127,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:127,1
    - Dst: fwupd_device_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-device.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: fwupd_device_get_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_checksums
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_checksums(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:146,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:148,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:148,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:149,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:154,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: fwupd_device_has_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_checksum(FwupdDevice *self, const gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:173,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:174,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:174,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:175,1
    - Dst: fwupd_device_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:177,1
    - Dst: fwupd_device_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-device.c:179,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:180,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: fwupd_device_add_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_ensure_checksums
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    - fwupd_device_has_checksum
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_checksum(FwupdDevice *self, const gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:186,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fwupd_device_ensure_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_issues(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:205,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:205,1
    - Dst: fwupd_device_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-device.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: fwupd_device_get_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_issues
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_issues(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:222,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:223,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:223,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:224,1
    - Dst: fwupd_device_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-device.c:226,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:229,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:232,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - issue
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: fwupd_device_add_issue
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_ensure_issues
    - g_return_if_fail
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_issue(FwupdDevice *self, const gchar *issue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:238,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: fwupd_device_ensure_children
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_children(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:256,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:257,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:257,1
    - Dst: fwupd_device_ensure_children
      Src: /src/fwupd/libfwupd/fwupd-device.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: fwupd_device_get_children
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_children
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_children(FwupdDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:276,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: fwupd_device_get_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_summary(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:292,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:293,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:296,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:299,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - summary
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: fwupd_device_set_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_summary(FwupdDevice *self, const gchar *summary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:316,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:317,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: fwupd_device_get_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_branch(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:333,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:334,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:334,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:337,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:340,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - branch
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: fwupd_device_set_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_branch(FwupdDevice *self, const gchar *branch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:357,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:358,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: fwupd_device_get_serial
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_serial(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:375,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:378,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:381,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: fwupd_device_set_serial
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_serial(FwupdDevice *self, const gchar *serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:398,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:399,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: fwupd_device_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 42
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_id(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:415,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:416,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:416,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:419,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:423,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:424,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:428,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:429,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:430,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 431
    functionName: fwupd_device_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_id_is_valid
    - g_critical
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_id(FwupdDevice *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:447,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: fwupd_device_get_parent_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_parent_id(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:463,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:464,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:464,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:467,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:471,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:472,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:476,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - parent_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: fwupd_device_set_parent_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_id_is_valid
    - g_critical
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_parent_id(FwupdDevice *self, const gchar *parent_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:497,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: fwupd_device_get_composite_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_composite_id(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:516,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:517,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:517,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:520,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:524,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:525,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:529,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - composite_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 531
    functionName: fwupd_device_set_composite_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_id_is_valid
    - g_critical
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_composite_id(FwupdDevice *self, const gchar *composite_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:546,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:547,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: fwupd_device_get_parent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_device_get_parent(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:564,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:564,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: fwupd_device_get_root
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_device_get_root(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:586,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:587,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:587,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:588,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:591,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:591,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:593,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:593,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:597,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: fwupd_device_set_parent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    - g_object_add_weak_pointer
    - fwupd_device_set_parent_id
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_parent(FwupdDevice *self, FwupdDevice *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:603,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:604,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:606,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - where_the_object_was
    argTypes:
    - gpointer
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: fwupd_device_child_finalized_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - FWUPD_DEVICE
    - g_critical
    - fwupd_device_get_name
    linkageType: ''
    returnType: void
    signature: void fwupd_device_child_finalized_cb(gpointer data, GObject *where_the_object_was)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:627,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:627,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:628,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:628,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:629,1
    - Dst: fwupd_device_ensure_children
      Src: /src/fwupd/libfwupd/fwupd-device.c:632,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:634,1
    - Dst: g_object_weak_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:638,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:638,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:639,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 640
    functionName: fwupd_device_add_child
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fwupd_device_ensure_children
    - g_return_if_fail
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    - g_ptr_array_add
    - g_object_weak_ref
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_child(FwupdDevice *self, FwupdDevice *child)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:657,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:663,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:665,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:665,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 670
    functionName: fwupd_device_remove_child
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - g_ptr_array_remove_index
    - G_OBJECT
    - g_object_weak_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_device_remove_child(FwupdDevice *self, FwupdDevice *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:686,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:688,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:688,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:693,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:694,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:694,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 697
    functionName: fwupd_device_remove_children
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_ptr_array_set_size
    - G_OBJECT
    - g_object_weak_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_device_remove_children(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:702,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 705
    functionName: fwupd_device_ensure_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_guids(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:720,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:721,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:721,1
    - Dst: fwupd_device_ensure_guids
      Src: /src/fwupd/libfwupd/fwupd-device.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: fwupd_device_get_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_guids
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_guids(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:740,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:742,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:742,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:743,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:748,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 753
    functionName: fwupd_device_has_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_guid(FwupdDevice *self, const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:767,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:768,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:768,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:769,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:770,1
    - Dst: fwupd_device_ensure_guids
      Src: /src/fwupd/libfwupd/fwupd-device.c:772,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:773,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 774
    functionName: fwupd_device_add_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_ensure_guids
    - fwupd_device_has_guid
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_guid(FwupdDevice *self, const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:790,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:790,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: fwupd_device_get_guid_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_guid_default(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:799,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 802
    functionName: fwupd_device_ensure_instance_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_instance_ids(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:817,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:818,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:818,1
    - Dst: fwupd_device_ensure_instance_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 821
    functionName: fwupd_device_get_instance_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_instance_ids
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_instance_ids(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:837,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:839,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:839,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:840,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:845,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 850
    functionName: fwupd_device_has_instance_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_instance_id(FwupdDevice *self, const gchar
      *instance_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:864,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:865,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:865,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:866,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:867,1
    - Dst: fwupd_device_ensure_instance_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:869,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:870,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 871
    functionName: fwupd_device_add_instance_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_ensure_instance_ids
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - fwupd_device_has_instance_id
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_instance_id(FwupdDevice *self, const gchar *instance_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:876,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 879
    functionName: fwupd_device_ensure_icons
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_icons(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:898,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:898,1
    - Dst: fwupd_device_ensure_icons
      Src: /src/fwupd/libfwupd/fwupd-device.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 901
    functionName: fwupd_device_get_icons
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_icons
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_icons(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:917,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:921,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - icon
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 926
    functionName: fwupd_device_has_icon
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_icon(FwupdDevice *self, const gchar *icon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:940,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:941,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:941,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:942,1
    - Dst: fwupd_device_has_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:943,1
    - Dst: fwupd_device_ensure_icons
      Src: /src/fwupd/libfwupd/fwupd-device.c:945,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:946,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - icon
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 947
    functionName: fwupd_device_add_icon
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_ensure_icons
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - fwupd_device_has_icon
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_icon(FwupdDevice *self, const gchar *icon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:963,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 965
    functionName: fwupd_device_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 21
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_name(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:979,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:980,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:980,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:983,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:986,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 988
    functionName: fwupd_device_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_name(FwupdDevice *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1003,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1004,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1006
    functionName: fwupd_device_get_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_vendor(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1020,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1021,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1021,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1024,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1027,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1029
    functionName: fwupd_device_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_vendor(FwupdDevice *self, const gchar *vendor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1034,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1037
    functionName: fwupd_device_ensure_vendor_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_vendor_ids(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1052,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1053,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1053,1
    - Dst: fwupd_device_ensure_vendor_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1056
    functionName: fwupd_device_get_vendor_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - fwupd_device_ensure_vendor_ids
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_vendor_ids(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1072,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1074,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1074,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1075,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:1080,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: fwupd_device_has_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_vendor_id(FwupdDevice *self, const gchar
      *vendor_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1099,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1101,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1101,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1102,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:1104,1
    - Dst: fwupd_device_ensure_vendor_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:1106,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:1107,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1108
    functionName: fwupd_device_add_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_has_vendor_id
    - g_return_if_fail
    - fwupd_device_ensure_vendor_ids
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_vendor_id(FwupdDevice *self, const gchar *vendor_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1124,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1126
    functionName: fwupd_device_get_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_version(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1140,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1141,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1144,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1147,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1148,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1149,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1150
    functionName: fwupd_device_set_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version(FwupdDevice *self, const gchar *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1165,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1166,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1168
    functionName: fwupd_device_get_version_lowest
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_version_lowest(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1182,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1183,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1186,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1189,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_lowest
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1191
    functionName: fwupd_device_set_version_lowest
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_lowest(FwupdDevice *self, const gchar
      *version_lowest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1207,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1209
    functionName: fwupd_device_get_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_version_lowest_raw(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1223,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1224,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_lowest_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1226
    functionName: fwupd_device_set_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_lowest_raw(FwupdDevice *self, guint64
      version_lowest_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1241,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1242,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1244
    functionName: fwupd_device_get_version_bootloader
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_version_bootloader(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1258,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1259,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1259,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1262,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1265,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_bootloader
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1267
    functionName: fwupd_device_set_version_bootloader
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_bootloader(FwupdDevice *self, const gchar
      *version_bootloader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1282,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1283,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1285
    functionName: fwupd_device_get_version_bootloader_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_version_bootloader_raw(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1299,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1300,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_bootloader_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1302
    functionName: fwupd_device_set_version_bootloader_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_bootloader_raw(FwupdDevice *self, guint64
      version_bootloader_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1317,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1318,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1320
    functionName: fwupd_device_get_flashes_left
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_device_get_flashes_left(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1334,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1335,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flashes_left
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1337
    functionName: fwupd_device_set_flashes_left
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_flashes_left(FwupdDevice *self, guint32 flashes_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1352,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1353,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1355
    functionName: fwupd_device_get_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_device_get_battery_level(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1372,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1374,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1375,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1380,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1381
    functionName: fwupd_device_set_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_battery_level(FwupdDevice *self, guint32 battery_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1400,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1402,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1409
    functionName: fwupd_device_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_device_get_battery_threshold(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1426,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1428,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1428,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1429,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1434,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1435
    functionName: fwupd_device_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_battery_threshold(FwupdDevice *self, guint32
      battery_threshold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1451,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1453
    functionName: fwupd_device_get_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_device_get_install_duration(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1467,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1468,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - duration
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1470
    functionName: fwupd_device_set_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_install_duration(FwupdDevice *self, guint32 duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1485,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1486,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1488
    functionName: fwupd_device_get_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_plugin(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1502,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1503,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1503,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1506,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1509,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1511
    functionName: fwupd_device_set_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_plugin(FwupdDevice *self, const gchar *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1516,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1519
    functionName: fwupd_device_ensure_protocols
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_protocols(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1534,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1535,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1535,1
    - Dst: fwupd_device_ensure_protocols
      Src: /src/fwupd/libfwupd/fwupd-device.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1538
    functionName: fwupd_device_get_protocols
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_protocols
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_protocols(FwupdDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1556,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1556,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1557,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:1562,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1567
    functionName: fwupd_device_has_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_protocol(FwupdDevice *self, const gchar *protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1581,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1583,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1583,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1584,1
    - Dst: fwupd_device_has_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:1586,1
    - Dst: fwupd_device_ensure_protocols
      Src: /src/fwupd/libfwupd/fwupd-device.c:1588,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:1589,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1590
    functionName: fwupd_device_add_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - fwupd_device_has_protocol
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - fwupd_device_ensure_protocols
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_protocol(FwupdDevice *self, const gchar *protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1605,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1606,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1602
    functionDepth: 0
    functionLinenumber: 1602
    functionLinenumberEnd: 1608
    functionName: fwupd_device_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_flags(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1622,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1623,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1623,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1627,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1628
    functionName: fwupd_device_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_flags(FwupdDevice *self, guint64 flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1642,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1643,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1643,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1649,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1650
    functionName: fwupd_device_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_flag(FwupdDevice *self, FwupdDeviceFlags flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1664,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1665,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1665,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1671,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1672
    functionName: fwupd_device_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_remove_flag(FwupdDevice *self, FwupdDeviceFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1688,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1689,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1691
    functionName: fwupd_device_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 23
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_flag(FwupdDevice *self, FwupdDeviceFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1706,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1707,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1709
    functionName: fwupd_device_get_problems
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_problems(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1723,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1724,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1724,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1728,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - problems
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1729
    functionName: fwupd_device_set_problems
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_problems(FwupdDevice *self, guint64 problems)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1743,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1744,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1744,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:1747,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1750,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1751
    functionName: fwupd_device_add_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - fwupd_device_has_problem
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_problem(FwupdDevice *self, FwupdDeviceProblem
      problem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1765,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1766,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1766,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:1769,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1772,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1773
    functionName: fwupd_device_remove_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - fwupd_device_has_problem
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_remove_problem(FwupdDevice *self, FwupdDeviceProblem
      problem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1790,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1786
    functionDepth: 0
    functionLinenumber: 1786
    functionLinenumberEnd: 1792
    functionName: fwupd_device_has_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_problem(FwupdDevice *self, FwupdDeviceProblem
      problem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1807,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1808,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1810
    functionName: fwupd_device_get_request_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_request_flags(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1824,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1825,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1825,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1829,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - request_flags
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1830
    functionName: fwupd_device_set_request_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_request_flags(FwupdDevice *self, guint64 request_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1844,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1845,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1845,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1851,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1852
    functionName: fwupd_device_add_request_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_request_flag(FwupdDevice *self, FwupdRequestFlags
      request_flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1866,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1867,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1867,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1873,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1874
    functionName: fwupd_device_remove_request_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_remove_request_flag(FwupdDevice *self, FwupdRequestFlags
      request_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1890,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1891,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1893
    functionName: fwupd_device_has_request_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_has_request_flag(FwupdDevice *self, FwupdRequestFlags
      request_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1908,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1909,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1911
    functionName: fwupd_device_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_created(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1925,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1926,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1928
    functionName: fwupd_device_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_created(FwupdDevice *self, guint64 created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1943,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1944,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1946
    functionName: fwupd_device_get_modified
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_modified(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1960,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1961,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - modified
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1963
    functionName: fwupd_device_set_modified
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_modified(FwupdDevice *self, guint64 modified)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1977,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1978,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1980,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1980,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1981,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1981,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:1983,1
    - Dst: fwupd_device_add_request_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:1984,1
    - Dst: fwupd_device_add_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:1985,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:1987,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:1989,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:1991,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:1993,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:1995,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:1997,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:1999,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:2001,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2003,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2005,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2007,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2009,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:2011,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:2013,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:2015,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:2017,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2020,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2021,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:2025,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2028,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:2029,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:2033,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:2035,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2037,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:2039,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:2041,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2043,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2045,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2047,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2050,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:2051,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2056,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2057,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2062,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:2063,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2068,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:2069,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2074,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-device.c:2075,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 91
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 2078
    functionName: fwupd_device_incorporate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_set_version_build_date
    - fwupd_device_set_plugin
    - fwupd_device_set_created
    - fwupd_device_set_vendor
    - fwupd_device_set_install_duration
    - fwupd_device_add_request_flag
    - fwupd_device_add_vendor_id
    - fwupd_device_add_icon
    - g_return_if_fail
    - g_ptr_array_index
    - fwupd_device_set_parent_id
    - fwupd_device_set_version_lowest
    - fwupd_device_set_update_state
    - fwupd_device_set_branch
    - fwupd_device_set_summary
    - fwupd_device_add_guid
    - fwupd_device_set_version
    - fwupd_device_set_flashes_left
    - fwupd_device_set_update_error
    - fwupd_device_set_id
    - fwupd_device_add_checksum
    - fwupd_device_add_release
    - fwupd_device_set_serial
    - fwupd_device_add_protocol
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_battery_level
    - fwupd_device_set_version_format
    - fwupd_device_set_version_lowest_raw
    - fwupd_device_add_instance_id
    - fwupd_device_add_flag
    - fwupd_device_set_composite_id
    - fwupd_device_set_battery_threshold
    - fwupd_device_set_version_bootloader_raw
    - fwupd_device_add_problem
    - fwupd_device_set_modified
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_set_version_raw
    - fwupd_device_set_name
    linkageType: ''
    returnType: void
    signature: void fwupd_device_incorporate(FwupdDevice *self, FwupdDevice *donor)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2083,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2084,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2087,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2090,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2093,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2096,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2099,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2102,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2106,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2109,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2113,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2116,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2119,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2122,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2125,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2131,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2133,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2134,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2137,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2138,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2141,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2144,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2147,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2150,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2153,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2156,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2159,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2162,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2165,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2168,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2171,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2174,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2177,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2181,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2184,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2187,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2193,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2195,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2196,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2199,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2200,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2203,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2206,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2212,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2214,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2215,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2218,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2219,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2222,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2227,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2228,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2231,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2234,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2237,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2240,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2243,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2246,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2249,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2252,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2255,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2258,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2261,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2264,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2267,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2270,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2273,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2276,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2279,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2282,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2285,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2288,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2291,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2294,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2297,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2300,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2303,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2306,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2309,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2312,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2315,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2318,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2321,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2325,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2328,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2332,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2335,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2342,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2344,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-device.c:2346,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:2346,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2348,1
    - Dst: g_variant_new_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2352,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2352,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 142
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2354
    functionName: fwupd_device_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_variant_new_array
    - g_variant_new_uint32
    - g_string_new
    - G_VARIANT_TYPE
    - g_variant_builder_add
    - g_new0
    - fwupd_codec_to_variant
    - FWUPD_CODEC
    - g_ptr_array_index
    - g_string_truncate
    - g_variant_new_uint64
    - GET_PRIVATE
    - g_autoptr
    - g_variant_new_string
    - g_variant_new_strv
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2359,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-device.c:2362,1
    - Dst: g_variant_iter_next_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2364,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2364,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-device.c:2365,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:2365,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-device.c:2366,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:2367,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2371,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2372,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2372,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2375,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2376,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2379,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2380,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2380,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2383,1
    - Dst: fwupd_device_set_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:2384,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2384,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2387,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:2388,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2388,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2391,1
    - Dst: fwupd_device_set_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:2392,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2392,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2395,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:2396,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2396,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2399,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:2400,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2400,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2403,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:2404,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2407,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2408,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:2410,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2413,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2414,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2416,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2419,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2420,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:2422,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2425,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2426,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2426,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2429,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:2430,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2430,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2433,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2434,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2435,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2435,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2437,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2440,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:2441,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2441,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2444,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:2445,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2445,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2448,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:2449,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2449,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2452,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2453,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2455,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2455,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:2457,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2461,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:2462,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2462,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2465,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2466,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2467,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2467,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:2469,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2472,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2473,1
    - Dst: fwupd_device_add_issue
      Src: /src/fwupd/libfwupd/fwupd-device.c:2475,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2478,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:2479,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2479,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2482,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2483,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2483,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2486,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:2487,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2487,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2490,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:2491,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2491,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2494,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:2495,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2495,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2498,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:2499,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2499,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2502,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:2503,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2503,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2506,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:2507,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2507,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2510,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:2511,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2514,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:2515,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2515,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2518,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:2519,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2519,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2522,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:2523,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2523,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2526,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2527,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2527,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2530,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2531,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2531,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2534,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2535,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2535,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 176
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdDevice*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2356
    functionDepth: 2
    functionLinenumber: 2356
    functionLinenumberEnd: 2538
    functionName: fwupd_device_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_set_version_build_date
    - g_auto
    - g_variant_get_string
    - fwupd_device_set_plugin
    - fwupd_device_set_created
    - FWUPD_CODEC
    - fwupd_device_set_vendor
    - fwupd_codec_from_variant
    - fwupd_device_set_percentage
    - fwupd_device_set_install_duration
    - fwupd_device_add_vendor_id
    - fwupd_device_add_icon
    - g_variant_unref
    - fwupd_device_set_request_flags
    - g_variant_get_uint32
    - fwupd_device_set_status
    - g_variant_iter_init
    - fwupd_device_set_parent_id
    - fwupd_device_add_issue
    - fwupd_device_set_version_lowest
    - fwupd_device_set_update_state
    - fwupd_device_set_branch
    - fwupd_device_set_summary
    - fwupd_device_add_guid
    - fwupd_device_set_flags
    - fwupd_device_set_version
    - fwupd_device_set_flashes_left
    - fwupd_device_set_update_error
    - fwupd_release_new
    - g_autoptr
    - g_variant_get_uint64
    - fwupd_device_set_id
    - fwupd_device_add_release
    - g_variant_get_strv
    - fwupd_device_add_checksum
    - fwupd_device_set_serial
    - fwupd_device_add_protocol
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_problems
    - fwupd_device_set_battery_level
    - fwupd_device_set_version_format
    - fwupd_device_set_version_lowest_raw
    - fwupd_device_add_instance_id
    - fwupd_device_set_composite_id
    - fwupd_device_set_battery_threshold
    - g_strsplit
    - fwupd_device_set_version_raw
    - fwupd_device_set_version_bootloader_raw
    - fwupd_device_set_modified
    - g_strcmp0
    - fwupd_device_set_name
    - g_variant_iter_next_value
    linkageType: ''
    returnType: void
    signature: void fwupd_device_from_key_value(FwupdDevice *self, const gchar *key,
      GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2543,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2543,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2547,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2547,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2550,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2550,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2552,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - device_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2540
    functionDepth: 2
    functionLinenumber: 2540
    functionLinenumberEnd: 2555
    functionName: fwupd_device_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fwupd_device_flag_to_string
    - g_string_new
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_device_string_append_flags(GString *str, guint idt, const
      gchar *key, guint64 device_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2563,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2563,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2567,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2567,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2570,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2570,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2572,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - request_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2557
    functionDepth: 2
    functionLinenumber: 2557
    functionLinenumberEnd: 2575
    functionName: fwupd_device_string_append_request_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fwupd_request_flag_to_string
    - g_string_new
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_device_string_append_request_flags(GString *str,\n\t\t\t\t\t
      guint idt,\n\t\t\t\t\t const gchar *key,\n\t\t\t\t\t guint64 request_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2583,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2583,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2587,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2587,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2590,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2590,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2592,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - device_problems
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2577
    functionDepth: 2
    functionLinenumber: 2577
    functionLinenumberEnd: 2595
    functionName: fwupd_device_string_append_problems
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_device_problem_to_string
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_device_string_append_problems(GString *str,\n\t\t\t\t    guint
      idt,\n\t\t\t\t    const gchar *key,\n\t\t\t\t    guint64 device_problems)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2610,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2611,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2613
    functionName: fwupd_device_get_update_state
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdUpdateState
    signature: FwupdUpdateState fwupd_device_get_update_state(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2627,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2628,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2628,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2632,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_state
    argTypes:
    - FwupdDevice*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2624
    functionDepth: 0
    functionLinenumber: 2624
    functionLinenumberEnd: 2633
    functionName: fwupd_device_set_update_state
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_update_state(FwupdDevice *self, FwupdUpdateState
      update_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2648,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2649,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2651
    functionName: fwupd_device_get_version_format
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fwupd_device_get_version_format(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2665,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2666,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_format
    argTypes:
    - FwupdDevice*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2662
    functionDepth: 0
    functionLinenumber: 2662
    functionLinenumberEnd: 2668
    functionName: fwupd_device_set_version_format
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_format(FwupdDevice *self, FwupdVersionFormat
      version_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2683,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2684,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2686
    functionName: fwupd_device_get_version_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_version_raw(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2700,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2701,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2703
    functionName: fwupd_device_set_version_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_raw(FwupdDevice *self, guint64 version_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2718,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2719,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2715
    functionDepth: 0
    functionLinenumber: 2715
    functionLinenumberEnd: 2721
    functionName: fwupd_device_get_version_build_date
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_device_get_version_build_date(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2735,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2736,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_build_date
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2738
    functionName: fwupd_device_set_version_build_date
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_build_date(FwupdDevice *self, guint64
      version_build_date)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2754,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2750
    functionDepth: 0
    functionLinenumber: 2750
    functionLinenumberEnd: 2756
    functionName: fwupd_device_get_update_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_get_update_error(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2770,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2771,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2771,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2774,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:2777,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:2778,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2779,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_error
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2767
    functionDepth: 0
    functionLinenumber: 2767
    functionLinenumberEnd: 2780
    functionName: fwupd_device_set_update_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_update_error(FwupdDevice *self, const gchar *update_error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2795,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2796,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2796,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2799,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2792
    functionDepth: 0
    functionLinenumber: 2792
    functionLinenumberEnd: 2800
    functionName: fwupd_device_get_release_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 8
    functionsReached:
    - FWUPD_RELEASE
    - g_ptr_array_index
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fwupd_device_get_release_default(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2805,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:2807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2802
    functionDepth: 0
    functionLinenumber: 2802
    functionLinenumberEnd: 2808
    functionName: fwupd_device_ensure_releases
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_ensure_releases(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2823,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2824,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2824,1
    - Dst: fwupd_device_ensure_releases
      Src: /src/fwupd/libfwupd/fwupd-device.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2827
    functionName: fwupd_device_get_releases
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_ensure_releases
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_device_get_releases(FwupdDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2841,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2842,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2842,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2843,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2843,1
    - Dst: fwupd_device_ensure_releases
      Src: /src/fwupd/libfwupd/fwupd-device.c:2844,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2845,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:2845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FwupdDevice*
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2846
    functionName: fwupd_device_add_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_object_ref
    - fwupd_device_ensure_releases
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_release(FwupdDevice *self, FwupdRelease *release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2861,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2862,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2858
    functionDepth: 0
    functionLinenumber: 2858
    functionLinenumberEnd: 2864
    functionName: fwupd_device_get_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdStatus
    signature: FwupdStatus fwupd_device_get_status(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2878,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2879,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2879,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2883,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FwupdDevice*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2875
    functionDepth: 0
    functionLinenumber: 2875
    functionLinenumberEnd: 2884
    functionName: fwupd_device_set_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_status(FwupdDevice *self, FwupdStatus status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2900,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2902
    functionName: fwupd_device_get_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fwupd_device_get_percentage(FwupdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2916,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2917,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2917,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2921,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FwupdDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2913
    functionDepth: 0
    functionLinenumber: 2913
    functionLinenumberEnd: 2922
    functionName: fwupd_device_set_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_percentage(FwupdDevice *self, guint percentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2932,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2924
    functionDepth: 2
    functionLinenumber: 2924
    functionLinenumberEnd: 2933
    functionName: fwupd_device_string_append_update_state
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_update_state_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_device_string_append_update_state(GString *str,\n\t\t\t\t\tguint
      idt,\n\t\t\t\t\tconst gchar *key,\n\t\t\t\t\tFwupdUpdateState value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2938,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2939,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2941,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2942,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2943,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2944,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2947,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2948,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2950,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2951,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2953,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2956,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2957,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2959,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2960,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2962,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2965,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2966,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2967,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2968,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2970,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2971,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2973,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2974,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2976,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2979,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2980,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2982,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2983,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2985,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2988,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2989,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2994,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2995,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2997,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3000,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3001,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3006,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3007,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3009,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3012,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3013,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3018,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3019,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3021,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3024,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3025,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3027,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3028,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3030,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3032,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3034,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3035,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3037,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3038,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3040,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3042,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3043,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3044,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3047,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3049,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3051,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3056,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3061,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3066,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3071,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3075,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3079,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3084,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3085,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3087,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3088,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3090,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3093,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3098,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3100,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3102,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3107,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3109,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3110,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/libfwupd/fwupd-device.c:3112,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 140
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 2935
    functionDepth: 2
    functionLinenumber: 2935
    functionLinenumberEnd: 3113
    functionName: fwupd_device_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - fwupd_device_flag_to_string
    - fwupd_request_flag_to_string
    - json_builder_begin_array
    - fwupd_codec_json_append_int
    - fwupd_device_problem_to_string
    - fwupd_codec_array_to_json
    - json_builder_end_array
    - fwupd_version_format_to_string
    - g_ptr_array_index
    - json_builder_set_member_name
    - GET_PRIVATE
    - FWUPD_DEVICE
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3121,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3123,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:3126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-device.c:3127,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3133,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3136,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:3137,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3144,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3144,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3147,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3149,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3150,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3152,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3154,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3157,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3159,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3161,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3164,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3166,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3168,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:3171,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3173,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3175,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:3176,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3178,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3180,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:3181,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3183,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3185,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:3186,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3188,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3190,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:3191,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3193,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3195,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:3196,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3198,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3200,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:3204,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:3204,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3206,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3209,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3211,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:3212,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3214,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3216,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:3219,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3221,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3223,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:3226,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3228,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3230,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:3233,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3233,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3235,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3237,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:3238,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3240,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3242,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:3243,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3245,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3247,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:3250,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3252,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3254,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3255,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3257,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3259,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3262,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3264,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3266,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3269,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3271,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3273,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:3276,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3278,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3280,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:3283,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3285,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3287,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:3288,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3290,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3292,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:3293,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3295,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3297,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3300,1
    - Dst: fwupd_update_state_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3300,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3302,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3304,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:3305,1
    - Dst: fwupd_status_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3305,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3307,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3309,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:3310,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3312,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3314,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:3317,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3319,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3320,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3321,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3322,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3322,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3324,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3325,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3326,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:3327,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3327,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3329,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3330,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3331,1
    - Dst: fwupd_device_add_issue
      Src: /src/fwupd/libfwupd/fwupd-device.c:3332,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3332,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3334,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3335,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3336,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3337,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:3338,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3338,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3341,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3342,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3343,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3344,1
    - Dst: fwupd_device_add_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:3345,1
    - Dst: fwupd_device_problem_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3345,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3348,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3350,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3351,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3352,1
    - Dst: fwupd_device_add_request_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:3353,1
    - Dst: fwupd_request_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3353,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3356,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3357,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3358,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3359,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3359,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3361,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3362,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3363,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:3364,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3364,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3366,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3367,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3368,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:3369,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3369,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3371,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-device.c:3372,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-device.c:3373,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:3374,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-device.c:3374,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 146
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3115
    functionDepth: 2
    functionLinenumber: 3115
    functionLinenumberEnd: 3379
    functionName: fwupd_device_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_set_version_build_date
    - g_auto
    - fwupd_device_problem_from_string
    - fwupd_device_set_plugin
    - fwupd_device_set_created
    - fwupd_device_set_vendor
    - g_return_val_if_fail
    - fwupd_device_set_percentage
    - fwupd_device_set_install_duration
    - g_set_error
    - json_array_get_string_element
    - fwupd_device_add_vendor_id
    - fwupd_device_add_request_flag
    - fwupd_device_add_icon
    - fwupd_version_format_from_string
    - fwupd_update_state_from_string
    - fwupd_device_set_status
    - json_object_get_array_member
    - fwupd_device_flag_from_string
    - json_object_get_string_member
    - fwupd_device_set_parent_id
    - fwupd_device_add_issue
    - fwupd_device_set_version_lowest
    - json_object_get_int_member_with_default
    - fwupd_device_set_update_state
    - fwupd_device_set_branch
    - fwupd_device_set_summary
    - fwupd_device_add_guid
    - fwupd_device_set_version
    - JSON_NODE_HOLDS_OBJECT
    - fwupd_device_set_flashes_left
    - json_object_get_string_member_with_default
    - fwupd_device_set_update_error
    - json_node_get_object
    - fwupd_device_set_id
    - fwupd_device_add_checksum
    - FWUPD_DEVICE
    - fwupd_device_set_serial
    - fwupd_device_add_protocol
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_version_format
    - fwupd_device_set_battery_level
    - fwupd_device_set_version_lowest_raw
    - fwupd_request_flag_from_string
    - fwupd_device_add_instance_id
    - fwupd_device_add_flag
    - fwupd_device_set_composite_id
    - fwupd_device_set_battery_threshold
    - fwupd_status_from_string
    - g_strsplit
    - fwupd_device_set_version_bootloader_raw
    - fwupd_device_add_problem
    - g_set_error_literal
    - FWUPD_IS_DEVICE
    - fwupd_device_set_modified
    - json_object_has_member
    - fwupd_device_set_version_raw
    - fwupd_device_set_name
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3385,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value_raw
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3381
    functionDepth: 0
    functionLinenumber: 3381
    functionLinenumberEnd: 3390
    functionName: fwupd_device_verstr_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_device_verstr_raw(guint64 value_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3400,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3401,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdDeviceGuidHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3403
    functionName: fwupd_device_guid_helper_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_device_guid_helper_new(FwupdDeviceGuidHelper *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3409,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - array
    - guid
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3405
    functionDepth: 0
    functionLinenumber: 3405
    functionLinenumberEnd: 3414
    functionName: fwupd_device_guid_helper_array_find
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: FwupdDeviceGuidHelper
    signature: 'FwupdDeviceGuidHelper *

      fwupd_device_guid_helper_array_find(GPtrArray *array, const gchar *guid)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3419,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3420,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3421,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3423,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3424,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3425,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3430,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3431,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3433,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3436,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3438,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:3441,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3444,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3445,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3446,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:3447,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:3448,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3453,1
    - Dst: fwupd_device_guid_helper_array_find
      Src: /src/fwupd/libfwupd/fwupd-device.c:3454,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3455,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:3456,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:3457,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3462,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3463,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3463,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3465,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:3466,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3467,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3468,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3471,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3472,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3473,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3474,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3477,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3478,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3483,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3484,1
    - Dst: fwupd_device_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3487,1
    - Dst: fwupd_device_string_append_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:3489,1
    - Dst: fwupd_device_string_append_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3495,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3502,1
    - Dst: fwupd_checksum_format_for_display
      Src: /src/fwupd/libfwupd/fwupd-device.c:3504,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3505,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3514,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3515,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3518,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3519,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3520,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3524,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3527,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3529,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3535,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3541,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3547,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3548,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3551,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3552,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3554,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3559,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3560,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3563,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3563,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3565,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3566,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:3569,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3570,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3572,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3576,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3577,1
    - Dst: fwupd_device_string_append_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3578,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3582,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3585,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3586,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:3586,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 113
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3416
    functionDepth: 3
    functionLinenumber: 3416
    functionLinenumberEnd: 3589
    functionName: fwupd_device_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_checksum_format_for_display
    - g_string_new
    - g_new0
    - fwupd_device_verstr_raw
    - FWUPD_CODEC
    - fwupd_device_string_append_flags
    - fwupd_device_string_append_update_state
    - g_string_truncate
    - g_string_append
    - g_string_append_printf
    - fwupd_device_string_append_request_flags
    - fwupd_codec_string_append_time
    - g_ptr_array_index
    - fwupd_guid_hash_string
    - g_autoptr
    - fwupd_device_guid_helper_array_find
    - fwupd_device_string_append_problems
    - g_ptr_array_new_with_free_func
    - FWUPD_DEVICE
    - g_ptr_array_add
    - fwupd_codec_string_append
    - fwupd_status_to_string
    - fwupd_codec_string_append_int
    - fwupd_device_has_guid
    - fwupd_version_format_to_string
    - GET_PRIVATE
    - g_strdup
    - fwupd_codec_add_string
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3594,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3595,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3598,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3601,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3604,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3607,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3610,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3613,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3616,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3619,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3622,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3625,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3628,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3631,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3634,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-device.c:3637,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3640
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3640
    functionName: fwupd_device_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - g_value_set_uint
    - g_value_set_string
    - GET_PRIVATE
    - FWUPD_DEVICE
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fwupd_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3645,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:3648,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3648,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3651,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3651,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:3654,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3654,1
    - Dst: fwupd_device_set_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3657,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3657,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:3660,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3660,1
    - Dst: fwupd_device_set_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3663,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3663,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:3666,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3666,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:3669,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3669,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:3672,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3672,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupd/fwupd-device.c:3675,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3675,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3678,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3678,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:3681,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3681,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:3684,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3684,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-device.c:3687,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3642
    functionDepth: 3
    functionLinenumber: 3642
    functionLinenumberEnd: 3690
    functionName: fwupd_device_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    - fwupd_device_set_parent
    - fwupd_device_set_percentage
    - fwupd_device_set_request_flags
    - fwupd_device_set_status
    - g_value_get_object
    - fwupd_device_set_update_state
    - fwupd_device_set_version
    - fwupd_device_set_flags
    - fwupd_device_set_update_error
    - fwupd_device_set_id
    - FWUPD_DEVICE
    - g_value_get_string
    - fwupd_device_set_version_format
    - fwupd_device_set_problems
    - fwupd_device_set_battery_level
    - fwupd_device_set_battery_threshold
    - g_value_get_uint
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-device.c:3695,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3709,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3714,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3724,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3725,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3734,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3741,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3750,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3757,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3766,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3773,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3782,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3789,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3798,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3805,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3814,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3821,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3830,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3835,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3844,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3851,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3860,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3865,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3874,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3881,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3890,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3692
    functionDepth: 0
    functionLinenumber: 3692
    functionLinenumberEnd: 3898
    functionName: fwupd_device_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - g_param_spec_uint
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fwupd_device_class_init(FwupdDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3900
    functionDepth: 0
    functionLinenumber: 3900
    functionLinenumberEnd: 3906
    functionName: fwupd_device_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_init(FwupdDevice *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3911,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3912,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3915,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:3915,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3918,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3919,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:3919,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3923,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3924,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3925,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3926,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3927,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3928,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3929,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3930,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3931,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3932,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3933,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3934,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3935,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3937,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3939,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3941,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3943,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3945,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3947,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3949,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3951,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3953,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-device.c:3955,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3956
    functionName: fwupd_device_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    - g_free
    - G_OBJECT
    - FWUPD_DEVICE
    - g_object_weak_unref
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fwupd_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3961,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-device.c:3964,1
    - Dst: fwupd_device_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:3965,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3958
    functionDepth: 3
    functionLinenumber: 3958
    functionLinenumberEnd: 3968
    functionName: fwupd_device_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_from_key_value
    - FWUPD_DEVICE
    - g_variant_iter_next
    - g_variant_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_device_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3978
      start: 3970
    functionDepth: 0
    functionLinenumber: 3970
    functionLinenumberEnd: 3978
    functionName: fwupd_device_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_device_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3991,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3993,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3996,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3998,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3999,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-device.c:4001,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:4002,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4008,1
    - Dst: fwupd_device_get_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:4009,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-device.c:4012,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupd/fwupd-device.c:4014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 3988
    functionDepth: 3
    functionLinenumber: 3988
    functionLinenumberEnd: 4017
    functionName: fwupd_device_array_ensure_parents
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 7
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_new
    - fwupd_device_set_parent
    - fwupd_device_get_id
    - g_return_if_fail
    - g_ptr_array_index
    - fwupd_device_get_parent_id
    - g_autoptr
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: void fwupd_device_array_ensure_parents(GPtrArray *devices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4033,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4034,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4035,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4035,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4036,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4036,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:4037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self1
    - self2
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 4030
    functionDepth: 0
    functionLinenumber: 4030
    functionLinenumberEnd: 4038
    functionName: fwupd_device_compare
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gint
    signature: gint fwupd_device_compare(FwupdDevice *self1, FwupdDevice *self2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4054,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4054,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:4059,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:4063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - include
    - exclude
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4051
    functionDepth: 1
    functionLinenumber: 4051
    functionLinenumberEnd: 4068
    functionName: fwupd_device_match_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 15
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_match_flags(FwupdDevice *self, FwupdDeviceFlags
      include, FwupdDeviceFlags exclude)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:4089,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:4090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4092,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4093,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4096,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:4097,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:4099,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4099,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-device.c:4102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:4105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - devices
    - include
    - exclude
    - error
    argTypes:
    - GPtrArray*
    - FwupdDeviceFlags
    - FwupdDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4083
    functionDepth: 2
    functionLinenumber: 4083
    functionLinenumberEnd: 4106
    functionName: fwupd_device_array_filter_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - fwupd_device_match_flags
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_device_array_filter_flags(GPtrArray *devices,\n\t\t\t\tFwupdDeviceFlags
      include,\n\t\t\t\tFwupdDeviceFlags exclude,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:4121,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4123
      start: 4117
    functionDepth: 0
    functionLinenumber: 4117
    functionLinenumberEnd: 4123
    functionName: fwupd_device_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_device_new(void)'
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - error
    argTypes:
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 73
    functionName: fwupd_error_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_error_to_string(FwupdError error)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:88,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:94,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:98,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:100,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:102,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:104,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:106,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:108,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:112,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:126,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:130,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - error
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: fwupd_error_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdError
    signature: FwupdError fwupd_error_from_string(const gchar *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupd/fwupd-error.c:149,1
    - Dst: g_dbus_error_register_error
      Src: /src/fwupd/libfwupd/fwupd-error.c:151,1
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupd/fwupd-error.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: fwupd_error_quark
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 1
    functionsReached:
    - g_quark_from_static_string
    - fwupd_error_to_string
    - g_dbus_error_register_error
    linkageType: ''
    returnType: GQuark
    signature: GQuark fwupd_error_quark(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-error.c:236,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-error.c:237,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-error.c:246,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/libfwupd/fwupd-error.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - perror
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 252
    functionName: fwupd_error_convert
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 14
    functionsReached:
    - g_quark_to_string
    - g_critical
    - G_N_ELEMENTS
    - g_error_matches
    linkageType: ''
    returnType: void
    signature: void fwupd_error_convert(GError **perror)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerrordesc_np
      Src: /src/fwupd/libfwupd/fwupd-error.c:267,1
    - Dst: g_strerror
      Src: /src/fwupd/libfwupd/fwupd-error.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: fwupd_strerror
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 4
    functionsReached:
    - strerrordesc_np
    - g_strerror
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_strerror(gint errnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:97,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: fwupd_release_get_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_remote_id(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:113,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:114,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:117,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:120,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:121,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-release.c:122,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-release.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - remote_id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: fwupd_release_set_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_remote_id(FwupdRelease *self, const gchar *remote_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:138,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:139,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: fwupd_release_get_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 17
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_version(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:155,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:156,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:156,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:159,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:162,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: fwupd_release_set_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_version(FwupdRelease *self, const gchar *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:180,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: fwupd_release_get_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_filename(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:196,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:197,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:197,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:200,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:203,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: fwupd_release_set_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_filename(FwupdRelease *self, const gchar *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:220,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:221,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: fwupd_release_get_update_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_update_message(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:237,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:238,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:241,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:244,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_message
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: fwupd_release_set_update_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_update_message(FwupdRelease *self, const gchar
      *update_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:262,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: fwupd_release_get_update_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_update_image(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:278,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:279,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:279,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:282,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:285,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_image
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: fwupd_release_set_update_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_update_image(FwupdRelease *self, const gchar
      *update_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:303,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: fwupd_release_get_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_protocol(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:319,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:320,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:323,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:326,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 328
    functionName: fwupd_release_set_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_protocol(FwupdRelease *self, const gchar *protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:333,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: fwupd_release_ensure_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_issues(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:352,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:352,1
    - Dst: fwupd_release_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-release.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 355
    functionName: fwupd_release_get_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_release_ensure_issues
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_issues(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:369,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:370,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:370,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:371,1
    - Dst: fwupd_release_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-release.c:372,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:374,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:375,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:378,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - issue
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: fwupd_release_add_issue
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - fwupd_release_ensure_issues
    - g_strcmp0
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_issue(FwupdRelease *self, const gchar *issue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:384,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: fwupd_release_ensure_categories
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_categories(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:402,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:403,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:403,1
    - Dst: fwupd_release_ensure_categories
      Src: /src/fwupd/libfwupd/fwupd-release.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: fwupd_release_get_categories
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - fwupd_release_ensure_categories
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_categories(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:421,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:421,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:422,1
    - Dst: fwupd_release_has_category
      Src: /src/fwupd/libfwupd/fwupd-release.c:423,1
    - Dst: fwupd_release_ensure_categories
      Src: /src/fwupd/libfwupd/fwupd-release.c:425,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:426,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: fwupd_release_add_category
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_categories
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fwupd_release_has_category
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_category(FwupdRelease *self, const gchar *category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:443,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:444,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:444,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:445,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:449,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 454
    functionName: fwupd_release_has_category
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_release_has_category(FwupdRelease *self, const gchar
      *category)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:459,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: fwupd_release_ensure_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_checksums(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:478,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:478,1
    - Dst: fwupd_release_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-release.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: fwupd_release_get_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - fwupd_release_ensure_checksums
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_checksums(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:495,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:496,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:496,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:497,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-release.c:498,1
    - Dst: fwupd_release_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-release.c:500,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:501,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 502
    functionName: fwupd_release_add_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - fwupd_release_ensure_checksums
    - FWUPD_IS_RELEASE
    - fwupd_release_has_checksum
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_checksum(FwupdRelease *self, const gchar *checksum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:518,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:519,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:519,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:520,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: fwupd_release_has_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_release_has_checksum(FwupdRelease *self, const gchar
      *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:534,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: fwupd_release_ensure_tags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_tags(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:553,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:553,1
    - Dst: fwupd_release_ensure_tags
      Src: /src/fwupd/libfwupd/fwupd-release.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: fwupd_release_get_tags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_release_ensure_tags
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_tags(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:570,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:571,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:571,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:572,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/libfwupd/fwupd-release.c:573,1
    - Dst: fwupd_release_ensure_tags
      Src: /src/fwupd/libfwupd/fwupd-release.c:575,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:576,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: fwupd_release_add_tag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - fwupd_release_ensure_tags
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    - fwupd_release_has_tag
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_tag(FwupdRelease *self, const gchar *tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:594,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:594,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:595,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 604
    functionName: fwupd_release_has_tag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_release_has_tag(FwupdRelease *self, const gchar *tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:609,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-release.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: fwupd_release_ensure_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_metadata(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:627,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:628,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:628,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: fwupd_release_get_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_release_ensure_metadata
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_release_get_metadata(FwupdRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:646,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:647,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:647,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:648,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:649,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:650,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-release.c:651,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:651,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRelease*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 652
    functionName: fwupd_release_add_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_metadata
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_metadata_item(FwupdRelease *self, const gchar
      *key, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:666,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:667,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:669,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:669,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:670,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:673,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:674,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:677,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-release.c:678,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:678,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - hash
    argTypes:
    - FwupdRelease*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: fwupd_release_add_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_metadata
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_metadata(FwupdRelease *self, GHashTable *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:696,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:697,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:697,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:698,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 702
    functionName: fwupd_release_get_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_metadata_item(FwupdRelease *self, const gchar *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:707,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: fwupd_release_ensure_locations
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_locations(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:728,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:729,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:729,1
    - Dst: fwupd_release_ensure_locations
      Src: /src/fwupd/libfwupd/fwupd-release.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 732
    functionName: fwupd_release_get_locations
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_locations
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_locations(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:746,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:747,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:747,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:748,1
    - Dst: fwupd_release_ensure_locations
      Src: /src/fwupd/libfwupd/fwupd-release.c:749,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:751,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:752,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:755,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - location
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: fwupd_release_add_location
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_locations
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_location(FwupdRelease *self, const gchar *location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:771,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:772,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: fwupd_release_get_homepage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_homepage(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:788,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:789,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:789,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:792,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:795,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - homepage
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 797
    functionName: fwupd_release_set_homepage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_homepage(FwupdRelease *self, const gchar *homepage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:813,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: fwupd_release_get_details_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_details_url(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:829,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:830,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:830,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:833,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:836,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - details_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 838
    functionName: fwupd_release_set_details_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_details_url(FwupdRelease *self, const gchar
      *details_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:853,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:854,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 856
    functionName: fwupd_release_get_source_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_source_url(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:870,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:871,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:871,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:874,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:877,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - source_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 879
    functionName: fwupd_release_set_source_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_source_url(FwupdRelease *self, const gchar *source_url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:893,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:894,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:894,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:897,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:900,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - sbom_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 902
    functionName: fwupd_release_set_sbom_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_sbom_url(FwupdRelease *self, const gchar *sbom_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:917,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:918,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: fwupd_release_get_sbom_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_sbom_url(FwupdRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:935,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:936,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 938
    functionName: fwupd_release_get_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_description(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:952,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:953,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:953,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:956,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:959,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 961
    functionName: fwupd_release_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_description(FwupdRelease *self, const gchar
      *description)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:976,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:977,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: fwupd_release_get_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_appstream_id(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:993,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:994,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:994,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:997,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1000,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1002
    functionName: fwupd_release_set_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_appstream_id(FwupdRelease *self, const gchar
      *appstream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1018,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1020
    functionName: fwupd_release_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_id(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1034,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1035,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1035,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1038,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1041,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1043
    functionName: fwupd_release_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_id(FwupdRelease *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1058,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1059,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1061
    functionName: fwupd_release_get_detach_caption
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_detach_caption(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1075,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1076,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1076,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1079,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1082,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - detach_caption
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1084
    functionName: fwupd_release_set_detach_caption
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_detach_caption(FwupdRelease *self, const gchar
      *detach_caption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1099,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1100,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: fwupd_release_get_detach_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_detach_image(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1116,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1117,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1120,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1123,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - detach_image
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1125
    functionName: fwupd_release_set_detach_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_detach_image(FwupdRelease *self, const gchar
      *detach_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1141,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1143
    functionName: fwupd_release_get_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_release_get_size(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1157,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1158,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FwupdRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1160
    functionName: fwupd_release_set_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_size(FwupdRelease *self, guint64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1176,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: fwupd_release_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_release_get_created(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1192,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1193,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    functionName: fwupd_release_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_created(FwupdRelease *self, guint64 created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1211,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1213
    functionName: fwupd_release_get_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_summary(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1227,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1228,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1231,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1234,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - summary
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1224
    functionDepth: 0
    functionLinenumber: 1224
    functionLinenumberEnd: 1236
    functionName: fwupd_release_set_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_summary(FwupdRelease *self, const gchar *summary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1252,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1254
    functionName: fwupd_release_get_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_branch(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1268,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1269,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1269,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1272,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1275,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - branch
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1277
    functionName: fwupd_release_set_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_branch(FwupdRelease *self, const gchar *branch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1293,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1295
    functionName: fwupd_release_get_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_vendor(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1309,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1310,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1310,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1313,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1316,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1318
    functionName: fwupd_release_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_vendor(FwupdRelease *self, const gchar *vendor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1334,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1336
    functionName: fwupd_release_get_license
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_license(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1350,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1351,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1351,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1354,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1357,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - license
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1359
    functionName: fwupd_release_set_license
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_license(FwupdRelease *self, const gchar *license)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1374,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1375,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1377
    functionName: fwupd_release_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_name(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1391,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1392,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1392,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1395,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1398,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1400
    functionName: fwupd_release_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_name(FwupdRelease *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1415,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1416,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1418
    functionName: fwupd_release_get_name_variant_suffix
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_release_get_name_variant_suffix(FwupdRelease *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1432,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1433,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1433,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1436,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1439,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name_variant_suffix
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1441
    functionName: fwupd_release_set_name_variant_suffix
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_name_variant_suffix(FwupdRelease *self, const
      gchar *name_variant_suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1456,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1457,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1459
    functionName: fwupd_release_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: FwupdReleaseFlags
    signature: FwupdReleaseFlags fwupd_release_get_flags(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1473,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1474,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1476
    functionName: fwupd_release_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_flags(FwupdRelease *self, FwupdReleaseFlags
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1490,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1491,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1493
    functionName: fwupd_release_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_flag(FwupdRelease *self, FwupdReleaseFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1507,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1508,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1510
    functionName: fwupd_release_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_remove_flag(FwupdRelease *self, FwupdReleaseFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1526,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1527,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    functionName: fwupd_release_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_release_has_flag(FwupdRelease *self, FwupdReleaseFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1544,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1545,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1547
    functionName: fwupd_release_get_urgency
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: FwupdReleaseUrgency
    signature: FwupdReleaseUrgency fwupd_release_get_urgency(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1561,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1562,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - urgency
    argTypes:
    - FwupdRelease*
    - FwupdReleaseUrgency
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1564
    functionName: fwupd_release_set_urgency
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_urgency(FwupdRelease *self, FwupdReleaseUrgency
      urgency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1579,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1580,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1582
    functionName: fwupd_release_get_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_release_get_install_duration(FwupdRelease *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1587,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:1589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1590
    functionName: fwupd_release_ensure_reports
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_ensure_reports(FwupdRelease *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1605,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1606,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1606,1
    - Dst: fwupd_release_ensure_reports
      Src: /src/fwupd/libfwupd/fwupd-release.c:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1609
    functionName: fwupd_release_get_reports
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_reports
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_release_get_reports(FwupdRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1623,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1624,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1624,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1625,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-release.c:1625,1
    - Dst: fwupd_release_ensure_reports
      Src: /src/fwupd/libfwupd/fwupd-release.c:1626,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1627,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-release.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - report
    argTypes:
    - FwupdRelease*
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1628
    functionName: fwupd_release_add_report
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - FWUPD_IS_REPORT
    - GET_PRIVATE
    - fwupd_release_ensure_reports
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_report(FwupdRelease *self, FwupdReport *report)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1642,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1643,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - duration
    argTypes:
    - FwupdRelease*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1645
    functionName: fwupd_release_set_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_install_duration(FwupdRelease *self, guint32
      duration)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1650,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1651,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1654,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1657,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1660,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1663,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1666,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1669,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1672,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1675,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1678,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1681,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1684,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1687,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1690,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1693,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1696,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1699,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1702,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1705,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1708,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1711,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1714,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1717,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1720,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1723,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1726,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1729,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1732,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1735,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1738,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1741,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1744,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1747,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1750,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1753,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1756,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1758,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1759,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1762,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1765,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1767,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1768,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1771,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:1774,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:1774,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1776,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-release.c:1777,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-release.c:1780,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1781,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1784,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1787,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1791,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1795,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1799,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1802,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1805,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1808,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1811,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1814,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1817,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1820,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1823,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1826,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1829,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1832,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1835,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1838,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1841,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1844,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:1847,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:1849,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1850,1
    - Dst: fwupd_hash_kv_to_variant
      Src: /src/fwupd/libfwupd/fwupd-release.c:1853,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1856,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:1859,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1863,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1865,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-release.c:1866,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:1866,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1868,1
    - Dst: g_variant_new_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:1872,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1872,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 115
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1874
    functionName: fwupd_release_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - G_VARIANT_TYPE
    - g_new0
    - FWUPD_CODEC
    - g_string_truncate
    - fwupd_codec_to_variant
    - g_variant_new_strv
    - g_string_append_printf
    - FWUPD_RELEASE
    - g_hash_table_size
    - g_ptr_array_index
    - g_variant_new_string
    - g_variant_new_array
    - g_variant_new_uint32
    - g_autoptr
    - g_variant_builder_add
    - g_variant_new_uint64
    - GET_PRIVATE
    - fwupd_hash_kv_to_variant
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1879,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1880,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1881,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1881,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1884,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1885,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1885,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1888,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1889,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1889,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1892,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-release.c:1893,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1893,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1896,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/libfwupd/fwupd-release.c:1897,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1897,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1900,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-release.c:1901,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1901,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1904,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/libfwupd/fwupd-release.c:1905,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1905,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1908,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/libfwupd/fwupd-release.c:1909,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1909,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1912,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:1913,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1913,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1916,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-release.c:1917,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1917,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1920,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:1921,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1921,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1924,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/libfwupd/fwupd-release.c:1925,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1925,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1928,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/libfwupd/fwupd-release.c:1929,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1929,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1932,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/libfwupd/fwupd-release.c:1933,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1933,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1936,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-release.c:1937,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1937,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1940,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1941,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-release.c:1943,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1946,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1947,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-release.c:1949,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1952,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1953,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-release.c:1954,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-release.c:1954,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-release.c:1956,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1959,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1960,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release.c:1962,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1965,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1966,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-release.c:1968,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1971,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release.c:1972,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1972,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1975,1
    - Dst: fwupd_release_set_homepage
      Src: /src/fwupd/libfwupd/fwupd-release.c:1976,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1976,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1979,1
    - Dst: fwupd_release_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1980,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1980,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1983,1
    - Dst: fwupd_release_set_source_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1984,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1984,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1987,1
    - Dst: fwupd_release_set_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1988,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1988,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1991,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-release.c:1992,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1992,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1995,1
    - Dst: fwupd_release_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-release.c:1996,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1996,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1999,1
    - Dst: fwupd_release_set_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2000,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:2000,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2003,1
    - Dst: fwupd_release_set_urgency
      Src: /src/fwupd/libfwupd/fwupd-release.c:2004,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:2004,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2007,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-release.c:2008,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:2008,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2011,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/libfwupd/fwupd-release.c:2012,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2012,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2015,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/libfwupd/fwupd-release.c:2016,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2016,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2019,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2021,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-release.c:2022,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2025,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-release.c:2028,1
    - Dst: g_variant_iter_next_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2029,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2030,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2030,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-release.c:2031,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:2031,1
    - Dst: fwupd_release_add_report
      Src: /src/fwupd/libfwupd/fwupd-release.c:2032,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2033,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 152
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRelease*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 2037
    functionName: fwupd_release_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - fwupd_release_set_description
    - fwupd_report_new
    - g_auto
    - g_variant_get_string
    - fwupd_variant_to_hash_kv
    - fwupd_release_add_issue
    - fwupd_release_set_version
    - FWUPD_CODEC
    - fwupd_release_add_location
    - fwupd_codec_from_variant
    - fwupd_release_set_update_message
    - fwupd_release_set_detach_image
    - fwupd_release_set_name
    - fwupd_release_set_install_duration
    - fwupd_release_set_appstream_id
    - fwupd_release_set_size
    - fwupd_release_set_sbom_url
    - fwupd_release_set_detach_caption
    - fwupd_release_set_flags
    - g_variant_get_uint32
    - g_variant_unref
    - fwupd_release_set_details_url
    - g_variant_iter_init
    - fwupd_release_set_license
    - fwupd_release_set_branch
    - fwupd_release_set_homepage
    - fwupd_release_set_source_url
    - g_hash_table_unref
    - fwupd_release_add_checksum
    - fwupd_release_set_update_image
    - g_autoptr
    - g_variant_get_uint64
    - g_variant_get_strv
    - fwupd_release_set_id
    - fwupd_release_add_category
    - fwupd_release_add_report
    - fwupd_release_set_remote_id
    - fwupd_release_set_vendor
    - fwupd_release_set_filename
    - g_strsplit
    - fwupd_release_add_tag
    - fwupd_release_set_summary
    - fwupd_release_set_created
    - fwupd_release_set_urgency
    - GET_PRIVATE
    - g_strcmp0
    - g_variant_iter_next_value
    - fwupd_release_set_protocol
    - fwupd_release_set_name_variant_suffix
    linkageType: ''
    returnType: void
    signature: void fwupd_release_from_key_value(FwupdRelease *self, const gchar *key,
      GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2045,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2045,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-release.c:2049,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2049,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2052,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2052,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-release.c:2054,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - release_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2039
    functionDepth: 2
    functionLinenumber: 2039
    functionLinenumberEnd: 2057
    functionName: fwupd_release_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_release_flag_to_string
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_release_string_append_flags(GString *str,\n\t\t\t\t  guint
      idt,\n\t\t\t\t  const gchar *key,\n\t\t\t\t  FwupdReleaseFlags release_flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2062,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2063,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2065,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2066,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2067,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2068,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2069,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2072,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2073,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2074,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2075,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2076,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2077,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2079,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2080,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2082,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2083,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2085,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2088,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2089,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2091,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2092,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2094,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2097,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2098,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2100,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2101,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2103,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2106,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2107,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2109,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2110,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2112,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2114,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-release.c:2116,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-release.c:2118,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2120,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2121,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2123,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2124,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2126,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2128,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2129,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2130,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2131,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2132,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:2134,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2135,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2140,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2141,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2143,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-release.c:2146,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2150,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2151,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2152,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2153,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2157,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:2157,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:2160,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2161,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/libfwupd/fwupd-release.c:2167,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2059
    functionDepth: 2
    functionLinenumber: 2059
    functionLinenumberEnd: 2168
    functionName: fwupd_release_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - fwupd_codec_json_append
    - fwupd_codec_json_append_int
    - json_builder_begin_array
    - fwupd_codec_array_to_json
    - json_builder_end_array
    - fwupd_release_flag_to_string
    - g_ptr_array_index
    - json_builder_set_member_name
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2173,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2174,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2176,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2177,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2178,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2179,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2180,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2184,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2185,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2186,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2187,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2188,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2189,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2192,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2198,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2199,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2204,1
    - Dst: fwupd_checksum_format_for_display
      Src: /src/fwupd/libfwupd/fwupd-release.c:2206,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2207,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2215,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2216,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2219,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:2220,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-release.c:2221,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2224,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2225,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2228,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2229,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2230,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2231,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2233,1
    - Dst: fwupd_release_urgency_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2236,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2238,1
    - Dst: fwupd_release_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2239,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-release.c:2240,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2244,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2245,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2246,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2251,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:2251,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:2254,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2255,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2260,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2261,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:2261,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2170
    functionDepth: 3
    functionLinenumber: 2170
    functionLinenumberEnd: 2264
    functionName: fwupd_release_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - fwupd_checksum_format_for_display
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_time
    - FWUPD_CODEC
    - g_hash_table_lookup
    - fwupd_codec_string_append_size
    - g_ptr_array_index
    - GET_PRIVATE
    - fwupd_release_string_append_flags
    - g_autoptr
    - fwupd_codec_add_string
    - fwupd_release_urgency_to_string
    - g_hash_table_get_keys
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2269,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2270,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2274,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-release.c:2277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2280
    functionName: fwupd_release_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - g_value_set_string
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fwupd_release_get_property(GObject *obj, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2285,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:2289,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2289,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-release.c:2292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2282
    functionDepth: 1
    functionLinenumber: 2282
    functionLinenumberEnd: 2295
    functionName: fwupd_release_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - fwupd_release_set_remote_id
    - FWUPD_RELEASE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fwupd_release_set_property(GObject *obj, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-release.c:2301,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2313,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-release.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdReleaseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2319
    functionName: fwupd_release_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_object_class_install_property
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_release_class_init(FwupdReleaseClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2321
    functionDepth: 0
    functionLinenumber: 2321
    functionLinenumberEnd: 2324
    functionName: fwupd_release_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_release_init(FwupdRelease *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2329,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2330,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2332,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2333,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2334,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2335,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2336,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2337,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2338,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2339,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2340,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2341,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2342,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2343,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2345,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2346,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2347,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2348,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2349,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2350,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2351,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2352,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2353,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2354,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2356,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2358,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2360,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2362,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2364,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2366,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-release.c:2368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2326
    functionDepth: 0
    functionLinenumber: 2326
    functionLinenumberEnd: 2369
    functionName: fwupd_release_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - g_ptr_array_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_release_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2374,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-release.c:2377,1
    - Dst: fwupd_release_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2378,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2371
    functionDepth: 3
    functionLinenumber: 2371
    functionLinenumberEnd: 2381
    functionName: fwupd_release_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_RELEASE
    - g_variant_iter_next
    - fwupd_release_from_key_value
    - g_variant_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_release_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2383
    functionDepth: 0
    functionLinenumber: 2383
    functionLinenumberEnd: 2390
    functionName: fwupd_release_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_release_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:2406,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2406,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release.c:2411,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release.c:2415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - include
    - exclude
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2420
    functionName: fwupd_release_match_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 15
    functionsReached:
    - fwupd_release_has_flag
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_release_match_flags(FwupdRelease *self, FwupdReleaseFlags
      include, FwupdReleaseFlags exclude)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2441,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:2442,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:2444,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:2445,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2448,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2449,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:2451,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2451,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-release.c:2454,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - rels
    - include
    - exclude
    - error
    argTypes:
    - GPtrArray*
    - FwupdReleaseFlags
    - FwupdReleaseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2435
    functionDepth: 2
    functionLinenumber: 2435
    functionLinenumberEnd: 2458
    functionName: fwupd_release_array_filter_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - fwupd_release_match_flags
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_release_array_filter_flags(GPtrArray *rels,\n\t\t\t\t
      FwupdReleaseFlags include,\n\t\t\t\t FwupdReleaseFlags exclude,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2473,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2475
    functionName: fwupd_release_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_RELEASE
    - g_object_new
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fwupd_release_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:33,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:37,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:41,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:43,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - txt1
    - txt2
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 51
    functionName: fu_test_compare_lines
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_set_contents
    - g_spawn_command_line_sync
    - g_set_error_literal
    - g_strcmp0
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_compare_lines(const gchar *txt1, const gchar *txt2,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:58,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:59,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:60,1
    - Dst: fwupd_error_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:60,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:63,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:64,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:65,1
    - Dst: fwupd_status_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:65,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:68,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:69,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:70,1
    - Dst: fwupd_update_state_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:70,1
    - Dst: fwupd_request_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:73,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:74,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:75,1
    - Dst: fwupd_request_kind_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:75,1
    - Dst: fwupd_release_urgency_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:80,1
    - Dst: fwupd_release_urgency_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:80,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:85,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:85,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:88,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:89,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:90,1
    - Dst: fwupd_remote_kind_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:90,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:95,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:98,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:98,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:101,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:102,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:103,1
    - Dst: fwupd_device_problem_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:103,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:106,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:108,1
    - Dst: fwupd_plugin_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:108,1
    - Dst: fwupd_feature_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:111,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:112,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:113,1
    - Dst: fwupd_feature_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:113,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:116,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:117,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:118,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:118,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:121,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:122,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:123,1
    - Dst: fwupd_request_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:123,1
    - Dst: fwupd_remote_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:126,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:129,1
    - Dst: fwupd_remote_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:129,1
    - Dst: fwupd_install_flags_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:132,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:135,1
    - Dst: fwupd_install_flags_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:135,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 137
    functionName: fwupd_enums_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_request_flag_to_string
    - fwupd_device_problem_from_string
    - fwupd_device_problem_to_string
    - fwupd_remote_flag_to_string
    - fwupd_error_from_string
    - fwupd_release_urgency_to_string
    - fwupd_feature_flag_from_string
    - fwupd_update_state_to_string
    - g_assert_cmpint
    - fwupd_version_format_from_string
    - fwupd_update_state_from_string
    - fwupd_device_flag_from_string
    - fwupd_request_kind_from_string
    - fwupd_remote_flag_from_string
    - fwupd_plugin_flag_from_string
    - fwupd_device_flag_to_string
    - fwupd_install_flags_from_string
    - fwupd_feature_flag_to_string
    - fwupd_release_flag_to_string
    - fwupd_remote_kind_from_string
    - fwupd_release_urgency_from_string
    - fwupd_plugin_flag_to_string
    - g_assert_cmpstr
    - fwupd_request_flag_from_string
    - fwupd_status_to_string
    - fwupd_status_from_string
    - fwupd_remote_kind_to_string
    - fwupd_version_format_to_string
    - fwupd_install_flags_to_string
    - fwupd_request_kind_to_string
    - fwupd_release_flag_from_string
    - fwupd_error_to_string
    linkageType: ''
    returnType: void
    signature: void fwupd_enums_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:147,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:149,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:151,1
    - Dst: fwupd_release_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:152,1
    - Dst: fwupd_release_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:153,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:154,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:155,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:156,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:157,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:158,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:159,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:160,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:161,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:162,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:163,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:164,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:165,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:166,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:167,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:168,1
    - Dst: fwupd_release_set_homepage
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:169,1
    - Dst: fwupd_release_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:170,1
    - Dst: fwupd_release_set_source_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:171,1
    - Dst: fwupd_release_set_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:172,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:173,1
    - Dst: fwupd_release_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:174,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:175,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:176,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:177,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:178,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:179,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:180,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:181,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:182,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:183,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:184,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:185,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:186,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:187,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:188,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:189,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:190,1
    - Dst: fwupd_release_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:191,1
    - Dst: fwupd_release_set_urgency
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:192,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:193,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:193,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:194,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:194,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:195,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:196,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:197,1
    - Dst: fwupd_release_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:197,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:198,1
    - Dst: fwupd_release_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:198,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:199,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:199,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:200,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:200,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:201,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:201,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:202,1
    - Dst: fwupd_release_get_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:202,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:203,1
    - Dst: fwupd_release_get_detach_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:203,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:204,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:204,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:205,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:205,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:206,1
    - Dst: fwupd_release_get_filename
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:206,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:207,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:207,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:208,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:208,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:209,1
    - Dst: fwupd_release_get_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:209,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:210,1
    - Dst: fwupd_release_get_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:210,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:211,1
    - Dst: fwupd_release_get_summary
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:211,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:212,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:212,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:213,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:213,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:214,1
    - Dst: fwupd_release_get_homepage
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:214,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:215,1
    - Dst: fwupd_release_get_details_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:215,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:216,1
    - Dst: fwupd_release_get_source_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:216,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:217,1
    - Dst: fwupd_release_get_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:217,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:218,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:218,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:219,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:219,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:220,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:220,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:221,1
    - Dst: fwupd_release_get_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:221,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:222,1
    - Dst: fwupd_release_has_category
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:223,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:223,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:224,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:224,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:225,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:225,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:226,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:226,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:227,1
    - Dst: fwupd_release_get_issues
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:227,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:228,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:228,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:229,1
    - Dst: fwupd_release_get_categories
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:229,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:230,1
    - Dst: fwupd_release_get_tags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:230,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:231,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:231,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:232,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:233,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:233,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:236,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:236,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:237,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:238,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:239,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:239,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:240,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:241,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:243,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:244,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:247,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:247,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:248,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:284,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 286
    functionName: fwupd_release_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_name_variant_suffix
    - fwupd_codec_from_variant
    - fwupd_release_add_metadata_item
    - fwupd_release_get_details_url
    - fwupd_release_get_urgency
    - g_assert_false
    - fwupd_release_set_details_url
    - fwupd_release_set_license
    - fwupd_release_get_categories
    - fwupd_release_get_remote_id
    - fwupd_codec_to_string
    - g_assert_nonnull
    - g_autoptr
    - fwupd_release_set_id
    - fwupd_release_has_flag
    - g_assert_cmpstr
    - fwupd_release_get_issues
    - fwupd_release_add_issue
    - fwupd_release_set_version
    - g_assert_true
    - fwupd_release_set_update_message
    - fwupd_codec_to_variant
    - fwupd_release_has_category
    - fwupd_release_get_id
    - fwupd_release_set_install_duration
    - fwupd_release_set_appstream_id
    - fwupd_release_get_size
    - g_assert_cmpint
    - fwupd_release_get_detach_caption
    - fwupd_release_get_update_image
    - fwupd_release_get_name
    - fwupd_release_get_created
    - fwupd_release_add_flag
    - fwupd_release_get_vendor
    - fwupd_release_set_source_url
    - fwupd_release_add_checksum
    - fwupd_release_get_source_url
    - fu_test_compare_lines
    - fwupd_release_get_filename
    - fwupd_release_add_category
    - fwupd_release_set_vendor
    - fwupd_release_get_install_duration
    - g_assert_no_error
    - fwupd_release_get_summary
    - fwupd_release_set_name_variant_suffix
    - fwupd_release_set_description
    - fwupd_release_get_update_message
    - fwupd_release_has_checksum
    - fwupd_release_set_detach_caption
    - fwupd_release_get_branch
    - fwupd_release_get_license
    - fwupd_release_get_locations
    - fwupd_release_set_update_image
    - fwupd_release_get_version
    - fwupd_release_get_detach_image
    - fwupd_release_set_filename
    - fwupd_release_add_tag
    - fwupd_release_get_tags
    - fwupd_release_get_protocol
    - fwupd_release_get_appstream_id
    - FWUPD_CODEC
    - fwupd_release_remove_flag
    - fwupd_release_add_location
    - fwupd_release_set_detach_image
    - fwupd_release_set_name
    - fwupd_release_set_size
    - fwupd_release_get_homepage
    - fwupd_release_set_sbom_url
    - fwupd_release_get_sbom_url
    - fwupd_codec_to_json_string
    - fwupd_release_has_tag
    - fwupd_release_set_branch
    - fwupd_release_get_metadata_item
    - fwupd_release_set_homepage
    - fwupd_release_new
    - fwupd_release_get_description
    - fwupd_release_set_remote_id
    - fwupd_release_get_checksums
    - fwupd_release_set_summary
    - fwupd_release_set_created
    - fwupd_release_set_urgency
    - fwupd_release_set_protocol
    linkageType: ''
    returnType: void
    signature: void fwupd_release_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:296,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:298,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:300,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:301,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:302,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:303,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:304,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:305,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:306,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:307,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:308,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:309,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:310,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:311,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:311,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:312,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:312,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:313,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:314,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:315,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:315,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:316,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:316,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:317,1
    - Dst: fwupd_report_get_version_old
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:317,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:318,1
    - Dst: fwupd_report_get_vendor
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:318,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:319,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:319,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:320,1
    - Dst: fwupd_report_get_device_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:320,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:321,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:321,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:322,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:322,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:323,1
    - Dst: fwupd_report_get_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:323,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:326,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:326,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:327,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:328,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:329,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:329,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:330,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:331,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:332,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:333,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:334,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:337,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:337,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:338,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:351,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 353
    functionName: fwupd_report_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_report_new
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_report_get_vendor_id
    - fwupd_report_get_metadata_item
    - fwupd_codec_from_variant
    - fwupd_codec_to_variant
    - fwupd_report_set_vendor_id
    - fwupd_report_get_vendor
    - fwupd_report_set_vendor
    - g_assert_cmpint
    - fwupd_report_set_remote_id
    - fwupd_report_get_created
    - fwupd_codec_to_json_string
    - fwupd_report_add_metadata_item
    - fwupd_codec_to_string
    - fwupd_report_set_distro_version
    - fwupd_report_set_created
    - g_assert_nonnull
    - g_autoptr
    - fwupd_report_get_distro_id
    - fu_test_compare_lines
    - fwupd_report_set_device_name
    - g_assert_cmpstr
    - fwupd_report_set_version_old
    - fwupd_report_set_distro_id
    - g_assert_no_error
    - fwupd_report_get_device_name
    - fwupd_report_get_distro_version
    - fwupd_report_get_version_old
    linkageType: ''
    returnType: void
    signature: void fwupd_report_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:360,1
    - Dst: fwupd_plugin_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:361,1
    - Dst: fwupd_plugin_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:363,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:365,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:366,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:367,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:368,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:369,1
    - Dst: fwupd_plugin_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:370,1
    - Dst: fwupd_plugin_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:371,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:372,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:372,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:373,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:373,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:374,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:376,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:376,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:377,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:377,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:380,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:380,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:381,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:381,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:382,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:382,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:384,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:384,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:385,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:390,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 392
    functionName: fwupd_plugin_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_set_name
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_codec_from_variant
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_plugin_get_flags
    - g_assert_false
    - fwupd_plugin_set_flags
    - fwupd_plugin_add_flag
    - fwupd_plugin_get_name
    - fwupd_codec_to_string
    - g_autoptr
    - fu_test_compare_lines
    - fwupd_plugin_new
    - fwupd_plugin_has_flag
    - g_assert_cmpstr
    - fwupd_plugin_remove_flag
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:400,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:401,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:403,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:406,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:407,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:409,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:410,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:413,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:414,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:416,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:417,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:420,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 422
    functionName: fwupd_remote_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_remote_set_username
    - fwupd_remote_build_firmware_uri
    - fwupd_remote_new
    - g_assert_no_error
    - g_autoptr
    - fwupd_remote_set_firmware_base_uri
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:429,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:430,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:432,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:435,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:436,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:437,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:438,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:438,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:441,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:442,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:443,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:444,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:444,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:445,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:447,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:447,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:448,1
    - Dst: fwupd_request_get_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:448,1
    - Dst: fwupd_request_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:451,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:452,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:452,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:453,1
    - Dst: fwupd_request_get_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:453,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:456,1
    - Dst: fwupd_request_get_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:456,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:459,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:459,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:460,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:460,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:461,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:462,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:463,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:463,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:464,1
    - Dst: fwupd_request_get_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:464,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:465,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:465,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:466,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:466,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:467,1
    - Dst: fwupd_request_get_image
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:467,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:468,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 471
    functionName: fwupd_request_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_request_add_flag
    - fwupd_codec_from_variant
    - fwupd_codec_to_variant
    - fwupd_request_set_device_id
    - fwupd_request_remove_flag
    - g_debug
    - g_assert_cmpint
    - g_assert_false
    - fwupd_request_new
    - fwupd_request_get_kind
    - fwupd_request_set_kind
    - fwupd_codec_to_string
    - fwupd_request_get_id
    - fwupd_request_get_device_id
    - fwupd_request_get_message
    - fwupd_request_set_message
    - g_autoptr
    - fwupd_request_set_image
    - fwupd_request_get_created
    - fwupd_request_has_flag
    - fwupd_request_get_image
    - g_assert_cmpstr
    - fwupd_request_get_flags
    - g_assert_no_error
    - fwupd_request_set_id
    linkageType: ''
    returnType: void
    signature: void fwupd_request_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:476,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:476,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:477,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:478,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:481,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:482,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:485,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:485,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:488,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:489,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:490,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:491,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:494,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:494,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:499,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:499,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:502,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:503,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:504,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:504,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:508,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 511
    functionName: fwupd_device_filter_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_device_add_flag
    - g_assert_true
    - fwupd_device_new
    - g_autoptr
    - g_assert_false
    - fwupd_device_match_flags
    linkageType: ''
    returnType: void
    signature: void fwupd_device_filter_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:516,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:518,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:518,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:521,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:522,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:522,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:524,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:527,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:528,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 534
    functionName: fwupd_client_api_undefined_setter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_value_init
    - g_test_trap_assert_stderr
    - g_test_trap_subprocess
    - g_test_trap_assert_failed
    - g_test_subprocess
    - g_object_set_property
    - g_autoptr
    - G_OBJECT
    - fwupd_client_new
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_undefined_setter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:539,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:541,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:541,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:544,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:545,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:545,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:547,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:550,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:551,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 557
    functionName: fwupd_client_api_undefined_getter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_value_init
    - g_test_trap_assert_stderr
    - g_test_trap_subprocess
    - g_test_trap_assert_failed
    - g_test_subprocess
    - g_autoptr
    - G_OBJECT
    - fwupd_client_new
    - g_object_get_property
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_undefined_getter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:562,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:565,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:567,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:567,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:570,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:571,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:571,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:573,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:576,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:577,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 584
    functionName: fwupd_client_api_ro_props
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_value_init
    - g_test_trap_assert_stderr
    - g_test_trap_subprocess
    - g_test_trap_assert_failed
    - g_test_subprocess
    - g_object_set_property
    - g_autoptr
    - G_OBJECT
    - fwupd_client_new
    - G_N_ELEMENTS
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_ro_props(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:594,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:594,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:595,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:597,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:598,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:599,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:600,1
    - Dst: fwupd_client_get_only_trusted
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:602,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:603,1
    - Dst: fwupd_client_get_daemon_interactive
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:604,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:605,1
    - Dst: fwupd_client_get_tainted
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:606,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:607,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:610,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:611,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:611,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:612,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:613,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:613,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:614,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:617,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:617,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:618,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:618,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:619,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:619,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:622,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:622,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:623,1
    - Dst: fwupd_client_get_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:623,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:624,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:624,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:628,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:629,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:629,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:630,1
    - Dst: fwupd_client_get_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:630,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:631,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:631,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:634,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:635,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:635,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:636,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:636,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:637,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:637,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:641,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:642,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:642,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:643,1
    - Dst: fwupd_client_get_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:643,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:644,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:644,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:647,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:648,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:649,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:652,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:653,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:654,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:655,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:658,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:659,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:659,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:660,1
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:660,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:661,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:661,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:664,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:665,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:665,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:666,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:666,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:667,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:667,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:670,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:671,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:671,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:672,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:672,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:673,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:673,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:676,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:677,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:677,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:678,1
    - Dst: fwupd_client_get_percentage
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:678,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:679,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:679,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:682,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:683,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:683,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:684,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:684,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:685,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:685,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:686,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:686,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:687,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:687,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:688,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:688,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:689,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:689,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:690,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:690,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:691,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:691,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:694,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:694,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:695,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:695,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:696,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:696,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:697,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:697,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:698,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:698,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:699,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:699,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:700,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:700,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:701,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:701,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:702,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:702,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:703,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:703,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:704,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:704,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:705,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:705,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:706,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:706,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:708,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:709,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 711
    functionName: fwupd_client_api
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_host_machine_id
    - g_value_set_int
    - g_assert_true
    - g_object_set_property
    - fwupd_client_get_daemon_version
    - fwupd_client_get_host_bkc
    - fwupd_client_get_battery_threshold
    - g_assert_cmpint
    - g_value_init
    - fwupd_client_get_host_security_id
    - fwupd_client_set_user_agent_for_package
    - g_value_set_string
    - g_assert_false
    - G_OBJECT
    - fwupd_client_get_host_vendor
    - fwupd_client_set_daemon_version
    - g_value_unset
    - fwupd_client_get_host_product
    - g_autoptr
    - fwupd_client_get_only_trusted
    - fwupd_client_get_daemon_interactive
    - g_assert_cmpstr
    - fwupd_client_get_battery_level
    - fwupd_client_ensure_networking
    - fwupd_client_get_status
    - g_assert_no_error
    - fwupd_client_get_tainted
    - fwupd_client_new
    - g_object_get_property
    - fwupd_client_get_percentage
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:717,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:718,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:719,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:719,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:720,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:721,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:721,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:722,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:722,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:724,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:725,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:726,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:727,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:728,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:729,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:730,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:731,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:732,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:733,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:734,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:735,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:736,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:739,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:740,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:741,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:743,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:744,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:745,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:746,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 779
    functionName: fwupd_common_history_report_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fwupd_device_set_plugin
    - fwupd_release_set_version
    - g_ptr_array_new
    - fwupd_release_set_update_message
    - g_hash_table_new
    - fwupd_device_new
    - fwupd_device_set_update_state
    - fwupd_device_add_guid
    - fwupd_device_set_version
    - fwupd_release_add_checksum
    - fwupd_client_build_report_history
    - fwupd_device_set_update_error
    - fwupd_release_new
    - g_autoptr
    - fwupd_device_set_id
    - fwupd_device_add_checksum
    - fwupd_device_add_release
    - g_assert_nonnull
    - g_ptr_array_add
    - fwupd_device_add_protocol
    - fwupd_release_set_id
    - g_assert_cmpstr
    - g_assert_no_error
    - fwupd_client_new
    linkageType: ''
    returnType: void
    signature: void fwupd_common_history_report_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:788,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:788,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:789,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:789,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:790,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:791,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:792,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:795,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:796,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:797,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:798,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:799,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:800,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:801,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:802,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:803,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:804,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:805,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:806,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:807,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:808,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:809,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:810,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:811,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:811,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:812,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:812,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:813,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:813,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:814,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:815,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:816,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:817,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:818,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:819,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:820,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:821,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:822,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:823,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:824,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:825,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:826,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:827,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:827,1
    - Dst: g_print
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:828,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:831,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:831,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:832,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:832,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:833,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:833,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:837,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:838,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:839,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:869,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:870,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:873,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:873,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:874,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:875,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:877,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:931,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:932,1
    - Dst: fwupd_device_incorporate
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:935,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:936,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:936,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:937,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:937,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:938,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:938,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:941,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:941,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:942,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:943,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:946,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:947,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:948,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:948,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:949,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:949,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:950,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:950,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:951,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 781
    functionDepth: 4
    functionLinenumber: 781
    functionLinenumberEnd: 952
    functionName: fwupd_device_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_release_set_description
    - g_test_skip
    - g_string_new
    - fwupd_device_has_vendor_id
    - fwupd_device_set_created
    - fwupd_release_set_version
    - g_assert_true
    - FWUPD_CODEC
    - fwupd_release_add_location
    - g_print
    - fwupd_release_set_appstream_id
    - fwupd_release_set_size
    - fwupd_device_add_vendor_id
    - fwupd_device_add_icon
    - fwupd_device_has_flag
    - g_string_replace
    - fwupd_release_add_flag
    - fwupd_device_new
    - g_assert_false
    - fwupd_codec_to_json_string
    - fwupd_device_incorporate
    - fwupd_codec_to_string
    - fwupd_device_set_branch
    - g_error_matches
    - fwupd_device_add_guid
    - fwupd_release_add_checksum
    - fwupd_release_new
    - g_autoptr
    - fwupd_device_add_checksum
    - fwupd_device_set_id
    - fwupd_device_add_release
    - g_assert_nonnull
    - fu_test_compare_lines
    - fwupd_device_add_instance_id
    - fwupd_device_add_flag
    - fwupd_codec_from_json_string
    - fwupd_device_has_guid
    - fwupd_release_set_filename
    - fwupd_release_add_tag
    - fwupd_device_set_modified
    - g_assert_no_error
    - fwupd_device_set_name
    - fwupd_device_has_instance_id
    linkageType: ''
    returnType: void
    signature: void fwupd_device_func(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:959,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:960,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:961,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:963,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:966,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:967,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:968,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:969,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:970,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:971,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:974,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:975,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:976,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:977,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:980,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:980,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:981,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:985,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:986,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:987,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:990,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:991,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:994,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:995,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:996,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:999,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1000,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1000,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1001,1
    - Dst: fwupd_device_get_guid_default
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1001,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1002,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1002,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 1003
    functionName: fwupd_client_devices_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_daemon_version
    - g_test_skip
    - g_debug
    - g_assert_cmpstr
    - g_str_has_prefix
    - g_assert_cmpint
    - g_error_matches
    - g_assert_true
    - fwupd_device_get_guid_default
    - fwupd_device_get_id
    - fwupd_client_get_devices
    - g_ptr_array_index
    - g_assert_no_error
    - FWUPD_IS_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fwupd_client_connect
    - fwupd_client_new
    linkageType: ''
    returnType: void
    signature: void fwupd_client_devices_func(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1010,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1011,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1012,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1013,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1014,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1016,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1017,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1019,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1022,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1023,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1024,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1025,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1026,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1027,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1030,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1031,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1032,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1033,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1036,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1036,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1037,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1041,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1042,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1043,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1046,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1047,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1050,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1051,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1052,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1055,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1056,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1057,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1058,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1058,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1059,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1059,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1062,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1063,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1064,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1005
    functionDepth: 5
    functionLinenumber: 1005
    functionLinenumberEnd: 1065
    functionName: fwupd_client_remotes_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - g_assert_null
    - fwupd_remote_get_metadata_uri
    - fwupd_client_get_daemon_version
    - g_debug
    - g_assert_cmpint
    - fwupd_client_get_remote_by_id
    - g_error_matches
    - g_assert_nonnull
    - g_setenv
    - g_autoptr
    - fwupd_remote_get_id
    - g_assert_error
    - fwupd_client_get_remotes
    - fwupd_client_connect
    - g_assert_cmpstr
    - g_str_has_prefix
    - g_test_build_filename
    - g_assert_no_error
    - fwupd_client_new
    linkageType: ''
    returnType: void
    signature: void fwupd_client_remotes_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1070,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1071,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1076
    functionName: fwupd_has_system_bus
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_bus_get_sync
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_has_system_bus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1081,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1081,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1082,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1082,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1083,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1083,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1084,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1084,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1085,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1085,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1086,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1086,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1087,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1087,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1088,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1089
    functionName: fwupd_common_device_id_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_false
    - fwupd_device_id_is_valid
    linkageType: ''
    returnType: void
    signature: void fwupd_common_device_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1102,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1105,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1105,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1106,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1106,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1107,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1107,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1108,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1108,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1109,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1109,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1110,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1110,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1111,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1111,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1114,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1114,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1117,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1118,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1120,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1121,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1123,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1124,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1127,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1131,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1132,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1133,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1133,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1138,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1139,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1142,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1146,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1147,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1148,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1148,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1153,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1154,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1157,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1158,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1159,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1161
    functionName: fwupd_common_guid_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_guid_hash_data
    - g_assert_cmpint
    - g_assert_true
    - fwupd_guid_to_string
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - memcmp
    - fwupd_guid_hash_string
    - fwupd_guid_is_valid
    - fwupd_guid_from_string
    linkageType: ''
    returnType: void
    signature: void fwupd_common_guid_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1171,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1171,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1172,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1173,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1175,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1178,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1179,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1180,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1180,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1183,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1183,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1184,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1185,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1186,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1186,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1188,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1189,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1189,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1193,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1194,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1194,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1198,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1199,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1200,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1201,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1201,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1202,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1202,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1203,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1203,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1205,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1206,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1206,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1208,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1209,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1209,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1210,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1210,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1212,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1213,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1213,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1215,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1216,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1216,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1217,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1217,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1219,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1220,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1220,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1223,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1225,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1225,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1226,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1239,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1240,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1243,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1243,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1244,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1244,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1245,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1246,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1247,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1248,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1248,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1249,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1262,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1263,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1266,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1266,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1267,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1268,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1269,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1287,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1288,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1291,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1291,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1292,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1293,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1296,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1297,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1300,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1302,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1302,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1303,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1304,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1163
    functionDepth: 4
    functionLinenumber: 1163
    functionLinenumberEnd: 1306
    functionName: fwupd_security_attr_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_remove_flag
    - g_test_skip
    - fwupd_security_attr_result_from_string
    - fwupd_security_attr_add_flag
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_codec_from_variant
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_add_metadata
    - fwupd_codec_to_variant
    - fwupd_security_attr_result_to_string
    - fwupd_security_attr_has_guid
    - g_assert_cmpint
    - fwupd_security_attr_get_url
    - fwupd_security_attr_set_level
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_set_result
    - g_assert_false
    - fwupd_codec_to_json_string
    - fwupd_codec_to_string
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_error_matches
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_new
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_guid
    - g_autoptr
    - g_assert_nonnull
    - fu_test_compare_lines
    - g_assert_cmpstr
    - fwupd_security_attr_get_level
    - fwupd_security_attr_set_name
    - fwupd_security_attr_get_fwupd_version
    - fwupd_codec_from_json_string
    - fwupd_security_attr_get_name
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_url
    - fwupd_security_attr_get_metadata
    - g_assert_no_error
    - fwupd_security_attr_set_created
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1318,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1318,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1319,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1320,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1321,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1323,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1325,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1325,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1326,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1327,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1327,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1329,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1330,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1330,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1334,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1335,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1335,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1336,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1337,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1337,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1339,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1340,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1341,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1341,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1342,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1342,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1344,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1344,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1345,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1356,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1357,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1360,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1360,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1361,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1361,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1362,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1363,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1364,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1364,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1365,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1376,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1377,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1380,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1380,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1381,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1382,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1383,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1397,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1398,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1401,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1401,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1402,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1403,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1406,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1407,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1409,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1409,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1410,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1411,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1412,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1415,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1415,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1416,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1416,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1417,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1418,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1419,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1419,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1420,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1430,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1431,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1434,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1434,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1435,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1436,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1437,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1451,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1308
    functionDepth: 4
    functionLinenumber: 1308
    functionLinenumberEnd: 1453
    functionName: fwupd_bios_settings_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_has_possible_value
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_codec_from_variant
    - fwupd_codec_to_variant
    - fwupd_bios_setting_set_name
    - fwupd_bios_setting_get_description
    - g_assert_cmpint
    - fwupd_bios_setting_get_name
    - fwupd_bios_setting_set_current_value
    - g_assert_false
    - fwupd_codec_to_json_string
    - fwupd_bios_setting_get_kind
    - fwupd_codec_to_string
    - g_error_matches
    - g_assert_nonnull
    - g_autoptr
    - fu_test_compare_lines
    - fwupd_bios_setting_new
    - g_assert_cmpstr
    - fwupd_codec_from_json_string
    - g_assert_no_error
    - fwupd_bios_setting_set_description
    - fwupd_bios_setting_add_possible_value
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_settings_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1460,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1461,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1462,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1465,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1466,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1468,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1469,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1471,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1472,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1475,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1476,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1477,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1478,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1479,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1480,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1481,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1482,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1483,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1484,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1485,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1486,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1487,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1488,1
    - Dst: g_test_undefined
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1489,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1490,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1492,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1494,1
    - Dst: fwupd_has_system_bus
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1497,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1498,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1499,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-self-test.c:1501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1502
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_assert_cmpint
    - g_test_build_filename
    - fwupd_has_system_bus
    - g_test_add_func
    - g_setenv
    - g_test_init
    - setlocale
    - g_test_undefined
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 410
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:60,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fwupd_plugin_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_plugin_get_name(FwupdPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:76,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:77,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:77,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:78,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:81,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:84,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:85,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:86,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: fwupd_plugin_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_set_name(FwupdPlugin *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:103,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: fwupd_plugin_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_plugin_get_flags(FwupdPlugin *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:119,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:120,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:120,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:124,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdPlugin*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: fwupd_plugin_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_set_flags(FwupdPlugin *self, guint64 flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:139,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:140,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:140,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:146,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: fwupd_plugin_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_add_flag(FwupdPlugin *self, FwupdPluginFlags flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:161,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:162,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:162,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:168,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: fwupd_plugin_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_remove_flag(FwupdPlugin *self, FwupdPluginFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:186,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: fwupd_plugin_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FWUPD_IS_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_plugin_has_flag(FwupdPlugin *self, FwupdPluginFlags
      flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:193,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:194,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:197,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:200,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:203,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 208
    functionName: fwupd_plugin_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_variant_builder_add
    - g_variant_new_uint64
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - g_variant_new_string
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:213,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:214,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:217,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:218,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdPlugin*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: fwupd_plugin_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_set_name
    - g_variant_get_string
    - g_variant_get_uint64
    - g_strcmp0
    - fwupd_plugin_set_flags
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_from_key_value(FwupdPlugin *self, const gchar *key,
      GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:226,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:226,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:230,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:230,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:233,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:233,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:235,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - plugin_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: fwupd_plugin_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_truncate
    - g_autoptr
    - g_string_append
    - fwupd_plugin_flag_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_string_append_flags(GString *str, guint idt, const
      gchar *key, guint64 plugin_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:243,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:244,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:246,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:246,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:247,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:249,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:251,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:252,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:257,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:258,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 262
    functionName: fwupd_plugin_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - json_builder_begin_array
    - fwupd_plugin_flag_to_string
    - json_builder_end_array
    - g_return_if_fail
    - json_builder_set_member_name
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - FWUPD_IS_PLUGIN
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:267,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:268,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:269,1
    - Dst: fwupd_plugin_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: fwupd_plugin_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_string_append_flags
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:277,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:278,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:281,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:284,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: fwupd_plugin_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_string
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:295,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:298,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:298,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:301,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:301,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: fwupd_plugin_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_set_name
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    - FWUPD_PLUGIN
    - fwupd_plugin_set_flags
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:312,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:327,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:328,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:337,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 345
    functionName: fwupd_plugin_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_class_init(FwupdPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: fwupd_plugin_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_init(FwupdPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:355,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:356,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:357,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: fwupd_plugin_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_free
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:364,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:367,1
    - Dst: fwupd_plugin_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:368,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: fwupd_plugin_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_from_key_value
    - g_variant_iter_next
    - g_variant_unref
    - FWUPD_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: fwupd_plugin_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:395,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: fwupd_plugin_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - FWUPD_PLUGIN
    - g_object_new
    linkageType: ''
    returnType: FwupdPlugin
    signature: 'FwupdPlugin *

      fwupd_plugin_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 422
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: fwupd_security_attr_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_flag_to_string(FwupdSecurityAttrFlags flag)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:121,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:123,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:125,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:127,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:133,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:135,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: fwupd_security_attr_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdSecurityAttrFlags
    signature: FwupdSecurityAttrFlags fwupd_security_attr_flag_from_string(const gchar
      *flag)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 184
    functionName: fwupd_security_attr_result_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_result_to_string(FwupdSecurityAttrResult result)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:199,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:201,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:203,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:205,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:207,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:209,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:211,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:213,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:215,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:219,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:221,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:223,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:225,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 228
    functionName: fwupd_security_attr_result_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdSecurityAttrResult
    signature: FwupdSecurityAttrResult fwupd_security_attr_result_from_string(const
      gchar *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: fwupd_security_attr_flag_to_suffix
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_flag_to_suffix(FwupdSecurityAttrFlags flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:266,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:267,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: fwupd_security_attr_get_bios_setting_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_bios_setting_id(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:284,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:285,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:285,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:288,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: fwupd_security_attr_set_bios_setting_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_free
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_bios_setting_id(FwupdSecurityAttr *self,
      const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:306,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:307,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: fwupd_security_attr_get_obsoletes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_security_attr_get_obsoletes(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:324,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:325,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:325,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:326,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:327,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:329,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: fwupd_security_attr_add_obsolete
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - fwupd_security_attr_has_obsolete
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_SECURITY_ATTR
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_obsolete(FwupdSecurityAttr *self, const
      gchar *appstream_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:347,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:347,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:348,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: fwupd_security_attr_has_obsolete
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_security_attr_has_obsolete(FwupdSecurityAttr *self,
      const gchar *appstream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:371,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: fwupd_security_attr_get_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_security_attr_get_guids(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:388,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:389,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:389,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:390,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:390,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:391,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:393,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: fwupd_security_attr_add_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - fwupd_security_attr_has_guid
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fwupd_guid_is_valid
    - g_ptr_array_add
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_guid(FwupdSecurityAttr *self, const gchar
      *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:409,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:409,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:410,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:412,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FwupdSecurityAttr*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: fwupd_security_attr_add_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FWUPD_IS_SECURITY_ATTR
    - fwupd_security_attr_add_guid
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_guids(FwupdSecurityAttr *self, GPtrArray
      *guids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:431,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:432,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:432,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:433,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: fwupd_security_attr_has_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_security_attr_has_guid(FwupdSecurityAttr *self, const
      gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:455,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:456,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: fwupd_security_attr_get_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_appstream_id(FwupdSecurityAttr *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:472,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:473,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:473,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:476,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:480,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:481,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:483,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: fwupd_security_attr_set_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_str_has_prefix
    - g_return_if_fail
    - GET_PRIVATE
    - g_critical
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_appstream_id(FwupdSecurityAttr *self,
      const gchar *appstream_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:501,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: fwupd_security_attr_get_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_url(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:517,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:518,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:518,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:521,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:524,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: fwupd_security_attr_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_name(FwupdSecurityAttr *self, const gchar
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:542,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:543,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: fwupd_security_attr_get_bios_setting_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_bios_setting_target_value(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:559,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:562,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:565,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 567
    functionName: fwupd_security_attr_set_bios_setting_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_bios_setting_target_value(FwupdSecurityAttr
      *self, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:582,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:583,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 585
    functionName: fwupd_security_attr_get_bios_setting_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_bios_setting_current_value(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:602,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:605,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: fwupd_security_attr_set_bios_setting_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_bios_setting_current_value(FwupdSecurityAttr
      *self, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:622,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:623,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: fwupd_security_attr_get_kernel_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_kernel_current_value(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:639,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:642,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:645,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 647
    functionName: fwupd_security_attr_set_kernel_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_kernel_current_value(FwupdSecurityAttr
      *self, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:662,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:663,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: fwupd_security_attr_get_kernel_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_kernel_target_value(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:679,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:682,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:685,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 687
    functionName: fwupd_security_attr_set_kernel_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_kernel_target_value(FwupdSecurityAttr
      *self, const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:701,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:702,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:702,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:705,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:708,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 710
    functionName: fwupd_security_attr_set_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_title(FwupdSecurityAttr *self, const gchar
      *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:724,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:725,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:725,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:728,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:731,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 733
    functionName: fwupd_security_attr_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_description(FwupdSecurityAttr *self, const
      gchar *description)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:747,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:748,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:748,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:751,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:754,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: fwupd_security_attr_set_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 5
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_plugin(FwupdSecurityAttr *self, const
      gchar *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:770,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:771,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:771,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:774,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:777,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 779
    functionName: fwupd_security_attr_set_fwupd_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_fwupd_version(FwupdSecurityAttr *self,
      const gchar *fwupd_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:793,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:794,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:794,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:797,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:800,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - url
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 802
    functionName: fwupd_security_attr_set_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_url(FwupdSecurityAttr *self, const gchar
      *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:816,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:817,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 819
    functionName: fwupd_security_attr_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_security_attr_get_created(FwupdSecurityAttr *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:833,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:834,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdSecurityAttr*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: fwupd_security_attr_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_created(FwupdSecurityAttr *self, guint64
      created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:852,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: fwupd_security_attr_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_name(FwupdSecurityAttr *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:872,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:873,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 875
    functionName: fwupd_security_attr_get_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_title(FwupdSecurityAttr *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:898,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: fwupd_security_attr_get_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_description(FwupdSecurityAttr *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:915,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:916,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 918
    functionName: fwupd_security_attr_get_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_plugin(FwupdSecurityAttr *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:933,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:934,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 936
    functionName: fwupd_security_attr_get_fwupd_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_fwupd_version(FwupdSecurityAttr *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:951,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:952,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 954
    functionName: fwupd_security_attr_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdSecurityAttrFlags
    signature: FwupdSecurityAttrFlags fwupd_security_attr_get_flags(FwupdSecurityAttr
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:968,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:969,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 971
    functionName: fwupd_security_attr_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_flags(FwupdSecurityAttr *self, FwupdSecurityAttrFlags
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:977,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:978,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:980,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:981,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:984,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 989
    functionName: fwupd_security_attr_ensure_result
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_remove_flag
    - g_debug
    - fwupd_security_attr_result_to_string
    - fwupd_security_attr_has_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_ensure_result(FwupdSecurityAttr *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1003,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1004,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1004,1
    - Dst: fwupd_security_attr_ensure_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: fwupd_security_attr_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - fwupd_security_attr_ensure_result
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_flag(FwupdSecurityAttr *self, FwupdSecurityAttrFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1021,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1022,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: fwupd_security_attr_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_remove_flag(FwupdSecurityAttr *self, FwupdSecurityAttrFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1040,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1041,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1043
    functionName: fwupd_security_attr_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_security_attr_has_flag(FwupdSecurityAttr *self, FwupdSecurityAttrFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1058,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1059,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1061
    functionName: fwupd_security_attr_get_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdSecurityAttrLevel
    signature: FwupdSecurityAttrLevel fwupd_security_attr_get_level(FwupdSecurityAttr
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1076,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1077,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - level
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1079
    functionName: fwupd_security_attr_set_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_level(FwupdSecurityAttr *self, FwupdSecurityAttrLevel
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1094,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1095,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1095,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1104
    functionName: fwupd_security_attr_set_result
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_result(FwupdSecurityAttr *self, FwupdSecurityAttrResult
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1120,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1122
    functionName: fwupd_security_attr_get_result
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdSecurityAttrResult
    signature: FwupdSecurityAttrResult fwupd_security_attr_get_result(FwupdSecurityAttr
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1137,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1138,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1140
    functionName: fwupd_security_attr_set_result_fallback
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_result_fallback(FwupdSecurityAttr *self,
      FwupdSecurityAttrResult result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1156,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: fwupd_security_attr_get_result_fallback
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdSecurityAttrResult
    signature: FwupdSecurityAttrResult fwupd_security_attr_get_result_fallback(FwupdSecurityAttr
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1172,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1173,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1173,1
    - Dst: fwupd_security_attr_ensure_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1176
    functionName: fwupd_security_attr_set_result_success
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    - fwupd_security_attr_ensure_result
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_set_result_success(FwupdSecurityAttr *self,
      FwupdSecurityAttrResult result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1192,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1194
    functionName: fwupd_security_attr_get_result_success
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdSecurityAttrResult
    signature: FwupdSecurityAttrResult fwupd_security_attr_get_result_success(FwupdSecurityAttr
      *self)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1199,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1200,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1203,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1206,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1209,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1212,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1215,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1218,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1221,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1224,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1227,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1230,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1233,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1236,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1239,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1242,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1245,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1248,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1251,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1253,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1254,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1257,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1260,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1262,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1263,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1266,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1269,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1272,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1275,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1278,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1281,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1284,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1287,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1290,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1293,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1296,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1299,1
    - Dst: fwupd_hash_kv_to_variant
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1302,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1305,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1308,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1311,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1314,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1317,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1320,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1323,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1326,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1329,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1332,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1334
    functionName: fwupd_security_attr_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_variant_new_uint32
    - g_variant_builder_add
    - g_new0
    - FWUPD_SECURITY_ATTR
    - g_ptr_array_index
    - g_variant_new_uint64
    - GET_PRIVATE
    - fwupd_hash_kv_to_variant
    - g_variant_new_string
    - g_variant_new_strv
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_variant(FwupdCodec *codec, GVariantBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1352,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1352,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1353,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1358
    functionName: fwupd_security_attr_get_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_security_attr_get_metadata(FwupdSecurityAttr *self, const gchar *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1375,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1375,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1376,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1379,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1381,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1381,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1382
    functionName: fwupd_security_attr_add_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_new_full
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_metadata(FwupdSecurityAttr *self, const
      gchar *key, const gchar *value)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1389,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1390,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1390,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1393,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1394,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1394,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1397,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1398,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1398,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1401,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1402,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1402,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1405,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1406,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1406,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1409,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1410,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1410,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1413,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1414,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1414,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1417,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1418,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1418,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1421,1
    - Dst: fwupd_security_attr_set_flags
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1422,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1422,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1425,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1426,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1426,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1429,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1430,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1430,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1433,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1434,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1434,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1437,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1438,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1438,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1441,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1442,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1444,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1447,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1449,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1450,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1453,1
    - Dst: fwupd_security_attr_set_bios_setting_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1454,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1454,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1457,1
    - Dst: fwupd_security_attr_set_bios_setting_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1458,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1460,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1463,1
    - Dst: fwupd_security_attr_set_bios_setting_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1464,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1466,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1469,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1470,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1471,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1474,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1475,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1476,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1384
    functionDepth: 3
    functionLinenumber: 1384
    functionLinenumberEnd: 1479
    functionName: fwupd_security_attr_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_variant_get_string
    - fwupd_variant_to_hash_kv
    - fwupd_security_attr_set_kernel_current_value
    - fwupd_security_attr_set_title
    - fwupd_security_attr_set_flags
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_set_bios_setting_id
    - fwupd_security_attr_set_result_fallback
    - fwupd_security_attr_set_level
    - fwupd_security_attr_set_description
    - fwupd_security_attr_set_result
    - g_variant_get_uint32
    - fwupd_security_attr_set_kernel_target_value
    - g_hash_table_unref
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_guid
    - g_variant_get_strv
    - g_variant_get_uint64
    - fwupd_security_attr_set_bios_setting_target_value
    - fwupd_security_attr_set_bios_setting_current_value
    - fwupd_security_attr_set_name
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_url
    - GET_PRIVATE
    - fwupd_security_attr_set_created
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_from_key_value(FwupdSecurityAttr *self, const
      gchar *key, GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1487,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1487,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1491,1
    - Dst: fwupd_security_attr_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1493,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1496,1
    - Dst: fwupd_security_attr_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1496,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1498,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - security_attr_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1501
    functionName: fwupd_security_attr_string_append_tfl
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_truncate
    - fwupd_security_attr_flag_to_string
    - g_autoptr
    - g_string_append
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fwupd_security_attr_string_append_tfl(GString *str,\n\t\t\t\t
      \     guint idt,\n\t\t\t\t      const gchar *key,\n\t\t\t\t      FwupdSecurityAttrFlags
      security_attr_flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1506,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1510,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1511,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1517,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1520,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1521,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1530,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1532,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1533,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1535,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1536,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1538,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1539,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1541,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1542,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1544,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1545,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1547,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1548,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1550,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1551,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1553,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1554,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1556,1
    - Dst: fwupd_security_attr_set_bios_setting_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1557,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1559,1
    - Dst: fwupd_security_attr_set_bios_setting_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1562,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1564,1
    - Dst: fwupd_security_attr_set_bios_setting_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1567,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1569,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1572,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1574,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1577,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1579,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1584,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1586,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1589,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1589,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1591,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1593,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1596,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1598,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1600,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1602,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1605,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1606,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1608,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1609,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1610,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1611,1
    - Dst: fwupd_security_attr_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1612,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1614,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1617,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1618,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1619,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1620,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1621,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1627
    functionName: fwupd_security_attr_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_result_from_string
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_kernel_current_value
    - fwupd_security_attr_set_title
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_set_bios_setting_id
    - fwupd_security_attr_flag_from_string
    - json_array_get_string_element
    - g_set_error
    - fwupd_security_attr_set_result_fallback
    - fwupd_security_attr_set_level
    - fwupd_security_attr_set_description
    - fwupd_security_attr_set_kernel_target_value
    - fwupd_security_attr_set_result
    - json_object_get_array_member
    - json_object_get_string_member
    - json_object_get_int_member_with_default
    - FWUPD_SECURITY_ATTR
    - fwupd_security_attr_set_result_success
    - JSON_NODE_HOLDS_OBJECT
    - fwupd_security_attr_set_plugin
    - json_object_get_string_member_with_default
    - fwupd_security_attr_add_guid
    - json_node_get_object
    - fwupd_security_attr_set_bios_setting_target_value
    - fwupd_security_attr_set_bios_setting_current_value
    - fwupd_security_attr_set_name
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_url
    - g_set_error_literal
    - fwupd_security_attr_set_created
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_security_attr_from_json(FwupdCodec *codec, JsonNode
      *json_node, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1632,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1633,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1635,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1637,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1638,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1639,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1641,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1642,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1644,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1645,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1647,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1648,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1649,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1650,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1651,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1652,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1653,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1654,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1657,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1660,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1661,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1664,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1669,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1670,1
    - Dst: fwupd_security_attr_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1675,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1676,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1678,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1681,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1682,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1684,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1685,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1687,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1690,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1690,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1693,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1629
    functionDepth: 1
    functionLinenumber: 1629
    functionLinenumberEnd: 1697
    functionName: fwupd_security_attr_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - fwupd_security_attr_result_to_string
    - fwupd_codec_json_append_int
    - json_builder_begin_array
    - json_builder_end_array
    - FWUPD_SECURITY_ATTR
    - g_ptr_array_index
    - json_builder_set_member_name
    - GET_PRIVATE
    - fwupd_security_attr_flag_to_string
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1702,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1703,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1704,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1705,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1706,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1707,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1710,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1711,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1714,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1715,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1718,1
    - Dst: fwupd_security_attr_string_append_tfl
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1720,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1724,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1725,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1726,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1727,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1728,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1729,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1730,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1734,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1738,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1742,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1746,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1752,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1753,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1756,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1757,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1760,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1761,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1761,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1764,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1768
    functionName: fwupd_security_attr_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_result_to_string
    - FWUPD_SECURITY_ATTR
    - fwupd_codec_string_append_time
    - fwupd_codec_string_append_int
    - g_ptr_array_index
    - fwupd_security_attr_string_append_tfl
    - GET_PRIVATE
    - g_list_sort
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_get_keys
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdSecurityAttrClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1775
    functionName: fwupd_security_attr_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_class_init(FwupdSecurityAttrClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1780,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1782,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1783,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1785
    functionName: fwupd_security_attr_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    - g_get_real_time
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_init(FwupdSecurityAttr *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1790,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1791,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1794,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1795,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1796,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1797,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1798,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1799,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1800,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1801,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1802,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1803,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1804,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1805,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1806,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1807,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1808,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1811
    functionName: fwupd_security_attr_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FWUPD_SECURITY_ATTR
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1816,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1819,1
    - Dst: fwupd_security_attr_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1820,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1823
    functionName: fwupd_security_attr_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_variant_unref
    - FWUPD_SECURITY_ATTR
    - fwupd_security_attr_from_key_value
    - g_variant_iter_next
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1833
    functionName: fwupd_security_attr_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1848,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1848,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1851,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1851,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1867,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1871,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1877,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1878,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1885
    functionName: fwupd_security_attr_copy
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_object_new
    - g_ptr_array_index
    - GET_PRIVATE
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fwupd_security_attr_copy(FwupdSecurityAttr *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1904,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1906,1
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - appstream_id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1908
    functionName: fwupd_security_attr_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 5
    functionsReached:
    - FWUPD_SECURITY_ATTR
    - fwupd_security_attr_set_appstream_id
    - g_object_new
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fwupd_security_attr_new(const gchar *appstream_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_application_release
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: fwupd_thread_test_exit_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_application_release
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_exit_idle_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:30,1
    - Dst: g_main_context_new
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:31,1
    - Dst: g_main_context_pusher_new
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:31,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:33,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:34,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:35,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:36,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:37,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:38,1
    - Dst: g_idle_add
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: fwupd_thread_test_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_idle_add
    - g_message
    - g_thread_self
    - g_assert_nonnull
    - g_autoptr
    - g_main_context_get_thread_default
    - fwupd_client_connect
    - g_main_context_new
    - g_main_context_pusher_new
    linkageType: ''
    returnType: gpointer
    signature: gpointer fwupd_thread_test_thread_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:47,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:48,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:49,1
    - Dst: g_thread_new
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: fwupd_thread_test_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_thread_new
    - g_message
    - g_main_context_get_thread_default
    - g_thread_self
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_idle_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_application_hold
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:58,1
    - Dst: g_idle_add
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - app
    - user_data
    argTypes:
    - GApplication*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: fwupd_thread_test_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_idle_add
    - g_application_hold
    linkageType: ''
    returnType: void
    signature: void fwupd_thread_test_activate_cb(GApplication *app, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:66,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:67,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:69,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:69,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:70,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - object
    - pspec
    - user_data
    argTypes:
    - GObject*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: fwupd_thread_test_notify_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_message
    - g_thread_self
    - g_assert_true
    - g_assert_null
    - g_main_context_get_thread_default
    linkageType: ''
    returnType: void
    signature: void fwupd_thread_test_notify_cb(GObject *object, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:76,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: fwupd_thread_test_has_system_bus
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 0
    functionsReached:
    - g_bus_get_sync
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_has_system_bus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:85,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:86,1
    - Dst: g_application_new
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:88,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:93,1
    - Dst: fwupd_thread_test_has_system_bus
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:97,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:98,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:101,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:102,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:103,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:104,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:104,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:106,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:108,1
    - Dst: G_APPLICATION
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:108,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:110,1
    - Dst: g_application_run
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:112,1
    - Dst: g_thread_join
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-context-test.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-context-test.c
    functionUses: 3
    functionsReached:
    - g_application_new
    - g_message
    - g_application_run
    - g_thread_self
    - G_APPLICATION
    - g_steal_pointer
    - g_main_context_get_thread_default
    - g_autoptr
    - FWUPD_CLIENT
    - g_signal_connect
    - fwupd_client_new
    - g_thread_join
    - G_CALLBACK
    - fwupd_thread_test_has_system_bus
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 477
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: fwupd_remote_flag_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_flag_to_string(FwupdRemoteFlags flag)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:130,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:132,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:134,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: fwupd_remote_flag_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRemoteFlags
    signature: FwupdRemoteFlags fwupd_remote_flag_from_string(const gchar *flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:146,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:147,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:149,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:151,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:151,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:153,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:154,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:155,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:156,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:157,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:158,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:159,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:160,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:161,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:162,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:163,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:164,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:165,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:166,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-remote.c:167,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupd/fwupd-remote.c:168,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:170,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupd/fwupd-remote.c:171,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:174,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupd/fwupd-remote.c:175,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:178,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupd/fwupd-remote.c:179,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:182,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-remote.c:183,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-remote.c:184,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupd/fwupd-remote.c:185,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupd/fwupd-remote.c:186,1
    - Dst: fwupd_codec_json_append_strv
      Src: /src/fwupd/libfwupd/fwupd-remote.c:187,1
    - Dst: fwupd_codec_json_append_strv
      Src: /src/fwupd/libfwupd/fwupd-remote.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 189
    functionName: fwupd_remote_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - fwupd_codec_json_append
    - fwupd_codec_json_append_int
    - fwupd_codec_json_append_strv
    - fwupd_remote_kind_to_string
    - fwupd_codec_json_append_bool
    - GET_PRIVATE
    - fwupd_remote_has_flag
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:205,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: fwupd_remote_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdRemoteFlags
    signature: FwupdRemoteFlags fwupd_remote_get_flags(FwupdRemote *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:221,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:222,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:222,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:226,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: fwupd_remote_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_flags(FwupdRemote *self, FwupdRemoteFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:241,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:242,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:242,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:244,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: fwupd_remote_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_add_flag(FwupdRemote *self, FwupdRemoteFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:259,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:260,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:260,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:262,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: fwupd_remote_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_remove_flag(FwupdRemote *self, FwupdRemoteFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:280,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: fwupd_remote_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 27
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_has_flag(FwupdRemote *self, FwupdRemoteFlags
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: fwupd_remote_strdup_nonempty
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_strdup_nonempty(const gchar *text)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:304,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:307,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:310,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - username
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: fwupd_remote_set_username
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_username(FwupdRemote *self, const gchar *username)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:326,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:328,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:328,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:331,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:334,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 336
    functionName: fwupd_remote_set_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_title(FwupdRemote *self, const gchar *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:350,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:352,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:352,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:355,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:358,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - privacy_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 360
    functionName: fwupd_remote_set_privacy_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_privacy_uri(FwupdRemote *self, const gchar *privacy_uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:376,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:379,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:382,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - agreement
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: fwupd_remote_set_agreement
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_agreement(FwupdRemote *self, const gchar *agreement)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:398,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:400,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:400,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:403,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:406,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - checksum_sig
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: fwupd_remote_set_checksum_sig
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_checksum_sig(FwupdRemote *self, const gchar *checksum_sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:413,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:415,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:415,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:418,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:421,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 423
    functionName: fwupd_remote_set_checksum_sig_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_checksum_sig_metadata(FwupdRemote *self, const
      gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:437,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:440,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:443,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - password
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: fwupd_remote_set_password
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_password(FwupdRemote *self, const gchar *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:459,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:460,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FwupdRemote*
    - FwupdRemoteKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: fwupd_remote_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_kind(FwupdRemote *self, FwupdRemoteKind kind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:478,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:481,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:484,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:485,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-remote.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: fwupd_remote_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strdelimit
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_id(FwupdRemote *self, const gchar *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:501,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:502,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:502,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:505,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename_source
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 507
    functionName: fwupd_remote_set_filename_source
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_filename_source(FwupdRemote *self, const gchar
      *filename_source)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:518,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-remote.c:518,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:522,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:537,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-remote.c:537,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:539,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:540,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:547,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:548,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:549,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:550,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupd/fwupd-remote.c:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:555,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:558,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:559,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:566,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-remote.c:567,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:568,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:569,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:572,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:575,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:576,1
    - Dst: g_uri_escape_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:587,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:588,1
    - Dst: g_uri_escape_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:591,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:592,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:594,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 4
    argNames:
    - self
    - base_uri
    - url_noauth
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 596
    functionName: fwupd_remote_build_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - curl_url
    - g_set_error
    - curl_url_set
    - g_path_get_basename
    - g_build_filename
    - g_strstr_len
    - g_path_get_dirname
    - curl_url_get
    - g_uri_escape_string
    - GET_PRIVATE
    - g_str_has_suffix
    - g_autoptr
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_remote_build_uri(FwupdRemote *self,\n\t\t       const
      gchar *base_uri,\n\t\t       const gchar *url_noauth,\n\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:612,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:614,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:614,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:617,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:621,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:622,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:625,1
    - Dst: g_strconcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - metadata_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 627
    functionName: fwupd_remote_set_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_strconcat
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_metadata_uri(FwupdRemote *self, const gchar *metadata_uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:643,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:646,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:649,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - firmware_base_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 651
    functionName: fwupd_remote_set_firmware_base_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_firmware_base_uri(FwupdRemote *self, const gchar
      *firmware_base_uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:665,1
    - Dst: fwupd_remote_strdup_nonempty
      Src: /src/fwupd/libfwupd/fwupd-remote.c:666,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:669,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:672,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - report_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 674
    functionName: fwupd_remote_set_report_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_steal_pointer
    - fwupd_remote_strdup_nonempty
    - GET_PRIVATE
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_report_uri(FwupdRemote *self, const gchar *report_uri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:689,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:691,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 696
    functionName: fwupd_remote_kind_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FwupdRemoteKind
    signature: FwupdRemoteKind fwupd_remote_kind_from_string(const gchar *kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FwupdRemoteKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: fwupd_remote_kind_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_kind_to_string(FwupdRemoteKind kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:732,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:734,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:734,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:737,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:740,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:741,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:745,1
    - Dst: g_strconcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 748
    functionName: fwupd_remote_set_filename_cache
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_strconcat
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_filename_cache(FwupdRemote *self, const gchar
      *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:762,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:763,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ids
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 766
    functionName: fwupd_remote_set_order_before
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strsplit_set
    - g_clear_pointer
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_order_before(FwupdRemote *self, const gchar *ids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:780,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:781,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ids
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: fwupd_remote_set_order_after
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strsplit_set
    - g_clear_pointer
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_order_after(FwupdRemote *self, const gchar *ids)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:801,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:803,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:803,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:804,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:808,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:820,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:828,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:834,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:836,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:837,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:839,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:842,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-remote.c:844,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:850,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupd/fwupd-remote.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:863,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:863,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupd/fwupd-remote.c:864,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:865,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-remote.c:868,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:869,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:869,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:871,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 876
    functionName: fwupd_remote_setup
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - fwupd_remote_set_filename_cache
    - g_file_get_contents
    - fwupd_remote_set_checksum_sig
    - g_build_filename
    - g_prefix_error
    - FWUPD_IS_REMOTE
    - g_checksum_update
    - g_set_error_literal
    - GET_PRIVATE
    - g_str_has_suffix
    - g_file_test
    - g_autoptr
    - g_checksum_new
    - g_return_val_if_fail
    - g_checksum_get_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_setup(FwupdRemote *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:891,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:892,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 894
    functionName: fwupd_remote_get_order_after
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_remote_get_order_after(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:910,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 912
    functionName: fwupd_remote_get_order_before
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_remote_get_order_before(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:927,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:928,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 930
    functionName: fwupd_remote_get_filename_cache
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 13
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_filename_cache(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:946,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: fwupd_remote_get_filename_cache_sig
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_filename_cache_sig(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:963,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:964,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 966
    functionName: fwupd_remote_get_filename_source
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_filename_source(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:981,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:982,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 984
    functionName: fwupd_remote_get_priority
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gint
    signature: gint fwupd_remote_get_priority(FwupdRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:999,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1000,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: fwupd_remote_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 18
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdRemoteKind
    signature: FwupdRemoteKind fwupd_remote_get_kind(FwupdRemote *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1019,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1019,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1024
    functionName: fwupd_remote_get_age
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - g_get_real_time
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_remote_get_age(FwupdRemote *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1038,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1039,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1039,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1042,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1045,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - directory
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1047
    functionName: fwupd_remote_set_remotes_dir
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 5
    functionsReached:
    - FWUPD_IS_REMOTE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_remotes_dir(FwupdRemote *self, const gchar *directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1061,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1062,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FwupdRemote*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1064
    functionName: fwupd_remote_set_priority
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_priority(FwupdRemote *self, gint priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1078,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1079,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - mtime
    argTypes:
    - FwupdRemote*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1081
    functionName: fwupd_remote_set_mtime
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_mtime(FwupdRemote *self, guint64 mtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1096,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1097,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1099
    functionName: fwupd_remote_get_refresh_interval
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_remote_get_refresh_interval(FwupdRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1113,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1114,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - refresh_interval
    argTypes:
    - FwupdRemote*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1116
    functionName: fwupd_remote_set_refresh_interval
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_refresh_interval(FwupdRemote *self, guint64 refresh_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1132,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: fwupd_remote_get_username
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_username(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1150,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1152
    functionName: fwupd_remote_get_password
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_password(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1167,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1168,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1170
    functionName: fwupd_remote_get_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_title(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1186,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1188
    functionName: fwupd_remote_get_privacy_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_privacy_uri(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1203,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1204,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1206
    functionName: fwupd_remote_get_agreement
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_agreement(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1222,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1224
    functionName: fwupd_remote_get_remotes_dir
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_remotes_dir(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1239,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1240,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1242
    functionName: fwupd_remote_get_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_checksum(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1258,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1260
    functionName: fwupd_remote_get_checksum_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_checksum_metadata(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1279,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1280,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1281,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - url
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1283
    functionName: fwupd_remote_build_firmware_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - fwupd_remote_build_uri
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_build_firmware_uri(FwupdRemote *self, const gchar *url, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1300,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1300,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1301,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1303
    functionName: fwupd_remote_build_report_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - fwupd_remote_build_uri
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_build_report_uri(FwupdRemote *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1319,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1320,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1321,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1323
    functionName: fwupd_remote_build_metadata_sig_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - fwupd_remote_build_uri
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_build_metadata_sig_uri(FwupdRemote *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1339,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1340,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1340,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1341,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1343
    functionName: fwupd_remote_build_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - fwupd_remote_build_uri
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_build_metadata_uri(FwupdRemote *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1358,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1359,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1361
    functionName: fwupd_remote_get_report_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_report_uri(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1376,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1377,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1379
    functionName: fwupd_remote_get_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 13
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_metadata_uri(FwupdRemote *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1384,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1389,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1390,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1394,1
    - Dst: jcat_file_get_item_by_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1395,1
    - Dst: jcat_file_get_item_default
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1398,1
    - Dst: jcat_item_get_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1402,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1404,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1412,1
    - Dst: g_build_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1413,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1414,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1415,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1416,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1417,1
    - Dst: jcat_item_get_blobs_by_kind
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1421,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1423,1
    - Dst: jcat_blob_get_data_as_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1424,1
    - Dst: fwupd_remote_set_checksum_sig_metadata
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - jcat_file
    - error
    argTypes:
    - FwupdRemote*
    - JcatFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1430
    functionName: fwupd_remote_load_signature_jcat
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - jcat_item_get_id
    - jcat_file_get_item_by_id
    - jcat_blob_get_data_as_string
    - g_steal_pointer
    - g_path_get_basename
    - g_path_get_dirname
    - jcat_item_get_blobs_by_kind
    - jcat_file_get_item_default
    - g_set_error_literal
    - g_build_path
    - GET_PRIVATE
    - g_ptr_array_index
    - g_autoptr
    - g_strcmp0
    - g_free
    - g_info
    - fwupd_remote_set_checksum_sig_metadata
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_signature_jcat(FwupdRemote *self, JcatFile
      *jcat_file, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1447,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1448,1
    - Dst: jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1450,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1451,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1452,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1454,1
    - Dst: jcat_file_import_stream
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1455,1
    - Dst: fwupd_remote_load_signature_jcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - bytes
    - error
    argTypes:
    - FwupdRemote*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1458
    functionName: fwupd_remote_load_signature_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - fwupd_remote_load_signature_jcat
    - jcat_file_new
    - FWUPD_IS_REMOTE
    - jcat_file_import_stream
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_signature_bytes(FwupdRemote *self, GBytes
      *bytes, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1475,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1476,1
    - Dst: jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1476,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1478,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1480,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1483,1
    - Dst: jcat_file_import_file
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1484,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1485,1
    - Dst: fwupd_remote_load_signature_jcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1489
    functionName: fwupd_remote_load_signature
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - fwupd_remote_load_signature_jcat
    - g_file_new_for_path
    - jcat_file_new
    - FWUPD_IS_REMOTE
    - g_autoptr
    - g_return_val_if_fail
    - fwupd_error_convert
    - jcat_file_import_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_signature(FwupdRemote *self, const gchar
      *filename, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1504,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1505,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1507
    functionName: fwupd_remote_get_metadata_uri_sig
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_metadata_uri_sig(FwupdRemote *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1522,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1523,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1525
    functionName: fwupd_remote_get_firmware_base_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_firmware_base_uri(FwupdRemote *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1540,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1541,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1541,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1543,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1548
    functionName: fwupd_remote_needs_refresh
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - fwupd_remote_get_age
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    - fwupd_remote_has_flag
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_needs_refresh(FwupdRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1564,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1566
    functionName: fwupd_remote_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 37
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_id(FwupdRemote *self)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1571,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1575,1
    - Dst: g_variant_iter_copy
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1575,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1576,1
    - Dst: g_variant_iter_copy
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1576,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1579,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1580,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1581,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1581,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1582,1
    - Dst: fwupd_remote_set_kind
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1583,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1583,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1584,1
    - Dst: fwupd_remote_set_flags
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1585,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1585,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1587,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1588,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1589,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1589,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1590,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1591,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1591,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1592,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1593,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1593,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1594,1
    - Dst: fwupd_remote_set_report_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1595,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1595,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1598,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1599,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1600,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1601,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1601,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1602,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1603,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1603,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1604,1
    - Dst: fwupd_remote_set_privacy_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1605,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1605,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1606,1
    - Dst: fwupd_remote_set_agreement
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1607,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1607,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1608,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1609,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1609,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1610,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1611,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1612,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1613,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1614,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1615,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1616,1
    - Dst: g_variant_get_int32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1617,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1618,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1619,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1620,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1621,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1622,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1623,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1623,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1624,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1626,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1627,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1628,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1629,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1630,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1634
    functionName: fwupd_remote_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - fwupd_remote_set_agreement
    - fwupd_remote_set_username
    - g_variant_get_string
    - fwupd_remote_set_report_uri
    - fwupd_remote_set_title
    - g_variant_iter_loop
    - fwupd_remote_set_privacy_uri
    - fwupd_remote_set_filename_cache
    - g_variant_get_boolean
    - g_variant_iter_copy
    - fwupd_remote_set_checksum_sig
    - fwupd_remote_set_flags
    - g_variant_get_uint32
    - fwupd_remote_set_firmware_base_uri
    - fwupd_remote_set_password
    - fwupd_remote_set_id
    - g_autoptr
    - g_variant_get_uint64
    - fwupd_remote_add_flag
    - g_variant_get_int32
    - fwupd_remote_set_kind
    - fwupd_remote_set_metadata_uri
    - fwupd_remote_set_filename_source
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1639,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1640,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1644,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1647,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1650,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1653,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1656,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1659,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1662,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1665,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1668,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1668,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1671,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1674,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1677,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1680,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1683,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1686,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1689,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1692,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1695,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1698,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1701,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1704,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1707,1
    - Dst: g_variant_new_int32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1710,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1713,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1713,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1716,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1719,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1722,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1725,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1728,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1731,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1734,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1737,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1740,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1743,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1746,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1750,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1750,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1751,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1755,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1756,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1757,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1761,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1762,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1763,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1767,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1768,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1769
    functionName: fwupd_remote_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - g_variant_new_uint32
    - g_variant_builder_add
    - g_variant_new_uint64
    - GET_PRIVATE
    - g_variant_new_int32
    - g_variant_new_string
    - fwupd_remote_has_flag
    - g_variant_new_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1774,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1775,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1779,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1779,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1782,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1784,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1787,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1790,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1792,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1795,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1797,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1800,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1803,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1806
    functionName: fwupd_remote_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_string
    - GET_PRIVATE
    - g_value_set_uint64
    - fwupd_remote_has_flag
    - g_value_set_boolean
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_get_property(GObject *obj, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1811,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1815,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1816,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1818,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1821,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1822,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1824,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1827,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1827,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1830,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1831,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1833,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1836,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1837,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1839,1
    - Dst: fwupd_remote_set_flags
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1843,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1843,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1846,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1849
    functionName: fwupd_remote_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - fwupd_remote_remove_flag
    - g_value_get_boolean
    - fwupd_remote_set_id
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    - fwupd_remote_set_flags
    - fwupd_remote_add_flag
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_property(GObject *obj, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1855,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1868,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1869,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1878,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1883,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1893,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1898,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1907,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1912,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1921,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1926,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1935,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdRemoteClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1943
    functionName: fwupd_remote_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - g_param_spec_boolean
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_class_init(FwupdRemoteClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1948
    functionName: fwupd_remote_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_init(FwupdRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1953,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1954,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1956,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1957,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1958,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1959,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1960,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1961,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1962,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1963,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1964,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1965,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1966,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1967,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1968,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1969,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1970,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1971,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1972,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1973,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1976
    functionName: fwupd_remote_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - FWUPD_REMOTE
    - g_strfreev
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 1984
    functionName: fwupd_remote_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1999,1
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2001
    functionName: fwupd_remote_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 9
    functionsReached:
    - FWUPD_REMOTE
    - g_object_new
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fwupd_remote_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - params
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: G_GNUC_NON_NULL
    functionSourceFile: /src/fwupd/libfwupd/fwupd-build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_GNUC_NON_NULL(params...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_application_release
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: fwupd_thread_test_exit_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 0
    functionsReached:
    - g_application_release
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_exit_idle_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:30,1
    - Dst: g_main_context_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:31,1
    - Dst: g_main_context_pusher_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:31,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:33,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:34,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:35,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:36,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:37,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:39,1
    - Dst: g_idle_add
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: fwupd_thread_test_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_idle_add
    - g_message
    - g_thread_self
    - fwupd_client_get_devices
    - g_assert_nonnull
    - g_autoptr
    - g_main_context_get_thread_default
    - g_main_context_new
    - g_main_context_pusher_new
    linkageType: ''
    returnType: gpointer
    signature: gpointer fwupd_thread_test_thread_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:49,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:50,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:51,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:55,1
    - Dst: g_thread_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:56,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:57,1
    - Dst: g_random_int_range
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:57,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:58,1
    - Dst: g_application_hold
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: fwupd_thread_test_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 0
    functionsReached:
    - g_random_int_range
    - g_message
    - g_application_hold
    - g_thread_self
    - g_thread_new
    - g_strdup_printf
    - g_main_context_get_thread_default
    - g_usleep
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_idle_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_application_hold
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:70,1
    - Dst: g_idle_add
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - app
    - user_data
    argTypes:
    - GApplication*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: fwupd_thread_test_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 0
    functionsReached:
    - g_idle_add
    - g_application_hold
    linkageType: ''
    returnType: void
    signature: void fwupd_thread_test_activate_cb(GApplication *app, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:77,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: fwupd_thread_test_has_system_bus
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 1
    functionsReached:
    - g_bus_get_sync
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_thread_test_has_system_bus(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:86,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:87,1
    - Dst: g_application_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:88,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:88,1
    - Dst: fwupd_thread_test_has_system_bus
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:92,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:93,1
    - Dst: g_message
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:97,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:98,1
    - Dst: g_main_context_get_thread_default
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:99,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:100,1
    - Dst: G_APPLICATION
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:100,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:102,1
    - Dst: g_application_run
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:106,1
    - Dst: g_thread_join
      Src: /src/fwupd/libfwupd/fwupd-thread-test.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 111
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-thread-test.c
    functionUses: 3
    functionsReached:
    - g_application_new
    - g_message
    - g_application_run
    - g_thread_self
    - G_APPLICATION
    - g_ptr_array_new
    - g_ptr_array_index
    - g_main_context_get_thread_default
    - g_autoptr
    - g_signal_connect
    - fwupd_client_new
    - g_thread_join
    - G_CALLBACK
    - fwupd_thread_test_has_system_bus
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:42,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - checksum
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: fwupd_checksum_guess_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - strlen
    linkageType: ''
    returnType: GChecksumType
    signature: GChecksumType fwupd_checksum_guess_kind(const gchar *checksum)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - checksum_type
    argTypes:
    - GChecksumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: fwupd_checksum_type_to_string_display
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_checksum_type_to_string_display(GChecksumType checksum_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-common.c:96,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:97,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupd/fwupd-common.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - checksum
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: fwupd_checksum_format_for_display
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 2
    functionsReached:
    - fwupd_checksum_guess_kind
    - fwupd_checksum_type_to_string_display
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_checksum_format_for_display(const gchar *checksum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:114,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-common.c:116,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-common.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - checksums
    - kind
    argTypes:
    - GPtrArray*
    - GChecksumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: fwupd_checksum_get_by_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - fwupd_checksum_guess_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_checksum_get_by_kind(GPtrArray *checksums, GChecksumType kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:141,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-common.c:144,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-common.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - checksums
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: fwupd_checksum_get_best
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - fwupd_checksum_guess_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_checksum_get_best(GPtrArray *checksums)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:179,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:182,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:186,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:187,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:188,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:189,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:190,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:198,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:199,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:200,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:201,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - guid
    - flags
    argTypes:
    - fwupd_guid_t*
    - FwupdGuidFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 209
    functionName: fwupd_guid_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - GUINT32_FROM_BE
    - memcpy
    - g_strdup_printf
    - GUINT32_FROM_LE
    - GUINT16_FROM_BE
    - g_return_val_if_fail
    - GUINT16_FROM_LE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_guid_to_string(const fwupd_guid_t *guid, FwupdGuidFlags flags)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-common.c:234,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:237,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:240,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:241,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-common.c:247,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupd/fwupd-common.c:248,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:249,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:255,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:255,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:255,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:256,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:257,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:265,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:267,1
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:267,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:268,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:270,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:270,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:271,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:273,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:273,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:274,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:276,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:279,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:280,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:285,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - guidstr
    - guid
    - flags
    - error
    argTypes:
    - gchar*
    - fwupd_guid_t*
    - FwupdGuidFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 289
    functionName: fwupd_guid_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_auto
    - strlen
    - memcpy
    - GUINT16_TO_BE
    - g_strsplit
    - GUINT32_TO_LE
    - g_set_error_literal
    - g_strv_length
    - GUINT32_TO_BE
    - GUINT16_TO_LE
    - g_return_val_if_fail
    - g_ascii_string_to_unsigned
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_guid_from_string(const gchar *guidstr,\n\t\t       fwupd_guid_t
      *guid,\n\t\t       FwupdGuidFlags flags,\n\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common.c:313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:334,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:341,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-common.c:342,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-common.c:343,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupd/fwupd-common.c:344,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:347,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-common.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - data
    - datasz
    - flags
    argTypes:
    - guint8*
    - gsize
    - FwupdGuidFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 353
    functionName: fwupd_guid_hash_data
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_checksum_get_digest
    - memcpy
    - fwupd_guid_to_string
    - g_checksum_update
    - g_checksum_new
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_guid_hash_data(const guint8 *data, gsize datasz, FwupdGuidFlags flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - device_id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: fwupd_device_id_is_valid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_id_is_valid(const gchar *device_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isxdigit
      Src: /src/fwupd/libfwupd/fwupd-common.c:411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-common.c:420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 421
    functionName: fwupd_guid_is_valid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 7
    functionsReached:
    - g_strcmp0
    - g_ascii_isxdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_guid_is_valid(const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/libfwupd/fwupd-common.c:447,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: fwupd_guid_hash_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 4
    functionsReached:
    - fwupd_guid_hash_data
    - strlen
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_guid_hash_string(const gchar *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common.c:457,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-common.c:457,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-common.c:458,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-common.c:461,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-common.c:462,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/libfwupd/fwupd-common.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 465
    functionName: fwupd_hash_kv_to_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - g_variant_builder_init
    - g_variant_builder_add
    - g_autoptr
    - g_hash_table_lookup
    - g_variant_builder_end
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fwupd_hash_kv_to_variant(GHashTable *hash)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-common.c:473,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-common.c:477,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-common.c:478,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-common.c:479,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-common.c:479,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-common.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: fwupd_variant_to_hash_kv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_new_full
    - g_variant_iter_loop
    - g_strdup
    - g_variant_iter_init
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_variant_to_hash_kv(GVariant *dict)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/fwupd/libfwupd/fwupd-common.c:497,1
    - Dst: g_mkstemp
      Src: /src/fwupd/libfwupd/fwupd-common.c:500,1
    - Dst: g_unlink
      Src: /src/fwupd/libfwupd/fwupd-common.c:502,1
    - Dst: g_close
      Src: /src/fwupd/libfwupd/fwupd-common.c:504,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:505,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:508,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:518,1
    - Dst: write
      Src: /src/fwupd/libfwupd/fwupd-common.c:524,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-common.c:524,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-common.c:524,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:526,1
    - Dst: lseek
      Src: /src/fwupd/libfwupd/fwupd-common.c:533,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:534,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupd/fwupd-common.c:538,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:541,1
    - Dst: g_unix_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bytes
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 542
    functionName: fwupd_unix_input_stream_from_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - g_close
    - g_set_error
    - write
    - g_mkstemp
    - g_unlink
    - g_prefix_error
    - g_bytes_get_size
    - g_unix_input_stream_new
    - G_UNIX_INPUT_STREAM
    - g_set_error_literal
    - lseek
    - fwupd_strerror
    - memfd_create
    - g_bytes_get_data
    linkageType: ''
    returnType: GUnixInputStream
    signature: 'GUnixInputStream *

      fwupd_unix_input_stream_from_bytes(GBytes *bytes, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/fwupd/libfwupd/fwupd-common.c:550,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:552,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:555,1
    - Dst: g_unix_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: fwupd_unix_input_stream_from_fn
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - g_set_error
    - G_UNIX_INPUT_STREAM
    - open
    - g_unix_input_stream_new
    linkageType: ''
    returnType: GUnixInputStream
    signature: 'GUnixInputStream *

      fwupd_unix_input_stream_from_fn(const gchar *fn, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_open
      Src: /src/fwupd/libfwupd/fwupd-common.c:564,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:566,1
    - Dst: G_UNIX_OUTPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:569,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 570
    functionName: fwupd_unix_output_stream_from_fn
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_unix_output_stream_new
    - g_set_error
    - g_open
    - G_UNIX_OUTPUT_STREAM
    linkageType: ''
    returnType: GUnixOutputStream
    signature: 'GUnixOutputStream *

      fwupd_unix_output_stream_from_fn(const gchar *fn, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 537
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:40,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:41,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:42,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:44,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:46,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: fu_efi_volume_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_efi_guid_to_name
    - FU_EFI_VOLUME
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_firmware_get_id
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_volume_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_efi_volume_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: fu_efi_volume_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_volume_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_volume_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:62,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:73,1
    - Dst: fu_struct_efi_volume_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:76,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:81,1
    - Dst: fu_struct_efi_volume_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:83,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:83,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:86,1
    - Dst: fu_struct_efi_volume_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:90,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:96,1
    - Dst: fu_struct_efi_volume_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:100,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:108,1
    - Dst: fu_struct_efi_volume_get_hdr_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:124,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:126,1
    - Dst: fu_sum16w_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:131,1
    - Dst: fu_struct_efi_volume_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:136,1
    - Dst: fu_struct_efi_volume_get_ext_hdr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:143,1
    - Dst: fu_struct_efi_volume_get_ext_hdr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:144,1
    - Dst: fu_struct_efi_volume_ext_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:146,1
    - Dst: fu_struct_efi_volume_ext_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:151,1
    - Dst: fu_struct_efi_volume_ext_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:153,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:157,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:163,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:165,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:173,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:176,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:177,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:180,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:182,1
    - Dst: fu_efi_filesystem_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:182,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:183,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:183,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:184,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:191,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:192,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:193,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:193,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:194,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:197,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:199,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:209,1
    - Dst: fu_struct_efi_volume_block_map_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:210,1
    - Dst: fu_struct_efi_volume_block_map_get_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:213,1
    - Dst: fu_struct_efi_volume_block_map_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:221,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 106
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 230
    functionName: fu_efi_volume_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - fu_struct_efi_volume_ext_entry_get_size
    - fu_struct_efi_volume_get_hdr_len
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_firmware_set_alignment
    - fu_efi_filesystem_new
    - fu_struct_efi_volume_get_length
    - fu_input_stream_size
    - fu_struct_efi_volume_block_map_get_length
    - g_set_error
    - fu_struct_efi_volume_block_map_parse_stream
    - g_debug
    - fu_struct_efi_volume_get_ext_hdr
    - fu_struct_efi_volume_ext_entry_parse_stream
    - fu_firmware_add_image
    - fu_firmware_set_size
    - fu_struct_efi_volume_get_guid
    - fu_firmware_parse_stream
    - fu_struct_efi_volume_get_attrs
    - g_autoptr
    - fu_struct_efi_volume_get_checksum
    - fu_struct_efi_volume_parse_stream
    - fu_struct_efi_volume_block_map_get_num_blocks
    - g_strcmp0
    - fu_partial_input_stream_new
    - g_warning
    - fu_firmware_set_id
    - fu_struct_efi_volume_ext_header_get_size
    - fu_efi_guid_to_name
    - fwupd_guid_to_string
    - g_set_error_literal
    - FU_EFI_VOLUME
    - GET_PRIVATE
    - fu_sum16w_bytes
    - fu_input_stream_read_bytes
    - fu_struct_efi_volume_ext_header_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_volume_parse(FuFirmware *firmware,\n\t\t    GInputStream
      *stream,\n\t\t    FuFirmwareParseFlags flags,\n\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:235,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:237,1
    - Dst: fu_struct_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:238,1
    - Dst: fu_struct_efi_volume_block_map_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:243,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:247,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:251,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:256,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:257,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:260,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:260,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:267,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:269,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:271,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:275,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:277,1
    - Dst: fu_struct_efi_volume_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:283,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:284,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:284,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:285,1
    - Dst: fu_struct_efi_volume_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:286,1
    - Dst: fu_struct_efi_volume_set_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:287,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:289,1
    - Dst: fu_struct_efi_volume_set_hdr_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:290,1
    - Dst: fu_struct_efi_volume_block_map_set_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:293,1
    - Dst: fu_struct_efi_volume_block_map_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:294,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:295,1
    - Dst: fu_struct_efi_volume_block_map_set_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:296,1
    - Dst: fu_struct_efi_volume_block_map_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:297,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:298,1
    - Dst: fu_struct_efi_volume_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:301,1
    - Dst: fu_sum16w
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:303,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:306,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:307,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 311
    functionName: fu_efi_volume_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - fu_struct_efi_volume_block_map_new
    - g_prefix_error
    - fu_struct_efi_volume_set_hdr_len
    - fu_struct_efi_volume_block_map_set_num_blocks
    - fu_firmware_get_id
    - g_set_error
    - fu_byte_array_append_bytes
    - fu_struct_efi_volume_set_length
    - fu_struct_efi_volume_set_attrs
    - fu_byte_array_set_size
    - fu_struct_efi_volume_block_map_set_length
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_get_bytes_with_patches
    - fu_struct_efi_volume_set_checksum
    - g_autoptr
    - fwupd_guid_from_string
    - fu_firmware_write
    - fu_sum16w
    - g_bytes_get_size
    - FU_EFI_VOLUME
    - GET_PRIVATE
    - fu_struct_efi_volume_new
    - fu_common_align_up
    - g_byte_array_append
    - fu_struct_efi_volume_set_guid
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_volume_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:316,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: fu_efi_volume_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_efi_volume_init(FuEfiVolume *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVolumeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 329
    functionName: fu_efi_volume_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_volume_class_init(FuEfiVolumeClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:341,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: fu_efi_volume_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_volume_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 541
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:44,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:45,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:46,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: fu_block_partition_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_BLOCK_PARTITION
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:57,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:60,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fs_type
    - fs_typelen
    argTypes:
    - FuBlockPartition*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: fu_block_partition_set_fs_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_set_fs_type(FuBlockPartition *self, const gchar
      *fs_type, gsize fs_typelen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:67,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:70,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:73,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fs_uuid
    - fs_uuidlen
    argTypes:
    - FuBlockPartition*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: fu_block_partition_set_fs_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_set_fs_uuid(FuBlockPartition *self, const gchar
      *fs_uuid, gsize fs_uuidlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:80,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:83,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:86,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fs_label
    - fs_labellen
    argTypes:
    - FuBlockPartition*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: fu_block_partition_set_fs_label
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_set_fs_label(FuBlockPartition *self, const
      gchar *fs_label, gsize fs_labellen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:94,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:95,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:96,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:98,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:98,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:99,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:99,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:102,1
    - Dst: fu_block_partition_get_fs_type
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:102,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:104,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:104,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:106,1
    - Dst: fu_block_partition_get_fs_label
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: fu_block_partition_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_block_partition_get_fs_label
    - fu_block_partition_get_fs_type
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fu_block_partition_get_fs_uuid
    - FU_IS_BLOCK_PARTITION
    - FU_BLOCK_PARTITION
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_incorporate(FuDevice *self, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:123,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockPartition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: fu_block_partition_get_fs_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_BLOCK_PARTITION
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_block_partition_get_fs_type(FuBlockPartition *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:141,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockPartition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: fu_block_partition_get_fs_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_BLOCK_PARTITION
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_block_partition_get_fs_uuid(FuBlockPartition *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:159,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockPartition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: fu_block_partition_get_fs_label
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_BLOCK_PARTITION
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_block_partition_get_fs_label(FuBlockPartition *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:177,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:181,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:183,1
    - Dst: FU_IS_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:183,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:188,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:196,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:197,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:197,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:199,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:203,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:205,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:208,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:211,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:215,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:215,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:217,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:221,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:226,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:230,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:233,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBlockPartition*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 234
    functionName: fu_block_partition_get_mount_point
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_device_event_get_str
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_event_set_str
    - fu_device_get_context
    - fu_device_load_event
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    - g_steal_pointer
    - g_autoptr
    - FU_IS_BLOCK_PARTITION
    - fu_device_save_event
    - g_strdup_printf
    - fu_volume_new_by_device
    - g_set_error_literal
    - FU_DEVICE
    - fu_volume_get_mount_point
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_block_partition_get_mount_point(FuBlockPartition *self, GError **error)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:239,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:240,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:242,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:242,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:248,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:252,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:253,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:253,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:255,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:256,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:256,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:260,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:261,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:264,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:264,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:265,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:265,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:266,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:266,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:272,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:276,1
    - Dst: blkid_new_probe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:282,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:284,1
    - Dst: blkid_probe_set_superblocks_flags
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:290,1
    - Dst: blkid_probe_set_device
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:293,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:293,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:295,1
    - Dst: blkid_do_safeprobe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:304,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:311,1
    - Dst: blkid_probe_numof_values
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:312,1
    - Dst: blkid_probe_get_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:315,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:316,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:321,1
    - Dst: fu_block_partition_set_fs_type
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:322,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:323,1
    - Dst: fu_block_partition_set_fs_uuid
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:324,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:325,1
    - Dst: fu_block_partition_set_fs_label
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:328,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:338,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:340,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:342,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 346
    functionName: fu_block_partition_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_device_event_get_str
    - blkid_do_safeprobe
    - fu_device_has_flag
    - fu_block_partition_set_fs_label
    - fu_context_has_flag
    - g_set_error
    - fu_device_event_set_str
    - g_debug
    - blkid_probe_set_superblocks_flags
    - fu_device_get_context
    - fu_device_load_event
    - FU_UDEV_DEVICE
    - blkid_new_probe
    - fu_udev_device_get_device_file
    - blkid_probe_set_device
    - blkid_probe_get_value
    - fu_io_channel_unix_get_fd
    - fu_block_partition_set_fs_uuid
    - g_getenv
    - blkid_probe_lookup_value
    - fu_device_save_event
    - g_strdup_printf
    - fu_udev_device_get_io_channel
    - FU_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_set_error_literal
    - fu_block_partition_set_fs_type
    - blkid_probe_numof_values
    - FU_BLOCK_PARTITION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_block_partition_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:351,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:352,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:354,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:355,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:356,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: fu_block_partition_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    - FU_BLOCK_PARTITION
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:364,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:364,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:365,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockPartition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: fu_block_partition_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_init(FuBlockPartition *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:371,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlockPartitionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: fu_block_partition_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_class_init(FuBlockPartitionClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:19,1
    - Dst: fu_usb_base_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:22,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:25,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:25,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:26,1
    - Dst: fu_usb_base_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 30
    functionName: fu_usb_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_size
    - fu_usb_base_hdr_parse_stream
    - fu_firmware_set_idx
    - g_autoptr
    - fu_usb_base_hdr_get_descriptor_type
    - fu_usb_base_hdr_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_descriptor_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_usb_descriptor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_descriptor_class_init(FuUsbDescriptorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: fu_usb_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_descriptor_init(FuUsbDescriptor *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:36,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:37,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:39,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:41,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:43,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:47,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: fu_kernel_locked_down
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_auto
    - g_build_filename
    - g_strsplit
    - g_file_test
    - g_strcmp0
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_locked_down(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:74,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:76,1
    - Dst: uname
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:77,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:78,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:84,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:86,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - minimum_kernel
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: fu_kernel_check_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_version_compare
    - g_set_error_literal
    - memset
    - g_return_val_if_fail
    - uname
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_check_version(const gchar *minimum_kernel, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:113,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:122,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:124,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:131,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:133,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:133,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:133,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:135,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:135,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: fu_kernel_parse_config_line_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_set_error
    - g_auto
    - g_ref_string_acquire
    - g_strsplit
    - g_strv_length
    - g_strdup
    - g_ref_string_new
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_parse_config_line_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:154,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:158,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:165,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:166,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:170,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:172,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:174,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - bufsz
    - error
    argTypes:
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: fu_kernel_parse_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_strsplit_full
    - g_steal_pointer
    - g_hash_table_new_full
    - g_autoptr
    - g_ref_string_new
    - g_return_val_if_fail
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_parse_config(const gchar *buf, gsize bufsz, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:186,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:188,1
    - Dst: uname
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:189,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:190,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:196,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: fu_kernel_get_config_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - g_strdup_printf
    - g_set_error_literal
    - memset
    - fu_path_from_kind
    - uname
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kernel_get_config_path(GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:225,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:228,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:234,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:236,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:238,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:238,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:241,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:241,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:242,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:243,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:246,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:246,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:247,1
    - Dst: fu_kernel_get_config_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:252,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:255,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 265
    functionName: fu_kernel_get_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_file_read
    - fu_kernel_get_config_path
    - g_file_new_for_path
    - g_build_filename
    - g_bytes_get_size
    - G_INPUT_STREAM
    - g_converter_input_stream_new
    - g_zlib_decompressor_new
    - G_CONVERTER
    - fu_kernel_parse_config
    - g_set_error_literal
    - g_autoptr
    - g_file_test
    - fu_input_stream_read_bytes
    - fu_path_from_kind
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_get_config(GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:283,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:285,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:287,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:289,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:292,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:292,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:293,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:293,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:293,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:294,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:301,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:304,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:304,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:305,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:305,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:305,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 310
    functionName: fu_kernel_parse_cmdline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_string_set_size
    - g_auto
    - g_string_new
    - g_steal_pointer
    - g_hash_table_new_full
    - g_strsplit
    - g_string_append_c
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_parse_cmdline(const gchar *buf, gsize bufsz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:329,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:331,1
    - Dst: fu_kernel_parse_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:333,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: fu_kernel_get_cmdline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - g_file_get_contents
    - fu_kernel_parse_cmdline
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_get_cmdline(GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:346,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:348,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:349,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:349,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:352,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:357,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:360,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:362,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:364,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:366,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:372,1
    - Dst: g_file_info_get_attribute_boolean
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:377,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 389
    functionName: fu_kernel_check_cmdline_mutable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - g_auto
    - g_file_query_info
    - g_new0
    - g_build_filename
    - g_file_new_for_path
    - g_file_query_exists
    - g_file_info_get_attribute_boolean
    - fu_path_find_program
    - g_autoptr
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_check_cmdline_mutable(GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_find_program
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:399,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:401,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:405,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:407,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg
    - enable
    - error
    argTypes:
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 421
    functionName: fu_kernel_set_commandline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_strdup_printf
    - fu_path_find_program
    - g_spawn_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_set_commandline(const gchar *arg, gboolean enable,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_set_commandline
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: fu_kernel_add_cmdline_arg
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - fu_kernel_set_commandline
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_add_cmdline_arg(const gchar *arg, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_set_commandline
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: fu_kernel_remove_cmdline_arg
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - fu_kernel_set_commandline
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_remove_cmdline_arg(const gchar *arg, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 551
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:38,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:39,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:40,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: fu_linear_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_type_name
    - FU_LINEAR_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_linear_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:56,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:57,1
    - Dst: FU_IS_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinearFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: fu_linear_firmware_get_image_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_LINEAR_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GType
    signature: GType fu_linear_firmware_get_image_gtype(FuLinearFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:64,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:65,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:69,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: fu_linear_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - GET_PRIVATE
    - xb_node_query_text
    - FU_LINEAR_FIRMWARE
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linear_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:92,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:93,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:100,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:101,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:105,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:113,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:116,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:117,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 126
    functionName: fu_linear_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_firmware_parse_stream
    - g_object_new
    - GET_PRIVATE
    - fu_partial_input_stream_new
    - g_autoptr
    - fu_input_stream_size
    - FU_LINEAR_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linear_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:131,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:132,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:132,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:137,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:138,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:139,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:142,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: fu_linear_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_set_offset
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_linear_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:152,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:153,1
    - Dst: g_value_set_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:156,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: fu_linear_firmware_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    - g_value_set_gtype
    - FU_LINEAR_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_linear_firmware_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:170,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:171,1
    - Dst: g_value_get_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:174,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: fu_linear_firmware_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_value_get_gtype
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_LINEAR_FIRMWARE
    linkageType: ''
    returnType: void
    signature: "void fu_linear_firmware_set_property(GObject *object,\n\t\t\t\tguint
      prop_id,\n\t\t\t\tconst GValue *value,\n\t\t\t\tGParamSpec *pspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:185,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:185,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:186,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinearFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: fu_linear_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_linear_firmware_init(FuLinearFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:192,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:193,1
    - Dst: g_param_spec_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:211,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinearFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 217
    functionName: fu_linear_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - g_param_spec_gtype
    - G_OBJECT_CLASS
    - g_object_class_install_property
    linkageType: ''
    returnType: void
    signature: void fu_linear_firmware_class_init(FuLinearFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - image_gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: fu_linear_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_linear_firmware_new(GType image_gtype)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:32,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:32,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:34,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:35,1
    - Dst: lzma_auto_decoder
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:37,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:40,1
    - Dst: lzma_code
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:50,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:53,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:59,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - blob
    - memlimit
    - error
    argTypes:
    - GBytes*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 67
    functionName: fu_lzma_decompress_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-lzma-common.c
    functionUses: 0
    functionsReached:
    - lzma_end
    - g_set_error
    - lzma_auto_decoder
    - g_bytes_get_size
    - g_byte_array_new
    - g_malloc0
    - g_autoptr
    - g_bytes_new
    - lzma_code
    - g_byte_array_append
    - g_bytes_get_data
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_lzma_decompress_bytes(GBytes *blob, guint64 memlimit, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:87,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:87,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:89,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:90,1
    - Dst: lzma_easy_encoder
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:92,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:95,1
    - Dst: lzma_code
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:105,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:108,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:114,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 122
    functionName: fu_lzma_compress_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-lzma-common.c
    functionUses: 0
    functionsReached:
    - lzma_end
    - g_set_error
    - g_bytes_get_size
    - g_byte_array_new
    - g_malloc0
    - g_autoptr
    - g_bytes_new
    - lzma_code
    - g_byte_array_append
    - g_bytes_get_data
    - lzma_easy_encoder
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_lzma_compress_bytes(GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:64,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:65,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:66,1
    - Dst: fu_volume_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:67,1
    - Dst: fu_volume_get_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:68,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:70,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:70,1
    - Dst: fwupd_codec_json_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:71,1
    - Dst: fu_volume_is_encrypted
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:71,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:72,1
    - Dst: fu_volume_get_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:72,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:73,1
    - Dst: fu_volume_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:73,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:74,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:75,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:76,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:77,1
    - Dst: fu_volume_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:77,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:78,1
    - Dst: fu_volume_get_partition_offset
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:80,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:81,1
    - Dst: fu_volume_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:83,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: fu_volume_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - fu_volume_get_partition_name
    - fwupd_codec_json_append_int
    - fwupd_codec_json_append
    - fu_volume_get_partition_number
    - fu_volume_get_block_size
    - fu_volume_is_encrypted
    - fwupd_codec_json_append_bool
    - fu_volume_get_mount_point
    - FU_VOLUME
    - fu_volume_get_partition_kind
    - fu_volume_get_partition_size
    - fu_volume_get_partition_uuid
    - fu_volume_get_partition_offset
    - fu_volume_is_mounted
    - fu_volume_get_size
    linkageType: ''
    returnType: void
    signature: void fu_volume_add_json(FwupdCodec *codec, JsonBuilder *builder, FwupdCodecFlags
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:90,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:91,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:92,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:93,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:95,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:97,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:99,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: fu_volume_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - FU_VOLUME
    - g_object_unref
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_volume_finalize(GObject *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:106,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:109,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:112,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:115,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:118,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: fu_volume_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - FU_VOLUME
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    linkageType: ''
    returnType: void
    signature: void fu_volume_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:129,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:132,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:135,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:138,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:141,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 147
    functionName: fu_volume_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_value_dup_string
    - FU_VOLUME
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_dup_object
    linkageType: ''
    returnType: void
    signature: void fu_volume_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:153,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:167,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:172,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:182,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:187,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:197,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:202,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:212,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVolumeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 218
    functionName: fu_volume_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_volume_class_init(FuVolumeClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: fu_volume_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_volume_init(FuVolume *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:238,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:238,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:240,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:242,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: fu_volume_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_object_path
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_id(FuVolume *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:263,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:263,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:267,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: fu_volume_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_variant_get_uint64
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_volume_get_size(FuVolume *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:288,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:288,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:292,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 296
    functionName: fu_volume_get_partition_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_variant_get_uint64
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_volume_get_partition_size(FuVolume *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:311,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:313,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:313,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:317,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: fu_volume_get_partition_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_variant_get_uint64
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_volume_get_partition_offset(FuVolume *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:338,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:338,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:342,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: fu_volume_get_partition_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_variant_get_uint32
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_volume_get_partition_number(FuVolume *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:361,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:363,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:363,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:366,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:369,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: fu_volume_get_partition_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_variant_dup_string
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_partition_uuid(FuVolume *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:393,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:393,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:396,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:399,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 403
    functionName: fu_volume_get_partition_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_variant_dup_string
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_partition_kind(FuVolume *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:417,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:417,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:418,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:419,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - partition_kind
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: fu_volume_set_partition_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_IS_VOLUME
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_volume_set_partition_kind(FuVolume *self, const gchar *partition_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:435,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:435,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:436,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:437,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - partition_uuid
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: fu_volume_set_partition_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_IS_VOLUME
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_volume_set_partition_uuid(FuVolume *self, const gchar *partition_uuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:455,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:458,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:458,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:462,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:467,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: fu_volume_get_partition_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_steal_pointer
    - g_dbus_proxy_get_cached_property
    - g_variant_dup_string
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_partition_name(FuVolume *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:488,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:488,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:492,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:495,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: fu_volume_is_mdraid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_strcmp0
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_is_mdraid(FuVolume *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_open
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:506,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:508,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:510,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:511,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:512,1
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:515,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:517,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:519,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:520,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:521,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:523,1
    - Dst: g_close
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:528,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device_name
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 537
    functionName: fu_volume_get_block_size_from_device_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_close
    - g_open
    - g_set_error
    - g_set_error_literal
    - fwupd_strerror
    - fwupd_error_convert
    - ioctl
    - g_io_error_from_errno
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_volume_get_block_size_from_device_name(const gchar *device_name,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:556,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:556,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:561,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:566,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: fu_volume_get_block_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_dbus_proxy_get_cached_property
    - g_variant_dup_string
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_block_name(FuVolume *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:585,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:587,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:587,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:590,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:597,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:599,1
    - Dst: fu_volume_get_block_size_from_device_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:605,1
    - Dst: g_variant_get_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 606
    functionName: fu_volume_get_block_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - fu_volume_get_block_size_from_device_name
    - g_variant_get_bytestring
    - g_dbus_proxy_get_cached_property
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gsize
    signature: gsize fu_volume_get_block_size(FuVolume *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:622,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:624,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:624,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:628,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:633,1
    - Dst: g_variant_get_bytestring_array
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:636,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 638
    functionName: fu_volume_get_mount_point
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 4
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_variant_get_bytestring_array
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_mount_point(FuVolume *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:644,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - fs_free
    argTypes:
    - FuVolume*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: fu_volume_set_filesystem_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - FU_IS_VOLUME
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_volume_set_filesystem_free(FuVolume *self, guint64 fs_free)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:666,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:666,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:667,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:677,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:677,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:678,1
    - Dst: g_file_query_filesystem_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:679,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:685,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:688,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:689,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - required
    - error
    argTypes:
    - FuVolume*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 700
    functionName: fu_volume_check_free_space
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - fu_volume_get_mount_point
    - g_autoptr
    - g_format_size
    - g_return_val_if_fail
    - g_file_query_filesystem_info
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_check_free_space(FuVolume *self, guint64 required,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:716,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:716,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: fu_volume_is_mounted
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_volume_get_mount_point
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_is_mounted(FuVolume *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:734,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:736,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:736,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:740,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:743,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 746
    functionName: fu_volume_is_encrypted
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_strcmp0
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_is_encrypted(FuVolume *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:763,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:764,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:766,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:766,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:767,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:773,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:773,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:774,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:775,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:777,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:783,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:784,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:785,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:791,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:791,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:794,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 796
    functionName: fu_volume_mount
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_debug
    - g_variant_get
    - g_steal_pointer
    - g_variant_builder_init
    - g_error_matches
    - fu_volume_get_id
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_mount(FuVolume *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:811,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:812,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:812,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:814,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 819
    functionName: fu_volume_is_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_variant_get_boolean
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_is_internal(FuVolume *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:834,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:835,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:835,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:837,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:841,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 842
    functionName: fu_volume_get_id_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_VOLUME
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_get_id_type(FuVolume *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:859,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:861,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:861,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:862,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:868,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:868,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:869,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:870,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:872,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 882
    functionName: fu_volume_unmount
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_debug
    - g_variant_builder_init
    - fu_volume_get_id
    - g_autoptr
    - g_return_val_if_fail
    - g_free
    - FU_IS_VOLUME
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_unmount(FuVolume *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:899,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:900,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:903,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:904,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 909
    functionName: fu_volume_locker
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - fu_volume_is_mounted
    - g_object_new
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_device_locker_new_full
    linkageType: ''
    returnType: FuDeviceLocker
    signature: 'FuDeviceLocker *

      fu_volume_locker(FuVolume *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:915,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:915,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:916,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:917,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mount_path
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: fu_volume_new_from_mount_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_object_new
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_volume_new_from_mount_path(const gchar *mount_path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 960
    functionName: fu_volume_kind_convert_to_gpt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_volume_kind_convert_to_gpt(const gchar *kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:966,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - symlinks
    - error
    argTypes:
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 977
    functionName: fu_volume_check_block_device_symlinks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_str_has_prefix
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_check_block_device_symlinks(const gchar *const *symlinks,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:982,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:982,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1002,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1003,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1004,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 1006
    functionName: fu_volume_check_is_recovery
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_string_ascii_up
    - g_string_replace
    - g_strv_contains
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_check_is_recovery(const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1012
    functionName: fu_volume_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_volume_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1031,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1032,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1034,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1035,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1037,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1040,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1041,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1043,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1047,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1048,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1049,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1050,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1051,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1054,1
    - Dst: g_variant_get_bytestring_array
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1057,1
    - Dst: fu_volume_check_block_device_symlinks
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1058,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1059,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1064,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1064,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1068,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1073,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1075,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1078,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1078,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1082,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1087,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1088,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1092,1
    - Dst: fu_volume_is_mdraid
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1101,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1102,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1105,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1111,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1112,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1113,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1114,1
    - Dst: fu_volume_is_mdraid
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1115,1
    - Dst: fu_volume_is_internal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1120,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1121,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1127,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1128,1
    - Dst: fu_volume_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1129,1
    - Dst: fu_volume_get_block_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1132,1
    - Dst: fu_volume_check_is_recovery
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1134,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1135,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1138,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1141,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1141,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1151,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 2
    argNames:
    - kind
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1152
    functionName: fu_volume_new_by_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - fu_volume_get_partition_name
    - g_prefix_error
    - fu_volume_is_internal
    - g_object_new
    - g_dbus_proxy_new_sync
    - g_return_val_if_fail
    - g_dbus_proxy_get_object_path
    - g_set_error
    - g_debug
    - g_dbus_proxy_get_cached_property
    - fu_common_get_block_devices
    - g_ptr_array_index
    - g_info
    - g_steal_pointer
    - fu_volume_check_is_recovery
    - fu_volume_get_partition_kind
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_volume_check_block_device_symlinks
    - fu_volume_kind_convert_to_gpt
    - g_ptr_array_add
    - g_variant_get_bytestring_array
    - fu_volume_is_mdraid
    - fu_volume_get_id_type
    - g_strdup
    - g_dbus_proxy_get_connection
    - fu_volume_get_block_name
    - g_strcmp0
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_volume_new_by_kind(const gchar *kind, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1170,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1171,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1179,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1180,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1183,1
    - Dst: g_variant_get_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1186,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1187,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1187,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1191,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1196,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1197,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1197,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1201,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1206,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1207,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1221
    functionName: fu_volume_new_by_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_dbus_proxy_get_object_path
    - g_set_error
    - g_debug
    - g_dbus_proxy_new_sync
    - g_variant_get_bytestring
    - g_dbus_proxy_get_cached_property
    - g_object_new
    - fu_common_get_block_devices
    - g_ptr_array_index
    - g_autoptr
    - g_dbus_proxy_get_connection
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_volume_new_by_device(const gchar *device, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1237,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1239,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1247,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1248,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1251,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1252,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - devnum
    - error
    argTypes:
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1259
    functionName: fu_volume_new_by_devnum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_dbus_proxy_get_cached_property
    - g_object_new
    - fu_common_get_block_devices
    - g_ptr_array_index
    - g_autoptr
    - g_variant_get_uint64
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_volume_new_by_devnum(guint32 devnum, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:41,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_edid_get_pnp_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_IS_EDID
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_edid_get_pnp_id(FuEdid *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:57,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:57,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:58,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:60,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pnp_id
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: fu_edid_set_pnp_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_strdup
    - FU_IS_EDID
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_edid_set_pnp_id(FuEdid *self, const gchar *pnp_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:77,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: fu_edid_get_eisa_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_IS_EDID
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_edid_get_eisa_id(FuEdid *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:93,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:93,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:94,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:96,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - eisa_id
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: fu_edid_set_eisa_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_strdup
    - FU_IS_EDID
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_edid_set_eisa_id(FuEdid *self, const gchar *eisa_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:113,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fu_edid_get_serial_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_IS_EDID
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_edid_get_serial_number(FuEdid *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:130,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:130,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:131,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:133,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial_number
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: fu_edid_set_serial_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_strdup
    - FU_IS_EDID
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_edid_set_serial_number(FuEdid *self, const gchar *serial_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:150,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: fu_edid_get_product_code
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_IS_EDID
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_edid_get_product_code(FuEdid *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:166,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - product_code
    argTypes:
    - FuEdid*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: fu_edid_set_product_code
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_IS_EDID
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_edid_set_product_code(FuEdid *self, guint16 product_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:174,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:174,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:176,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:178,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:182,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: fu_edid_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_string_append_c
    - g_ascii_isprint
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_edid_strsafe(const guint8 *buf, gsize bufsz)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:190,1
    - Dst: fu_struct_edid_descriptor_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:192,1
    - Dst: fu_struct_edid_descriptor_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:197,1
    - Dst: fu_struct_edid_descriptor_get_subkind
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:198,1
    - Dst: fu_struct_edid_descriptor_get_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:201,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:202,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:203,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:204,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:205,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:207,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:208,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:209,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:211,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEdid*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: fu_edid_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_edid_strsafe
    - fu_struct_edid_descriptor_get_data
    - fu_struct_edid_descriptor_get_kind
    - fu_struct_edid_descriptor_get_subkind
    - fu_struct_edid_descriptor_get_tag
    - g_autoptr
    - fu_struct_edid_descriptor_parse_stream
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_edid_parse_descriptor(FuEdid *self, GInputStream *stream,
      gsize offset, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:229,1
    - Dst: fu_struct_edid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:232,1
    - Dst: fu_struct_edid_get_manufacturer_name
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:241,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:242,1
    - Dst: fu_edid_set_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:247,1
    - Dst: fu_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:248,1
    - Dst: fu_struct_edid_get_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:248,1
    - Dst: fu_struct_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:249,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:251,1
    - Dst: fu_struct_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:251,1
    - Dst: fu_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:252,1
    - Dst: fu_edid_parse_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 265
    functionName: fu_edid_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_struct_edid_parse_stream
    - fu_edid_set_serial_number
    - fu_edid_parse_descriptor
    - fu_struct_edid_get_serial_number
    - g_strdup_printf
    - FU_EDID
    - fu_edid_set_product_code
    - fu_edid_set_pnp_id
    - fu_struct_edid_get_product_code
    - fu_struct_edid_get_manufacturer_name
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_edid_parse(FuFirmware *firmware,\n\t      GInputStream
      *stream,\n\t      FuFirmwareParseFlags flags,\n\t      GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:271,1
    - Dst: fu_struct_edid_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:271,1
    - Dst: fu_struct_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:275,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:278,1
    - Dst: fu_struct_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:288,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:288,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:289,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:291,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:293,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:295,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:302,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:302,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:303,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:306,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:308,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:310,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:317,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:317,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:318,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:320,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:322,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:324,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:327,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 333
    functionName: fu_edid_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_struct_edid_descriptor_new
    - fu_struct_edid_descriptor_set_data
    - strlen
    - g_steal_pointer
    - memcpy
    - g_prefix_error
    - FU_EDID
    - fu_struct_edid_descriptor_set_tag
    - g_autoptr
    - fu_struct_edid_new
    - fu_struct_edid_set_serial_number
    - fu_struct_edid_set_product_code
    - fu_strtoull
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_edid_write(FuFirmware *firmware, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:338,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:342,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:344,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:346,1
    - Dst: fu_edid_set_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:354,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:356,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:358,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:360,1
    - Dst: fu_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:368,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:370,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:372,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:374,1
    - Dst: fu_edid_set_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:382,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:384,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:387,1
    - Dst: fu_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 394
    functionName: fu_edid_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_edid_set_serial_number
    - fu_edid_set_eisa_id
    - strlen
    - FU_EDID
    - fu_edid_set_product_code
    - fu_edid_set_pnp_id
    - xb_node_query_text
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_edid_build(FuFirmware *firmware, XbNode *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:399,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:400,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:401,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:402,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:403,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: fu_edid_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_EDID
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_edid_export(FuFirmware *firmware, FuFirmwareExportFlags flags,
      XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:410,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:411,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:412,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:413,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:414,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: fu_edid_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_EDID
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_edid_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:421,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEdidClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: fu_edid_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_edid_class_init(FuEdidClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: fu_edid_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_edid_init(FuEdid *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: fu_edid_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEdid
    signature: 'FuEdid *

      fu_edid_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:29,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:29,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:30,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:32,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:33,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: fu_byte_array_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_byte_array_to_string(GByteArray *array)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:51,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:51,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:53,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:54,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:56,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:59,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:61,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: fu_byte_array_from_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_byte_array_append_uint8
    - g_steal_pointer
    - fu_firmware_strparse_uint8_safe
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_byte_array_from_string(const gchar *str, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - data
    argTypes:
    - GByteArray*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: fu_byte_array_append_uint8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 2
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_uint8(GByteArray *array, guint8 data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:95,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - array
    - data
    - endian
    argTypes:
    - GByteArray*
    - guint16
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: fu_byte_array_append_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    - fu_memwrite_uint16
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_uint16(GByteArray *array, guint16 data, FuEndianType
      endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:113,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - array
    - data
    - endian
    argTypes:
    - GByteArray*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: fu_byte_array_append_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    - fu_memwrite_uint24
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_uint24(GByteArray *array, guint32 data, FuEndianType
      endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:131,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - array
    - data
    - endian
    argTypes:
    - GByteArray*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: fu_byte_array_append_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_uint32(GByteArray *array, guint32 data, FuEndianType
      endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:149,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - array
    - data
    - endian
    argTypes:
    - GByteArray*
    - guint64
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: fu_byte_array_append_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint64
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_uint64(GByteArray *array, guint64 data, FuEndianType
      endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:165,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:165,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - bytes
    argTypes:
    - GByteArray*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: fu_byte_array_append_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 2
    functionsReached:
    - g_byte_array_append
    - g_bytes_get_size
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_bytes(GByteArray *array, GBytes *bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:182,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:183,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:184,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - array
    - length
    - data
    argTypes:
    - GByteArray*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: fu_byte_array_set_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 1
    functionsReached:
    - memset
    - g_byte_array_set_size
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_set_size(GByteArray *array, gsize length, guint8
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:203,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - array
    - alignment
    - data
    argTypes:
    - GByteArray*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: fu_byte_array_align_up
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - fu_common_align_up
    - fu_byte_array_set_size
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_align_up(GByteArray *array, guint8 alignment, guint8
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:223,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:224,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf1
    - buf2
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: fu_byte_array_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memcmp_safe
    - MAX
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_byte_array_compare(GByteArray *buf1, GByteArray *buf2,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 557
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:37,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:38,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:39,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:40,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:41,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: fu_acpi_table_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_TABLE
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_acpi_table_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:58,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:59,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_acpi_table_get_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_IS_ACPI_TABLE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_acpi_table_get_revision(FuAcpiTable *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:76,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:77,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: fu_acpi_table_get_oem_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_IS_ACPI_TABLE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_acpi_table_get_oem_id(FuAcpiTable *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:94,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:95,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: fu_acpi_table_get_oem_table_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_IS_ACPI_TABLE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_acpi_table_get_oem_table_id(FuAcpiTable *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:112,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:113,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: fu_acpi_table_get_oem_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_IS_ACPI_TABLE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_acpi_table_get_oem_revision(FuAcpiTable *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:123,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:128,1
    - Dst: fu_struct_acpi_table_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:131,1
    - Dst: fu_struct_acpi_table_get_signature
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:134,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:135,1
    - Dst: fu_struct_acpi_table_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:136,1
    - Dst: fu_struct_acpi_table_get_oem_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:137,1
    - Dst: fu_struct_acpi_table_get_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:138,1
    - Dst: fu_struct_acpi_table_get_oem_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:139,1
    - Dst: fu_struct_acpi_table_get_length
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:142,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:146,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:154,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:159,1
    - Dst: fu_struct_acpi_table_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 175
    functionName: fu_acpi_table_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_struct_acpi_table_get_length
    - FU_ACPI_TABLE
    - fu_firmware_set_size
    - FU_FIRMWARE
    - fu_struct_acpi_table_get_signature
    - fu_struct_acpi_table_get_oem_id
    - GET_PRIVATE
    - fu_struct_acpi_table_get_oem_table_id
    - g_autoptr
    - fu_struct_acpi_table_get_revision
    - fu_struct_acpi_table_parse_stream
    - fu_struct_acpi_table_get_oem_revision
    - fu_input_stream_compute_sum8
    - fu_struct_acpi_table_get_checksum
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_table_parse(FuFirmware *firmware,\n\t\t    GInputStream
      *stream,\n\t\t    FuFirmwareParseFlags flags,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:180,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: fu_acpi_table_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_acpi_table_init(FuAcpiTable *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:186,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:187,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:188,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:189,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: fu_acpi_table_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_TABLE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_table_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:196,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiTableClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: fu_acpi_table_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_table_class_init(FuAcpiTableClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:213,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: fu_acpi_table_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_table_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 564
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:50,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:51,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:52,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:53,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:54,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:55,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:56,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:57,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:58,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:59,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:60,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: fu_cfu_offer_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    - FU_CFU_OFFER
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:77,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:78,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: fu_cfu_offer_get_segment_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_segment_number(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:97,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: fu_cfu_offer_get_force_immediate_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_offer_get_force_immediate_reset(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:115,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: fu_cfu_offer_get_force_ignore_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_offer_get_force_ignore_version(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:133,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: fu_cfu_offer_get_component_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_component_id(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:151,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: fu_cfu_offer_get_token
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_token(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:169,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: fu_cfu_offer_get_hw_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_cfu_offer_get_hw_variant(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:187,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fu_cfu_offer_get_protocol_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_protocol_revision(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:205,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: fu_cfu_offer_get_bank
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_bank(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:223,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: fu_cfu_offer_get_milestone
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_offer_get_milestone(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:240,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:241,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: fu_cfu_offer_get_product_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_cfu_offer_get_product_id(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:257,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:258,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - segment_number
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: fu_cfu_offer_set_segment_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_segment_number(FuCfuOffer *self, guint8 segment_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:275,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:276,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - force_immediate_reset
    argTypes:
    - FuCfuOffer*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: fu_cfu_offer_set_force_immediate_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_force_immediate_reset(FuCfuOffer *self, gboolean
      force_immediate_reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:292,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:293,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - force_ignore_version
    argTypes:
    - FuCfuOffer*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: fu_cfu_offer_set_force_ignore_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_force_ignore_version(FuCfuOffer *self, gboolean
      force_ignore_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:309,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:310,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - component_id
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: fu_cfu_offer_set_component_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_component_id(FuCfuOffer *self, guint8 component_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:326,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:327,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: fu_cfu_offer_set_token
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_token(FuCfuOffer *self, guint8 token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:343,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:344,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hw_variant
    argTypes:
    - FuCfuOffer*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: fu_cfu_offer_set_hw_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_hw_variant(FuCfuOffer *self, guint32 hw_variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:360,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:361,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:361,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - protocol_revision
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: fu_cfu_offer_set_protocol_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_protocol_revision(FuCfuOffer *self, guint8 protocol_revision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:378,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:379,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:379,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - bank
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: fu_cfu_offer_set_bank
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_bank(FuCfuOffer *self, guint8 bank)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:396,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:397,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:397,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - milestone
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 400
    functionName: fu_cfu_offer_set_milestone
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_milestone(FuCfuOffer *self, guint8 milestone)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:414,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:415,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - product_id
    argTypes:
    - FuCfuOffer*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: fu_cfu_offer_set_product_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_set_product_id(FuCfuOffer *self, guint16 product_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:425,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:430,1
    - Dst: fu_struct_cfu_offer_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:433,1
    - Dst: fu_struct_cfu_offer_get_segment_number
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:436,1
    - Dst: fu_struct_cfu_offer_get_component_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:437,1
    - Dst: fu_struct_cfu_offer_get_token
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:438,1
    - Dst: fu_struct_cfu_offer_get_compat_variant_mask
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:439,1
    - Dst: fu_struct_cfu_offer_get_product_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:440,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:443,1
    - Dst: fu_struct_cfu_offer_get_version
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:443,1
    - Dst: fu_struct_cfu_offer_get_flags1
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:446,1
    - Dst: fu_struct_cfu_offer_get_flags2
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:451,1
    - Dst: fu_struct_cfu_offer_get_flags3
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 459
    functionName: fu_cfu_offer_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_CFU_OFFER
    - fu_struct_cfu_offer_parse_stream
    - fu_struct_cfu_offer_get_segment_number
    - fu_struct_cfu_offer_get_product_id
    - fu_struct_cfu_offer_get_flags2
    - fu_struct_cfu_offer_get_component_id
    - fu_struct_cfu_offer_get_compat_variant_mask
    - fu_struct_cfu_offer_get_version
    - fu_struct_cfu_offer_get_flags1
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_cfu_offer_get_token
    - fu_struct_cfu_offer_get_flags3
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_offer_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:464,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:466,1
    - Dst: fu_struct_cfu_offer_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:466,1
    - Dst: fu_struct_cfu_offer_set_segment_number
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:469,1
    - Dst: fu_struct_cfu_offer_set_flags1
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:470,1
    - Dst: fu_struct_cfu_offer_set_component_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:473,1
    - Dst: fu_struct_cfu_offer_set_token
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:474,1
    - Dst: fu_struct_cfu_offer_set_version
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:477,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:477,1
    - Dst: fu_struct_cfu_offer_set_compat_variant_mask
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:478,1
    - Dst: fu_struct_cfu_offer_set_flags2
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:481,1
    - Dst: fu_struct_cfu_offer_set_flags3
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:482,1
    - Dst: fu_struct_cfu_offer_set_product_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:483,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 487
    functionName: fu_cfu_offer_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_CFU_OFFER
    - fu_struct_cfu_offer_set_version
    - fu_struct_cfu_offer_set_token
    - g_steal_pointer
    - fu_struct_cfu_offer_set_flags3
    - fu_firmware_get_version_raw
    - fu_struct_cfu_offer_set_product_id
    - fu_struct_cfu_offer_new
    - fu_struct_cfu_offer_set_flags1
    - GET_PRIVATE
    - g_autoptr
    - fu_struct_cfu_offer_set_compat_variant_mask
    - fu_struct_cfu_offer_set_component_id
    - fu_struct_cfu_offer_set_flags2
    - fu_struct_cfu_offer_set_segment_number
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cfu_offer_write(FuFirmware *firmware, GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:492,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:493,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:498,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:501,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:503,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:506,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:508,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:511,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:514,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:517,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:520,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:523,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:526,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:529,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 535
    functionName: fu_cfu_offer_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_strtobool
    - xb_node_query_text_as_uint
    - FU_CFU_OFFER
    - GET_PRIVATE
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_offer_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:540,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: fu_cfu_offer_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cfu_offer_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:546,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:546,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:547,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:547,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:548,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: fu_cfu_offer_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_init(FuCfuOffer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuOfferClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: fu_cfu_offer_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfu_offer_class_init(FuCfuOfferClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:572,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: fu_cfu_offer_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_cfu_offer_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer(guint32
      pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:48,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:51,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:52,1
    - Dst: fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:64,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:70,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:71,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:74,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:76,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 81
    functionName: fu_intel_thunderbolt_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer
    - g_debug
    - fu_firmware_set_offset
    - g_prefix_error
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - fu_input_stream_read_u24
    - g_autoptr
    - G_N_ELEMENTS
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_thunderbolt_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:86,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:87,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:90,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:91,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:99,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:99,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:100,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:100,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:104,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: fu_intel_thunderbolt_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - g_autoptr
    - fu_byte_array_set_size
    - g_byte_array_append
    - g_byte_array_new
    - fu_firmware_get_offset
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_intel_thunderbolt_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: fu_intel_thunderbolt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_thunderbolt_firmware_init(FuIntelThunderboltFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelThunderboltFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: fu_intel_thunderbolt_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_thunderbolt_firmware_class_init(FuIntelThunderboltFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:136,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: fu_intel_thunderbolt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_intel_thunderbolt_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:45,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:45,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:47,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - optional_data
    argTypes:
    - FuEfiLoadOption*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: fu_efi_load_option_set_optional_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_bytes_ref
    - FU_IS_EFI_LOAD_OPTION
    - g_bytes_unref
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_set_optional_data(FuEfiLoadOption *self, GBytes
      *optional_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:71,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:72,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuEfiLoadOption*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: fu_efi_load_option_get_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FU_IS_EFI_LOAD_OPTION
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_load_option_get_metadata(FuEfiLoadOption *self, const gchar *key, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:101,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLoadOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: fu_efi_load_option_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_LOAD_OPTION
    linkageType: ''
    returnType: FuEfiLoadOptionKind
    signature: FuEfiLoadOptionKind fu_efi_load_option_get_kind(FuEfiLoadOption *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:117,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:117,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuEfiLoadOption*
    - FuEfiLoadOptionKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: fu_efi_load_option_set_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 1
    functionsReached:
    - FU_IS_EFI_LOAD_OPTION
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_set_kind(FuEfiLoadOption *self, FuEfiLoadOptionKind
      kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:138,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:138,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:139,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:142,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:147,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:152,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:153,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:156,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:156,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuEfiLoadOption*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 157
    functionName: fu_efi_load_option_set_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_str_has_prefix
    - g_hash_table_remove
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - FU_IS_EFI_LOAD_OPTION
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_set_metadata(FuEfiLoadOption *self, const gchar
      *key, const gchar *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:165,1
    - Dst: fu_struct_shim_hive_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:168,1
    - Dst: fu_struct_shim_hive_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:171,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:173,1
    - Dst: fu_struct_shim_hive_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:177,1
    - Dst: fu_struct_shim_hive_get_items_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:180,1
    - Dst: fu_struct_shim_hive_get_items_count
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:189,1
    - Dst: fu_struct_shim_hive_item_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:191,1
    - Dst: fu_struct_shim_hive_item_get_key_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:199,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:205,1
    - Dst: fu_struct_shim_hive_item_get_value_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:211,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:213,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEfiLoadOption*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 223
    functionName: fu_efi_load_option_parse_optional_hive
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_shim_hive_get_header_version
    - fu_struct_shim_hive_item_parse_stream
    - fu_struct_shim_hive_get_items_count
    - fu_struct_shim_hive_item_get_value_length
    - fu_struct_shim_hive_parse_stream
    - fu_input_stream_read_string
    - fu_efi_load_option_set_metadata
    - g_set_error_literal
    - g_autoptr
    - fu_struct_shim_hive_item_get_key_length
    - fu_struct_shim_hive_get_items_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_load_option_parse_optional_hive(FuEfiLoadOption *self,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       gsize offset,\n\t\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:231,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:236,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:237,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - opt_blob
    - error
    argTypes:
    - FuEfiLoadOption*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 248
    functionName: fu_efi_load_option_parse_optional_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_str_is_ascii
    - g_set_error
    - fu_efi_load_option_set_metadata
    - fu_utf16_to_utf8_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_load_option_parse_optional_path(FuEfiLoadOption *self,
      GBytes *opt_blob, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:259,1
    - Dst: fu_efi_load_option_parse_optional_hive
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:262,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:263,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:264,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:264,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:267,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:274,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:276,1
    - Dst: fu_efi_load_option_parse_optional_path
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:279,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:280,1
    - Dst: fu_efi_load_option_set_optional_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEfiLoadOption*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 290
    functionName: fu_efi_load_option_parse_optional
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_efi_load_option_set_optional_data
    - fu_input_stream_read_bytes
    - g_steal_pointer
    - g_error_matches
    - fu_efi_load_option_parse_optional_path
    - g_propagate_error
    - g_autoptr
    - fu_input_stream_size
    - fu_efi_load_option_parse_optional_hive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_load_option_parse_optional(FuEfiLoadOption *self,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  gsize offset,\n\t\t\t\t  GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:302,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:303,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:304,1
    - Dst: fu_struct_efi_load_option_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:307,1
    - Dst: fu_struct_efi_load_option_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:310,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:314,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:319,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:326,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:330,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:332,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:335,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:339,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:339,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:341,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:341,1
    - Dst: fu_struct_efi_load_option_get_dp_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:343,1
    - Dst: fu_efi_load_option_parse_optional
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:347,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 353
    functionName: fu_efi_load_option_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_efi_device_path_list_new
    - fu_input_stream_read_u16
    - fu_firmware_set_id
    - fu_firmware_add_image_full
    - fu_byte_array_append_uint16
    - FU_EFI_LOAD_OPTION
    - fu_firmware_parse_stream
    - fu_utf16_to_utf8_byte_array
    - FU_FIRMWARE
    - fu_struct_efi_load_option_get_dp_size
    - fu_efi_load_option_parse_optional
    - g_autoptr
    - fu_struct_efi_load_option_get_attrs
    - fu_input_stream_size
    - fu_struct_efi_load_option_parse_stream
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_load_option_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:362,1
    - Dst: fu_struct_shim_hive_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:362,1
    - Dst: fu_struct_shim_hive_set_items_count
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:364,1
    - Dst: fu_struct_shim_hive_set_items_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:365,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:366,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:367,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:369,1
    - Dst: fu_struct_shim_hive_item_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:370,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:370,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:373,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:374,1
    - Dst: g_string_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:375,1
    - Dst: fu_struct_shim_hive_item_set_key_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:377,1
    - Dst: fu_struct_shim_hive_item_set_value_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:378,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:380,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:382,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:388,1
    - Dst: fu_struct_shim_hive_set_crc32
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:392,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:392,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 396
    functionName: fu_efi_load_option_write_hive
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - strlen
    - fu_struct_shim_hive_set_crc32
    - fu_struct_shim_hive_item_new
    - g_hash_table_size
    - fu_struct_shim_hive_item_set_key_length
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_steal_pointer
    - fu_struct_shim_hive_new
    - g_string_prepend
    - fu_struct_shim_hive_set_items_offset
    - fu_struct_shim_hive_set_items_count
    - g_autoptr
    - fu_crc32
    - g_str_has_prefix
    - g_strcmp0
    - g_byte_array_append
    - fu_struct_shim_hive_item_set_value_length
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_load_option_write_hive(FuEfiLoadOption *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:401,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:403,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:403,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:406,1
    - Dst: g_string_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:407,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:408,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 415
    functionName: fu_efi_load_option_write_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - g_string_new
    - g_str_has_prefix
    - g_steal_pointer
    - g_string_prepend
    - g_autoptr
    - g_hash_table_lookup
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_load_option_write_path(FuEfiLoadOption *self, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:422,1
    - Dst: fu_struct_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:423,1
    - Dst: fu_struct_efi_load_option_set_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:426,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:429,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:430,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:436,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:436,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:442,1
    - Dst: fu_firmware_get_image_by_gtype_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:445,1
    - Dst: fu_struct_efi_load_option_set_dp_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:448,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:448,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:453,1
    - Dst: fu_efi_load_option_write_hive
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:454,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:457,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:460,1
    - Dst: fu_efi_load_option_write_path
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:461,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:464,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:466,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:470,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 471
    functionName: fu_efi_load_option_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_efi_load_option_write_path
    - FU_EFI_LOAD_OPTION
    - fu_struct_efi_load_option_set_dp_size
    - g_bytes_get_size
    - g_byte_array_append
    - fu_struct_efi_load_option_set_attrs
    - g_set_error_literal
    - fu_byte_array_align_up
    - fu_firmware_get_image_by_gtype_bytes
    - g_autoptr
    - fu_struct_efi_load_option_new
    - fu_efi_load_option_write_hive
    - fu_firmware_get_id
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_load_option_write(FuFirmware *firmware, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:480,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:483,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:488,1
    - Dst: fu_efi_load_option_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:490,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:492,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:504,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:505,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:508,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:508,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:509,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:511,1
    - Dst: fu_efi_load_option_set_optional_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:513,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:516,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:519,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:520,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:521,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:523,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 531
    functionName: fu_efi_load_option_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_query_text_as_uint
    - g_base64_decode
    - fu_efi_load_option_set_optional_data
    - xb_node_get_text
    - fu_efi_load_option_kind_from_string
    - FU_EFI_LOAD_OPTION
    - fu_efi_load_option_set_metadata
    - xb_node_query
    - g_ptr_array_index
    - g_autoptr
    - g_bytes_new
    - xb_node_query_first
    - xb_node_get_element
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_load_option_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:536,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:538,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:540,1
    - Dst: fu_efi_load_option_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:542,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:548,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:548,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:549,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:550,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:551,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:555,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:556,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 559
    functionName: fu_efi_load_option_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_hash_table_size
    - FU_EFI_LOAD_OPTION
    - g_base64_encode
    - fu_efi_load_option_kind_to_string
    - g_hash_table_iter_init
    - fu_xmlb_builder_insert_kx
    - g_autoptr
    - g_hash_table_iter_next
    - xb_builder_node_insert
    - g_bytes_get_data
    - xb_builder_node_insert_text
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:565,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:567,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:567,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:567,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:569,1
    - Dst: fu_efi_load_option_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:571,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:573,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:577,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:578,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:579,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:580,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:581,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:582,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:585,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:585,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:587,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 588
    functionName: fu_efi_load_option_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - g_hash_table_size
    - json_builder_begin_object
    - FU_EFI_LOAD_OPTION
    - FWUPD_CODEC
    - FU_FIRMWARE
    - fu_efi_load_option_kind_to_string
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fu_firmware_get_image_by_gtype
    - json_builder_end_object
    - fu_firmware_get_id
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: fu_efi_load_option_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:599,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:601,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:602,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 604
    functionName: fu_efi_load_option_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - FU_EFI_LOAD_OPTION
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:609,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiLoadOptionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: fu_efi_load_option_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_class_init(FuEfiLoadOptionClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:622,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLoadOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 624
    functionName: fu_efi_load_option_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_init(FuEfiLoadOption *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: fu_efi_load_option_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiLoadOption
    signature: 'FuEfiLoadOption *

      fu_efi_load_option_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 588
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: fu_fdt_image_guess_format_from_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_fdt_image_guess_format_from_key(const gchar *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:76,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:76,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:81,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:82,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:86,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:88,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: fu_fdt_image_strlist_from_blob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_new0
    - g_ptr_array_new
    - g_ptr_array_index
    - g_strdup
    - g_autoptr
    - g_ptr_array_add
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_fdt_image_strlist_from_blob(GBytes *blob)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:95,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:96,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:100,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:101,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:103,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:106,1
    - Dst: fu_fdt_image_guess_format_from_key
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:111,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:112,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:114,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:115,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:117,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:119,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:120,1
    - Dst: fu_fdt_image_strlist_from_blob
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:120,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:121,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:123,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:125,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:127,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 131
    functionName: fu_fdt_image_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_memread_uint32
    - g_hash_table_lookup
    - xb_builder_node_insert
    - xb_builder_node_set_attr
    - fu_fdt_image_strlist_from_blob
    - xb_builder_node_set_text
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - fu_memread_uint64
    - fu_fdt_image_guess_format_from_key
    - g_autoptr
    - g_base64_encode
    - g_strcmp0
    - g_bytes_get_data
    - FU_FDT_IMAGE
    - g_strjoinv
    - g_strdup_printf
    - GET_PRIVATE
    - g_strndup
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:146,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:148,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:150,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:150,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:152,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:155,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: fu_fdt_image_get_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_fdt_image_get_attrs(FuFdtImage *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:178,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:180,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:182,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:184,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: fu_fdt_image_get_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_set_error
    - GET_PRIVATE
    - g_bytes_ref
    - g_hash_table_lookup
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_fdt_image_get_attr(FuFdtImage *self, const gchar *key, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:208,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:210,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:212,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:214,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:218,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:223,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:228,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 230
    functionName: fu_fdt_image_get_attr_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_set_error
    - fu_fdt_image_get_attr
    - fu_memread_uint32
    - g_bytes_get_size
    - g_autoptr
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_get_attr_u32(FuFdtImage *self, const gchar *key,
      guint32 *val, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:248,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:250,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:250,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:252,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:254,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:257,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:258,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:263,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:268,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 270
    functionName: fu_fdt_image_get_attr_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_set_error
    - fu_fdt_image_get_attr
    - g_bytes_get_data
    - g_bytes_get_size
    - g_autoptr
    - g_return_val_if_fail
    - fu_memread_uint64
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_get_attr_u64(FuFdtImage *self, const gchar *key,
      guint64 *val, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:292,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:294,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:296,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:299,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:300,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:305,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:310,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:313,1
    - Dst: fu_fdt_image_strlist_from_blob
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar***
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 328
    functionName: fu_fdt_image_get_attr_strlist
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_set_error
    - fu_fdt_image_get_attr
    - fu_fdt_image_strlist_from_blob
    - g_bytes_get_size
    - g_ascii_isprint
    - g_autoptr
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_get_attr_strlist(FuFdtImage *self, const gchar
      *key, gchar ***val, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:350,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:352,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:354,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:357,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:358,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:363,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:368,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:370,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:371,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:384,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:384,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 386
    functionName: fu_fdt_image_get_attr_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_set_error
    - fu_fdt_image_get_attr
    - g_bytes_get_size
    - g_ascii_isprint
    - g_autoptr
    - g_strndup
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_get_attr_str(FuFdtImage *self, const gchar *key,
      gchar **val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:401,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:402,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:402,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:403,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:404,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:404,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - blob
    argTypes:
    - FuFdtImage*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 405
    functionName: fu_fdt_image_set_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_hash_table_insert
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_bytes_ref
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr(FuFdtImage *self, const gchar *key, GBytes
      *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:410,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:411,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:411,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:412,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:413,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:413,1
    - Dst: strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - format
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: fu_fdt_image_set_attr_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_hash_table_insert
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - strdup
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr_format(FuFdtImage *self, const gchar *key,
      const gchar *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:430,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:432,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:432,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:433,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:435,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:436,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:437,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 439
    functionName: fu_fdt_image_set_attr_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_return_if_fail
    - fu_memwrite_uint32
    - g_bytes_new
    - g_autoptr
    - fu_fdt_image_set_attr
    - fu_fdt_image_set_attr_format
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr_uint32(FuFdtImage *self, const gchar *key,
      guint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:455,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:457,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:457,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:458,1
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:460,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:461,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:462,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 464
    functionName: fu_fdt_image_set_attr_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - g_return_if_fail
    - fu_fdt_image_set_attr
    - g_bytes_new
    - g_autoptr
    - fu_memwrite_uint64
    - fu_fdt_image_set_attr_format
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr_uint64(FuFdtImage *self, const gchar *key,
      guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:479,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:481,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:481,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:482,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:483,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:485,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:485,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:486,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: fu_fdt_image_set_attr_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - strlen
    - g_return_if_fail
    - g_bytes_new
    - g_autoptr
    - fu_fdt_image_set_attr
    - fu_fdt_image_set_attr_format
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr_str(FuFdtImage *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:503,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:504,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:506,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:506,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:507,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:508,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:509,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:512,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:512,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:513,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:515,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:516,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 518
    functionName: fu_fdt_image_set_attr_strlist
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_IMAGE
    - strlen
    - fu_byte_array_append_uint8
    - fu_fdt_image_set_attr_format
    - g_return_if_fail
    - g_autoptr
    - g_bytes_new
    - fu_fdt_image_set_attr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_set_attr_strlist(FuFdtImage *self, const gchar *key,
      gchar **value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:525,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:527,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:529,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:532,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:534,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:541,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:544,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:547,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:555,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:558,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:561,1
    - Dst: fu_fdt_image_set_attr_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:569,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:572,1
    - Dst: fu_fdt_image_set_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:576,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:576,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:577,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:581,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:583,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:583,1
    - Dst: fu_fdt_image_set_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:584,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:586,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:586,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:587,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:592,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:595,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:596,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:598,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:600,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:605,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuFdtImage*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 611
    functionName: fu_fdt_image_build_metadata_node
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_base64_decode
    - fu_fdt_image_set_attr_uint32
    - g_auto
    - xb_node_get_text
    - fu_fdt_image_set_attr_uint64
    - xb_node_get_attr
    - fu_fdt_image_set_attr_strlist
    - g_strsplit
    - fu_fdt_image_set_attr
    - fu_fdt_image_set_attr_str
    - g_autoptr
    - g_bytes_new
    - g_strcmp0
    - fu_fdt_image_set_attr_format
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_build_metadata_node(FuFdtImage *self, XbNode
      *n, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:616,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:617,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:619,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:622,1
    - Dst: fu_fdt_image_build_metadata_node
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 630
    functionName: fu_fdt_image_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_build_metadata_node
    - FU_FDT_IMAGE
    - xb_node_query
    - g_ptr_array_index
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:635,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:637,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:638,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:639,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 640
    functionName: fu_fdt_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - g_hash_table_new_full
    - GET_PRIVATE
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_init(FuFdtImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:645,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:646,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:647,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:648,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 650
    functionName: fu_fdt_image_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_FDT_IMAGE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:655,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFdtImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: fu_fdt_image_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fdt_image_class_init(FuFdtImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:672,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: fu_fdt_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_fdt_image_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:29,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:29,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:31,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:35,1
    - Dst: fu_msgpack_item_parse
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:36,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:38,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:41,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:41,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - error
    argTypes:
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: fu_msgpack_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - fu_msgpack_item_parse
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_msgpack_parse(GByteArray *buf, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:61,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:64,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:67,1
    - Dst: fu_msgpack_item_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:68,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - items
    - error
    argTypes:
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: fu_msgpack_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_index
    - fu_msgpack_item_append
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_msgpack_write(GPtrArray *items, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:98,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:102,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:112,1
    - Dst: fu_msgpack_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:114,1
    - Dst: fu_msgpack_item_get_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:121,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:132,1
    - Dst: fu_msgpack_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:136,1
    - Dst: fu_msgpack_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:144,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:144,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:145,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - items
    - idx
    - key
    - error
    argTypes:
    - GPtrArray*
    - guint
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 149
    functionName: fu_msgpack_map_lookup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_get_string
    - g_set_error
    - g_object_ref
    - fu_msgpack_item_get_map
    - fu_msgpack_item_kind_to_string
    - fu_msgpack_item_get_kind
    - g_ptr_array_index
    - g_set_error_literal
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_map_lookup(GPtrArray *items, guint idx, const gchar *key, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: fu_device_set_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-private.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_plugin(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:23,1
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_x509_certificate_gnutls_datum_deinit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - gnutls_free
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_gnutls_datum_deinit(gnutls_datum_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:54,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:55,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: fu_x509_certificate_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_X509_CERTIFICATE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:72,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: fu_x509_certificate_get_issuer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_X509_CERTIFICATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_x509_certificate_get_issuer(FuX509Certificate *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:79,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:80,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:82,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - issuer
    argTypes:
    - FuX509Certificate*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: fu_x509_certificate_set_issuer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_IS_X509_CERTIFICATE
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_set_issuer(FuX509Certificate *self, const
      gchar *issuer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:89,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:89,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:90,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:92,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subject
    argTypes:
    - FuX509Certificate*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: fu_x509_certificate_set_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_IS_X509_CERTIFICATE
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_set_subject(FuX509Certificate *self, const
      gchar *subject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:109,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: fu_x509_certificate_get_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_X509_CERTIFICATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_x509_certificate_get_subject(FuX509Certificate *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:116,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:116,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:118,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - activation_time
    argTypes:
    - FuX509Certificate*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: fu_x509_certificate_set_activation_time
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_date_time_new_from_unix_utc
    - g_date_time_unref
    - FU_IS_X509_CERTIFICATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_set_activation_time(FuX509Certificate *self,
      gint64 activation_time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:135,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:135,1
    - Dst: g_date_time_ref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: fu_x509_certificate_get_activation_time
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_date_time_ref
    - FU_IS_X509_CERTIFICATE
    linkageType: ''
    returnType: GDateTime
    signature: 'GDateTime *

      fu_x509_certificate_get_activation_time(FuX509Certificate *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:148,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:160,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:160,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:163,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:166,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:167,1
    - Dst: gnutls_x509_crt_init
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:171,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:175,1
    - Dst: gnutls_x509_crt_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:180,1
    - Dst: gnutls_x509_crt_import
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:181,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:183,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:187,1
    - Dst: gnutls_x509_crt_get_issuer_dn
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:193,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:194,1
    - Dst: fu_x509_certificate_set_issuer
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:195,1
    - Dst: gnutls_malloc
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:199,1
    - Dst: gnutls_x509_crt_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:200,1
    - Dst: gnutls_x509_dn_get_str
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:202,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:203,1
    - Dst: fu_x509_certificate_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:204,1
    - Dst: gnutls_x509_crt_get_activation_time
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:210,1
    - Dst: fu_x509_certificate_set_activation_time
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:216,1
    - Dst: gnutls_x509_crt_get_key_id
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:219,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:221,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:225,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:230,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:231,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 239
    functionName: fu_x509_certificate_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_string_new
    - gnutls_malloc
    - g_string_append_printf
    - g_set_error
    - gnutls_x509_crt_get_key_id
    - FU_X509_CERTIFICATE
    - gnutls_strerror
    - fu_strsafe
    - gnutls_x509_dn_get_str
    - g_autoptr
    - fu_x509_certificate_set_activation_time
    - gnutls_x509_crt_init
    - g_bytes_get_data
    - gnutls_x509_crt_get_subject
    - fu_firmware_set_id
    - gnutls_x509_crt_get_issuer_dn
    - gnutls_x509_crt_set_flags
    - gnutls_x509_crt_get_activation_time
    - fu_x509_certificate_set_subject
    - g_bytes_get_size
    - fu_x509_certificate_set_issuer
    - g_set_error_literal
    - fu_input_stream_read_bytes
    - gnutls_x509_crt_import
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_x509_certificate_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: fu_x509_certificate_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_init(FuX509Certificate *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:249,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:250,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:251,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:253,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: fu_x509_certificate_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_X509_CERTIFICATE
    - G_OBJECT_CLASS
    - g_date_time_unref
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:260,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuX509CertificateClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: fu_x509_certificate_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_class_init(FuX509CertificateClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: fu_x509_certificate_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuX509Certificate
    signature: 'FuX509Certificate *

      fu_x509_certificate_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:36,1
    - Dst: FU_IS_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:36,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:37,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_hid_report_item_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_get_idx
    - FU_IS_HID_REPORT_ITEM
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuHidItemKind
    signature: FuHidItemKind fu_hid_report_item_get_kind(FuHidReportItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:43,1
    - Dst: FU_IS_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_hid_report_item_get_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HID_REPORT_ITEM
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_hid_report_item_get_value(FuHidReportItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:50,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:51,1
    - Dst: fu_hid_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:53,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:53,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: fu_hid_report_item_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - fu_hid_item_kind_to_string
    - fu_hid_report_item_get_kind
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_hid_report_item_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:63,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:69,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:73,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:74,1
    - Dst: fu_hid_item_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:74,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:78,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:81,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:90,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:93,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:98,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:102,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:111,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:114,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:119,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 121
    functionName: fu_hid_report_item_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_input_stream_read_u16
    - FU_HID_REPORT_ITEM
    - fu_input_stream_read_u32
    - fu_firmware_set_size
    - fu_hid_item_tag_to_string
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_input_stream_read_u8
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_report_item_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:127,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:127,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:128,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:131,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:134,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:135,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:138,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:139,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:142,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:143,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 148
    functionName: fu_hid_report_item_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - fu_firmware_get_idx
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_hid_report_item_write(FuFirmware *firmware, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:153,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:158,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:160,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:162,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:163,1
    - Dst: fu_hid_item_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:163,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:165,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:167,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:168,1
    - Dst: fu_hid_item_tag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:168,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:170,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 179
    functionName: fu_hid_report_item_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - FU_HID_REPORT_ITEM
    - fu_hid_item_tag_to_string
    - fu_hid_item_tag_from_string
    - fu_firmware_set_idx
    - xb_node_query_text
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_report_item_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:184,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: fu_hid_report_item_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_hid_report_item_init(FuHidReportItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidReportItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: fu_hid_report_item_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hid_report_item_class_init(FuHidReportItemClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: fu_hid_report_item_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuHidReportItem
    signature: 'FuHidReportItem *

      fu_hid_report_item_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:30,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:34,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:37,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:46,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:50,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:51,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:52,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:54,1
    - Dst: g_dbus_error_strip_remote_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:62,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:69,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:71,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:72,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:81,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:84,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:84,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: fu_common_get_block_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 3
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_variant_get
    - g_steal_pointer
    - g_variant_builder_init
    - g_prefix_error
    - g_dbus_error_strip_remote_error
    - g_variant_iter_next
    - g_autoptr
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - g_dbus_proxy_new_sync
    - g_bus_get_sync
    - g_variant_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_common_get_block_devices(GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:92,1
    - Dst: sysconf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: fu_common_get_memory_size_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_common_get_memory_size_impl(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:106,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:106,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:187,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:191,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:192,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:193,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:195,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:197,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:200,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 204
    functionName: fu_common_get_kernel_cmdline_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_hash_table_remove
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fu_kernel_get_cmdline
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline_impl(GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:210,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:213,1
    - Dst: g_file_query_file_type
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:217,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:219,1
    - Dst: g_file_info_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:226,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:228,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:228,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:229,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:231,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 250
    functionName: fu_common_get_olson_timezone_id_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_auto
    - g_file_query_info
    - g_file_new_for_path
    - g_file_query_file_type
    - g_strsplit
    - g_strdup_printf
    - g_set_error_literal
    - g_strv_length
    - g_autoptr
    - g_file_info_get_symlink_target
    - fu_path_from_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 595
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_X509_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:33,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:34,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:41,1
    - Dst: fu_efi_x509_signature_get_subject_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:46,1
    - Dst: fu_efi_x509_signature_get_subject_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:47,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:48,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:49,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:50,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:51,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:52,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:53,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:53,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:53,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:56,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:59,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:61,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:66,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:66,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:66,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 68
    functionName: fu_efi_x509_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_efi_x509_signature_get_subject_vendor
    - FU_EFI_X509_DEVICE
    - fu_device_build_vendor_id
    - fu_firmware_get_version_raw
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_device_build_instance_id
    - fu_device_set_logical_id
    - g_set_error_literal
    - fu_firmware_get_id
    - GET_PRIVATE
    - fu_device_add_instance_strsafe
    - fu_device_add_instance_strup
    - fu_device_set_version_raw
    - fu_efi_x509_signature_get_subject_name
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_x509_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:73,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: fu_efi_x509_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: fu_efi_x509_device_prepare_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_gtypes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_efi_x509_device_prepare_firmware(FuDevice *self,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:101,1
    - Dst: FU_IS_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:104,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:105,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:106,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:106,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:108,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:112,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:113,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:114,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:117,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:119,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:130,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:132,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:132,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:133,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:137,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:137,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 145
    functionName: fu_efi_x509_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_prefix_error
    - FuDeviceClass*::write_firmware
    - fu_firmware_get_images
    - FU_IS_EFI_VARIABLE_AUTHENTICATION2
    - FU_DEVICE_GET_CLASS
    - fu_progress_set_steps
    - fu_firmware_get_id
    - g_object_ref
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_step_done
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_x509_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:150,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:151,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:152,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:153,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:154,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:155,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: fu_efi_x509_device_set_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:162,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:163,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:164,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:165,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:166,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:167,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:168,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: fu_efi_x509_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_init(FuEfiX509Device *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_X509_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:175,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:176,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:178,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: fu_efi_x509_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_EFI_X509_DEVICE
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:185,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiX509DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: fu_efi_x509_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_class_init(FuEfiX509DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:209,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:210,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:212,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:212,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:213,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - sig
    argTypes:
    - FuContext*
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: fu_efi_x509_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - FU_IS_EFI_X509_SIGNATURE
    - g_object_new
    - GET_PRIVATE
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuEfiX509Device
    signature: 'FuEfiX509Device *

      fu_efi_x509_device_new(FuContext *ctx, FuEfiX509Signature *sig)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 598
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:49,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:50,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:51,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:52,1
    - Dst: fu_coff_subsystem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: fu_pefile_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coff_subsystem_to_string
    - GET_PRIVATE
    - FU_PEFILE_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_pe_dos_header_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: fu_pefile_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_pe_dos_header_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pefile_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    gsize offset,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:73,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:74,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - regions
    - name
    - offset
    - size
    argTypes:
    - GPtrArray*
    - gchar*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: fu_pefile_firmware_add_region
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_ptr_array_add
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_add_region(GPtrArray *regions, const gchar
      *name, gsize offset, gsize size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:83,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - FuPefileFirmwareRegion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: fu_pefile_firmware_region_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_region_free(FuPefileFirmwareRegion *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: fu_pefile_firmware_region_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_pefile_firmware_region_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:112,1
    - Dst: fu_struct_pe_coff_section_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:114,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:116,1
    - Dst: fu_struct_pe_coff_section_get_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:119,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:121,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:126,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:132,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:135,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:143,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:156,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:157,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:158,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:158,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:159,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:160,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:161,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:161,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:162,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:162,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:163,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:163,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:164,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:164,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:165,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:165,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:166,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:166,1
    - Dst: fu_csv_firmware_set_write_column_ids
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:167,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:167,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:168,1
    - Dst: fu_sbatlevel_section_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:169,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:171,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:173,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:174,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:177,1
    - Dst: fu_struct_pe_coff_section_get_pointer_to_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:178,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:180,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:183,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:184,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:185,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:187,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:188,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:191,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:192,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:194,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:197,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:198,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:203,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:206,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:210,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 8
    argNames:
    - firmware
    - stream
    - idx
    - hdr_offset
    - strtab_offset
    - regions
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - guint
    - gsize
    - gsize
    - GPtrArray*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 211
    functionName: fu_pefile_firmware_parse_section
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sbatlevel_section_new
    - g_prefix_error
    - fu_struct_pe_coff_section_get_virtual_size
    - fu_csv_firmware_new
    - g_debug
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_pefile_firmware_add_region
    - fu_strsafe
    - fu_struct_pe_coff_section_get_name
    - fu_struct_pe_coff_section_get_size_of_raw_data
    - g_steal_pointer
    - fu_linear_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    - FU_CSV_FIRMWARE
    - fu_firmware_new
    - fu_struct_pe_coff_section_parse_stream
    - fu_input_stream_read_safe
    - fu_strtoull
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - g_strdup_printf
    - fu_struct_pe_coff_section_get_pointer_to_raw_data
    - g_set_error_literal
    - fu_csv_firmware_add_column_id
    - fu_csv_firmware_set_write_column_ids
    - fu_firmware_set_idx
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pefile_firmware_parse_section(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t guint idx,\n\t\t\t\t gsize hdr_offset,\n\t\t\t\t
      gsize strtab_offset,\n\t\t\t\t GPtrArray *regions,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:219,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:229,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:229,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:232,1
    - Dst: fu_struct_pe_dos_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:238,1
    - Dst: fu_struct_pe_dos_header_get_lfanew
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:241,1
    - Dst: fu_struct_pe_coff_file_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:242,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:244,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:249,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:252,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:257,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:268,1
    - Dst: fu_struct_pe_coff_file_header_get_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:277,1
    - Dst: fu_struct_pe_coff_optional_header64_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:278,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:280,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_headers
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:285,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:286,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_headers
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:290,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_certificate_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:296,1
    - Dst: fu_struct_pe_coff_file_header_get_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:298,1
    - Dst: fu_struct_pe_coff_file_header_get_number_of_sections
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:302,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:304,1
    - Dst: fu_struct_pe_coff_file_header_get_pointer_to_symbol_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:310,1
    - Dst: fu_struct_pe_coff_file_header_get_number_of_symbols
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:311,1
    - Dst: fu_pefile_firmware_parse_section
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:324,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:331,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:335,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:337,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:346,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:350,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:355,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:357,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:360,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:361,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:362,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:365,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 371
    functionName: fu_pefile_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_pe_coff_file_header_get_pointer_to_symbol_table
    - g_prefix_error
    - fu_struct_pe_coff_file_header_get_number_of_symbols
    - FU_PEFILE_FIRMWARE
    - FU_PARTIAL_INPUT_STREAM
    - g_debug
    - g_ptr_array_sort
    - fu_struct_pe_coff_file_header_parse_stream
    - g_ptr_array_index
    - fu_composite_input_stream_new
    - fu_pefile_firmware_add_region
    - fu_struct_pe_coff_optional_header64_get_size_of_headers
    - fu_struct_pe_coff_optional_header64_get_size_of_certificate_table
    - fu_input_stream_compute_checksum
    - fu_pefile_firmware_parse_section
    - fu_struct_pe_coff_file_header_get_size_of_optional_header
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_composite_input_stream_add_partial_stream
    - fu_input_stream_read_safe
    - fu_struct_pe_dos_header_parse_stream
    - fu_partial_input_stream_new
    - fu_struct_pe_coff_optional_header64_parse_stream
    - FU_COMPOSITE_INPUT_STREAM
    - g_set_error_literal
    - GET_PRIVATE
    - fu_struct_pe_coff_file_header_get_number_of_sections
    - fu_input_stream_size
    - fu_struct_pe_dos_header_get_lfanew
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pefile_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:384,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:385,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - section
    argTypes:
    - FuPefileSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: fu_pefile_firmware_section_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_section_free(FuPefileSection *section)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:393,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:394,1
    - Dst: fu_struct_pe_dos_header_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:395,1
    - Dst: fu_struct_pe_coff_file_header_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:396,1
    - Dst: fu_struct_pe_coff_optional_header64_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:397,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:398,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:399,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:405,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:406,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:409,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:412,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:412,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:413,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:413,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:415,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:415,1
    - Dst: fu_struct_pe_coff_optional_header64_set_number_of_rva_and_sizes
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:419,1
    - Dst: fu_struct_pe_coff_file_header_set_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:422,1
    - Dst: fu_struct_pe_coff_file_header_set_number_of_sections
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:423,1
    - Dst: fu_struct_pe_coff_file_header_set_pointer_to_symbol_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:424,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:425,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:426,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:431,1
    - Dst: fu_struct_pe_coff_section_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:431,1
    - Dst: fu_struct_pe_coff_section_set_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:433,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:434,1
    - Dst: fu_struct_pe_coff_section_set_virtual_address
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:435,1
    - Dst: fu_struct_pe_coff_section_set_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:436,1
    - Dst: fu_struct_pe_coff_section_set_pointer_to_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:437,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:441,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:448,1
    - Dst: fu_struct_pe_coff_section_set_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:449,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:452,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:453,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:453,1
    - Dst: fu_struct_pe_coff_section_set_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:455,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:459,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:461,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:463,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:470,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:471,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:473,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:479,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:480,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:481,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:485,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 489
    functionName: fu_pefile_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_new0
    - fu_firmware_get_images
    - fu_struct_pe_coff_section_set_size_of_raw_data
    - fu_struct_pe_coff_optional_header64_set_number_of_rva_and_sizes
    - fu_struct_pe_dos_header_new
    - fu_firmware_get_id
    - g_set_error
    - fu_byte_array_append_bytes
    - g_ptr_array_index
    - fu_bytes_pad
    - fu_struct_pe_coff_section_set_name
    - g_steal_pointer
    - fu_struct_pe_coff_file_header_set_number_of_sections
    - fu_struct_pe_coff_section_set_pointer_to_raw_data
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_struct_pe_coff_file_header_set_pointer_to_symbol_table
    - g_ptr_array_add
    - g_byte_array_new
    - fu_firmware_write
    - fu_struct_pe_coff_file_header_new
    - g_bytes_get_size
    - g_strdup_printf
    - fu_struct_pe_coff_section_set_virtual_address
    - fu_struct_pe_coff_file_header_set_size_of_optional_header
    - fu_struct_pe_coff_optional_header64_new
    - g_strdup
    - fu_common_align_up
    - fu_struct_pe_coff_section_new
    - g_byte_array_append
    - fu_struct_pe_coff_section_set_virtual_size
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pefile_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:494,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:495,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:497,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:504,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 511
    functionName: fu_pefile_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - GET_PRIVATE
    - g_strdup
    - FU_PEFILE_FIRMWARE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pefile_firmware_get_checksum(FuFirmware *firmware, GChecksumType csum_kind,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:516,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPefileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: fu_pefile_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_init(FuPefileFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:522,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:523,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:524,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: fu_pefile_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    - FU_PEFILE_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:531,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPefileFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 539
    functionName: fu_pefile_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_class_init(FuPefileFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:551,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: fu_pefile_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_pefile_firmware_new(void)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:23,1
    - Dst: fu_context_get_fdt
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:33,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:36,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:39,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:39,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:42,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:43,1
    - Dst: fu_hwids_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:44,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:50,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:50,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:53,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:57,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:57,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:69,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:70,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:77,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:78,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:78,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:79,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:80,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:81,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:83,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:84,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:85,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:86,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:86,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:87,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:90,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:90,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:93,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:93,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:94,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:99,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:99,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:105,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:110,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:110,1
    - Dst: g_date_time_format
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:111,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:112,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:116,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:117,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:123,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:123,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:124,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:124,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:129,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:131,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 136
    functionName: fu_hwids_fdt_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_date_time_new_from_unix_utc
    - g_strv_length
    - fu_fdt_image_get_attr_str
    - fu_context_set_chassis_kind
    - fwupd_guid_hash_string
    - fu_context_get_chassis_kind
    - g_date_time_format
    - fu_context_get_fdt
    - fu_firmware_get_image_by_id
    - g_autoptr
    - fu_fdt_image_get_attr_strlist
    - fu_fdt_firmware_get_image_by_path
    - fu_hwids_add_guid
    - FU_FDT_IMAGE
    - g_strsplit
    - FU_FDT_FIRMWARE
    - fu_fdt_image_get_attr_u32
    - fu_hwids_add_value
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_fdt_setup(FuContext *ctx, FuHwids *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ARCHIVE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:41,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:43,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: fu_archive_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - FU_ARCHIVE
    - G_OBJECT_CLASS
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_archive_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuArchiveClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_archive_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_archive_class_init(FuArchiveClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuArchive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fu_archive_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_archive_init(FuArchive *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:74,1
    - Dst: FU_IS_ARCHIVE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:74,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:75,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:76,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:77,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:77,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fn
    - blob
    argTypes:
    - FuArchive*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: fu_archive_add_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_return_if_fail
    - g_strdup
    - FU_IS_ARCHIVE
    - g_bytes_ref
    linkageType: ''
    returnType: void
    signature: void fu_archive_add_entry(FuArchive *self, const gchar *fn, GBytes
      *blob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:97,1
    - Dst: FU_IS_ARCHIVE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:99,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:103,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuArchive*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: fu_archive_lookup_by_fn
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - FU_IS_ARCHIVE
    - g_bytes_ref
    - g_hash_table_lookup
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_archive_lookup_by_fn(FuArchive *self, const gchar *fn, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:132,1
    - Dst: FU_IS_ARCHIVE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:134,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:136,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:137,1
    - Dst: callback
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - callback
    - user_data
    - error
    argTypes:
    - FuArchive*
    - FuArchiveIterateFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: fu_archive_iterate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - g_hash_table_iter_init
    - FU_IS_ARCHIVE
    - g_hash_table_iter_next
    - g_return_val_if_fail
    - callback
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_archive_iterate(FuArchive *self,\n\t\t   FuArchiveIterateFunc
      callback,\n\t\t   gpointer user_data,\n\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: archive_read_close
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:151,1
    - Dst: archive_read_free
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arch
    argTypes:
    - _archive_read_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: fu_archive_read_ctx_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_read_free
    - archive_read_close
    linkageType: ''
    returnType: void
    signature: void fu_archive_read_ctx_free(_archive_read_ctx *arch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: archive_write_close
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:162,1
    - Dst: archive_write_free
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arch
    argTypes:
    - _archive_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: fu_archive_write_ctx_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_write_free
    - archive_write_close
    linkageType: ''
    returnType: void
    signature: void fu_archive_write_ctx_free(_archive_write_ctx *arch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: archive_entry_free
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - _archive_entry_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: fu_archive_entry_ctx_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_entry_free
    linkageType: ''
    returnType: void
    signature: void fu_archive_entry_ctx_free(_archive_entry_ctx *entry)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: archive_write_set_format_cpio
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:182,1
    - Dst: archive_write_set_format_shar
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:184,1
    - Dst: archive_write_set_format_pax_restricted
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:186,1
    - Dst: archive_write_set_format_ustar
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:188,1
    - Dst: archive_write_set_format_pax
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:190,1
    - Dst: archive_write_set_format_gnutar
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:192,1
    - Dst: archive_write_set_format_iso9660
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:194,1
    - Dst: archive_write_set_format_zip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:196,1
    - Dst: archive_write_set_format_ar_bsd
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:198,1
    - Dst: archive_write_set_format_ar_svr4
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:200,1
    - Dst: archive_write_set_format_mtree
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:202,1
    - Dst: archive_write_set_format_raw
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:204,1
    - Dst: archive_write_set_format_xar
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:206,1
    - Dst: archive_write_set_format_7zip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:208,1
    - Dst: archive_write_set_format_warc
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:210,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - arch
    - format
    argTypes:
    - _archive_write_ctx*
    - FuArchiveFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 211
    functionName: fu_archive_set_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_write_set_format_iso9660
    - archive_write_set_format_7zip
    - archive_write_set_format_pax
    - archive_write_set_format_raw
    - archive_write_set_format_gnutar
    - archive_write_set_format_ar_bsd
    - archive_write_set_format_cpio
    - archive_write_set_format_warc
    - archive_write_set_format_xar
    - archive_write_set_format_shar
    - archive_write_set_format_zip
    - archive_write_set_format_pax_restricted
    - archive_write_set_format_ustar
    - archive_write_set_format_mtree
    - archive_write_set_format_ar_svr4
    linkageType: ''
    returnType: void
    signature: void fu_archive_set_format(_archive_write_ctx *arch, FuArchiveFormat
      format)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: archive_write_add_filter_bzip2
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:217,1
    - Dst: archive_write_add_filter_compress
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:219,1
    - Dst: archive_write_add_filter_grzip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:221,1
    - Dst: archive_write_add_filter_gzip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:223,1
    - Dst: archive_write_add_filter_lrzip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:225,1
    - Dst: archive_write_add_filter_lz4
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:227,1
    - Dst: archive_write_add_filter_lzip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:229,1
    - Dst: archive_write_add_filter_lzma
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:231,1
    - Dst: archive_write_add_filter_lzop
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:233,1
    - Dst: archive_write_add_filter_uuencode
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:235,1
    - Dst: archive_write_add_filter_xz
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:237,1
    - Dst: archive_write_add_filter_zstd
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - arch
    - compression
    argTypes:
    - _archive_write_ctx*
    - FuArchiveCompression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 242
    functionName: fu_archive_set_compression
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_write_add_filter_lzip
    - archive_write_add_filter_bzip2
    - archive_write_add_filter_gzip
    - archive_write_add_filter_xz
    - archive_write_add_filter_lzma
    - archive_write_add_filter_compress
    - archive_write_add_filter_lzop
    - archive_write_add_filter_grzip
    - archive_write_add_filter_zstd
    - archive_write_add_filter_lrzip
    - archive_write_add_filter_uuencode
    - archive_write_add_filter_lz4
    linkageType: ''
    returnType: void
    signature: void fu_archive_set_compression(_archive_write_ctx *arch, FuArchiveCompression
      compression)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:247,1
    - Dst: archive_read_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:251,1
    - Dst: archive_read_support_format_all
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:257,1
    - Dst: archive_read_support_filter_all
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:258,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: fu_archive_read_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - archive_read_support_filter_all
    - archive_read_support_format_all
    - g_set_error_literal
    - archive_read_new
    - g_autoptr
    linkageType: ''
    returnType: _archive_read_ctx
    signature: '_archive_read_ctx *

      fu_archive_read_new(GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:273,1
    - Dst: archive_read_next_header
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:279,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:283,1
    - Dst: archive_entry_pathname
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:288,1
    - Dst: archive_entry_size_is_set
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:291,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:292,1
    - Dst: archive_entry_size
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:299,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:301,1
    - Dst: g_malloc
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:307,1
    - Dst: archive_read_data
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:310,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:314,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:318,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:327,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:329,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:331,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:332,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:332,1
    - Dst: fu_archive_add_entry
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:333,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - self
    - arch
    - flags
    - error
    argTypes:
    - FuArchive*
    - _archive_read_ctx*
    - FuArchiveFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 338
    functionName: fu_archive_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_entry_pathname
    - g_set_error
    - archive_read_next_header
    - g_debug
    - g_steal_pointer
    - archive_error_string
    - archive_entry_size_is_set
    - g_path_get_basename
    - g_malloc
    - g_bytes_new_take
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - archive_entry_size
    - archive_read_data
    - fu_archive_add_entry
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_archive_read(FuArchive *self, _archive_read_ctx *arch,
      FuArchiveFlags flags, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:359,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:359,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:365,1
    - Dst: fu_archive_read_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:367,1
    - Dst: archive_read_open_memory
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:370,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:371,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:372,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:374,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:378,1
    - Dst: fu_archive_read
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:381,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - data
    - flags
    - error
    argTypes:
    - GBytes*
    - FuArchiveFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 392
    functionName: fu_archive_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 1
    functionsReached:
    - g_bytes_get_data
    - g_set_error
    - g_steal_pointer
    - archive_error_string
    - g_bytes_get_size
    - archive_read_open_memory
    - g_object_new
    - fu_archive_read
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_archive_read_new
    linkageType: ''
    returnType: FuArchive
    signature: 'FuArchive *

      fu_archive_new(GBytes *data, FuArchiveFlags flags, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:405,1
    - Dst: g_input_stream_skip
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:407,1
    - Dst: archive_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - arch
    - client_data
    - request
    argTypes:
    - struct archive*
    - void*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 416
    functionName: fu_archive_skip_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - archive_set_error
    - g_input_stream_skip
    - g_autoptr
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_archive_skip_cb(struct archive *arch, void *client_data,
      off_t request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:423,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:425,1
    - Dst: archive_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arch
    - client_data
    - buffer
    argTypes:
    - struct archive*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 440
    functionName: fu_archive_read_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - archive_set_error
    - g_autoptr
    linkageType: ''
    returnType: gssize
    signature: gssize fu_archive_read_cb(struct archive *arch, void *client_data,
      const void **buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - whence
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: fu_archive_whence_to_seek_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GSeekType
    signature: GSeekType fu_archive_whence_to_seek_type(gint whence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:456,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:457,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:457,1
    - Dst: fu_archive_whence_to_seek_type
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:459,1
    - Dst: archive_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:462,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:468,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - arch
    - client_data
    - offset
    - whence
    argTypes:
    - struct archive*
    - void*
    - gint64
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 469
    functionName: fu_archive_seek_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - fu_archive_whence_to_seek_type
    - G_SEEKABLE
    - g_seekable_seek
    - g_autoptr
    - g_seekable_tell
    - archive_set_error
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_archive_seek_cb(struct archive *arch, void *client_data,
      gint64 offset, gint whence)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:488,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:488,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:489,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:493,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:494,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:496,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:496,1
    - Dst: fu_archive_read_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:499,1
    - Dst: archive_read_set_seek_callback
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:502,1
    - Dst: archive_read_set_read_callback
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:503,1
    - Dst: archive_read_set_skip_callback
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:504,1
    - Dst: archive_read_set_callback_data
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:505,1
    - Dst: archive_read_open1
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:508,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:512,1
    - Dst: fu_archive_read
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:517,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - stream
    - flags
    - error
    argTypes:
    - GInputStream*
    - FuArchiveFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 525
    functionName: fu_archive_new_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - G_SEEKABLE
    - g_steal_pointer
    - archive_read_set_callback_data
    - archive_error_string
    - g_seekable_seek
    - G_INPUT_STREAM
    - g_object_new
    - fu_archive_read
    - archive_read_set_read_callback
    - g_set_error_literal
    - g_autoptr
    - archive_read_set_skip_callback
    - archive_read_open1
    - g_return_val_if_fail
    - archive_read_set_seek_callback
    - fu_archive_read_new
    linkageType: ''
    returnType: FuArchive
    signature: 'FuArchive *

      fu_archive_new_stream(GInputStream *stream, FuArchiveFlags flags, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - arch
    - user_data
    - buf
    - bufsz
    argTypes:
    - struct archive*
    - void*
    - void*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: fu_archive_write_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: gssize
    signature: gssize fu_archive_write_cb(struct archive *arch, void *user_data, const
      void *buf, gsize bufsz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:559,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:560,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:562,1
    - Dst: FU_IS_ARCHIVE
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:562,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:565,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:570,1
    - Dst: archive_write_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:579,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:581,1
    - Dst: fu_archive_set_format
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:587,1
    - Dst: archive_write_set_options
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:590,1
    - Dst: fu_archive_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:592,1
    - Dst: archive_write_open
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:594,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:596,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:600,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:604,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:609,1
    - Dst: archive_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:611,1
    - Dst: archive_entry_set_pathname
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:612,1
    - Dst: archive_entry_set_filetype
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:613,1
    - Dst: archive_entry_set_perm
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:614,1
    - Dst: archive_entry_set_size
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:615,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:615,1
    - Dst: archive_write_header
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:617,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:619,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:623,1
    - Dst: archive_write_data
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:626,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:627,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:628,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:630,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:634,1
    - Dst: archive_write_close
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:639,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:641,1
    - Dst: archive_error_string
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:645,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:650,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive.c:652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - self
    - format
    - compression
    - error
    argTypes:
    - FuArchive*
    - FuArchiveFormat
    - FuArchiveCompression
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 658
    functionName: fu_archive_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive.c
    functionUses: 1
    functionsReached:
    - archive_error_string
    - archive_entry_new
    - fu_archive_set_format
    - archive_write_header
    - FU_IS_ARCHIVE
    - g_return_val_if_fail
    - g_hash_table_get_keys
    - g_set_error
    - archive_entry_set_filetype
    - archive_write_open
    - archive_write_data
    - archive_entry_set_perm
    - archive_entry_set_pathname
    - g_steal_pointer
    - g_autoptr
    - archive_write_set_options
    - g_byte_array_new
    - g_bytes_get_data
    - g_bytes_get_size
    - archive_write_new
    - g_set_error_literal
    - fu_archive_set_compression
    - archive_write_close
    - archive_entry_set_size
    - g_hash_table_lookup
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_archive_write(FuArchive *self,\n\t\t FuArchiveFormat
      format,\n\t\t FuArchiveCompression compression,\n\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:15,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:16,1
    - Dst: g_option_context_new
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:17,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:23,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:24,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:30,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:33,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:33,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:34,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:36,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:36,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:37,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:39,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:42,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:43,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:43,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:43,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:45,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:45,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:46,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-gcab.c
    functionUses: 3
    functionsReached:
    - fu_firmware_set_id
    - fu_cab_firmware_new
    - g_option_context_new
    - fu_firmware_add_image
    - g_file_new_for_path
    - g_path_get_basename
    - g_printerr
    - FU_FIRMWARE
    - fu_cab_image_new
    - g_option_context_add_main_entries
    - g_autoptr
    - fu_bytes_get_contents
    - fu_firmware_write_file
    - fu_firmware_set_bytes
    - g_option_context_parse
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - self
    - type
    - length
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: fu_smbios_get_item_for_type_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_debug
    linkageType: ''
    returnType: FuSmbiosItem
    signature: 'FuSmbiosItem *

      fu_smbios_get_item_for_type_length(FuSmbios *self, guint8 type, guint8 length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:78,1
    - Dst: fu_struct_smbios_structure_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:81,1
    - Dst: fu_struct_smbios_structure_get_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:84,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:86,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:94,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:103,1
    - Dst: fu_struct_smbios_structure_get_type
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:104,1
    - Dst: fu_struct_smbios_structure_get_handle
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:105,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:106,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:107,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:108,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:109,1
    - Dst: fu_strdup
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:125,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:125,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 142
    functionName: fu_smbios_setup_from_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_byte_array_sized_new
    - fu_struct_smbios_structure_get_length
    - g_new0
    - fu_strdup
    - g_string_free
    - fu_struct_smbios_structure_get_handle
    - fu_smbios_get_item_for_type_length
    - g_ptr_array_new_with_free_func
    - fu_struct_smbios_structure_parse
    - g_set_error_literal
    - g_autoptr
    - fu_struct_smbios_structure_get_type
    - g_byte_array_append
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_setup_from_data(FuSmbios *self, const guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:162,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:163,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:164,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:167,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuSmbios*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: fu_smbios_setup_from_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 1
    functionsReached:
    - FU_IS_SMBIOS
    - g_return_val_if_fail
    - g_file_get_contents
    - fu_smbios_setup_from_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_setup_from_file(FuSmbios *self, const gchar *filename,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:178,1
    - Dst: fu_struct_smbios_ep32_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:187,1
    - Dst: fu_struct_smbios_ep32_get_intermediate_anchor_str
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:195,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:196,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:207,1
    - Dst: fu_struct_smbios_ep32_get_structure_table_len
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:213,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:214,1
    - Dst: fu_struct_smbios_ep32_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:215,1
    - Dst: fu_struct_smbios_ep32_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:216,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:217,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:217,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:218,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:219,1
    - Dst: fu_struct_smbios_ep32_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:220,1
    - Dst: fu_struct_smbios_ep32_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 223
    functionName: fu_smbios_parse_ep32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_smbios_ep32_parse
    - fu_struct_smbios_ep32_get_structure_table_len
    - fu_struct_smbios_ep32_get_intermediate_anchor_str
    - fu_struct_smbios_ep32_get_smbios_major_ver
    - g_strdup_printf
    - fu_struct_smbios_ep32_get_smbios_minor_ver
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_firmware_set_version_raw
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_parse_ep32(FuSmbios *self, const guint8 *buf, gsize
      bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:230,1
    - Dst: fu_struct_smbios_ep64_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:233,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:239,1
    - Dst: fu_struct_smbios_ep64_get_structure_table_len
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:245,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:246,1
    - Dst: fu_struct_smbios_ep64_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:247,1
    - Dst: fu_struct_smbios_ep64_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:248,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:249,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 251
    functionName: fu_smbios_parse_ep64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_struct_smbios_ep64_parse
    - fu_struct_smbios_ep64_get_smbios_minor_ver
    - g_strdup_printf
    - fu_firmware_set_version
    - FU_FIRMWARE
    - fu_struct_smbios_ep64_get_structure_table_len
    - g_set_error_literal
    - g_autoptr
    - fu_struct_smbios_ep64_get_smbios_major_ver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_parse_ep64(FuSmbios *self, const guint8 *buf, gsize
      bufsz, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:274,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:274,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:276,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:279,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:280,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:287,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:298,1
    - Dst: fu_smbios_parse_ep32
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:299,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:301,1
    - Dst: fu_smbios_parse_ep64
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:302,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:306,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:315,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:316,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:321,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuSmbios*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 333
    functionName: fu_smbios_setup_from_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_get_contents
    - fu_smbios_parse_ep32
    - g_build_filename
    - fu_smbios_parse_ep64
    - FU_IS_SMBIOS
    - fu_smbios_setup_from_data
    - memcmp
    - g_strndup
    - g_return_val_if_fail
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_setup_from_path(FuSmbios *self, const gchar *path,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:342,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:343,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:346,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:347,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 350
    functionName: fu_smbios_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - FU_SMBIOS
    - g_bytes_get_size
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_bytes_get_data
    - fu_smbios_setup_from_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_smbios_parse(FuFirmware *firmware,\n\t\tGInputStream *stream,\n\t\tFuFirmwareParseFlags
      flags,\n\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemFirmwareTable
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:378,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:380,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:388,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:395,1
    - Dst: GetSystemFirmwareTable
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:396,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:398,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:402,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:412,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:414,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:414,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:415,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:418,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:419,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:420,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:421,1
    - Dst: fu_smbios_setup_from_path
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:428,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:429,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:430,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:430,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:433,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSmbios*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 439
    functionName: fu_smbios_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - GetSystemFirmwareTable
    - g_set_error
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_build_filename
    - g_malloc0
    - FU_IS_SMBIOS
    - g_set_error_literal
    - fu_path_from_kind
    - fu_smbios_setup_from_path
    - g_propagate_error
    - g_autoptr
    - g_file_test
    - g_return_val_if_fail
    - GetLastError
    - fu_smbios_setup_from_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_setup(FuSmbios *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:444,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:448,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:448,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:449,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:450,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:451,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:452,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:453,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:455,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:456,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:457,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: fu_smbios_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_to_string
    - g_strdup_printf
    - g_ptr_array_index
    - g_autoptr
    - fu_xmlb_builder_insert_kx
    - xb_builder_node_insert
    - fu_strsafe
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert_text
    - FU_SMBIOS
    linkageType: ''
    returnType: void
    signature: void fu_smbios_export(FuFirmware *firmware, FuFirmwareExportFlags flags,
      XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:479,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:481,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:485,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:492,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:492,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:495,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:502,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - self
    - type
    - length
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 503
    functionName: fu_smbios_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_IS_SMBIOS
    - g_ptr_array_index
    - g_autoptr
    - g_bytes_new
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_smbios_get_data(FuSmbios *self, guint8 type, guint8 length, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:527,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:527,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:528,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:531,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:533,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - type
    - length
    - offset
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 553
    functionName: fu_smbios_get_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - FU_IS_SMBIOS
    - g_set_error
    - g_return_val_if_fail
    - fu_smbios_get_item_for_type_length
    linkageType: ''
    returnType: guint
    signature: guint fu_smbios_get_integer(FuSmbios *self, guint8 type, guint8 length,
      guint8 offset, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:577,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:577,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:578,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:581,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:583,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:593,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:601,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:607,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:614,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - self
    - type
    - length
    - offset
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 615
    functionName: fu_smbios_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_smbios_get_item_for_type_length
    - FU_IS_SMBIOS
    - g_ptr_array_index
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_smbios_get_string(FuSmbios *self, guint8 type, guint8 length, guint8 offset,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:620,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:621,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuSmbiosItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: fu_smbios_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_ptr_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_smbios_item_free(FuSmbiosItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:628,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:629,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: fu_smbios_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_SMBIOS
    linkageType: ''
    returnType: void
    signature: void fu_smbios_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:636,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSmbiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 641
    functionName: fu_smbios_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_smbios_class_init(FuSmbiosClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: fu_smbios_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_smbios_init(FuSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:662,1
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: fu_smbios_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 1
    functionsReached:
    - FU_SMBIOS
    - g_object_new
    linkageType: ''
    returnType: FuSmbios
    signature: 'FuSmbios *

      fu_smbios_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 602
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: fu_plugin_is_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_is_open(FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:117,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:117,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:118,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: fu_plugin_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 12
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - FWUPD_PLUGIN
    - fwupd_plugin_get_name
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_get_name(FuPlugin *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:133,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:135,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:135,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:138,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:138,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:138,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:139,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:142,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:142,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:143,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:144,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:144,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:147,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: fu_plugin_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 5
    functionsReached:
    - fwupd_plugin_set_name
    - g_debug
    - FU_IS_PLUGIN
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_PLUGIN
    - g_critical
    - g_strcmp0
    - fwupd_plugin_get_name
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_name(FuPlugin *self, const gchar *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:153,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:154,1
    - Dst: FU_PLUGIN_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: fu_plugin_get_vfuncs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - FU_PLUGIN_GET_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: FuPluginVfuncs
    signature: 'FuPluginVfuncs *

      fu_plugin_get_vfuncs(FuPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:174,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:174,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:175,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: fu_plugin_cache_lookup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_PLUGIN
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_plugin_cache_lookup(FuPlugin *self, const gchar *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:194,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:195,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:195,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:196,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:197,1
    - Dst: G_IS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:197,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:199,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:204,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:204,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - id
    - dev
    argTypes:
    - FuPlugin*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: fu_plugin_cache_add
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_object_ref
    - FU_IS_PLUGIN
    - g_hash_table_new_full
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_IS_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_plugin_cache_add(FuPlugin *self, const gchar *id, gpointer
      dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:219,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:220,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:220,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:221,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:225,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: fu_plugin_cache_remove
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - g_debug
    - FU_IS_PLUGIN
    - g_hash_table_remove
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_cache_remove(FuPlugin *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:242,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:243,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: fu_plugin_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_PLUGIN
    linkageType: ''
    returnType: FuPluginData
    signature: 'FuPluginData *

      fu_plugin_get_data(FuPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:262,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:262,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:264,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - data_sz
    argTypes:
    - FuPlugin*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: fu_plugin_alloc_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_PLUGIN
    - g_malloc0
    - g_critical
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuPluginData
    signature: 'FuPluginData *

      fu_plugin_alloc_data(FuPlugin *self, gsize data_sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:286,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:289,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:289,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: fu_plugin_guess_name_from_fn
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_strdelimit
    - g_strstr_len
    - g_strdup
    - strlen
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_guess_name_from_fn(const gchar *filename)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:309,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:313,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:314,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:315,1
    - Dst: g_module_open
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:319,1
    - Dst: g_module_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:324,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:325,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:326,1
    - Dst: g_module_symbol
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:331,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:333,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:338,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:339,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:344,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:345,1
    - Dst: init_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:346,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:349,1
    - Dst: fu_plugin_guess_name_from_fn
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:350,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:351,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:356,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:357,1
    - Dst: FuPluginVfuncs*::load
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 362
    functionName: fu_plugin_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - init_vfuncs
    - g_set_error
    - fu_plugin_get_name
    - fu_plugin_guess_name_from_fn
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_context
    - fu_plugin_add_flag
    - GET_PRIVATE
    - fu_plugin_set_name
    - g_return_val_if_fail
    - g_module_error
    - g_module_symbol
    - g_module_open
    - FuPluginVfuncs*::load
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_open(FuPlugin *self, const gchar *filename, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:377,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:378,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:380,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:380,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:381,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:384,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:384,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:385,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:386,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:388,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:391,1
    - Dst: FuPluginVfuncs*::to_string
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: fu_plugin_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - fwupd_codec_string_append_int
    - FWUPD_CODEC
    - g_return_if_fail
    - GET_PRIVATE
    - FuPluginVfuncs*::to_string
    - fwupd_codec_add_string
    - g_type_name
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_string(FuPlugin *self, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:412,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:412,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:413,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:413,1
    - Dst: fu_plugin_add_string
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:414,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:415,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: fu_plugin_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_string
    - g_string_new
    - FU_IS_PLUGIN
    - g_steal_pointer
    - g_string_free
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_to_string(FuPlugin *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:422,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:424,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:426,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:428,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:430,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:432,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:434,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: fu_plugin_build_device_update_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_build_device_update_error(FuPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:444,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: fu_plugin_ensure_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_ensure_devices(FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:453,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:454,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:455,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - child
    - self
    argTypes:
    - FuDevice*
    - FuDevice*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: fu_plugin_device_child_added_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_plugin_device_add
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_child_added_cb(FuDevice *device, FuDevice *child,
      FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:462,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:463,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:464,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - child
    - self
    argTypes:
    - FuDevice*
    - FuDevice*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: fu_plugin_device_child_removed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_remove
    - g_debug
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_child_removed_cb(FuDevice *device, FuDevice *child,
      FuPlugin *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:484,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:486,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:486,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:487,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:487,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:490,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:493,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:494,1
    - Dst: fu_plugin_ensure_devices
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:499,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:500,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:500,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:503,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:504,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:505,1
    - Dst: fu_plugin_build_device_update_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:507,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:509,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:515,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:515,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:515,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:516,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:517,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:517,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:518,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:518,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:519,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:522,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:524,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:525,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:526,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:530,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:532,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:534,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 538
    functionName: fu_plugin_device_add
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - fu_device_get_id
    - g_signal_connect
    - FU_IS_DEVICE
    - g_object_ref
    - fu_plugin_has_flag
    - g_debug
    - fu_device_get_created_usec
    - fu_device_inhibit
    - g_return_if_fail
    - g_ptr_array_index
    - fu_device_convert_instance_ids
    - fu_device_set_plugin
    - G_CALLBACK
    - g_signal_emit
    - fu_device_get_children
    - FU_IS_PLUGIN
    - fu_plugin_device_add
    - fu_device_ensure_id
    - g_autoptr
    - fu_plugin_build_device_update_error
    - g_ptr_array_add
    - g_warning
    - fu_plugin_get_name
    - g_get_real_time
    - fu_device_set_created_usec
    - fu_plugin_ensure_devices
    - GET_PRIVATE
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_add(FuPlugin *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:555,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:555,1
    - Dst: fu_plugin_ensure_devices
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: fu_plugin_get_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_plugin_ensure_devices
    - GET_PRIVATE
    - FU_IS_PLUGIN
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_plugin_get_devices(FuPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:577,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:579,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:579,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:580,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:580,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:583,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:584,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:588,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:589,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:590,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: fu_plugin_device_register
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_warning
    - fu_plugin_get_name
    - g_debug
    - g_signal_emit
    - FU_IS_PLUGIN
    - fu_device_ensure_id
    - g_return_if_fail
    - g_autoptr
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_register(FuPlugin *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:606,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:608,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:608,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:609,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:609,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:611,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:611,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:611,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:612,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: fu_plugin_device_remove
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - g_signal_emit
    - g_debug
    - FU_IS_PLUGIN
    - g_ptr_array_remove
    - g_return_if_fail
    - GET_PRIVATE
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_remove(FuPlugin *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: fu_plugin_check_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_check_supported(FuPlugin *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: fu_plugin_get_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_plugin_get_context(FuPlugin *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:668,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:669,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:669,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:670,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:670,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:672,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:673,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - ctx
    argTypes:
    - FuPlugin*
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 674
    functionName: fu_plugin_set_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_PLUGIN
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_set_object
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_context(FuPlugin *self, FuContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:679,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:681,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:684,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 688
    functionName: fu_plugin_device_attach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy_with_fallback
    - fu_device_attach_full
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_device_attach(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:693,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:695,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:698,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: fu_plugin_device_detach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy_with_fallback
    - g_autoptr
    - fu_device_detach_full
    - FU_DEVICE_GET_CLASS
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_device_detach(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:707,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:709,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:712,1
    - Dst: fu_device_activate
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 716
    functionName: fu_plugin_device_activate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy_with_fallback
    - fu_device_activate
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_device_activate(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:726,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:727,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:729,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:731,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:737,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:743,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:744,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:745,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:746,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:748,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:748,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:750,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:753,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:754,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:754,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:755,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:758,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:759,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:759,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:762,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:763,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:765,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:767,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:771,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 6
    argNames:
    - self
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 776
    functionName: fu_plugin_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_has_flag
    - fu_device_get_id
    - fu_path_from_kind
    - fu_progress_get_child
    - fu_device_get_version
    - fu_device_write_firmware
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_dump_firmware
    - fu_progress_set_id
    - fu_progress_step_done
    - g_build_filename
    - g_autoptr
    - fu_device_locker_new
    - fu_bytes_set_contents
    - fu_device_get_proxy_with_fallback
    - g_strdup_printf
    - fu_device_get_serial
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_device_write_firmware(FuPlugin *self,\n\t\t\t\tFuDevice
      *device,\n\t\t\t\tFuFirmware *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:782,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:783,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:786,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:787,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:789,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 793
    functionName: fu_plugin_device_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_error_matches
    - fu_device_get_results
    - g_propagate_error
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_device_get_results(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:801,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:802,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:804,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:806,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:809,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:811,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:813,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:814,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:815,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:816,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:819,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:821,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:822,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:823,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:824,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:829,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:830,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 833
    functionName: fu_plugin_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy_with_fallback
    - fu_firmware_write
    - fu_device_attach_full
    - g_debug
    - g_prefix_error
    - g_compute_checksum_for_bytes
    - g_autoptr
    - fu_device_detach_full
    - fu_device_locker_new
    - fu_device_add_checksum
    - fu_device_read_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_device_read_firmware(FuPlugin *self,\n\t\t\t       FuDevice
      *device,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:849,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:852,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:852,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:855,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:855,1
    - Dst: fu_plugin_runner_init
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:858,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:861,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:866,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:866,1
    - Dst: FuPluginVfuncs*::startup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:867,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:869,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:870,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:871,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:876,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:877,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 886
    functionName: fu_plugin_runner_startup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 5
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - FuPluginVfuncs*::startup
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_set_error_literal
    - g_critical
    - fu_plugin_runner_init
    - g_autoptr
    - g_return_val_if_fail
    - fu_progress_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_startup(FuPlugin *self, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:903,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:905,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:905,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:908,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:908,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:909,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:911,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:916,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:916,1
    - Dst: FuPluginVfuncs*::ready
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:917,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:919,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:919,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:920,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:925,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:926,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 934
    functionName: fu_plugin_runner_ready
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_propagate_prefixed_error
    - g_steal_pointer
    - fu_plugin_add_flag
    - g_set_error_literal
    - g_critical
    - g_autoptr
    - g_return_val_if_fail
    - FuPluginVfuncs*::ready
    - fu_progress_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_ready(FuPlugin *self, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:947,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:948,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:950,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:950,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:957,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:962,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:962,1
    - Dst: FuPluginVfuncs*::constructed
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:963,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 966
    functionName: fu_plugin_runner_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_return_if_fail
    - FuPluginVfuncs*::constructed
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_plugin_runner_init(FuPlugin *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:975,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:978,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:984,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:984,1
    - Dst: device_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:985,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:987,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:988,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:990,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:995,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:996,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - device
    - symbol_name
    - device_func
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gchar*
    - FuPluginDeviceFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 1003
    functionName: fu_plugin_runner_device_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - device_func
    - g_set_error_literal
    - g_critical
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_device_generic(FuPlugin *self,\n\t\t\t\tFuDevice
      *device,\n\t\t\t\tconst gchar *symbol_name,\n\t\t\t\tFuPluginDeviceFunc device_func,\n\t\t\t\tGError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1013,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1016,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1022,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1022,1
    - Dst: device_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1023,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1025,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1026,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1028,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1033,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1034,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - self
    - device
    - progress
    - symbol_name
    - device_func
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - gchar*
    - FuPluginDeviceProgressFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1041
    functionName: fu_plugin_runner_device_generic_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - device_func
    - g_set_error_literal
    - g_critical
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_device_generic_progress(FuPlugin *self,\n\t\t\t\t\t
      FuDevice *device,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t const gchar
      *symbol_name,\n\t\t\t\t\t FuPluginDeviceProgressFunc device_func,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1052,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1055,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1061,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1061,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1062,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1064,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1065,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1067,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1072,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1073,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - self
    - device
    - progress
    - flags
    - symbol_name
    - func
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - gchar*
    - FuPluginFlaggedDeviceFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1080
    functionName: fu_plugin_runner_flagged_device_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - func
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_set_error_literal
    - g_critical
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_flagged_device_generic(FuPlugin *self,\n\t\t\t\t\tFuDevice
      *device,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tconst
      gchar *symbol_name,\n\t\t\t\t\tFuPluginFlaggedDeviceFunc func,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1089,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1092,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1098,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1098,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1099,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1101,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1104,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1109,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1110,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - devices
    - symbol_name
    - func
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - gchar*
    - FuPluginDeviceArrayFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1117
    functionName: fu_plugin_runner_device_array_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - func
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_set_error_literal
    - g_critical
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_device_array_generic(FuPlugin *self,\n\t\t\t\t
      \     GPtrArray *devices,\n\t\t\t\t      const gchar *symbol_name,\n\t\t\t\t
      \     FuPluginDeviceArrayFunc func,\n\t\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1134,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1135,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1136,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1138,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1138,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1141,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1141,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1144,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1148,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1154,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1154,1
    - Dst: FuPluginVfuncs*::coldplug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1155,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1157,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1157,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1158,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1166,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1167,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1168,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1169,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1173,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1179
    functionName: fu_plugin_runner_coldplug
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 4
    functionsReached:
    - FuPluginVfuncs*::coldplug
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_warning
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_ptr_array_index
    - g_set_error_literal
    - fu_plugin_device_remove
    - GET_PRIVATE
    - g_critical
    - g_autoptr
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_progress_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_coldplug(FuPlugin *self, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1196,1
    - Dst: fu_plugin_runner_device_array_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1202
    functionName: fu_plugin_runner_composite_prepare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_device_array_generic
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_composite_prepare(FuPlugin *self, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1219,1
    - Dst: fu_plugin_runner_device_array_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1225
    functionName: fu_plugin_runner_composite_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_device_array_generic
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_composite_cleanup(FuPlugin *self, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1248,1
    - Dst: fu_plugin_runner_flagged_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1256
    functionName: fu_plugin_runner_prepare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_flagged_device_generic
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_prepare(FuPlugin *self,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1279,1
    - Dst: fu_plugin_runner_flagged_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1272
    functionDepth: 3
    functionLinenumber: 1272
    functionLinenumberEnd: 1287
    functionName: fu_plugin_runner_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_flagged_device_generic
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_cleanup(FuPlugin *self,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1305,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1302
    functionDepth: 3
    functionLinenumber: 1302
    functionLinenumberEnd: 1313
    functionName: fu_plugin_runner_attach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_runner_device_generic_progress
    - fu_plugin_get_vfuncs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_attach(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1331,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1328
    functionDepth: 3
    functionLinenumber: 1328
    functionLinenumberEnd: 1339
    functionName: fu_plugin_runner_detach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_runner_device_generic_progress
    - fu_plugin_get_vfuncs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_detach(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1356,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1357,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1360,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1364,1
    - Dst: fu_device_reload
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1368
    functionName: fu_plugin_runner_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_device_get_proxy_with_fallback
    - fu_plugin_has_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_device_reload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_reload(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1385,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1388,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1392,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1392,1
    - Dst: FuPluginVfuncs*::reboot_cleanup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1394
    functionName: fu_plugin_runner_reboot_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::reboot_cleanup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_reboot_cleanup(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1408,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1413,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1413,1
    - Dst: FuPluginVfuncs*::add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1415
    functionName: fu_plugin_runner_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::add_security_attrs
    linkageType: ''
    returnType: void
    signature: void fu_plugin_runner_add_security_attrs(FuPlugin *self, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1436,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1438,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1438,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1442,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1446,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1452,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - device_gtype
    argTypes:
    - FuPlugin*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1454
    functionName: fu_plugin_add_device_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_PLUGIN
    - g_array_new
    - g_array_append_val
    - g_return_if_fail
    - GET_PRIVATE
    - g_array_index
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_device_gtype(FuPlugin *self, GType device_gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1470,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1472
    functionName: fu_plugin_get_device_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_PLUGIN
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_plugin_get_device_gtypes(FuPlugin *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1490,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1492,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1492,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1499
    functionName: fu_plugin_get_device_gtype_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_array_index
    - GET_PRIVATE
    - FU_IS_PLUGIN
    linkageType: ''
    returnType: GType
    signature: GType fu_plugin_get_device_gtype_default(FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1517,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1519,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1519,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - device_gtype
    argTypes:
    - FuPlugin*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1523
    functionName: fu_plugin_set_device_gtype_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - GET_PRIVATE
    - FU_IS_PLUGIN
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_device_gtype_default(FuPlugin *self, GType device_gtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1528,1
    - Dst: g_ascii_islower
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1530,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1530,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1531,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1535,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1536,1
    - Dst: g_ascii_tolower
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1536,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1525
    functionDepth: 0
    functionLinenumber: 1525
    functionLinenumberEnd: 1539
    functionName: fu_plugin_string_uncamelcase
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_ascii_tolower
    - g_string_new
    - g_ascii_islower
    - g_string_free
    - g_string_append_c
    - g_ascii_isdigit
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_string_uncamelcase(const gchar *str)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1547,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1550,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1552,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1554,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1556,1
    - Dst: fu_kernel_check_version
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1563
    functionName: fu_plugin_check_amdgpu_dpaux
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_auto
    - g_str_has_prefix
    - g_strsplit
    - fu_kernel_check_version
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_check_amdgpu_dpaux(FuPlugin *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1580,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1582,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1582,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1583,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1587,1
    - Dst: fu_plugin_check_amdgpu_dpaux
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1588,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1589,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1590,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1591,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1597,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1577
    functionDepth: 3
    functionLinenumber: 1577
    functionLinenumberEnd: 1598
    functionName: fu_plugin_add_device_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_plugin_get_name
    - fu_plugin_check_amdgpu_dpaux
    - FU_IS_PLUGIN
    - g_return_if_fail
    - fu_plugin_add_flag
    - GET_PRIVATE
    - g_autoptr
    - g_strcmp0
    - fu_context_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_device_udev_subsystem(FuPlugin *self, const gchar
      *subsystem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1614,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1616,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1616,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1617,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1621
    functionName: fu_plugin_add_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_add_udev_subsystem
    - GET_PRIVATE
    - FU_IS_PLUGIN
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_udev_subsystem(FuPlugin *self, const gchar *subsystem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1639,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1642,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1644,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1644,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1644,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1645,1
    - Dst: g_string_erase
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1646,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1647,1
    - Dst: fu_plugin_string_uncamelcase
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1648,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - id
    - gtype
    argTypes:
    - FuPlugin*
    - gchar*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1651
    functionName: fu_plugin_add_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_add_firmware_gtype
    - g_string_new
    - g_str_has_prefix
    - g_string_replace
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_type_name
    - g_string_erase
    - fu_plugin_string_uncamelcase
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_firmware_gtype(FuPlugin *self, const gchar *id,
      GType gtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1656,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1658,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1659,1
    - Dst: fu_plugin_check_supported
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1653
    functionDepth: 3
    functionLinenumber: 1653
    functionLinenumberEnd: 1664
    functionName: fu_plugin_check_supported_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fwupd_guid_hash_string
    - fu_device_get_instance_ids
    - fu_plugin_check_supported
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_check_supported_device(FuPlugin *self, FuDevice
      *device)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1673,1
    - Dst: fu_device_get_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1674,1
    - Dst: fu_device_get_proxy_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1675,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1676,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1677,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1680,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1681,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1682,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1683,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1684,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1688,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1691,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1691,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1693,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1695,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1696,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1696,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1698,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1705,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1713,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1714,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1718,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1719,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1720,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1721,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1722,1
    - Dst: fu_plugin_runner_device_created
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1726,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1728,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1732,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1733,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1735,1
    - Dst: fu_plugin_check_supported_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1736,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1737,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1738,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1739,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1740,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1748,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1749,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1752,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1754,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1757,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1760,1
    - Dst: fu_plugin_runner_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1761,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1762,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1666
    functionDepth: 4
    functionLinenumber: 1666
    functionLinenumberEnd: 1764
    functionName: fu_plugin_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_device_added
    - g_string_new
    - fu_device_set_proxy
    - fu_device_get_specialized_gtype
    - g_object_new
    - fu_device_probe
    - fu_plugin_check_supported_device
    - g_array_index
    - g_string_append
    - fu_device_get_proxy_gtype
    - g_set_error
    - fu_device_get_proxy
    - fu_device_add_private_flag
    - fu_plugin_get_device_gtype_default
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - g_type_name
    - fu_progress_finished
    - fu_plugin_runner_device_created
    - fu_device_convert_instance_ids
    - g_info
    - fu_device_incorporate
    - fu_progress_step_done
    - fu_plugin_device_add
    - fu_strjoin
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_guids
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_backend_device_added(FuPlugin *self,\n\t\t\t       FuDevice
      *device,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1785,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1786,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1787,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1789,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1790,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1790,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1791,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1791,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1792,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1795,1
    - Dst: fu_device_get_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1801,1
    - Dst: fu_plugin_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1802,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1804,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1810,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1810,1
    - Dst: FuPluginVfuncs*::backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1811,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1813,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1814,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1815,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1820,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1821,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1779
    functionDepth: 5
    functionLinenumber: 1779
    functionLinenumberEnd: 1827
    functionName: fu_plugin_runner_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_propagate_prefixed_error
    - FU_IS_PROGRESS
    - g_steal_pointer
    - fu_device_get_specialized_gtype
    - fu_plugin_backend_device_added
    - g_set_error_literal
    - GET_PRIVATE
    - FuPluginVfuncs*::backend_device_added
    - g_autoptr
    - g_critical
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_backend_device_added(FuPlugin *self,\n\t\t\t\t
      \     FuDevice *device,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1844,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1845,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1847,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1847,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1848,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1849,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1852,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1858,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1858,1
    - Dst: FuPluginVfuncs*::backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1859,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1861,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1862,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1863,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1868,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1869,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1841
    functionDepth: 2
    functionLinenumber: 1841
    functionLinenumberEnd: 1875
    functionName: fu_plugin_runner_backend_device_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - FuPluginVfuncs*::backend_device_changed
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_set_error_literal
    - g_critical
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_backend_device_changed(FuPlugin *self, FuDevice
      *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1889,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1892,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1898,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1898,1
    - Dst: FuPluginVfuncs*::device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1886
    functionDepth: 2
    functionLinenumber: 1886
    functionLinenumberEnd: 1900
    functionName: fu_plugin_runner_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::device_added
    linkageType: ''
    returnType: void
    signature: void fu_plugin_runner_device_added(FuPlugin *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1914,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1915,1
    - Dst: fu_plugin_runner_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1917,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1911
    functionDepth: 3
    functionLinenumber: 1911
    functionLinenumberEnd: 1923
    functionName: fu_plugin_runner_device_removed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_warning
    - fu_plugin_runner_device_generic
    - fu_plugin_get_vfuncs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_runner_device_removed(FuPlugin *self, FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1937,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1940,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1945,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1945,1
    - Dst: FuPluginVfuncs*::device_registered
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1934
    functionDepth: 2
    functionLinenumber: 1934
    functionLinenumberEnd: 1948
    functionName: fu_plugin_runner_device_register
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::device_registered
    linkageType: ''
    returnType: void
    signature: void fu_plugin_runner_device_register(FuPlugin *self, FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1965,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1967,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1967,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1968,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1968,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1969,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1972,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1978,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1978,1
    - Dst: FuPluginVfuncs*::device_created
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1962
    functionDepth: 2
    functionLinenumber: 1962
    functionLinenumberEnd: 1980
    functionName: fu_plugin_runner_device_created
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_return_val_if_fail
    - FuPluginVfuncs*::device_created
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_device_created(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2005,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2007,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2007,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2008,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2008,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2009,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2010,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2013,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2018,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2019,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2023,1
    - Dst: fu_plugin_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2026,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2030,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2031,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2034,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2044,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2044,1
    - Dst: FuPluginVfuncs*::verify
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2045,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2046,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2048,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2048,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2049,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2054,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2055,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2057,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2059,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2066,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2073,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FuPluginVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1996
    functionDepth: 3
    functionLinenumber: 1996
    functionLinenumberEnd: 2084
    functionName: fu_plugin_runner_verify
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - FU_IS_PROGRESS
    - fu_plugin_runner_device_generic_progress
    - fu_device_has_flag
    - fu_device_get_id
    - fu_device_get_checksums
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - g_set_error
    - fu_plugin_device_read_firmware
    - g_debug
    - g_propagate_prefixed_error
    - g_critical
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_steal_pointer
    - g_autoptr
    - g_warning
    - fu_plugin_get_name
    - FuPluginVfuncs*::verify
    - g_set_error_literal
    - g_ptr_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_verify(FuPlugin *self,\n\t\t\tFuDevice *device,\n\t\t\tFuProgress
      *progress,\n\t\t\tFuPluginVerifyFlags flags,\n\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2105,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2106,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2106,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2107,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2108,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2111,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2113,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2117,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2122,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2132,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2133,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2099
    functionDepth: 3
    functionLinenumber: 2099
    functionLinenumberEnd: 2135
    functionName: fu_plugin_runner_activate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - FU_IS_PROGRESS
    - fu_plugin_runner_device_generic_progress
    - g_get_real_time
    - fu_device_get_flags
    - fu_device_set_modified_usec
    - fu_device_remove_flag
    - fu_device_get_id
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_activate(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2152,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2155,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2156,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2157,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2160,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2162,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2166,1
    - Dst: fu_plugin_runner_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2171,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2179,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2180,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2182
    functionName: fu_plugin_runner_unlock
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_get_real_time
    - fu_device_get_flags
    - fu_device_set_modified_usec
    - fu_device_remove_flag
    - fu_plugin_runner_device_generic
    - fu_device_get_id
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_unlock(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2208,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2210,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2211,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2212,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2213,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2214,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2217,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2218,1
    - Dst: FuPluginVfuncs*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2224,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2227,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2229,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2235,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2236,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2236,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2240,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2240,1
    - Dst: fu_plugin_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2241,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2250,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2251,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2252,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - self
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2199
    functionDepth: 2
    functionLinenumber: 2199
    functionLinenumberEnd: 2258
    functionName: fu_plugin_runner_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_PROGRESS
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_get_checksums
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - g_debug
    - FU_IS_FIRMWARE
    - FuPluginVfuncs*::write_firmware
    - g_critical
    - fu_plugin_device_write_firmware
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_steal_pointer
    - g_autoptr
    - fu_plugin_get_name
    - fu_device_set_update_error
    - g_set_error_literal
    - g_ptr_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_write_firmware(FuPlugin *self,\n\t\t\t\tFuDevice
      *device,\n\t\t\t\tFuFirmware *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2275,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2278,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2279,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2280,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2283,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2289,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2289,1
    - Dst: FuPluginVfuncs*::clear_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2290,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2292,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2293,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2294,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2299,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2300,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2272
    functionDepth: 2
    functionLinenumber: 2272
    functionLinenumberEnd: 2306
    functionName: fu_plugin_runner_clear_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_propagate_prefixed_error
    - g_steal_pointer
    - FuPluginVfuncs*::clear_results
    - g_set_error_literal
    - g_critical
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_clear_results(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2323,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2324,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2326,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2327,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2328,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2331,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2336,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2336,1
    - Dst: fu_plugin_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2337,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2339,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2339,1
    - Dst: FuPluginVfuncs*::get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2340,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2342,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2343,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2344,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2350,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2320
    functionDepth: 2
    functionLinenumber: 2320
    functionLinenumberEnd: 2356
    functionName: fu_plugin_runner_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - fu_plugin_device_get_results
    - g_propagate_prefixed_error
    - g_steal_pointer
    - FuPluginVfuncs*::get_results
    - g_set_error_literal
    - g_critical
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_get_results(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2373,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2375,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2375,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2376,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2379,1
    - Dst: FuPluginVfuncs*::fix_host_security_attr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2370
    functionDepth: 2
    functionLinenumber: 2370
    functionLinenumberEnd: 2386
    functionName: fu_plugin_runner_fix_host_security_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_set_error_literal
    - g_return_val_if_fail
    - FuPluginVfuncs*::fix_host_security_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_fix_host_security_attr(FuPlugin *self, FwupdSecurityAttr
      *attr, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2405,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2405,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2406,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2409,1
    - Dst: FuPluginVfuncs*::undo_host_security_attr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2400
    functionDepth: 2
    functionLinenumber: 2400
    functionLinenumberEnd: 2416
    functionName: fu_plugin_runner_undo_host_security_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - FU_IS_PLUGIN
    - g_set_error_literal
    - g_return_val_if_fail
    - FuPluginVfuncs*::undo_host_security_attr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_undo_host_security_attr(FuPlugin *self, FwupdSecurityAttr
      *attr, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2434,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2438,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2446,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2446,1
    - Dst: FuPluginVfuncs*::modify_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2431
    functionDepth: 2
    functionLinenumber: 2431
    functionLinenumberEnd: 2448
    functionName: fu_plugin_runner_modify_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::modify_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_runner_modify_config(FuPlugin *self, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2461
    functionDepth: 0
    functionLinenumber: 2461
    functionLinenumberEnd: 2466
    functionName: fu_plugin_get_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: guint
    signature: guint fu_plugin_get_order(FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - FuPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2483
    functionName: fu_plugin_set_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_order(FuPlugin *self, guint order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2500
    functionName: fu_plugin_get_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: guint
    signature: guint fu_plugin_get_priority(FuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2516
    functionName: fu_plugin_set_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_priority(FuPlugin *self, guint priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2536,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2538,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2539,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2539,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - rule
    - name
    argTypes:
    - FuPlugin*
    - FuPluginRule
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2541
    functionName: fu_plugin_add_rule
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_signal_emit
    - fu_plugin_get_instance_private
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_rule(FuPlugin *self, FuPluginRule rule, const gchar
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2558,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - rule
    argTypes:
    - FuPlugin*
    - FuPluginRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2555
    functionDepth: 0
    functionLinenumber: 2555
    functionLinenumberEnd: 2561
    functionName: fu_plugin_get_rules
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 4
    functionsReached:
    - fu_plugin_get_instance_private
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_plugin_get_rules(FuPlugin *self, FuPluginRule rule)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2580,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2583,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2585,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2585,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2577
    functionDepth: 0
    functionLinenumber: 2577
    functionLinenumberEnd: 2586
    functionName: fu_plugin_add_report_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_plugin_get_instance_private
    - g_hash_table_new_full
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_report_metadata(FuPlugin *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2603
    functionName: fu_plugin_get_report_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_plugin_get_report_metadata(FuPlugin *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2617,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2618,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2621,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2621,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2622,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2625,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2628,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2630,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2634
    functionName: fu_plugin_get_config_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_get_instance_private
    - fu_config_get_value
    - FU_IS_PLUGIN
    - g_critical
    - fu_context_get_config
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_get_config_value(FuPlugin *self, const gchar *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2649,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2650,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2653,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2653,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2654,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2657,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2660,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2662,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2646
    functionDepth: 2
    functionLinenumber: 2646
    functionLinenumberEnd: 2666
    functionName: fu_plugin_set_config_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_get_instance_private
    - FU_IS_PLUGIN
    - g_return_if_fail
    - g_critical
    - fu_context_get_config
    - fu_config_set_default
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_config_default(FuPlugin *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2682,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2683,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2685,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2685,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2686,1
    - Dst: fu_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2688,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2689,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2689,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2679
    functionDepth: 2
    functionLinenumber: 2679
    functionLinenumberEnd: 2691
    functionName: fu_plugin_security_attr_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_security_attr_new
    - fu_plugin_get_instance_private
    - fu_plugin_get_name
    - FU_IS_PLUGIN
    - g_steal_pointer
    - fwupd_security_attr_set_plugin
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_plugin_security_attr_new(FuPlugin *self, const gchar *appstream_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2709,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2713,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2713,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2715,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2718,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2724,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2726,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2706
    functionDepth: 2
    functionLinenumber: 2706
    functionLinenumberEnd: 2730
    functionName: fu_plugin_set_config_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 8
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_get_instance_private
    - FU_IS_PLUGIN
    - g_set_error_literal
    - fu_context_get_config
    - g_critical
    - g_return_val_if_fail
    - fu_config_set_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_set_config_value(FuPlugin *self, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2746,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2747,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2750,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2750,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2751,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2754,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2760,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2762,1
    - Dst: fu_config_reset_defaults
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2743
    functionDepth: 2
    functionLinenumber: 2743
    functionLinenumberEnd: 2766
    functionName: fu_plugin_reset_config_values
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 10
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_get_instance_private
    - FU_IS_PLUGIN
    - fu_config_reset_defaults
    - g_set_error_literal
    - fu_context_get_config
    - g_critical
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_reset_config_values(FuPlugin *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2782,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2783,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2786,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2786,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2787,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2790,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2793,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2795,1
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2779
    functionDepth: 2
    functionLinenumber: 2779
    functionLinenumberEnd: 2799
    functionName: fu_plugin_get_config_value_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - fu_plugin_get_instance_private
    - FU_IS_PLUGIN
    - fu_config_get_value_bool
    - g_critical
    - fu_context_get_config
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_get_config_value_boolean(FuPlugin *self, const gchar
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2815,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2815,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin1
    - plugin2
    argTypes:
    - FuPlugin*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2812
    functionDepth: 2
    functionLinenumber: 2812
    functionLinenumberEnd: 2816
    functionName: fu_plugin_name_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_plugin_get_name
    linkageType: ''
    returnType: gint
    signature: gint fu_plugin_name_compare(FuPlugin *plugin1, FuPlugin *plugin2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2832,1
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2833,1
    - Dst: fu_plugin_name_compare
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin1
    - plugin2
    argTypes:
    - FuPlugin*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2829
    functionDepth: 3
    functionLinenumber: 2829
    functionLinenumberEnd: 2839
    functionName: fu_plugin_order_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_instance_private
    - fu_plugin_name_compare
    linkageType: ''
    returnType: gint
    signature: gint fu_plugin_order_compare(FuPlugin *plugin1, FuPlugin *plugin2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2844,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2845,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2846,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2846,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2848,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2849,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2849,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2852,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2853,1
    - Dst: g_ascii_isupper
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2858,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2860,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2861,1
    - Dst: g_ascii_tolower
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2861,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2863,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2868,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2868,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2841
    functionDepth: 0
    functionLinenumber: 2841
    functionLinenumberEnd: 2869
    functionName: fu_plugin_convert_gtype_to_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_ascii_tolower
    - g_string_new
    - g_str_has_prefix
    - strlen
    - g_steal_pointer
    - g_string_free
    - g_ascii_isupper
    - g_string_append_c
    - g_str_has_suffix
    - g_autoptr
    - g_type_name
    - g_strdup
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_plugin_convert_gtype_to_name(GType gtype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2874,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2875,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2878,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2871
    functionDepth: 0
    functionLinenumber: 2871
    functionLinenumberEnd: 2884
    functionName: fu_plugin_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_PLUGIN
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_plugin_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2889,1
    - Dst: fu_plugin_set_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2892,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2892,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2886
    functionDepth: 1
    functionLinenumber: 2886
    functionLinenumberEnd: 2898
    functionName: fu_plugin_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_value_get_object
    - FU_PLUGIN
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_plugin_set_context
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2903,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2904,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2907,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2909,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2910,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2900
    functionDepth: 0
    functionLinenumber: 2900
    functionLinenumberEnd: 2913
    functionName: fu_plugin_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - G_OBJECT_CLASS
    - g_ptr_array_set_size
    - GET_PRIVATE
    - FU_PLUGIN
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_plugin_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2918,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2935,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2936,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2938,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2955,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2956,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2958,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2975,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2976,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2978,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2998,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2999,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3001,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3008,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3009,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3011,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3025,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 3031
    functionName: fu_plugin_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    - G_STRUCT_OFFSET
    linkageType: ''
    returnType: void
    signature: void fu_plugin_class_init(FuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3033
    functionDepth: 0
    functionLinenumber: 3033
    functionLinenumberEnd: 3038
    functionName: fu_plugin_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_init(FuPlugin *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3043,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3044,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3045,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3049,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3049,1
    - Dst: FuPluginVfuncs*::finalize
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3050,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3050,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3055,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3058,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3060,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3062,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3064,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3066,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3068,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3070,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3071,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3073,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3040
    functionDepth: 2
    functionLinenumber: 3040
    functionLinenumberEnd: 3074
    functionName: fu_plugin_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - g_ptr_array_unref
    - g_debug
    - fu_plugin_get_vfuncs
    - g_object_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - FuPluginVfuncs*::finalize
    - GET_PRIVATE
    - G_OBJECT
    - g_array_unref
    - g_free
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_plugin_finalize(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3091,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3091,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3093,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3094,1
    - Dst: fu_plugin_convert_gtype_to_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3095,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gtype
    - ctx
    argTypes:
    - GType
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3085
    functionDepth: 2
    functionLinenumber: 3085
    functionLinenumberEnd: 3099
    functionName: fu_plugin_new_from_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 12
    functionsReached:
    - fu_plugin_get_name
    - FU_IS_CONTEXT
    - fu_plugin_convert_gtype_to_name
    - g_object_new
    - fu_plugin_set_name
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_plugin_new_from_gtype(GType gtype, FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3112,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3112,1
    - Dst: fu_plugin_set_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3116
    functionName: fu_plugin_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 6
    functionsReached:
    - fu_plugin_set_context
    - FU_PLUGIN
    - g_object_new
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_plugin_new(FuContext *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:55,1
    - Dst: FuDeviceEventBlob*::data_destroy
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:57,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - blob
    argTypes:
    - FuDeviceEventBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: fu_device_event_blob_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_free
    - FuDeviceEventBlob*::data_destroy
    linkageType: ''
    returnType: void
    signature: void fu_device_event_blob_free(FuDeviceEventBlob *blob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:64,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:73,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:74,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - gtype
    - key
    - data
    - data_destroy
    argTypes:
    - GType
    - gchar*
    - gpointer
    - GDestroyNotify
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: fu_device_event_blob_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_strcmp0
    - G_N_ELEMENTS
    - g_strdup
    linkageType: ''
    returnType: FuDeviceEventBlob
    signature: 'FuDeviceEventBlob *

      fu_device_event_blob_new(GType gtype, const gchar *key, gpointer data, GDestroyNotify
      data_destroy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:104,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:105,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:107,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:111,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:111,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:112,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:113,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:115,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: fu_device_event_build_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - strlen
    - g_steal_pointer
    - g_checksum_get_digest
    - g_string_free
    - g_string_append_c
    - g_checksum_update
    - g_checksum_new
    - g_autoptr
    - g_return_val_if_fail
    - g_string_sized_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_event_build_id(const gchar *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:133,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: fu_device_event_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE_EVENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_event_get_id(FuDeviceEvent *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:150,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:150,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:151,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:152,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:153,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: fu_device_event_set_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 2
    functionsReached:
    - fu_device_event_blob_new
    - g_return_if_fail
    - g_strdup
    - FU_IS_DEVICE_EVENT
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_str(FuDeviceEvent *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:169,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:169,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:170,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:172,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:174,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: fu_device_event_set_i64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_blob_new
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_ptr_array_add
    - g_memdup2
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_i64(FuDeviceEvent *self, const gchar *key,
      gint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:190,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:190,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:191,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:192,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:193,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:194,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:197,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:197,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: fu_device_event_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_blob_new
    - g_bytes_get_size
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_base64_encode
    - g_ptr_array_add
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_bytes(FuDeviceEvent *self, const gchar *key,
      GBytes *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:215,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:215,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:216,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:217,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:219,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - key
    - buf
    - bufsz
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: fu_device_event_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_blob_new
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_base64_encode
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_data(FuDeviceEvent *self, const gchar *key,
      const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:234,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:234,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:235,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:236,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:237,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceEvent*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: fu_device_event_set_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_set_str
    - FU_IS_DEVICE_EVENT
    - fu_device_event_set_i64
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_error(FuDeviceEvent *self, const GError *error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:258,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:258,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:265,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:268,1
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:270,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceEvent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 275
    functionName: fu_device_event_check_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_get_str
    - fu_device_event_get_i64
    - g_set_error_literal
    - FU_IS_DEVICE_EVENT
    - g_return_val_if_fail
    - fwupd_error_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_event_check_error(FuDeviceEvent *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:284,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:290,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - self
    - key
    - gtype
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 302
    functionName: fu_device_event_lookup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    - g_set_error
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_device_event_lookup(FuDeviceEvent *self, const gchar *key,
      GType gtype, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:319,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:319,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:321,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: fu_device_event_get_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 3
    functionsReached:
    - fu_device_event_lookup
    - g_return_val_if_fail
    - FU_IS_DEVICE_EVENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_event_get_str(FuDeviceEvent *self, const gchar *key, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:341,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:343,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: fu_device_event_get_i64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - fu_device_event_lookup
    - g_return_val_if_fail
    - FU_IS_DEVICE_EVENT
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_device_event_get_i64(FuDeviceEvent *self, const gchar *key,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:369,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:369,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:371,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:373,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:377,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:378,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:379,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: fu_device_event_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_base64_decode
    - g_steal_pointer
    - g_bytes_new_take
    - fu_device_event_lookup
    - FU_IS_DEVICE_EVENT
    - g_bytes_new
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_device_event_get_bytes(FuDeviceEvent *self, const gchar *key, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:409,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:409,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:410,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:411,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:413,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:416,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - self
    - key
    - buf
    - bufsz
    - actual_length
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 422
    functionName: fu_device_event_copy_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_base64_decode
    - fu_memcpy_safe
    - fu_device_event_lookup
    - FU_IS_DEVICE_EVENT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_event_copy_data(FuDeviceEvent *self,\n\t\t\t  const
      gchar *key,\n\t\t\t  guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  gsize *actual_length,\n\t\t\t
      \ GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:427,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:430,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:431,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:433,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:434,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:438,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:440,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:441,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:443,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:444,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:446,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 449
    functionName: fu_device_event_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_DEVICE_EVENT
    - g_ptr_array_index
    - json_builder_add_int_value
    - json_builder_set_member_name
    - g_type_name
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fu_device_event_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:454,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:454,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:455,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:457,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:458,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:461,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:462,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:464,1
    - Dst: fu_device_event_build_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDeviceEvent*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: fu_device_event_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - g_return_if_fail
    - g_clear_pointer
    - g_strdup
    - FU_IS_DEVICE_EVENT
    - fu_device_event_build_id
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_id(FuDeviceEvent *self, const gchar *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:472,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:475,1
    - Dst: json_object_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:478,1
    - Dst: json_object_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:479,1
    - Dst: JSON_NODE_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:481,1
    - Dst: json_node_get_value_type
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:483,1
    - Dst: json_node_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:485,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:486,1
    - Dst: fu_device_event_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:487,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:489,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:492,1
    - Dst: json_node_get_int
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:492,1
    - Dst: json_node_init_null
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 501
    functionName: fu_device_event_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - json_node_get_string
    - fu_device_event_set_str
    - json_node_get_value_type
    - json_node_init_null
    - json_node_get_int
    - JSON_NODE_TYPE
    - fu_device_event_set_i64
    - FU_DEVICE_EVENT
    - json_object_iter_init
    - fu_device_event_set_id
    - json_node_get_object
    - g_strcmp0
    - json_object_iter_next
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_event_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: fu_device_event_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_device_event_init(FuDeviceEvent *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:512,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:513,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:514,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:515,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: fu_device_event_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_EVENT
    - g_ptr_array_unref
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_event_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceEventClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: fu_device_event_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_event_class_init(FuDeviceEventClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: fu_device_event_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_device_event_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:544,1
    - Dst: fu_device_event_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:546,1
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: fu_device_event_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_EVENT
    - fu_device_event_set_id
    - g_object_new
    linkageType: ''
    returnType: FuDeviceEvent
    signature: 'FuDeviceEvent *

      fu_device_event_new(const gchar *id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:40,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:44,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:45,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:51,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:55,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:57,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:59,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:61,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:63,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: fu_usb_endpoint_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - json_object_get_int_member_with_default
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_node_get_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_endpoint_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:74,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:78,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:79,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:82,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:83,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:86,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:87,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:90,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:91,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:94,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:95,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:98,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 101
    functionName: fu_usb_endpoint_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - json_builder_add_int_value
    - json_builder_set_member_name
    linkageType: ''
    returnType: void
    signature: void fu_usb_endpoint_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:116,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: fu_usb_endpoint_get_maximum_packet_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_ENDPOINT
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_usb_endpoint_get_maximum_packet_size(FuUsbEndpoint *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:133,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: fu_usb_endpoint_get_polling_interval
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_ENDPOINT
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_endpoint_get_polling_interval(FuUsbEndpoint *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:150,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: fu_usb_endpoint_get_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_ENDPOINT
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_endpoint_get_address(FuUsbEndpoint *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:167,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: fu_usb_endpoint_get_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_ENDPOINT
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_endpoint_get_number(FuUsbEndpoint *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:184,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: fu_usb_endpoint_get_direction
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_ENDPOINT
    linkageType: ''
    returnType: FuUsbDirection
    signature: FuUsbDirection fu_usb_endpoint_get_direction(FuUsbEndpoint *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:197,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:200,1
    - Dst: fu_usb_endpoint_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:204,1
    - Dst: fu_usb_endpoint_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:207,1
    - Dst: fu_usb_endpoint_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:208,1
    - Dst: fu_usb_endpoint_hdr_get_endpoint_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:209,1
    - Dst: fu_usb_endpoint_hdr_get_attributes
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:210,1
    - Dst: fu_usb_endpoint_hdr_get_max_packet_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:211,1
    - Dst: fu_usb_endpoint_hdr_get_interval
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: fu_usb_endpoint_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - fu_usb_endpoint_hdr_get_descriptor_type
    - fu_usb_endpoint_hdr_parse_stream
    - fu_usb_endpoint_hdr_get_interval
    - FU_FIRMWARE_CLASS
    - fu_usb_endpoint_hdr_get_length
    - fu_usb_endpoint_hdr_get_endpoint_address
    - g_autoptr
    - fu_usb_endpoint_hdr_get_attributes
    - fu_usb_endpoint_hdr_get_max_packet_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_endpoint_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: fu_usb_endpoint_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_endpoint_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: fu_usb_endpoint_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_endpoint_init(FuUsbEndpoint *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbEndpointClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: fu_usb_endpoint_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_endpoint_class_init(FuUsbEndpointClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:249,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:252,1
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - endpoint_descriptor
    argTypes:
    - struct libusb_endpoint_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: fu_usb_endpoint_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FU_USB_ENDPOINT
    - g_object_new
    linkageType: ''
    returnType: FuUsbEndpoint
    signature: 'FuUsbEndpoint *

      fu_usb_endpoint_new(const struct libusb_endpoint_descriptor *endpoint_descriptor)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:28,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:28,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:29,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:29,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:30,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: fu_hid_report_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_hid_report_init(FuHidReport *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidReportClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: fu_hid_report_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_hid_report_class_init(FuHidReportClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: fu_hid_report_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuHidReport
    signature: 'FuHidReport *

      fu_hid_report_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:37,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:39,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:39,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:40,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:43,1
    - Dst: FuEfivarsClass*::supported
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: fu_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FuEfivarsClass*::supported
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_supported(FuEfivars *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:65,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:67,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:68,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:73,1
    - Dst: FuEfivarsClass*::delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: fu_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FuEfivarsClass*::delete
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_delete(FuEfivars *self, const gchar *guid, const
      gchar *name, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:100,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:100,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:101,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:106,1
    - Dst: FuEfivarsClass*::delete_with_glob
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: fu_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FuEfivarsClass*::delete_with_glob
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_delete_with_glob(FuEfivars *self,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name_glob,\n\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:127,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:129,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:130,1
    - Dst: FuEfivarsClass*::exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: fu_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS_GET_CLASS
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - FuEfivarsClass*::exists
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_exists(FuEfivars *self, const gchar *guid, const
      gchar *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:164,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:165,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:166,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:167,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:170,1
    - Dst: FuEfivarsClass*::get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - self
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: fu_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FuEfivarsClass*::get_data
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_get_data(FuEfivars *self,\n\t\t    const gchar
      *guid,\n\t\t    const gchar *name,\n\t\t    guint8 **data,\n\t\t    gsize *data_sz,\n\t\t
      \   guint32 *attr,\n\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:200,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:202,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:203,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:205,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - guid
    - name
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 208
    functionName: fu_efivars_get_data_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_bytes_new_take
    - g_return_val_if_fail
    - fu_efivars_get_data
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_efivars_get_data_bytes(FuEfivars *self,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  guint32 *attr,\n\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:228,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:228,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:233,1
    - Dst: FuEfivarsClass*::get_names
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: fu_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - FuEfivarsClass*::get_names
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efivars_get_names(FuEfivars *self, const gchar *guid, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:255,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:257,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:259,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:262,1
    - Dst: FuEfivarsClass*::get_monitor
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: fu_efivars_get_monitor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FU_EFIVARS_GET_CLASS
    - FuEfivarsClass*::get_monitor
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: GFileMonitor
    signature: 'GFileMonitor *

      fu_efivars_get_monitor(FuEfivars *self, const gchar *guid, const gchar *name,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:285,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:285,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:286,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:289,1
    - Dst: FuEfivarsClass*::space_used
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: fu_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - FuEfivarsClass*::space_used
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_efivars_space_used(FuEfivars *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:309,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:311,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:311,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:312,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:315,1
    - Dst: FuEfivarsClass*::space_free
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 319
    functionName: fu_efivars_space_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - FuEfivarsClass*::space_free
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_efivars_space_free(FuEfivars *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:348,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:352,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:355,1
    - Dst: FuEfivarsClass*::set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - self
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 359
    functionName: fu_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - FuEfivarsClass*::set_data
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_set_data(FuEfivars *self,\n\t\t    const gchar
      *guid,\n\t\t    const gchar *name,\n\t\t    const guint8 *data,\n\t\t    gsize
      sz,\n\t\t    guint32 attr,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:387,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:389,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:391,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:393,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - self
    - guid
    - name
    - bytes
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GBytes*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: fu_efivars_set_data_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_return_val_if_fail
    - fu_efivars_set_data
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_set_data_bytes(FuEfivars *self,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  GBytes *bytes,\n\t\t\t  guint32
      attr,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:415,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:415,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:416,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:418,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:425,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - enabled
    - error
    argTypes:
    - FuEfivars*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 445
    functionName: fu_efivars_get_secure_boot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - fu_efivars_get_data
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_get_secure_boot(FuEfivars *self, gboolean *enabled,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:454,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:454,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:455,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - enabled
    - error
    argTypes:
    - FuEfivars*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 463
    functionName: fu_efivars_set_secure_boot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_set_data
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_secure_boot(FuEfivars *self, gboolean enabled,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:483,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:483,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:484,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:486,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:495,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 503
    functionName: fu_efivars_get_boot_next
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 3
    functionsReached:
    - fu_efivars_get_data
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_get_boot_next(FuEfivars *self, guint16 *idx, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:521,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:521,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:522,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:523,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 533
    functionName: fu_efivars_set_boot_next
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_set_data
    - g_return_val_if_fail
    - fu_memwrite_uint16
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_boot_next(FuEfivars *self, guint16 idx, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:553,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:553,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:554,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:565,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 573
    functionName: fu_efivars_get_boot_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - fu_efivars_get_data
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_get_boot_current(FuEfivars *self, guint16 *idx,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:583,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:584,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:586,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: fu_efivars_set_boot_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_set_data
    - g_return_val_if_fail
    - fu_memwrite_uint16
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_boot_current(FuEfivars *self, guint16 idx,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:612,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:612,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:614,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:614,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:615,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:617,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:626,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:630,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:631,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 636
    functionName: fu_efivars_get_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_get_data
    - g_steal_pointer
    - g_array_new
    - g_array_append_val
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - fu_memread_uint16
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_efivars_get_boot_order(FuEfivars *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:653,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:653,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:655,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:655,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:657,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:660,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:661,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - order
    - error
    argTypes:
    - FuEfivars*
    - GArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 672
    functionName: fu_efivars_set_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_efivars_set_data
    - g_byte_array_new
    - g_autoptr
    - g_return_val_if_fail
    - g_array_index
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_boot_order(FuEfivars *self, GArray *order,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:681,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:681,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:683,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:683,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:684,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:686,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:688,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:691,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:693,1
    - Dst: fu_efivars_set_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 697
    functionName: fu_efivars_build_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - va_end
    - g_array_new
    - g_array_append_val
    - fu_efivars_set_boot_order
    - va_start
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - va_arg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_build_boot_order(FuEfivars *self, GError **error,
      ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:724,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:724,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:725,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:726,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:727,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:727,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:728,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:731,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:731,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:732,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:732,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:734,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:735,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:738,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:740,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:746,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:748,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:748,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:749,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:749,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:750,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:750,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:751,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:752,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:753,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:754,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:758,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:761,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:762,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:764,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:764,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:764,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:765,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:765,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:765,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:767,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:767,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:768,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:768,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:768,1
    - Dst: fu_efivars_set_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 6
    argNames:
    - self
    - idx
    - volume
    - name
    - target
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - FuVolume*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 770
    functionName: fu_efivars_create_boot_entry_for_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_set_boot_entry
    - fu_efi_load_option_new
    - FU_FIRMWARE
    - fu_efi_file_path_device_path_new
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_efi_device_path_list_new
    - g_file_query_exists
    - fu_firmware_write_file
    - fu_pefile_firmware_new
    - fu_firmware_set_bytes
    - g_file_new_build_filename
    - fu_firmware_add_image
    - fu_efi_file_path_device_path_set_name
    - g_autoptr
    - g_bytes_new_static
    - fu_firmware_new
    - FU_IS_EFIVARS
    - fu_firmware_set_id
    - fu_efi_hard_drive_device_path_new_from_volume
    - fu_volume_get_mount_point
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_create_boot_entry_for_volume(FuEfivars *self,\n\t\t\t\t\tguint16
      idx,\n\t\t\t\t\tFuVolume *volume,\n\t\t\t\t\tconst gchar *name,\n\t\t\t\t\tconst
      gchar *target,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:787,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:788,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:788,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:789,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 791
    functionName: fu_efivars_get_boot_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - FU_IS_EFIVARS
    - g_return_val_if_fail
    - fu_efivars_get_data_bytes
    - g_strdup_printf
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_efivars_get_boot_data(FuEfivars *self, guint16 idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:810,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:810,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:811,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:814,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - idx
    - blob
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 823
    functionName: fu_efivars_set_boot_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    - fu_efivars_delete
    - fu_efivars_set_data_bytes
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_boot_data(FuEfivars *self, guint16 idx, GBytes
      *blob, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:840,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:841,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:841,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:844,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:845,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:848,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:851,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:851,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:857,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:857,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 859
    functionName: fu_efivars_get_boot_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_steal_pointer
    - fu_efi_load_option_new
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_efivars_get_data_bytes
    - g_autoptr
    - fu_firmware_set_idx
    - g_return_val_if_fail
    - fu_firmware_parse_bytes
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: FuEfiLoadOption
    signature: 'FuEfiLoadOption *

      fu_efivars_get_boot_entry(FuEfivars *self, guint16 idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:877,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:879,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:879,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:880,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:881,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:883,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:883,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - idx
    - entry
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 887
    functionName: fu_efivars_set_boot_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - fu_firmware_write
    - fu_efivars_set_boot_data
    - FU_FIRMWARE
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - FU_IS_EFI_LOAD_OPTION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_set_boot_entry(FuEfivars *self, guint16 idx, FuEfiLoadOption
      *entry, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:903,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:904,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:904,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:906,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:906,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:907,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:909,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:913,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:914,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:916,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:918,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:921,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:921,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 926
    functionName: fu_efivars_get_boot_entries
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - fu_efivars_get_boot_order
    - g_steal_pointer
    - g_prefix_error
    - fu_efivars_get_boot_entry
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_array_index
    - g_ptr_array_add
    - FU_IS_EFIVARS
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efivars_get_boot_entries(FuEfivars *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 931
    functionName: fu_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efivars_init(FuEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 936
    functionName: fu_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efivars_class_init(FuEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:45,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fu_msgpack_item_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: FuMsgpackItemKind
    signature: FuMsgpackItemKind fu_msgpack_item_get_kind(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:62,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:62,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: fu_msgpack_item_get_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_get_boolean(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:80,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_msgpack_item_get_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_msgpack_item_get_integer(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:98,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fu_msgpack_item_get_float
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_msgpack_item_get_float(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:116,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:116,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: fu_msgpack_item_get_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_msgpack_item_get_binary(FuMsgpackItem *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:135,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_msgpack_item_get_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_msgpack_item_get_map(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:153,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: fu_msgpack_item_get_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_msgpack_item_get_array(FuMsgpackItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:171,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: fu_msgpack_item_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_msgpack_item_get_string(FuMsgpackItem *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:188,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:188,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: fu_msgpack_item_new_nil
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_nil(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:206,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:206,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: fu_msgpack_item_new_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_boolean(gboolean value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:225,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:225,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:226,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: fu_msgpack_item_new_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_return_val_if_fail
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_integer(gint64 value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:245,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: fu_msgpack_item_new_float
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_return_val_if_fail
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_float(gdouble value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:265,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:266,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 270
    functionName: fu_msgpack_item_new_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    - g_byte_array_ref
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_binary(GByteArray *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:285,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:285,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:286,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:286,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:288,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: fu_msgpack_item_new_binary_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_object_ref
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_binary_stream(GInputStream *stream)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:305,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:306,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:308,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: fu_msgpack_item_new_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_string(const gchar *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:325,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: fu_msgpack_item_new_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_map(guint64 items)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:344,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:344,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: fu_msgpack_item_new_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_new_array(guint64 items)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:355,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:359,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:360,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:364,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:365,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:369,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:370,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:373,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:374,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 379
    functionName: fu_msgpack_item_append_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint64
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_integer(GByteArray *buf, gint64 val,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:385,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:386,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gdouble
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: fu_msgpack_item_append_double
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint64
    - fu_memcpy_safe
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_double(GByteArray *buf, gdouble val,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:403,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:407,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:408,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:412,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:413,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 418
    functionName: fu_msgpack_item_append_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint32
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_array(GByteArray *buf, gint64 val,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:424,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:428,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:429,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:433,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:434,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 439
    functionName: fu_msgpack_item_append_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint32
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_map(GByteArray *buf, gint64 val, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:445,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:446,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:450,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:451,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:452,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:456,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:457,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:458,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:462,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:463,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:464,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - str
    - error
    argTypes:
    - GByteArray*
    - GString*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 469
    functionName: fu_msgpack_item_append_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - g_byte_array_append
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_string(GByteArray *buf, GString *str,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: fu_msgpack_item_append_binary_stream_chunk_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_msgpack_item_append_binary_stream_chunk_cb(const guint8
      *buf,\n\t\t\t\t\t      gsize bufsz,\n\t\t\t\t\t      gpointer user_data,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:486,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:489,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:490,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:491,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:497,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:498,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:499,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:505,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:506,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:507,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - stream
    - error
    argTypes:
    - GByteArray*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 514
    functionName: fu_msgpack_item_append_binary_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - fu_input_stream_chunkify
    - g_set_error_literal
    - fu_input_stream_size
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_binary_stream(GByteArray *buf, GInputStream
      *stream, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:520,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:521,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:522,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:526,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:527,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:528,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:532,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:533,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:534,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - donor
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 539
    functionName: fu_msgpack_item_append_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - g_byte_array_append
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append_binary(GByteArray *buf, GByteArray
      *donor, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:545,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:545,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:548,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:552,1
    - Dst: fu_msgpack_item_append_double
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:558,1
    - Dst: fu_msgpack_item_append_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:560,1
    - Dst: fu_msgpack_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:562,1
    - Dst: fu_msgpack_item_append_binary_stream
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:565,1
    - Dst: fu_msgpack_item_append_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:566,1
    - Dst: fu_msgpack_item_append_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:569,1
    - Dst: fu_msgpack_item_append_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:574,1
    - Dst: fu_msgpack_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuMsgpackItem*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 580
    functionName: fu_msgpack_item_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - fu_msgpack_item_append_binary
    - g_set_error
    - fu_msgpack_item_append_map
    - FU_IS_MSGPACK_ITEM
    - fu_msgpack_item_kind_to_string
    - fu_byte_array_append_uint8
    - fu_msgpack_item_append_double
    - fu_msgpack_item_append_integer
    - fu_msgpack_item_append_string
    - fu_msgpack_item_append_binary_stream
    - g_return_val_if_fail
    - fu_msgpack_item_append_array
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msgpack_item_append(FuMsgpackItem *self, GByteArray *buf,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:585,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:585,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:586,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:588,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - offset
    - n
    - error
    argTypes:
    - GByteArray*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: fu_msgpack_item_read_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_memchk_read
    - g_steal_pointer
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_msgpack_item_read_binary(GByteArray *buf, gsize offset, gsize n, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:597,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:599,1
    - Dst: g_utf8_validate_len
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:601,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - offset
    - n
    - error
    argTypes:
    - GByteArray*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 608
    functionName: fu_msgpack_item_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_memchk_read
    - g_steal_pointer
    - g_utf8_validate_len
    - g_set_error_literal
    - g_strndup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_msgpack_item_read_string(GByteArray *buf, gsize offset, gsize n, GError **error)'
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:617,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:618,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:621,1
    - Dst: fu_msgpack_item_new_nil
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:627,1
    - Dst: fu_msgpack_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:631,1
    - Dst: fu_msgpack_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:633,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:637,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:640,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:643,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:647,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:650,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:654,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:657,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:661,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:664,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:670,1
    - Dst: fu_msgpack_item_new_float
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:678,1
    - Dst: fu_msgpack_item_read_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:684,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:688,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:692,1
    - Dst: fu_msgpack_item_read_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:694,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:698,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:702,1
    - Dst: fu_msgpack_item_read_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:704,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:708,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:712,1
    - Dst: fu_msgpack_item_read_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:714,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:718,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:724,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:726,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:730,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:734,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:736,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:740,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:744,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:746,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:750,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:755,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:758,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:761,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:765,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:768,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:773,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:776,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:779,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:783,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:786,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:790,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 137
    argCount: 3
    argNames:
    - buf
    - offset
    - error
    argTypes:
    - GByteArray*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 792
    functionName: fu_msgpack_item_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_msgpack_item_read_string
    - fu_memread_uint16_safe
    - fu_msgpack_item_read_binary
    - fu_msgpack_item_new_float
    - fu_msgpack_item_new_binary
    - fu_msgpack_item_new_integer
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    - fu_msgpack_item_new_string
    - fu_msgpack_item_new_boolean
    - fu_memread_uint64_safe
    - fu_msgpack_item_new_array
    - fu_msgpack_item_new_nil
    - g_autoptr
    - fu_msgpack_item_new_map
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuMsgpackItem
    signature: 'FuMsgpackItem *

      fu_msgpack_item_parse(GByteArray *buf, gsize *offset, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: fu_msgpack_item_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_item_init(FuMsgpackItem *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:802,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:805,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:808,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:810,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 814
    functionName: fu_msgpack_item_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_object_unref
    - G_OBJECT_CLASS
    - g_byte_array_unref
    - FU_MSGPACK_ITEM
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_item_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMsgpackItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 821
    functionName: fu_msgpack_item_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_item_class_init(FuMsgpackItemClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:17,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:22,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:22,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:22,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:23,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:26,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: fu_oprom_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - FU_OPROM_DEVICE
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:34,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:36,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:36,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:36,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:37,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:40,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:43,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuOpromDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: fu_oprom_device_set_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_output_stream_from_path
    - g_str_has_prefix
    - g_output_stream_write_all
    - g_build_filename
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_set_enabled(FuOpromDevice *self, gboolean
      value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:55,1
    - Dst: fu_oprom_device_set_enabled
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: fu_oprom_device_dump_enable_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_oprom_device_set_enabled
    - FU_OPROM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_dump_enable_cb(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:62,1
    - Dst: fu_oprom_device_set_enabled
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_oprom_device_dump_disable_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_oprom_device_set_enabled
    - FU_OPROM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_dump_disable_cb(GObject *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:73,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:76,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:79,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:80,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:88,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:88,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:88,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:89,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:90,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:90,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:92,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:100,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:111,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:114,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:129,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:136,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 137
    functionName: fu_oprom_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - g_set_error
    - g_debug
    - g_file_read
    - g_steal_pointer
    - g_file_new_for_path
    - g_build_filename
    - G_INPUT_STREAM
    - fu_device_has_flag
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_byte_array_free_to_bytes
    - g_byte_array_append
    - g_byte_array_new
    - FU_OPROM_DEVICE
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_oprom_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:142,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:143,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: fu_oprom_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_oprom_device_init(FuOpromDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuOpromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: fu_oprom_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_oprom_device_class_init(FuOpromDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 633
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:50,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:51,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:51,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:52,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:53,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - column_id
    argTypes:
    - FuCsvFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: fu_csv_firmware_add_column_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FU_IS_CSV_FIRMWARE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_add_column_id(FuCsvFirmware *self, const gchar
      *column_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:71,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:71,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuCsvFirmware*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: fu_csv_firmware_get_column_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_CSV_FIRMWARE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_csv_firmware_get_column_id(FuCsvFirmware *self, guint idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:92,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:93,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:93,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:94,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - column_id
    argTypes:
    - FuCsvFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: fu_csv_firmware_get_idx_for_column_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - FU_IS_CSV_FIRMWARE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fu_csv_firmware_get_idx_for_column_id(FuCsvFirmware *self, const
      gchar *column_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:115,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:116,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - write_column_ids
    argTypes:
    - FuCsvFirmware*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: fu_csv_firmware_set_write_column_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FU_IS_CSV_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_set_write_column_ids(FuCsvFirmware *self, gboolean
      write_column_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:134,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCsvFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_csv_firmware_get_write_column_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_CSV_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_firmware_get_write_column_ids(FuCsvFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:141,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_csv_firmware_parse_token_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - fu_csv_firmware_add_column_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_firmware_parse_token_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:150,1
    - Dst: fu_csv_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:151,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:158,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:159,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:168,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:169,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:170,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:170,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: fu_csv_firmware_parse_line_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_full
    - g_str_has_prefix
    - fu_firmware_add_image_full
    - FU_FIRMWARE
    - g_autoptr
    - g_bytes_new
    - FU_CSV_FIRMWARE
    - fu_firmware_set_idx
    - fu_firmware_parse_bytes
    - fu_csv_entry_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_firmware_parse_line_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:183,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: fu_csv_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - fu_strsplit_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_csv_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:190,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:192,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:193,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:197,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:197,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:199,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:201,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:202,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:204,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:205,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:211,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:211,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:214,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: fu_csv_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_string_new
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_images
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - FU_CSV_FIRMWARE
    - g_byte_array_append
    - g_string_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_csv_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:224,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:225,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: fu_csv_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:232,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:233,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:237,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: fu_csv_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - fu_strtobool
    - xb_node_query_text
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:250,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:251,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:253,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:253,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:254,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:254,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCsvFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: fu_csv_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - fu_firmware_add_flag
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_init(FuCsvFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:261,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:262,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:263,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: fu_csv_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - g_ptr_array_unref
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:270,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCsvFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: fu_csv_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_csv_firmware_class_init(FuCsvFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:289,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: fu_csv_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_csv_firmware_new(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:33,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:36,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:40,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:48,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:49,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:49,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:50,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:50,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:51,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:51,1
    - Dst: fu_csv_firmware_set_write_column_ids
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:52,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:52,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:54,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:55,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:56,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:57,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:59,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:62,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:63,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - firmware
    - stream
    - offset
    - entry_name
    - entry_idx
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - gchar*
    - guint64
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 71
    functionName: fu_sbatlevel_section_add_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_firmware_parse_stream
    - fu_input_stream_read_u8
    - fu_csv_firmware_add_column_id
    - fu_csv_firmware_new
    - g_autoptr
    - fu_csv_firmware_set_write_column_ids
    - FU_CSV_FIRMWARE
    - fu_input_stream_size
    - fu_firmware_set_idx
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sbatlevel_section_add_entry(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       gsize offset,\n\t\t\t       const
      gchar *entry_name,\n\t\t\t       guint64 entry_idx,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:79,1
    - Dst: fu_struct_sbat_level_section_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:81,1
    - Dst: fu_sbatlevel_section_add_entry
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:84,1
    - Dst: fu_struct_sbat_level_section_header_get_previous
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:87,1
    - Dst: fu_sbatlevel_section_add_entry
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:93,1
    - Dst: fu_struct_sbat_level_section_header_get_latest
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: fu_sbatlevel_section_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_sbatlevel_section_add_entry
    - fu_struct_sbat_level_section_header_parse_stream
    - g_autoptr
    - fu_struct_sbat_level_section_header_get_latest
    - fu_struct_sbat_level_section_header_get_previous
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sbatlevel_section_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:110,1
    - Dst: fu_struct_sbat_level_section_header_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:112,1
    - Dst: fu_struct_sbat_level_section_header_set_previous
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:115,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:116,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:119,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:122,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:123,1
    - Dst: fu_struct_sbat_level_section_header_set_latest
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:126,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:128,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:129,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:132,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:135,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:136,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: fu_sbatlevel_section_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_struct_sbat_level_section_header_new
    - fu_firmware_get_image_by_id
    - fu_byte_array_append_uint8
    - g_steal_pointer
    - g_bytes_get_size
    - fu_struct_sbat_level_section_header_set_latest
    - g_autoptr
    - fu_struct_sbat_level_section_header_set_previous
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_sbatlevel_section_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSbatlevelSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: fu_sbatlevel_section_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_sbatlevel_section_init(FuSbatlevelSection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSbatlevelSectionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: fu_sbatlevel_section_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sbatlevel_section_class_init(FuSbatlevelSectionClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:160,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: fu_sbatlevel_section_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_sbatlevel_section_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:36,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:36,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:38,1
    - Dst: fu_fdt_image_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:39,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:40,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:40,1
    - Dst: fu_fdt_image_set_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:41,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:41,1
    - Dst: fu_fdt_image_set_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:42,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:42,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:43,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:43,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: fu_fit_firmware_get_image_root
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_uint32
    - fu_firmware_add_image
    - fu_firmware_get_image_by_id
    - FU_FDT_IMAGE
    - FU_FIRMWARE
    - fu_fdt_image_new
    - fu_fdt_image_set_attr_str
    linkageType: ''
    returnType: FuFdtImage
    signature: 'FuFdtImage *

      fu_fit_firmware_get_image_root(FuFitFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:61,1
    - Dst: fu_fit_firmware_get_image_root
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:63,1
    - Dst: FU_IS_FIT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:63,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: fu_fit_firmware_get_timestamp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fit_firmware_get_image_root
    - FU_IS_FIT_FIRMWARE
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_fit_firmware_get_timestamp(FuFitFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:82,1
    - Dst: fu_fit_firmware_get_image_root
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:82,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:83,1
    - Dst: FU_IS_FIT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:83,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - timestamp
    argTypes:
    - FuFitFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: fu_fit_firmware_set_timestamp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_uint32
    - fu_fit_firmware_get_image_root
    - g_return_if_fail
    - FU_IS_FIT_FIRMWARE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_fit_firmware_set_timestamp(FuFitFirmware *self, guint32 timestamp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:98,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:98,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:105,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:109,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - firmware
    - img
    - img_hash
    - blob
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 118
    functionName: fu_fit_firmware_verify_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_FDT_IMAGE
    - fu_fdt_image_get_attr_u32
    - fu_firmware_add_flag
    - fu_firmware_get_id
    - fu_crc32_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_crc32(FuFirmware *firmware,\n\t\t\t
      \    FuFirmware *img,\n\t\t\t     FuFirmware *img_hash,\n\t\t\t     GBytes *blob,\n\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_checksum_type_get_length
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:128,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:132,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:132,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:135,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:135,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:139,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:143,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:144,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:148,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:149,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:150,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:151,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:152,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:153,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - firmware
    - img
    - img_hash
    - checksum_type
    - blob
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmware*
    - GChecksumType
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: fu_fit_firmware_verify_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - g_set_error
    - fu_fdt_image_get_attr
    - g_checksum_get_digest
    - FU_FDT_IMAGE
    - g_bytes_get_size
    - fu_bytes_compare
    - g_malloc0
    - g_checksum_update
    - g_checksum_type_get_length
    - g_checksum_new
    - g_autoptr
    - g_bytes_new
    - g_bytes_get_data
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_checksum(FuFirmware *firmware,\n\t\t\t\tFuFirmware
      *img,\n\t\t\t\tFuFirmware *img_hash,\n\t\t\t\tGChecksumType checksum_type,\n\t\t\t\tGBytes
      *blob,\n\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:171,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:175,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:175,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:178,1
    - Dst: fu_fit_firmware_verify_crc32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:179,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:180,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:181,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:188,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:196,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - firmware
    - img
    - img_hash
    - blob
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 207
    functionName: fu_fit_firmware_verify_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fit_firmware_verify_crc32
    - FU_FDT_IMAGE
    - g_prefix_error
    - fu_fit_firmware_verify_checksum
    - fu_fdt_image_get_attr_str
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_hash(FuFirmware *firmware,\n\t\t\t
      \   FuFirmware *img,\n\t\t\t    FuFirmware *img_hash,\n\t\t\t    GBytes *blob,\n\t\t\t
      \   GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:216,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:219,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:219,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:221,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:221,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:225,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:225,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:231,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:231,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:236,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:236,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:241,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:249,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:249,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:251,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:252,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:253,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:259,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:259,1
    - Dst: fu_fit_firmware_verify_hash
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:260,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - firmware
    - stream
    - img
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 272
    functionName: fu_fit_firmware_verify_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr
    - fu_fit_firmware_verify_hash
    - g_str_has_prefix
    - FU_FDT_IMAGE
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_set_error_literal
    - fu_fdt_image_get_attr_str
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - fu_input_stream_read_bytes
    - fu_dump_bytes
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_image(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmware *img,\n\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:281,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - firmware
    - img
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: fu_fit_firmware_verify_configuration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr_strlist
    - FU_FDT_IMAGE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_configuration(FuFirmware *firmware,\n\t\t\t\t
      \    FuFirmware *img,\n\t\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t\t     GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:301,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:304,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:308,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:311,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:311,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:318,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:321,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:323,1
    - Dst: fu_fit_firmware_verify_image
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:324,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:329,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:332,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:334,1
    - Dst: fu_fit_firmware_verify_configuration
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 341
    functionName: fu_fit_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_id
    - FU_FDT_IMAGE
    - fu_fit_firmware_verify_configuration
    - fu_firmware_get_images
    - g_ptr_array_index
    - FU_FIRMWARE_CLASS
    - fu_fit_firmware_verify_image
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:346,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: fu_fit_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fit_firmware_init(FuFitFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFitFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: fu_fit_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fit_firmware_class_init(FuFitFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:366,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: fu_fit_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_fit_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:38,1
    - Dst: json_node_get_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:41,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:45,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:45,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:45,1
    - Dst: fu_usb_hid_descriptor_set_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: fu_usb_hid_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - json_node_get_string
    - g_base64_decode
    - g_steal_pointer
    - g_bytes_new_take
    - FU_USB_HID_DESCRIPTOR
    - g_autoptr
    - fu_usb_hid_descriptor_set_blob
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_hid_descriptor_from_json(FwupdCodec *codec, JsonNode
      *json_node, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:56,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:61,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:61,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:61,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: fu_usb_hid_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_size
    - FU_USB_HID_DESCRIPTOR
    - g_base64_encode
    - g_bytes_get_data
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_add_json(FwupdCodec *codec, JsonBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:78,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: fu_usb_hid_descriptor_get_iface_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_HID_DESCRIPTOR
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_hid_descriptor_get_iface_number(FuUsbHidDescriptor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:93,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - iface_number
    argTypes:
    - FuUsbHidDescriptor*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fu_usb_hid_descriptor_set_iface_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_HID_DESCRIPTOR
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_set_iface_number(FuUsbHidDescriptor *self,
      guint8 iface_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:110,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: fu_usb_hid_descriptor_get_descriptor_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_HID_DESCRIPTOR
    - g_return_val_if_fail
    linkageType: ''
    returnType: gsize
    signature: gsize fu_usb_hid_descriptor_get_descriptor_length(FuUsbHidDescriptor
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:127,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: fu_usb_hid_descriptor_get_blob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_HID_DESCRIPTOR
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_usb_hid_descriptor_get_blob(FuUsbHidDescriptor *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:142,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:142,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:144,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - blob
    argTypes:
    - FuUsbHidDescriptor*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: fu_usb_hid_descriptor_set_blob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 1
    functionsReached:
    - FU_IS_USB_HID_DESCRIPTOR
    - g_bytes_ref
    - g_bytes_unref
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_set_blob(FuUsbHidDescriptor *self, GBytes
      *blob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:155,1
    - Dst: fu_usb_hid_descriptor_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:158,1
    - Dst: fu_usb_hid_descriptor_hdr_get_class_descriptor_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: fu_usb_hid_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_hid_descriptor_hdr_parse_stream
    - FU_USB_HID_DESCRIPTOR
    - fu_usb_hid_descriptor_hdr_get_class_descriptor_length
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_hid_descriptor_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: fu_usb_hid_descriptor_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: fu_usb_hid_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_init(FuUsbHidDescriptor *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:182,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:184,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: fu_usb_hid_descriptor_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_HID_DESCRIPTOR
    - G_OBJECT_CLASS
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:191,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbHidDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: fu_usb_hid_descriptor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_class_init(FuUsbHidDescriptorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:207,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: fu_usb_hid_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_HID_DESCRIPTOR
    - g_object_new
    linkageType: ''
    returnType: FuUsbHidDescriptor
    signature: 'FuUsbHidDescriptor *

      fu_usb_hid_descriptor_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:42,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:43,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:43,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:44,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:44,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:45,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:45,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:46,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - table
    - item
    argTypes:
    - GPtrArray*
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: fu_hid_descriptor_count_table_dupes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_hid_report_item_get_kind
    - FU_FIRMWARE
    - g_ptr_array_index
    - fu_firmware_get_idx
    - fu_hid_report_item_get_value
    linkageType: ''
    returnType: guint
    signature: guint fu_hid_descriptor_count_table_dupes(GPtrArray *table, FuHidReportItem
      *item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:60,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:62,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:63,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:68,1
    - Dst: fu_hid_report_item_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:68,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:80,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:88,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:88,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:90,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:90,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:94,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:97,1
    - Dst: fu_hid_descriptor_count_table_dupes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:98,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:100,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:106,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:106,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:109,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:109,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:110,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:111,1
    - Dst: fu_hid_descriptor_count_table_dupes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:114,1
    - Dst: fu_hid_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:120,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:120,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:121,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:121,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:122,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:125,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:125,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:130,1
    - Dst: fu_hid_report_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:130,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:134,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:141,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:143,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:147,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:147,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:151,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 157
    functionName: fu_hid_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_to_string
    - FU_FIRMWARE
    - fu_hid_report_new
    - fu_firmware_get_id
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_hid_report_item_new
    - fu_firmware_add_image_full
    - fu_hid_report_item_get_kind
    - g_ptr_array_index
    - fu_hid_descriptor_count_table_dupes
    - fu_firmware_parse_stream
    - fu_hid_report_item_get_value
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_firmware_get_size
    - fu_hid_item_kind_to_string
    - g_ptr_array_set_size
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_descriptor_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:165,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:168,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:168,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:170,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:171,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:171,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:173,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:173,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:174,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:174,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:175,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:178,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:178,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:180,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - report_item
    - buf
    - globals
    - error
    argTypes:
    - FuFirmware*
    - GByteArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: fu_hid_descriptor_write_report_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - fu_firmware_write
    - g_debug
    - FU_HID_REPORT_ITEM
    - fu_byte_array_append_bytes
    - fu_hid_report_item_get_kind
    - fu_firmware_get_idx
    - fu_hid_report_item_get_value
    - g_autoptr
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_descriptor_write_report_item(FuFirmware *report_item,\n\t\t\t\t
      \   GByteArray *buf,\n\t\t\t\t    GHashTable *globals,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:195,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:195,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:199,1
    - Dst: fu_hid_descriptor_write_report_item
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - report
    - buf
    - globals
    - error
    argTypes:
    - FuFirmware*
    - GByteArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: fu_hid_descriptor_write_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_images
    - fu_hid_descriptor_write_report_item
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_descriptor_write_report(FuFirmware *report,\n\t\t\t
      \      GByteArray *buf,\n\t\t\t       GHashTable *globals,\n\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:211,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:212,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:213,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:213,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:217,1
    - Dst: fu_hid_descriptor_write_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: fu_hid_descriptor_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_hash_table_new
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_hid_descriptor_write_report
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_hid_descriptor_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:247,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:248,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:248,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:248,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:250,1
    - Dst: FU_IS_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:250,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:251,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:254,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:256,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:257,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:260,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:261,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:261,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:263,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:267,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:271,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:272,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:272,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:277,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:277,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:283,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 287
    functionName: fu_hid_descriptor_find_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - va_end
    - FU_HID_REPORT_ITEM
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - g_new0
    - FU_FIRMWARE
    - FU_IS_HID_DESCRIPTOR
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_set_error_literal
    - va_start
    - g_autoptr
    - fu_hid_report_item_get_value
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - va_arg
    linkageType: ''
    returnType: FuHidReport
    signature: 'FuHidReport *

      fu_hid_descriptor_find_report(FuHidDescriptor *self, GError **error, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:292,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:292,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:293,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:293,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:294,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:294,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:295,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:296,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: fu_hid_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    - g_getenv
    - fu_firmware_add_flag
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_hid_descriptor_init(FuHidDescriptor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: fu_hid_descriptor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hid_descriptor_class_init(FuHidDescriptorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:318,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: fu_hid_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_hid_descriptor_new(void)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:38,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:41,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:46,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:48,1
    - Dst: g_utf8_validate
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:67,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:68,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:76,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:76,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:79,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:83,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:87,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:87,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:88,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:91,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:93,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:100,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:101,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:102,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:103,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:104,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:105,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:109,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:110,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 4
    argNames:
    - self
    - stream
    - device
    - error
    argTypes:
    - FuUsbDeviceDs20*
    - GInputStream*
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 120
    functionName: fu_usb_device_fw_ds20_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_strsplit
    - FU_FIRMWARE
    - g_utf8_validate
    - g_set_error
    - g_debug
    - g_strstr_len
    - g_strv_length
    - g_str_has_suffix
    - fu_firmware_set_bytes
    - fu_device_set_quirk_kv
    - fu_input_stream_read_bytes
    - g_autoptr
    - g_bytes_get_data
    - g_str_has_prefix
    - fu_strstrip
    - g_strsplit
    - g_set_error_literal
    - FU_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_fw_ds20_parse(FuUsbDeviceDs20 *self,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuUsbDevice *device,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE_DS20_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceFwDs20Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: fu_usb_device_fw_ds20_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE_DS20_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_fw_ds20_class_init(FuUsbDeviceFwDs20Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:132,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:132,1
    - Dst: fu_usb_device_ds20_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:133,1
    - Dst: FU_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:133,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDeviceFwDs20*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: fu_usb_device_fw_ds20_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - FU_USB_DEVICE_DS20
    - fu_usb_device_ds20_set_version_lowest
    - FU_FIRMWARE
    - fu_firmware_set_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_fw_ds20_init(FuUsbDeviceFwDs20 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: fu_usb_device_fw_ds20_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_usb_device_fw_ds20_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 643
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:58,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:60,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:61,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:62,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - uuid_helper
    argTypes:
    - FuBluezDeviceUuidHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: fu_bluez_device_uuid_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_uuid_free(FuBluezDeviceUuidHelper *uuid_helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:72,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:75,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: fu_bluez_device_get_uuid_helper
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup
    - GET_PRIVATE
    - g_set_error
    linkageType: ''
    returnType: FuBluezDeviceUuidHelper
    signature: 'FuBluezDeviceUuidHelper *

      fu_bluez_device_get_uuid_helper(FuBluezDevice *self, const gchar *uuid, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - uuid_helper
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FuBluezDeviceUuidHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: fu_bluez_device_signal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    linkageType: ''
    returnType: void
    signature: "void fu_bluez_device_signal_cb(GDBusProxy *proxy,\n\t\t\t  GVariant
      *changed_properties,\n\t\t\t  GStrv invalidated_properties,\n\t\t\t  FuBluezDeviceUuidHelper
      *uuid_helper)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:118,1
    - Dst: g_dbus_proxy_set_default_timeout
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:121,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:122,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:122,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - uuid_helper
    - error
    argTypes:
    - FuBluezDeviceUuidHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: fu_bluez_device_ensure_uuid_helper_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - G_DBUS_PROXY
    - g_prefix_error
    - g_dbus_proxy_set_default_timeout
    - g_dbus_proxy_new_for_bus_sync
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_ensure_uuid_helper_proxy(FuBluezDeviceUuidHelper
      *uuid_helper, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:140,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:142,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:142,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:143,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:144,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:146,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:147,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:148,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:149,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:150,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - uuid
    - path
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: fu_bluez_device_add_uuid_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_object_ref
    - g_new0
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_add_uuid_path(FuBluezDevice *self, const gchar
      *uuid, const gchar *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:161,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:164,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:165,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:166,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:167,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:168,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:171,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:172,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:173,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:174,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:179,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:180,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:183,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:184,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:186,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:187,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:194,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:203,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:205,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:219,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:220,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:221,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:226,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:227,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - self
    - modalias
    argTypes:
    - FuBluezDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 230
    functionName: fu_bluez_device_set_modalias
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_get_version_format
    - g_str_has_prefix
    - strlen
    - fu_device_set_vid
    - fu_device_set_version_raw
    - fu_device_set_pid
    - g_strdup_printf
    - g_return_if_fail
    - fu_device_has_private_flag
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_firmware_strparse_uint16_safe
    - fu_device_build_vendor_id
    - fu_device_build_instance_id_full
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_set_modalias(FuBluezDevice *self, const gchar
      *modalias)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:235,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:236,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:241,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:242,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: fu_bluez_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - FU_BLUEZ_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:263,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:265,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:274,1
    - Dst: g_dbus_proxy_set_default_timeout
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:277,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:280,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - obj_path
    - iface
    - prop_name
    - error
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 290
    functionName: fu_bluez_device_get_ble_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - g_dbus_proxy_get_cached_property
    - g_dbus_proxy_set_default_timeout
    - g_dbus_proxy_new_for_bus_sync
    - g_autoptr
    linkageType: ''
    returnType: GVariant
    signature: "GVariant *\nfu_bluez_device_get_ble_property(const gchar *obj_path,\n\t\t\t\t
      const gchar *iface,\n\t\t\t\t const gchar *prop_name,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:304,1
    - Dst: fu_bluez_device_get_ble_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:305,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - obj_path
    - iface
    - prop_name
    - error
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: fu_bluez_device_get_ble_string_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_variant_dup_string
    - g_autoptr
    - fu_bluez_device_get_ble_property
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_bluez_device_get_ble_string_property(const gchar *obj_path,\n\t\t\t\t\tconst
      gchar *iface,\n\t\t\t\t\tconst gchar *prop_name,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:319,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:321,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:323,1
    - Dst: fu_bluez_device_get_ble_string_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:332,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - obj
    - obj_path
    - iface_name
    - error
    argTypes:
    - FuBluezDevice*
    - GDBusObject*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 338
    functionName: fu_bluez_device_get_interface_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_bluez_device_get_ble_string_property
    - g_steal_pointer
    - g_prefix_error
    - g_dbus_object_get_interface
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_bluez_device_get_interface_uuid(FuBluezDevice *self,\n\t\t\t\t
      \  GDBusObject *obj,\n\t\t\t\t   const gchar *obj_path,\n\t\t\t\t   const gchar
      *iface_name,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_device_get_interface_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:353,1
    - Dst: fu_bluez_device_add_uuid_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - obj
    - obj_path
    - iface_name
    - error
    argTypes:
    - FuBluezDevice*
    - GDBusObject*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 358
    functionName: fu_bluez_device_add_characteristic_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_get_interface_uuid
    - fu_bluez_device_add_uuid_path
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bluez_device_add_characteristic_uuid(FuBluezDevice *self,\n\t\t\t\t\tGDBusObject
      *obj,\n\t\t\t\t\tconst gchar *obj_path,\n\t\t\t\t\tconst gchar *iface_name,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_device_get_interface_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:370,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:373,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:374,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - obj
    - obj_path
    - iface_name
    - error
    argTypes:
    - FuBluezDevice*
    - GDBusObject*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 386
    functionName: fu_bluez_device_add_instance_by_service_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_bluez_device_get_interface_uuid
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bluez_device_add_instance_by_service_uuid(FuBluezDevice
      *self,\n\t\t\t\t\t     GDBusObject *obj,\n\t\t\t\t\t     const gchar *obj_path,\n\t\t\t\t\t
      \    const gchar *iface_name,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:398,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:400,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:402,1
    - Dst: fu_bluez_device_get_ble_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:412,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:414,1
    - Dst: g_variant_get_byte
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:420,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - self
    - obj
    - obj_path
    - iface_name
    - error
    argTypes:
    - FuBluezDevice*
    - GDBusObject*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 425
    functionName: fu_bluez_device_read_battery_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_variant_get_byte
    - g_debug
    - fu_device_set_battery_level
    - FU_DEVICE
    - g_dbus_object_get_interface
    - g_autoptr
    - fu_bluez_device_get_ble_property
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bluez_device_read_battery_interface(FuBluezDevice *self,\n\t\t\t\t
      \      GDBusObject *obj,\n\t\t\t\t       const gchar *obj_path,\n\t\t\t\t       const
      gchar *iface_name,\n\t\t\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:437,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:439,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:440,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:447,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:451,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:455,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:455,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:456,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:464,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:473,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:475,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:475,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:478,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:480,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:480,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBluezDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 486
    functionName: fu_bluez_device_parse_device_information_service
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_version_guess_format
    - fu_bluez_device_read_string
    - fu_device_set_version
    - g_prefix_error
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_set_serial
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_parse_device_information_service(FuBluezDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:495,1
    - Dst: g_autolist
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:497,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:499,1
    - Dst: G_DBUS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:501,1
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:502,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:505,1
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:505,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:506,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:510,1
    - Dst: fu_bluez_device_add_characteristic_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:511,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:517,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:522,1
    - Dst: fu_bluez_device_add_instance_by_service_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:523,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:528,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:535,1
    - Dst: fu_bluez_device_read_battery_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:536,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:541,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:549,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBluezDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 558
    functionName: fu_bluez_device_ensure_gatt_interfaces
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_get_object_path
    - G_DBUS_OBJECT
    - g_str_has_prefix
    - g_autolist
    - g_dbus_object_get_object_path
    - g_prefix_error
    - g_dbus_object_manager_get_objects
    - fu_bluez_device_read_battery_interface
    - fu_bluez_device_add_characteristic_uuid
    - g_set_error_literal
    - GET_PRIVATE
    - g_dbus_object_get_interface
    - fu_bluez_device_add_instance_by_service_uuid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_ensure_gatt_interfaces(FuBluezDevice *self,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:563,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:568,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:570,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:574,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:578,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:580,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:586,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:586,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:587,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:589,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:589,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:590,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:592,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:592,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:594,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:596,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:597,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:605,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:607,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:607,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:609,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:609,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:611,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:612,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:619,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:621,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:621,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:622,1
    - Dst: fu_bluez_device_set_modalias
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:624,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:624,1
    - Dst: fu_bluez_device_ensure_gatt_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:627,1
    - Dst: fu_bluez_device_parse_device_information_service
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 560
    functionDepth: 5
    functionLinenumber: 560
    functionLinenumberEnd: 632
    functionName: fu_bluez_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_parse_device_information_service
    - fu_bluez_device_set_modalias
    - g_variant_get_string
    - fu_device_add_icon
    - g_dbus_proxy_get_cached_property
    - fu_device_set_logical_id
    - fu_bluez_device_ensure_gatt_interfaces
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_device_add_instance_str
    - fu_device_build_instance_id_full
    - fu_device_set_physical_id
    - FU_BLUEZ_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:637,1
    - Dst: fu_bluez_device_parse_device_information_service
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: fu_bluez_device_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_parse_device_information_service
    - FU_BLUEZ_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_reload(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:659,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:659,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:660,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:661,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:662,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:664,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:664,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:665,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:666,1
    - Dst: fu_bluez_device_get_uuid_helper
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:668,1
    - Dst: fu_bluez_device_ensure_uuid_helper_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:671,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:682,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:682,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:683,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:683,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:685,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:687,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:693,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:696,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:697,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:698,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:701,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:702,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 706
    functionName: fu_bluez_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_helper_proxy
    - G_VARIANT_TYPE
    - g_variant_get
    - g_variant_builder_add
    - g_steal_pointer
    - g_prefix_error
    - fu_bluez_device_get_uuid_helper
    - g_strdup_printf
    - g_byte_array_append
    - g_variant_iter_loop
    - g_autoptr
    - g_variant_builder_new
    - fu_dump_raw
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_byte_array_new
    - g_variant_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bluez_device_read(FuBluezDevice *self, const gchar *uuid, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:723,1
    - Dst: fu_bluez_device_read
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:723,1
    - Dst: g_utf8_validate
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:726,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:727,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 735
    functionName: fu_bluez_device_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_bluez_device_read
    - g_autoptr
    - g_strndup
    - g_utf8_validate
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bluez_device_read_string(FuBluezDevice *self, const gchar *uuid, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:755,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:756,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:757,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:761,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:761,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:762,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:763,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:764,1
    - Dst: fu_bluez_device_get_uuid_helper
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:766,1
    - Dst: fu_bluez_device_ensure_uuid_helper_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:769,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:773,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:774,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:777,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:777,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:779,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:780,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:783,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:783,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:784,1
    - Dst: g_variant_new_uint16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:784,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:785,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:787,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:789,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:795,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - self
    - uuid
    - buf
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 801
    functionName: fu_bluez_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_helper_proxy
    - G_VARIANT_TYPE
    - g_variant_builder_add
    - g_prefix_error
    - fu_bluez_device_get_uuid_helper
    - g_strdup_printf
    - g_variant_new_uint16
    - g_autoptr
    - g_variant_builder_new
    - fu_dump_raw
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_write(FuBluezDevice *self, const gchar *uuid,
      GByteArray *buf, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:820,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:822,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:822,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:823,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:824,1
    - Dst: fu_bluez_device_get_uuid_helper
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:826,1
    - Dst: fu_bluez_device_ensure_uuid_helper_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:829,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:831,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: fu_bluez_device_notify_start
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_helper_proxy
    - g_prefix_error
    - fu_bluez_device_get_uuid_helper
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_notify_start(FuBluezDevice *self, const gchar
      *uuid, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:863,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:865,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:865,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:866,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:867,1
    - Dst: fu_bluez_device_get_uuid_helper
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:869,1
    - Dst: fu_bluez_device_ensure_uuid_helper_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:872,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:874,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 887
    functionName: fu_bluez_device_notify_stop
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_helper_proxy
    - g_prefix_error
    - fu_bluez_device_get_uuid_helper
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_notify_stop(FuBluezDevice *self, const gchar
      *uuid, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:900,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:901,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:902,1
    - Dst: fu_bluez_device_get_uuid_helper
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:904,1
    - Dst: fu_bluez_device_ensure_uuid_helper_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:907,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:910,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:910,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:911,1
    - Dst: g_dbus_proxy_call_with_unix_fd_list_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:913,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:915,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:923,1
    - Dst: g_variant_get_child
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:927,1
    - Dst: g_variant_get_child
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:929,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:931,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:931,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - self
    - method
    - uuid
    - mtu
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gchar*
    - gint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 939
    functionName: fu_bluez_device_method_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_unix_fd_list_get
    - fu_bluez_device_ensure_uuid_helper_proxy
    - G_VARIANT_TYPE
    - g_variant_get_child
    - fu_io_channel_unix_new
    - g_prefix_error
    - fu_bluez_device_get_uuid_helper
    - g_set_error_literal
    - g_variant_builder_new
    - g_autoptr
    - g_dbus_proxy_call_with_unix_fd_list_sync
    - g_variant_new
    linkageType: ''
    returnType: FuIOChannel
    signature: "FuIOChannel *\nfu_bluez_device_method_acquire(FuBluezDevice *self,\n\t\t\t
      \      const gchar *method,\n\t\t\t       const gchar *uuid,\n\t\t\t       gint32
      *mtu,\n\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:958,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:958,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:959,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:960,1
    - Dst: fu_bluez_device_method_acquire
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - uuid
    - mtu
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 962
    functionName: fu_bluez_device_notify_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_method_acquire
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_bluez_device_notify_acquire(FuBluezDevice *self, const gchar *uuid, gint32
      *mtu, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:981,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:981,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:982,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:983,1
    - Dst: fu_bluez_device_method_acquire
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - uuid
    - mtu
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 985
    functionName: fu_bluez_device_write_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_method_acquire
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_bluez_device_write_acquire(FuBluezDevice *self, const gchar *uuid, gint32
      *mtu, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:990,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:991,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:992,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:993,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:995,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:995,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:996,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:996,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:998,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1001,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1002,1
    - Dst: fu_bluez_device_add_uuid_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1004,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1008,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1011
    functionName: fu_bluez_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_hash_table_size
    - fu_bluez_device_add_uuid_path
    - g_return_if_fail
    - FU_BLUEZ_DEVICE
    - GET_PRIVATE
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - FU_IS_BLUEZ_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_incorporate(FuDevice *self, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1016,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1017
    functionName: fu_bluez_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bluez_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1022,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1023,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1026,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1029,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1035
    functionName: fu_bluez_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_BLUEZ_DEVICE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1040,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1041,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1044,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1047,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1053
    functionName: fu_bluez_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - GET_PRIVATE
    - FU_BLUEZ_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1058,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1059,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1061,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1063,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1065,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1067
    functionName: fu_bluez_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - g_hash_table_unref
    - GET_PRIVATE
    - FU_BLUEZ_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1072,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBluezDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: fu_bluez_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_init(FuBluezDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1082,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1083,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1104,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1105,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1122,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1127,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1136,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBluezDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1142
    functionName: fu_bluez_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_object_class_install_property
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_class_init(FuBluezDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 653
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:39,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:40,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:43,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:45,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:46,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuUefiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: fu_uefi_device_set_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_DEVICE
    - GET_PRIVATE
    - g_strdup
    - FU_IS_UEFI_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_set_guid(FuUefiDevice *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:56,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: fu_uefi_device_get_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UEFI_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_device_get_guid(FuUefiDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:64,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:65,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:68,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:70,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:71,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuUefiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: fu_uefi_device_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_DEVICE
    - GET_PRIVATE
    - g_strdup
    - FU_IS_UEFI_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_set_name(FuUefiDevice *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:81,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_uefi_device_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UEFI_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_device_get_name(FuUefiDevice *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:112,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:112,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:115,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:116,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:119,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:120,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:120,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:122,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:127,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:129,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:132,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:135,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:140,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:143,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:143,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 6
    argNames:
    - self
    - guid
    - name
    - bytes
    - attr
    - error
    argTypes:
    - FuUefiDevice*
    - gchar*
    - gchar*
    - GBytes*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 152
    functionName: fu_uefi_device_set_efivar_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_event_get_bytes
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_bytes_compare
    - fu_device_event_set_bytes
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - fu_context_get_efivars
    - FU_IS_UEFI_DEVICE
    - g_autoptr
    - fu_efivars_set_data_bytes
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_device_set_efivar_bytes(FuUefiDevice *self,\n\t\t\t\tconst
      gchar *guid,\n\t\t\t\tconst gchar *name,\n\t\t\t\tGBytes *bytes,\n\t\t\t\tguint32
      attr,\n\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:181,1
    - Dst: FU_IS_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:181,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:183,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:184,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:187,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:188,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:188,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:190,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:194,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:195,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:199,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:204,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:209,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:212,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:212,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:220,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:221,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:225,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - self
    - guid
    - name
    - attr
    - error
    argTypes:
    - FuUefiDevice*
    - gchar*
    - gchar*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 226
    functionName: fu_uefi_device_get_efivar_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_event_get_i64
    - fu_device_event_set_bytes
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - fu_efivars_get_data_bytes
    - fu_context_get_efivars
    - FU_IS_UEFI_DEVICE
    - g_autoptr
    - fu_device_event_set_i64
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_uefi_device_get_efivar_bytes(FuUefiDevice *self,\n\t\t\t\tconst
      gchar *guid,\n\t\t\t\tconst gchar *name,\n\t\t\t\tguint32 *attr,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:231,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:232,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:233,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: fu_uefi_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_UEFI_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:240,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:241,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:242,1
    - Dst: fu_uefi_device_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:242,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:243,1
    - Dst: fu_uefi_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: fu_uefi_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_device_set_name
    - fu_uefi_device_get_name
    - fu_uefi_device_set_guid
    - fu_uefi_device_get_guid
    - FU_UEFI_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: fu_uefi_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:261,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:262,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:266,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:270,1
    - Dst: fu_uefi_device_get_efivar_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:273,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 278
    functionName: fu_uefi_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_uefi_device_get_efivar_bytes
    - GET_PRIVATE
    - FU_UEFI_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uefi_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:283,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:284,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:285,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:288,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:289,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:290,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:290,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:292,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:294,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:296,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:298,1
    - Dst: g_date_time_new_from_unix_utc_usec
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:299,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:299,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:300,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:301,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:302,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:308,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:309,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:311,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:312,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:313,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:313,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:314,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - device
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 318
    functionName: fu_uefi_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - json_builder_add_string_value
    - fu_device_get_backend_id
    - fu_device_get_created_usec
    - json_builder_begin_object
    - g_date_time_format_iso8601
    - g_ptr_array_index
    - json_builder_set_member_name
    - g_date_time_new_from_unix_utc_usec
    - fwupd_codec_to_json
    - g_autoptr
    - fu_device_get_events
    - GLIB_CHECK_VERSION
    - fwupd_codec_json_append
    - json_builder_begin_array
    - json_builder_end_array
    - GET_PRIVATE
    - FU_UEFI_DEVICE
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_add_json(FuDevice *device, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:323,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:326,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:328,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:329,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:331,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:332,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:334,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:336,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:339,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:339,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:341,1
    - Dst: g_date_time_to_unix_usec
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:341,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:346,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:347,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:348,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:350,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:350,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:351,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:351,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - device
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 359
    functionName: fu_uefi_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - json_object_has_member
    - fu_device_add_event
    - json_array_get_element
    - fwupd_codec_from_json
    - fu_uefi_device_set_name
    - fu_uefi_device_set_guid
    - g_date_time_new_from_iso8601
    - g_date_time_to_unix_usec
    - FWUPD_CODEC
    - fu_device_set_created_usec
    - json_object_get_string_member_with_default
    - json_object_get_array_member
    - fu_device_set_backend_id
    - FU_UEFI_DEVICE
    - g_autoptr
    - fu_device_event_new
    - json_array_get_length
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_device_from_json(FuDevice *device, JsonObject *json_object,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:364,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:365,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:367,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:368,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: fu_uefi_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    - FU_UEFI_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_finalize(GObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:376,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:379,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:380,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:382,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:384,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:388,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - pspec
    - user_data
    argTypes:
    - FuUefiDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 394
    functionName: fu_uefi_device_required_free_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_context_efivars_check_free_space
    - fu_device_uninhibit
    - fu_device_get_context
    - FU_DEVICE
    - g_autoptr
    - fu_device_get_required_free
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_required_free_notify_cb(FuUefiDevice *self, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:399,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:400,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:401,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:402,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: fu_uefi_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_init(FuUefiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:411,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: fu_uefi_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_class_init(FuUefiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:426,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:428,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:429,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:430,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:431,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - guid
    - name
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: fu_uefi_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 1
    functionsReached:
    - fu_uefi_device_set_name
    - fu_uefi_device_set_guid
    - g_steal_pointer
    - g_strdup_printf
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FuUefiDevice
    signature: 'FuUefiDevice *

      fu_uefi_device_new(const gchar *guid, const gchar *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:48,1
    - Dst: FU_IS_CHUNK_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunkArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_chunk_array_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - FU_IS_CHUNK_ARRAY
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fu_chunk_array_length(FuChunkArray *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:59,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - self
    - offset
    - address
    - page
    - chunksz
    argTypes:
    - FuChunkArray*
    - gsize
    - gsize*
    - gsize*
    - gsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: fu_chunk_array_calculate_chunk_for_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: void
    signature: "void fu_chunk_array_calculate_chunk_for_offset(FuChunkArray *self,\n\t\t\t\t\t
      \ gsize offset,\n\t\t\t\t\t  gsize *address,\n\t\t\t\t\t  gsize *page,\n\t\t\t\t\t
      \ gsize *chunksz)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:101,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:103,1
    - Dst: FU_IS_CHUNK_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:107,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:112,1
    - Dst: fu_chunk_array_calculate_chunk_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:121,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:121,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:124,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:127,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:133,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:135,1
    - Dst: fu_chunk_set_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:136,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:138,1
    - Dst: fu_chunk_set_page
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:139,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuChunkArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 142
    functionName: fu_chunk_array_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - fu_chunk_set_data_sz
    - g_set_error
    - g_steal_pointer
    - fu_chunk_bytes_new
    - g_prefix_error
    - fu_chunk_set_address
    - fu_chunk_array_calculate_chunk_for_offset
    - FU_IS_CHUNK_ARRAY
    - fu_chunk_set_page
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_return_val_if_fail
    - g_array_index
    - fu_chunk_set_idx
    - g_bytes_new_from_bytes
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_chunk_array_index(FuChunkArray *self, guint idx, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_array_calculate_chunk_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:150,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunkArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: fu_chunk_array_ensure_offsets
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_array_append_val
    - fu_chunk_array_calculate_chunk_for_offset
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_ensure_offsets(FuChunkArray *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:173,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:176,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:181,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:182,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:185,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - blob
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - GBytes*
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: fu_chunk_array_new_from_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_bytes_get_size
    - g_object_new
    - g_autoptr
    - g_bytes_ref
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuChunkArray
    signature: 'FuChunkArray *

      fu_chunk_array_new_from_bytes(GBytes *blob, gsize addr_offset, gsize page_sz,
      gsize packet_sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:206,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:208,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:216,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - bufsz
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - gsize
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: fu_chunk_array_new_virtual
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_object_new
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuChunkArray
    signature: 'FuChunkArray *

      fu_chunk_array_new_virtual(gsize bufsz, gsize addr_offset, gsize page_sz, gsize
      packet_sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:242,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:242,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:244,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:244,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:246,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:248,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:250,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:250,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:255,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:258,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - stream
    - addr_offset
    - page_sz
    - packet_sz
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 260
    functionName: fu_chunk_array_new_from_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_object_ref
    - G_SEEKABLE
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_seekable_seek
    - g_object_new
    - g_autoptr
    - fu_input_stream_size
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuChunkArray
    signature: "FuChunkArray *\nfu_chunk_array_new_from_stream(GInputStream *stream,\n\t\t\t
      \      gsize addr_offset,\n\t\t\t       gsize page_sz,\n\t\t\t       gsize packet_sz,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CHUNK_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:265,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:266,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:268,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:270,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: fu_chunk_array_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_CHUNK_ARRAY
    - g_array_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuChunkArrayClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: fu_chunk_array_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_class_init(FuChunkArrayClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunkArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: fu_chunk_array_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_array_new
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_init(FuChunkArray *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:40,1
    - Dst: fu_efi_file_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:41,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:47,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:55,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:60,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:62,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:65,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:70,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:73,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:74,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:78,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 83
    functionName: fu_efi_filesystem_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - g_debug
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_firmware_parse_stream
    - fu_input_stream_read_u8
    - fu_efi_file_new
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_filesystem_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:88,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:89,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:89,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:93,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:97,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:104,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:105,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:106,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:109,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:110,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 126
    functionName: fu_efi_filesystem_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - g_set_error
    - fu_firmware_write
    - fu_firmware_set_offset
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - fu_byte_array_align_up
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_filesystem_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:134,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:135,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:136,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:136,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFilesystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: fu_efi_filesystem_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_alignment
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - g_getenv
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_efi_filesystem_init(FuEfiFilesystem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFilesystemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: fu_efi_filesystem_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_filesystem_class_init(FuEfiFilesystemClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:158,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: fu_efi_filesystem_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_filesystem_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 661
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FuFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: fu_firmware_flag_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_flag_to_string(FuFirmwareFlags flag)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:109,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:111,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:115,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:121,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:123,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: fu_firmware_flag_from_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: FuFirmwareFlags
    signature: FuFirmwareFlags fu_firmware_flag_from_string(const gchar *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:138,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptch
    argTypes:
    - FuFirmwarePatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: fu_firmware_patch_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_firmware_patch_free(FuFirmwarePatch *ptch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:154,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:155,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - firmware
    - flag
    argTypes:
    - FuFirmware*
    - FuFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: fu_firmware_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 9
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_flag(FuFirmware *firmware, FuFirmwareFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:174,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - firmware
    - flag
    argTypes:
    - FuFirmware*
    - FuFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: fu_firmware_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_has_flag(FuFirmware *firmware, FuFirmwareFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:192,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: fu_firmware_get_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_get_version(FuFirmware *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:208,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:209,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:209,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:212,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:215,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: fu_firmware_set_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_version(FuFirmware *self, const gchar *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:234,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:235,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: fu_firmware_get_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_firmware_get_version_raw(FuFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:253,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:254,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:256,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:256,1
    - Dst: FuFirmwareClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:262,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: fu_firmware_set_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - fu_firmware_set_version
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - FU_FIRMWARE_GET_CLASS
    - FuFirmwareClass*::convert_version
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_version_raw(FuFirmware *self, guint64 version_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:281,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:282,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: fu_firmware_get_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fu_firmware_get_version_format(FuFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:298,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:299,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:301,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:301,1
    - Dst: FuFirmwareClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:310,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - version_format
    argTypes:
    - FuFirmware*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: fu_firmware_set_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_firmware_set_version
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - FU_FIRMWARE_GET_CLASS
    - FuFirmwareClass*::convert_version
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_version_format(FuFirmware *self, FwupdVersionFormat
      version_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:329,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: fu_firmware_get_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_get_filename(FuFirmware *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:345,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:346,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:346,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:349,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:352,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 354
    functionName: fu_firmware_set_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_filename(FuFirmware *self, const gchar *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:366,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:367,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:367,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:370,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:373,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 375
    functionName: fu_firmware_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 14
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_id(FuFirmware *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:391,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: fu_firmware_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 17
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_get_id(FuFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:407,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:408,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: fu_firmware_set_addr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_addr(FuFirmware *self, guint64 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:425,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:426,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: fu_firmware_get_addr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_firmware_get_addr(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:442,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:443,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: fu_firmware_set_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 7
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_offset(FuFirmware *self, guint64 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:460,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:461,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: fu_firmware_get_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_firmware_get_offset(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:479,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: fu_firmware_get_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_parent(FuFirmware *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:495,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:496,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:496,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:499,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:499,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:501,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuFirmware*
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: fu_firmware_set_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - G_OBJECT
    - g_object_add_weak_pointer
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_parent(FuFirmware *self, FuFirmware *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:518,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:519,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FuFirmware*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: fu_firmware_set_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_size(FuFirmware *self, gsize size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:540,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:541,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:541,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 549
    functionName: fu_firmware_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - g_bytes_get_size
    - GET_PRIVATE
    linkageType: ''
    returnType: gsize
    signature: gsize fu_firmware_get_size(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:565,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:566,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_max
    argTypes:
    - FuFirmware*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: fu_firmware_set_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_size_max(FuFirmware *self, gsize size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:584,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: fu_firmware_get_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gsize
    signature: gsize fu_firmware_get_size_max(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:600,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:601,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: fu_firmware_set_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 7
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_idx(FuFirmware *self, guint64 idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:618,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:619,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: fu_firmware_get_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 9
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_firmware_get_idx(FuFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:635,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:636,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:636,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:637,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:641,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:642,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - FuFirmware*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 646
    functionName: fu_firmware_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 6
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_bytes_ref
    - g_bytes_unref
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_bytes(FuFirmware *self, GBytes *bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:665,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:666,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:666,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:668,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:671,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:677,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 681
    functionName: fu_firmware_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 8
    functionsReached:
    - FU_IS_FIRMWARE
    - g_set_error_literal
    - GET_PRIVATE
    - g_bytes_ref
    - fu_input_stream_read_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_get_bytes(FuFirmware *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:697,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:698,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:698,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:700,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:700,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:704,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:705,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:711,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:714,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:716,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:717,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:720,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:721,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:723,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:725,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 732
    functionName: fu_firmware_get_bytes_with_patches
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_bytes_get_data
    - fu_byte_array_append_bytes
    - g_prefix_error
    - g_bytes_get_size
    - fu_memcpy_safe
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - g_bytes_new
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_get_bytes_with_patches(FuFirmware *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:749,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:750,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - alignment
    argTypes:
    - FuFirmware*
    - FuFirmwareAlignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: fu_firmware_set_alignment
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_alignment(FuFirmware *self, FuFirmwareAlignment
      alignment)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:768,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:769,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:769,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:771,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:773,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: fu_firmware_get_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_object_ref
    - FU_IS_FIRMWARE
    - g_set_error_literal
    - GET_PRIVATE
    - g_memory_input_stream_new_from_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_firmware_get_stream(FuFirmware *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:793,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:794,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:795,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:795,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:797,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 804
    functionName: fu_firmware_set_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - G_IS_INPUT_STREAM
    - FU_IS_FIRMWARE
    - g_set_object
    - GET_PRIVATE
    - fu_input_stream_size
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_set_stream(FuFirmware *self, GInputStream *stream,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:822,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:823,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: fu_firmware_get_alignment
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFirmwareAlignment
    signature: FuFirmwareAlignment fu_firmware_get_alignment(FuFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:841,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:843,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:843,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:844,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:852,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:853,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:854,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:855,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:856,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:857,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:858,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:858,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:859,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 868
    functionName: fu_firmware_get_chunks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_ref
    - g_steal_pointer
    - fu_chunk_bytes_new
    - fu_chunk_set_address
    - FU_IS_FIRMWARE
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_chunk_set_idx
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_firmware_get_chunks(FuFirmware *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:882,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:883,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:883,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:884,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:884,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:886,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:887,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - chk
    argTypes:
    - FuFirmware*
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 888
    functionName: fu_firmware_add_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - FU_IS_CHUNK
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_chunk(FuFirmware *self, FuChunk *chk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:905,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:906,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:907,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:909,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:910,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:914,1
    - Dst: FuFirmwareClass*::get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:915,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:917,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:918,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:919,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:919,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:926,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:928,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:931,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:934,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 935
    functionName: fu_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_firmware_write
    - g_steal_pointer
    - g_error_matches
    - fu_input_stream_compute_checksum
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - FU_FIRMWARE_GET_CLASS
    - g_autoptr
    - FuFirmwareClass*::get_checksum
    - g_propagate_error
    - g_compute_checksum_for_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_get_checksum(FuFirmware *self, GChecksumType csum_kind, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:959,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:961,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:961,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:962,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:963,1
    - Dst: FuFirmwareClass*::tokenize
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 969
    functionName: fu_firmware_tokenize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - FuFirmwareClass*::tokenize
    - FU_IS_FIRMWARE
    - FU_FIRMWARE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_tokenize(FuFirmware *self,\n\t\t     GInputStream
      *stream,\n\t\t     FuFirmwareParseFlags flags,\n\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:990,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:992,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:992,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:993,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:993,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:994,1
    - Dst: FuFirmwareClass*::check_compatible
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - other
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 1000
    functionName: fu_firmware_check_compatible
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - FU_FIRMWARE_GET_CLASS
    - FuFirmwareClass*::check_compatible
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_check_compatible(FuFirmware *self,\n\t\t\t     FuFirmware
      *other,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1009,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1017,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1019,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1025,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1028,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1029,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1041,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1042,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1049,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1051
    functionName: fu_firmware_validate_for_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FuFirmwareClass*::validate
    - fu_firmware_set_offset
    - g_prefix_error
    - g_set_error_literal
    - fu_firmware_has_flag
    - FU_FIRMWARE_GET_CLASS
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_validate_for_offset(FuFirmware *self,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tgsize *offset,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1074,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1075,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1077,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1079,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1079,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1080,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1080,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1081,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1084,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1085,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1093,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1096,1
    - Dst: fu_firmware_validate_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1112,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1119,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1120,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1121,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1132,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1136,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1140,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1151,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1152,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1155,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1158,1
    - Dst: FuFirmwareClass*::tokenize
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1163,1
    - Dst: FuFirmwareClass*::parse
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1169,1
    - Dst: g_format_size_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1174,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1175,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1186
    functionName: fu_firmware_parse_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 10
    functionsReached:
    - FuFirmwareClass*::tokenize
    - g_prefix_error
    - g_return_val_if_fail
    - fu_input_stream_size
    - G_IS_INPUT_STREAM
    - g_set_error
    - g_object_ref
    - FU_IS_FIRMWARE
    - g_format_size_full
    - fu_firmware_set_bytes
    - fu_firmware_has_flag
    - FU_FIRMWARE_GET_CLASS
    - g_autoptr
    - fu_firmware_add_flag
    - fu_partial_input_stream_new
    - FuFirmwareClass*::parse
    - g_set_object
    - g_set_error_literal
    - GET_PRIVATE
    - g_format_size
    - fu_input_stream_read_bytes
    - fu_firmware_validate_for_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_parse_stream(FuFirmware *self,\n\t\t\t GInputStream
      *stream,\n\t\t\t gsize offset,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1211,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1213,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1215,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - fw
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GBytes*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1217
    functionName: fu_firmware_parse_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 16
    functionsReached:
    - fu_firmware_parse_stream
    - FU_IS_FIRMWARE
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_parse_bytes(FuFirmware *self,\n\t\t\tGBytes *fw,\n\t\t\tgsize
      offset,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1272,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1276,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1277,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1280,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1280,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1281,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1281,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1282,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1285,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1287,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1288,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1290,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1292,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1299,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1301,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1303,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1304,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1306,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1307,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1309,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1310,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1312,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1313,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1315,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1316,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1318,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1319,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1321,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1322,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1325,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1333,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1335,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1337,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1338,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1341,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1342,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1344,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1346,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1347,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1350,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1353,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1353,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1354,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1356,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1363,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1363,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1364,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1369,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1372,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1373,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1373,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1374,1
    - Dst: fu_chunk_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1375,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1377,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1382,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1385,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1386,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1387,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1389,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1391,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1398,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1400,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1402,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1404,1
    - Dst: FuFirmwareClass*::build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1411,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1417
    functionName: fu_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - XB_IS_NODE
    - fu_firmware_set_alignment
    - g_object_new
    - xb_node_query_first
    - g_return_val_if_fail
    - fu_firmware_add_chunk
    - fu_chunk_build
    - g_set_error
    - xb_node_query_text_as_uint
    - fu_firmware_set_offset
    - xb_node_get_text
    - fu_chunk_bytes_new
    - fu_firmware_add_image_full
    - fwupd_version_format_from_string
    - FU_IS_FIRMWARE
    - fu_firmware_set_addr
    - g_ptr_array_index
    - fu_bytes_pad
    - fu_chunk_set_idx
    - fu_firmware_set_bytes
    - g_type_from_name
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fu_firmware_set_size
    - FU_FIRMWARE_GET_CLASS
    - fu_firmware_set_version_raw
    - g_autoptr
    - g_bytes_new
    - xb_node_query_text
    - fu_firmware_new
    - g_base64_decode
    - fu_firmware_set_id
    - fu_firmware_build
    - fu_firmware_set_version
    - FuFirmwareClass*::build
    - xb_node_query
    - fu_firmware_set_size_max
    - fu_firmware_set_idx
    - fu_firmware_set_filename
    - fu_firmware_set_version_format
    - fu_bytes_get_contents
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_build(FuFirmware *self, XbNode *n, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1472,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1472,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1473,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1473,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1474,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1475,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1478,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1479,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1480,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1483,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1484,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1486,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1491,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1493,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - self
    - xml
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1469
    functionDepth: 3
    functionLinenumber: 1469
    functionLinenumberEnd: 1497
    functionName: fu_firmware_build_from_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - xb_builder_compile
    - xb_silo_query_first
    - xb_builder_new
    - fu_firmware_build
    - g_prefix_error
    - xb_builder_import_source
    - xb_builder_source_new
    - g_autoptr
    - xb_builder_source_load_xml
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_build_from_xml(FuFirmware *self, const gchar *xml,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1516,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1516,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1517,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1518,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1520,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1511
    functionDepth: 4
    functionLinenumber: 1511
    functionLinenumberEnd: 1523
    functionName: fu_firmware_build_from_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - g_file_get_contents
    - fu_firmware_build_from_xml
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_build_from_filename(FuFirmware *self, const gchar
      *filename, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1541,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1543,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1543,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1544,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1544,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1545,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1547,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1549,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1552,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - file
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GFile*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1553
    functionName: fu_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 5
    functionsReached:
    - g_file_read
    - G_INPUT_STREAM
    - fu_firmware_parse_stream
    - FU_IS_FIRMWARE
    - G_IS_FILE
    - g_autoptr
    - g_return_val_if_fail
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_parse_file(FuFirmware *self, GFile *file, FuFirmwareParseFlags
      flags, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1569,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1571,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1571,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1576,1
    - Dst: FuFirmwareClass*::write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1576,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1579,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1566
    functionDepth: 3
    functionLinenumber: 1566
    functionLinenumberEnd: 1584
    functionName: fu_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 18
    functionsReached:
    - fu_firmware_get_bytes_with_patches
    - FuFirmwareClass*::write
    - FU_IS_FIRMWARE
    - FU_FIRMWARE_GET_CLASS
    - g_autoptr
    - g_bytes_new
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_write(FuFirmware *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1602,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1605,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1605,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1606,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1611,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1616,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1618,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1618,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1619,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1620,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1626,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1628,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - offset
    - blob
    argTypes:
    - FuFirmware*
    - gsize
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1630
    functionName: fu_firmware_add_patch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_new0
    - g_bytes_get_size
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_bytes_ref
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_patch(FuFirmware *self, gsize offset, GBytes *blob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1652,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1656,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1657,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1661,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1672,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1673,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1678,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1683,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1685,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - address
    - chunk_sz_max
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1690
    functionName: fu_firmware_write_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_bytes_get_size
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_val_if_fail
    - fu_bytes_new_offset
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_write_chunk(FuFirmware *self, guint64 address, guint64 chunk_sz_max,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1707,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1710,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1711,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1711,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1712,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1714,1
    - Dst: g_file_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1717,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1718,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1719,1
    - Dst: g_file_replace_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1722,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1723,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - file
    - error
    argTypes:
    - FuFirmware*
    - GFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1704
    functionDepth: 4
    functionLinenumber: 1704
    functionLinenumberEnd: 1731
    functionName: fu_firmware_write_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - fu_firmware_write
    - g_file_get_parent
    - g_file_query_exists
    - g_file_make_directory_with_parents
    - g_bytes_get_size
    - FU_IS_FIRMWARE
    - G_IS_FILE
    - g_file_replace_contents
    - g_autoptr
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_write_file(FuFirmware *self, GFile *file, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1736,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1737,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - depth
    argTypes:
    - FuFirmware*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1739
    functionName: fu_firmware_set_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_depth(FuFirmware *self, guint depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1754,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1755,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1757
    functionName: fu_firmware_get_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_firmware_get_depth(FuFirmware *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1780,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1780,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1781,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1781,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1782,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1786,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1796,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1798,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1798,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1798,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1799,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1804,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1804,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1805,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1813,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1821,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1821,1
    - Dst: fu_firmware_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1824,1
    - Dst: fu_firmware_set_depth
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1825,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1829
    functionName: fu_firmware_add_image_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 8
    functionsReached:
    - g_set_error
    - g_object_ref
    - fu_firmware_set_depth
    - fu_firmware_set_parent
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - fu_firmware_get_idx
    - GET_PRIVATE
    - g_ptr_array_remove_index
    - g_strcmp0
    - g_return_val_if_fail
    - g_ptr_array_add
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_add_image_full(FuFirmware *self, FuFirmware *img,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1849,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1851,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1851,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1852,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1852,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1854,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - img
    argTypes:
    - FuFirmware*
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1846
    functionDepth: 2
    functionLinenumber: 1846
    functionLinenumberEnd: 1856
    functionName: fu_firmware_add_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 8
    functionsReached:
    - fu_firmware_add_image_full
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_critical
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_image(FuFirmware *self, FuFirmware *img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1870,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1871,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - images_max
    argTypes:
    - FuFirmware*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1873
    functionName: fu_firmware_set_images_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 9
    functionsReached:
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_images_max(FuFirmware *self, guint images_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1888,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1889,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1891
    functionName: fu_firmware_get_images_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_firmware_get_images_max(FuFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1908,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1910,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1910,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1911,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1911,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1912,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1914,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1918,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1905
    functionDepth: 1
    functionLinenumber: 1905
    functionLinenumberEnd: 1924
    functionName: fu_firmware_remove_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_ptr_array_remove
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_return_val_if_fail
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_remove_image(FuFirmware *self, FuFirmware *img,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1941,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1942,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1944,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1945,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1947,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1952
    functionName: fu_firmware_remove_image_by_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_remove
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_autoptr
    - g_return_val_if_fail
    - fu_firmware_get_image_by_idx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_remove_image_by_idx(FuFirmware *self, guint64
      idx, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1969,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1972,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1973,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1975,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 1980
    functionName: fu_firmware_remove_image_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_remove
    - fu_firmware_get_image_by_id
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_remove_image_by_id(FuFirmware *self, const gchar
      *id, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1995,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1996,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1998,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1998,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2000,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2002,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2003,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2003,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 2006
    functionName: fu_firmware_get_images
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 15
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_firmware_get_images(FuFirmware *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2023,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2025,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2025,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2026,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2030,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2030,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2032,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2034,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2034,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2035,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2038,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2048,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2049,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2050,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2057
    functionName: fu_firmware_get_image_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 12
    functionsReached:
    - g_object_ref
    - g_set_error
    - g_auto
    - g_strsplit
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - g_set_error_literal
    - GET_PRIVATE
    - g_return_val_if_fail
    - g_pattern_match_simple
    - fu_firmware_get_id
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_image_by_id(FuFirmware *self, const gchar *id, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2074,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2074,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2071
    functionDepth: 4
    functionLinenumber: 2071
    functionLinenumberEnd: 2078
    functionName: fu_firmware_get_image_by_id_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_autoptr
    - fu_firmware_get_image_by_id
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_get_image_by_id_bytes(FuFirmware *self, const gchar *id, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2095,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2095,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2092
    functionDepth: 2
    functionLinenumber: 2092
    functionLinenumberEnd: 2099
    functionName: fu_firmware_get_image_by_id_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - g_autoptr
    - fu_firmware_get_image_by_id
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_firmware_get_image_by_id_stream(FuFirmware *self, const gchar *id, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2116,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2118,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2119,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2122,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2123,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2124,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2132
    functionName: fu_firmware_get_image_by_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_set_error
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - fu_firmware_get_idx
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_image_by_idx(FuFirmware *self, guint64 idx, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2153,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2154,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2155,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2157,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2159,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2164,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2167,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2168,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2147
    functionDepth: 2
    functionLinenumber: 2147
    functionLinenumberEnd: 2176
    functionName: fu_firmware_get_image_by_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_object_ref
    - g_set_error
    - fwupd_checksum_guess_kind
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_image_by_checksum(FuFirmware *self, const gchar *checksum, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2193,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2193,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2190
    functionDepth: 4
    functionLinenumber: 2190
    functionLinenumberEnd: 2197
    functionName: fu_firmware_get_image_by_idx_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_get_image_by_idx
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_get_image_by_idx_bytes(FuFirmware *self, guint64 idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2214,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2214,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2218
    functionName: fu_firmware_get_image_by_idx_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_firmware_get_image_by_idx
    - g_autoptr
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_firmware_get_image_by_idx_stream(FuFirmware *self, guint64 idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2235,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2235,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - gtype
    - error
    argTypes:
    - FuFirmware*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2232
    functionDepth: 4
    functionLinenumber: 2232
    functionLinenumberEnd: 2239
    functionName: fu_firmware_get_image_by_gtype_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_firmware_get_image_by_gtype
    - fu_firmware_write
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_get_image_by_gtype_bytes(FuFirmware *self, GType gtype, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2256,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2258,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2259,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2260,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2263,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2264,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2264,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2265,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2267,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - gtype
    - error
    argTypes:
    - FuFirmware*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2273
    functionName: fu_firmware_get_image_by_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_set_error
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_type_name
    - g_return_val_if_fail
    - G_OBJECT_TYPE
    - g_type_is_a
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_image_by_gtype(FuFirmware *self, GType gtype, GError **error)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2288,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2289,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2290,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2293,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2298,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2298,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2305,1
    - Dst: fu_firmware_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2305,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2308,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2309,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2312,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2313,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2314,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2315,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2317,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2319,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2321,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2322,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2323,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2324,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2325,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2326,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2328,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2331,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2331,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2338,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2341,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2344,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2348,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2356,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2357,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2360,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2362,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2364,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2364,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2366,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2368,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2380,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2383,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2383,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2384,1
    - Dst: FuFirmwareClass*::export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2390,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2395,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2396,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2396,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2397,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - self
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2400
    functionName: fu_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - FuFirmwareClass*::export
    - g_string_new
    - fu_input_stream_read_byte_array
    - g_string_truncate
    - xb_builder_node_set_attr
    - xb_builder_node_insert
    - fu_xmlb_builder_insert_kv
    - G_OBJECT_TYPE_NAME
    - g_string_append_printf
    - g_ptr_array_index
    - MIN
    - fu_memstrsafe
    - FU_FIRMWARE_GET_CLASS
    - g_autoptr
    - fu_xmlb_builder_insert_kx
    - g_base64_encode
    - g_bytes_get_data
    - xb_builder_node_insert_text
    - fu_firmware_flag_to_string
    - fu_chunk_export
    - g_bytes_get_size
    - fwupd_version_format_to_string
    - g_strdup_printf
    - fu_firmware_export
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_firmware_export(FuFirmware *self, FuFirmwareExportFlags flags,
      XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2417,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2417,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2418,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2414
    functionDepth: 2
    functionLinenumber: 2414
    functionLinenumberEnd: 2424
    functionName: fu_firmware_export_to_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - xb_builder_node_export
    - fu_firmware_export
    - xb_builder_node_new
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_export_to_xml(FuFirmware *self, FuFirmwareExportFlags flags, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2439,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2439,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2440,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2436
    functionDepth: 2
    functionLinenumber: 2436
    functionLinenumberEnd: 2449
    functionName: fu_firmware_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 7
    functionsReached:
    - xb_builder_node_export
    - fu_firmware_export
    - xb_builder_node_new
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_firmware_to_string(FuFirmware *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2454,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2455,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2458,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2464
    functionName: fu_firmware_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2469,1
    - Dst: fu_firmware_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2472,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2472,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2478
    functionName: fu_firmware_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_value_get_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_firmware_set_parent
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2483,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2485
    functionName: fu_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_init(FuFirmware *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2490,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2491,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2492,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2493,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2494,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2496,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2498,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2500,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2502,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2504,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2504,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2505,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2507
    functionName: fu_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_FIRMWARE
    - GET_PRIVATE
    - G_OBJECT
    - g_free
    - g_bytes_unref
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fu_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2512,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2526,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2532
    functionName: fu_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_firmware_class_init(FuFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2546,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2548
    functionName: fu_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2563,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fw
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2560
    functionDepth: 1
    functionLinenumber: 2560
    functionLinenumberEnd: 2566
    functionName: fu_firmware_new_from_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - fu_firmware_new
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_new_from_bytes(GBytes *fw)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2590,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2590,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2591,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2593,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2594,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2597,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2599,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2602,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2604,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2608,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2617,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2618,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2618,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2619,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2620,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2621,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2623,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2625,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2629,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2633,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - stream
    - offset
    - flags
    - error
    argTypes:
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2582
    functionDepth: 3
    functionLinenumber: 2582
    functionLinenumberEnd: 2635
    functionName: fu_firmware_new_from_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_debug
    - va_end
    - g_steal_pointer
    - g_prefix_error
    - g_array_new
    - g_array_append_val
    - fu_firmware_parse_stream
    - g_object_new
    - g_set_error_literal
    - va_start
    - g_autoptr
    - g_propagate_error
    - g_return_val_if_fail
    - g_array_index
    - va_arg
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_firmware_new_from_gtypes(GInputStream *stream,\n\t\t\t
      \   gsize offset,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError **error,\n\t\t\t
      \   ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:49,1
    - Dst: FU_IS_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:49,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVariableAuthentication2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: fu_efi_variable_authentication2_get_signers
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_VARIABLE_AUTHENTICATION2
    - g_ptr_array_ref
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efi_variable_authentication2_get_signers(FuEfiVariableAuthentication2 *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:58,1
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:59,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:61,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:64,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:65,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: fu_efi_variable_authentication2_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - g_ptr_array_index
    - fu_firmware_export
    - g_autoptr
    - xb_builder_node_insert
    linkageType: ''
    returnType: void
    signature: "void fu_efi_variable_authentication2_export(FuFirmware *firmware,\n\t\t\t\t
      \      FuFirmwareExportFlags flags,\n\t\t\t\t       XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_efi_variable_authentication2_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: fu_efi_variable_authentication2_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_variable_authentication2_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_variable_authentication2_validate(FuFirmware *firmware,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t gsize offset,\n\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:100,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:100,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:108,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:117,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:121,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:122,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:125,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:126,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:129,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:130,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - error
    argTypes:
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 135
    functionName: fu_efi_variable_authentication2_add_content_info_prefix
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - fu_byte_array_append_uint16
    - g_prefix_error
    - g_byte_array_prepend
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_variable_authentication2_add_content_info_prefix(GByteArray
      *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:142,1
    - Dst: fu_pkcs7_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:144,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:147,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:148,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:148,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:156,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:158,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:159,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuEfiVariableAuthentication2*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: fu_efi_variable_authentication2_parse_pkcs7_certs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_pkcs7_new
    - g_bytes_new
    - g_autoptr
    - fu_firmware_parse_bytes
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_variable_authentication2_parse_pkcs7_certs(FuEfiVariableAuthentication2
      *self,\n\t\t\t\t\t\t  GByteArray *buf,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:176,1
    - Dst: fu_struct_efi_variable_authentication2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:179,1
    - Dst: fu_struct_efi_variable_authentication2_get_auth_info
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:184,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:186,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:187,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:190,1
    - Dst: fu_efi_variable_authentication2_add_content_info_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:195,1
    - Dst: fu_efi_variable_authentication2_parse_pkcs7_certs
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:197,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:201,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:202,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: fu_efi_variable_authentication2_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_efi_variable_authentication2_add_content_info_prefix
    - fu_struct_efi_variable_authentication2_parse_stream
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - fu_struct_efi_variable_authentication2_get_auth_info
    - fu_efi_variable_authentication2_parse_pkcs7_certs
    - fu_input_stream_read_byte_array
    - fu_struct_efi_win_certificate_get_length
    - FU_FIRMWARE_CLASS
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_variable_authentication2_parse(FuFirmware *firmware,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:212,1
    - Dst: fu_struct_efi_variable_authentication2_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:214,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:218,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:221,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: fu_efi_variable_authentication2_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_struct_efi_variable_authentication2_new
    - FU_FIRMWARE_CLASS
    - g_autoptr
    - g_byte_array_append
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_variable_authentication2_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:230,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:231,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVariableAuthentication2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: fu_efi_variable_authentication2_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_variable_authentication2_init(FuEfiVariableAuthentication2
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:238,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:239,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: fu_efi_variable_authentication2_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_EFI_VARIABLE_AUTHENTICATION2
    linkageType: ''
    returnType: void
    signature: void fu_efi_variable_authentication2_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:246,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVariableAuthentication2Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: fu_efi_variable_authentication2_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_variable_authentication2_class_init(FuEfiVariableAuthentication2Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: fu_test_hang_check_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_hang_check_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:57,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:58,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:59,1
    - Dst: g_timeout_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:60,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: fu_test_loop_run_with_timeout
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_assert_cmpint
    - g_assert_null
    - g_timeout_add
    - g_main_loop_run
    - g_main_loop_new
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_run_with_timeout(guint timeout_ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:68,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:72,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: fu_test_loop_quit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 2
    functionsReached:
    - g_main_loop_unref
    - g_main_loop_quit
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_quit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:88,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:89,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:90,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:93,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:94,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:95,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:96,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:99,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:99,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:100,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:100,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:101,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:101,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:102,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:102,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:103,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:103,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:107,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:108,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:109,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:110,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:113,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:114,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:115,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:116,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:119,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:119,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:123,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:124,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:127,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:128,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:129,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:130,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:133,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:133,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:134,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:134,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:135,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:135,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:138,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:139,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:140,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 142
    functionName: fu_msgpack_lookup_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_clear_error
    - fu_msgpack_item_new_integer
    - g_assert_null
    - fu_msgpack_item_new_string
    - fu_msgpack_map_lookup
    - g_assert_no_error
    - g_assert_nonnull
    - g_assert_error
    - g_autoptr
    - fu_msgpack_item_new_map
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_lookup_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:149,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:151,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:151,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:152,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:152,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:154,1
    - Dst: fu_msgpack_item_new_binary_stream
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:154,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:155,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:156,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:157,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:158,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:159,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:160,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:161,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:162,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:163,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:164,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:165,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:166,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 168
    functionName: fu_msgpack_binary_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_new_binary_stream
    - g_assert_cmpuint
    - g_assert_cmpint
    - G_INPUT_STREAM
    - fu_msgpack_write
    - g_memory_input_stream_new_from_bytes
    - g_assert_no_error
    - fu_dump_raw
    - g_assert_nonnull
    - g_bytes_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_binary_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:175,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:177,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:178,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:180,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:181,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:182,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:183,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:185,1
    - Dst: fu_msgpack_item_get_float
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 188
    functionName: fu_msgpack_parse_binary_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_parse
    - g_assert_cmpint
    - fu_msgpack_item_get_float
    - g_ptr_array_index
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_byte_array_append
    - g_assert_cmpfloat_with_epsilon
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_parse_binary_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:195,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:198,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:198,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:213,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:214,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:215,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:216,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:219,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:222,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:222,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:223,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:223,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:224,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:224,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:225,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:225,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:226,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:226,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:227,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:227,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:228,1
    - Dst: fu_msgpack_item_new_float
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:228,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:229,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:229,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:230,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:230,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:231,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:231,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:233,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:234,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:235,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:238,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:239,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:240,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:241,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:243,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:244,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:245,1
    - Dst: fu_msgpack_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:245,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:247,1
    - Dst: fu_msgpack_item_get_map
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:247,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:247,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:248,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:248,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:248,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:249,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:249,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:249,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:250,1
    - Dst: fu_msgpack_item_get_float
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:250,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:250,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:253,1
    - Dst: fu_msgpack_item_get_array
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:253,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 254
    functionName: fu_msgpack_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_get_array
    - fu_msgpack_item_get_map
    - fu_msgpack_item_new_binary
    - fu_msgpack_parse
    - fu_byte_array_append_uint24
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_msgpack_item_new_array
    - fu_msgpack_item_new_map
    - fu_msgpack_item_new_float
    - fu_msgpack_item_new_integer
    - fu_msgpack_write
    - fu_msgpack_item_get_kind
    - fu_msgpack_item_get_integer
    - g_assert_nonnull
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - G_N_ELEMENTS
    - g_byte_array_new
    - g_assert_cmpfloat_with_epsilon
    - fu_msgpack_item_new_string
    - fu_msgpack_item_get_float
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:262,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:265,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:269,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:270,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:271,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:272,1
    - Dst: fu_archive_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:274,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:275,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: fu_archive_invalid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_archive_new
    - g_test_build_filename
    - g_assert_null
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_bytes_get_contents
    linkageType: ''
    returnType: void
    signature: void fu_archive_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:290,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:293,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:297,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:302,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:303,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:304,1
    - Dst: fu_archive_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:306,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:307,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:308,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:311,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:312,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:313,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:314,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:316,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:317,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:318,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:319,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:320,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:322,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:323,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 325
    functionName: fu_archive_cab_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpstr
    - fu_archive_new
    - g_test_build_filename
    - g_assert_null
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_compute_checksum_for_bytes
    - g_assert_error
    - fu_bytes_get_contents
    - fu_archive_lookup_by_fn
    linkageType: ''
    returnType: void
    signature: void fu_archive_cab_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:330,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:330,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:333,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:333,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:336,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:336,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:339,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: fu_volume_gpt_type_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_volume_kind_convert_to_gpt
    linkageType: ''
    returnType: void
    signature: void fu_volume_gpt_type_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:345,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:345,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:346,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:346,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:347,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:347,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:348,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:348,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:349,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:349,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:350,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: fu_common_align_up_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_common_align_up
    linkageType: ''
    returnType: void
    signature: void fu_common_align_up_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:358,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:358,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:359,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:359,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:360,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:360,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:361,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:361,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:363,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:364,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:365,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:365,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:366,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:366,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:367,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:369,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:370,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:371,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 373
    functionName: fu_common_bitwise_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_CLEAR
    - FU_BIT_CLEAR
    - g_assert_cmpint
    - FU_BIT_SET
    - g_assert_true
    - FU_BIT_IS_SET
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_common_bitwise_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:379,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:382,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:384,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:385,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:386,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:387,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:388,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:389,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:390,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:390,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:392,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:393,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:394,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:394,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:396,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:397,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:399,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:400,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:401,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:402,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:403,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:403,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:405,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:406,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 408
    functionName: fu_common_byte_array_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_byte_array_append_uint8
    - fu_byte_array_to_string
    - g_assert_null
    - g_assert_no_error
    - memcmp
    - g_autoptr
    - g_assert_nonnull
    - g_assert_error
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: void
    signature: void fu_common_byte_array_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:415,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:415,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:416,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:416,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:417,1
    - Dst: fu_crc_misr16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:417,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:418,1
    - Dst: fu_crc_misr16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:418,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:421,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:421,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:422,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:422,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:423,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:423,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:424,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:424,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:425,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:425,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:426,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:426,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:427,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:427,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:428,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:428,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:429,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:429,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:430,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 431
    functionName: fu_common_crc_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_crc16
    - fu_crc8
    - fu_crc32
    - fu_crc_misr16
    linkageType: ''
    returnType: void
    signature: void fu_common_crc_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:439,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:440,1
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:443,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:444,1
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:448,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 450
    functionName: fu_common_guid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_common_guid_is_plausible
    - g_assert_true
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_common_guid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:455,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:455,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:456,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:457,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:458,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:459,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:460,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:461,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 470
    functionName: fu_string_append_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_string_new
    - g_autoptr
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_string_append_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:475,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:475,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:476,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:476,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:477,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:477,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:478,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:478,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:479,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:479,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:480,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:480,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:481,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:481,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:482,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:482,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:483,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:483,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:484,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: fu_version_guess_format_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_version_guess_format
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_version_guess_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:490,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:490,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:491,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:492,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:493,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:494,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: fu_device_version_format_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - g_assert_cmpstr
    - fu_device_get_version
    - fu_device_add_private_flag
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_version_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:500,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:500,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:503,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:504,1
    - Dst: fu_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:505,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:507,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:507,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:508,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:508,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:511,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:512,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:512,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:513,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 514
    functionName: fu_device_version_format_raw_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - g_assert_cmpstr
    - fu_device_get_version
    - fu_device_get_version_lowest
    - g_object_new
    - g_autoptr
    - fu_device_set_version_raw
    - fu_device_set_version_lowest_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_version_format_raw_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:520,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:521,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:522,1
    - Dst: fu_device_open
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:523,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:524,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:525,1
    - Dst: fu_device_open
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:526,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:527,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:528,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:529,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:530,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:531,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:532,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:533,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:534,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:535,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:536,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 538
    functionName: fu_device_open_refcount_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_close
    - fu_device_open
    - g_assert_true
    - fu_device_set_id
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_device_open_refcount_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:544,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:545,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:548,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:549,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 551
    functionName: fu_device_rescan_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_device_rescan
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_rescan_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:556,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:556,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:557,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:557,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:560,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:561,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:562,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:562,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:563,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:563,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:566,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:567,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:568,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:568,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:569,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:569,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:572,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:573,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:574,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:574,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:578,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:580,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:581,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:582,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:582,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:583,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 584
    functionName: fu_device_name_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_device_new
    - g_autoptr
    - fu_device_get_vendor
    - g_test_expect_message
    - fu_device_get_name
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_device_name_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:591,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:592,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:593,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:595,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:596,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:597,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:599,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:600,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:601,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:602,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:605,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:606,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:607,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:608,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:611,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:612,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:613,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:614,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:615,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:615,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:616,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:616,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:617,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:617,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:618,1
    - Dst: fu_cfi_device_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 619
    functionName: fu_device_cfi_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_device_setup
    - fu_cfi_device_get_page_size
    - g_assert_true
    - fu_cfi_device_get_size
    - fu_cfi_device_get_block_size
    - g_assert_no_error
    - FU_DEVICE
    - g_autoptr
    - fu_cfi_device_get_cmd
    - fu_context_load_quirks
    - fu_cfi_device_new
    - fu_cfi_device_get_sector_size
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_cfi_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:624,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:624,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:627,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:628,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:628,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:629,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:630,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:630,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:631,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:631,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:634,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:635,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:635,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:636,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:636,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:637,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:637,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:640,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:641,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:641,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:642,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:642,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:643,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 644
    functionName: fu_device_metadata_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata
    - g_assert_cmpstr
    - fu_device_set_metadata_boolean
    - g_assert_cmpint
    - fu_device_set_metadata
    - g_assert_true
    - g_assert_null
    - fu_device_get_metadata_integer
    - fu_device_new
    - g_autoptr
    - g_assert_false
    - fu_device_set_metadata_integer
    - fu_device_get_metadata_boolean
    linkageType: ''
    returnType: void
    signature: void fu_device_metadata_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:652,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:654,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:658,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:659,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:660,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:661,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:662,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:663,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:664,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:665,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:666,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:667,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:670,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:671,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:672,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 674
    functionName: fu_string_utf16_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_utf16_to_utf8_byte_array
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_byte_array_set_size
    linkageType: ''
    returnType: void
    signature: void fu_string_utf16_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:685,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:688,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:693,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:694,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:696,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:697,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:698,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:702,1
    - Dst: fu_smbios_setup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:703,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:704,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:705,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:706,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:706,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:707,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:710,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:711,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:712,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:713,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:716,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:721,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:722,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:723,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:726,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:727,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:728,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:729,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:732,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:733,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:734,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:737,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:742,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 744
    functionName: fu_smbios_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_debug
    - g_assert_cmpstr
    - fu_smbios_new
    - g_clear_error
    - fu_smbios_setup
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_to_string
    - g_assert_null
    - FU_FIRMWARE
    - g_assert_no_error
    - g_file_test
    - g_setenv
    - g_autoptr
    - fu_smbios_get_string
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_smbios_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:750,1
    - Dst: fu_kernel_parse_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:752,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:752,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:753,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:754,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:754,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:755,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:755,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:756,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:756,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:757,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:757,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:758,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:758,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:759,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:759,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:760,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:760,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:761,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 762
    functionName: fu_kernel_cmdline_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - strlen
    - g_assert_true
    - fu_kernel_parse_cmdline
    - g_assert_nonnull
    - g_autoptr
    - g_assert_false
    - g_hash_table_lookup
    - g_hash_table_contains
    linkageType: ''
    returnType: void
    signature: void fu_kernel_cmdline_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:770,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:772,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:772,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:773,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:774,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:775,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:775,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:776,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:776,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:777,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 778
    functionName: fu_kernel_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - strlen
    - g_assert_true
    - fu_kernel_parse_config
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_false
    - g_hash_table_lookup
    - g_hash_table_contains
    linkageType: ''
    returnType: void
    signature: void fu_kernel_config_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:788,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:790,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:792,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:793,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:797,1
    - Dst: fu_smbios_setup_from_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:798,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:799,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:800,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:801,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:801,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:802,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:805,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:806,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 808
    functionName: fu_smbios3_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_debug
    - g_assert_cmpstr
    - fu_smbios_new
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_to_string
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_smbios_setup_from_path
    - g_file_test
    - g_autoptr
    - fu_smbios_get_string
    linkageType: ''
    returnType: void
    signature: void fu_smbios3_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:814,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:815,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:817,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:818,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:819,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:821,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:822,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: fu_context_efivars_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_efivars_check_free_space
    - g_assert_true
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_efivars_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:829,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:830,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:831,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:831,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:832,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:834,1
    - Dst: fu_context_get_backend_by_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:835,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:836,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 838
    functionName: fu_context_backends_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_get_backend_by_name
    - g_object_new
    - g_assert_no_error
    - g_assert_nonnull
    - fu_context_add_backend
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_backends_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:843,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:843,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:845,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:845,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:846,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:847,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:847,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:848,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:849,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:850,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:850,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:851,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:852,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:853,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 854
    functionName: fu_context_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - g_assert_true
    - fu_context_remove_flag
    - g_assert_false
    - g_autoptr
    - fu_context_has_flag
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:859,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:859,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:862,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:863,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:866,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:867,1
    - Dst: fu_context_get_udev_subsystems
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:868,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:869,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:870,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:873,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:877,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:878,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:879,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:880,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:883,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:884,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:885,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 887
    functionName: fu_context_udev_subsystems_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_get_udev_subsystems
    - g_assert_cmpint
    - g_assert_no_error
    - fu_context_get_plugin_names_for_udev_subsystem
    - g_assert_nonnull
    - g_autoptr
    - fu_context_add_udev_subsystem
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_udev_subsystems_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:892,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:892,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:894,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:894,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:895,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:895,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:896,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:896,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:897,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:897,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:899,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:900,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:901,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:902,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:903,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:904,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:905,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:906,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:908,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:908,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:909,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:909,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:910,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:910,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:911,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 912
    functionName: fu_context_state_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_set_lid_state
    - fu_context_get_lid_state
    - fu_context_get_power_state
    - g_assert_cmpint
    - fu_context_get_display_state
    - fu_context_set_battery_level
    - fu_context_set_power_state
    - fu_context_set_display_state
    - g_autoptr
    - fu_context_get_battery_level
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_state_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:917,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:918,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:919,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:921,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:923,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:924,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:925,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:926,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:926,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:928,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:929,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:930,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:931,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:931,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:933,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:933,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:934,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 935
    functionName: fu_context_firmware_gtypes_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_add_firmware_gtype
    - fu_context_get_firmware_gtype_ids
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_ptr_array_index
    - g_assert_nonnull
    - g_autoptr
    - g_array_index
    - fu_context_get_firmware_gtypes
    - fu_context_get_firmware_gtype_by_id
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_firmware_gtypes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:941,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:941,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:942,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:942,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:943,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:946,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:947,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:948,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:949,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:949,1
    - Dst: fu_context_get_smbios
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:949,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:950,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:952,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:952,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:953,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 954
    functionName: fu_context_hwids_dmi_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_debug
    - fu_progress_new
    - g_assert_cmpuint
    - fu_context_load_hwinfo
    - fu_firmware_to_string
    - g_assert_true
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_context_get_smbios
    - fu_context_get_hwid_value
    - g_autoptr
    - fu_context_get_chassis_kind
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_hwids_dmi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:961,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:961,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:962,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:962,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:963,1
    - Dst: fu_fdt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:963,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:964,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:965,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:966,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:969,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:970,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:996,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:997,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:998,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:998,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:999,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1000,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1002,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1003,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1004,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1005,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1005,1
    - Dst: fu_context_get_smbios
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1005,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1006,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1008,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1008,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1009,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1009,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1012,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 956
    functionDepth: 5
    functionLinenumber: 956
    functionLinenumberEnd: 1013
    functionName: fu_context_hwids_fdt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_debug
    - fu_progress_new
    - g_assert_cmpuint
    - fu_context_load_hwinfo
    - g_file_new_for_path
    - fu_firmware_to_string
    - g_assert_true
    - fu_firmware_build_from_xml
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_context_get_smbios
    - fu_context_get_hwid_value
    - fu_fdt_firmware_new
    - g_autoptr
    - fu_firmware_write_file
    - fu_context_get_chassis_kind
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_context_hwids_fdt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1019,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1020,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1022
    functionName: fu_test_strnsplit_add_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_ptr_array_add
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_strnsplit_add_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1030
    functionName: fu_test_strnsplit_nop_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_strnsplit_nop_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1039,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1041,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1042,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1043,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1044,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1046,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1052,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1054
    functionName: fu_common_memmem_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_memmem_safe
    - g_autoptr
    - g_assert_error
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_common_memmem_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_strpassmask
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1071,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1074
    functionName: fu_strpassmask_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_strpassmask
    linkageType: ''
    returnType: void
    signature: void fu_strpassmask_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1083,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1084,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1084,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1085,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1085,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1088,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1089,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1090,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1091,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1092,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1092,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1093,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1093,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1094,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1094,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1095,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1095,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1099,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1101,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1102,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1105
    functionName: fu_strsplit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_full
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_assert_true
    - g_ptr_array_index
    - g_assert_no_error
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_string_sized_new
    - g_string_append
    linkageType: ''
    returnType: void
    signature: void fu_strsplit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1111,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1114,1
    - Dst: fu_common_get_olson_timezone_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1118,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1119,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1122,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1126
    functionName: fu_common_olson_timezone_id_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_common_get_olson_timezone_id
    - g_test_skip
    - g_assert_cmpstr
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_common_olson_timezone_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1132,1
    - Dst: fu_cpu_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1134,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1135,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1136,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1137,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1137,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1138,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1139
    functionName: fu_cpuid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_cpu_get_attrs
    - g_assert_cmpstr
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: void fu_cpuid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1155,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1155,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1156,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1156,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1157,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1160,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1161,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1162,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1163,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1164,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1165,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1166,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1167,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1167,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1170,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1173
    functionName: fu_strsafe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_strsafe
    - g_assert_true
    - fu_device_build_instance_id
    - g_ptr_array_index
    - g_assert_no_error
    - fu_device_add_instance_strsafe
    - fu_device_new
    - g_autoptr
    - fu_device_convert_instance_ids
    - fu_device_get_instance_ids
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_strsafe_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1181,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1182,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1207,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1212,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1213,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1216,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1217,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1218,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1222,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1223,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1224,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1225,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1227,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1227,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1230,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1230,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1231,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1231,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1234,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1234,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1237,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1237,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1238,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1238,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1241,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1241,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1244,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1244,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1247,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1247,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1251,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1252,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1253,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1254,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1257,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1258
    functionName: fu_hwids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpstr
    - fu_progress_new
    - fu_context_load_hwinfo
    - g_test_build_filename
    - g_assert_true
    - fu_context_get_hwids
    - fu_context_has_hwid_guid
    - g_assert_no_error
    - fu_context_get_hwid_value
    - fu_hwids_get_guid
    - g_setenv
    - g_autoptr
    - g_file_test
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_hwids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1264,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1266
    functionName: fu_test_plugin_device_added_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_test_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1274,1
    - Dst: fu_config_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1274,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1275,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1281,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1286,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1287,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1287,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1288,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1289,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1290,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1291,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1292,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1293,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1298,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1299,1
    - Dst: g_chmod
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1301,1
    - Dst: g_stat
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1302,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1303,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1304,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1307,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1308,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1308,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1309,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1311,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1312,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1313,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1314,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1321,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1322,1
    - Dst: fu_config_load
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1324,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1325,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1326,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1328,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1329,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1330,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1332,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1333,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1334,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1335,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1335,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1336,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1336,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1337,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1337,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1338,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1338,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1340
    functionName: fu_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_true
    - fu_config_set_value
    - fu_path_mkdir_parent
    - g_file_set_contents
    - g_assert_cmpint
    - g_strstr_len
    - g_remove
    - fu_config_new
    - g_chmod
    - g_stat
    - g_build_filename
    - g_assert_nonnull
    - g_setenv
    - g_autoptr
    - g_getenv
    - g_assert_no_error
    - fu_config_load
    linkageType: ''
    returnType: void
    signature: void fu_config_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1353,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1353,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1354,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1354,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1355,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1355,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1356,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1360,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1365,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1366,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1367,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1368,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1369,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1370,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1371,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1372,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1373,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1374,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1375,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1378,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1379,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1379,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1380,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1381,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1382,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1383,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1384,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1385,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1386,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1387,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1390,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1391,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1392,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1395,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1396,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1397,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1398,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1398,1
    - Dst: g_stat
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1401,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1402,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1403,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1406,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1407,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1408,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1409,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1410,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1411,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1342
    functionDepth: 3
    functionLinenumber: 1342
    functionLinenumberEnd: 1412
    functionName: fu_plugin_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_plugin_new
    - g_assert_true
    - fu_path_from_kind
    - fu_context_new
    - fu_path_mkdir_parent
    - g_file_set_contents
    - fu_context_load_hwinfo
    - g_assert_cmpint
    - g_remove
    - fu_plugin_set_name
    - g_stat
    - g_build_filename
    - g_assert_nonnull
    - g_autoptr
    - g_setenv
    - g_file_test
    - g_getenv
    - fu_plugin_get_config_value
    - g_assert_cmpstr
    - fu_progress_new
    - fu_plugin_set_config_value
    - g_assert_no_error
    - fu_plugin_set_config_default
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: void
    signature: void fu_plugin_config_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1417,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1417,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1418,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1419,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1419,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1422,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1423,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1424,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1426,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1427,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1428,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1429,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1430,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1431,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1434,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1435,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1436,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1437,1
    - Dst: fu_device_remove_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1440,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1414
    functionDepth: 3
    functionLinenumber: 1414
    functionLinenumberEnd: 1442
    functionName: fu_plugin_devices_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_plugin_device_add
    - fu_device_remove_child
    - fu_plugin_new
    - fu_device_set_id
    - fu_plugin_device_remove
    - g_assert_nonnull
    - fu_device_new
    - g_autoptr
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_plugin_devices_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1447,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1447,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1448,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1448,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1449,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1449,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1451,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1452,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1453,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1454,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1455,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1456,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1457,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1460,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1461,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1461,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1462,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1462,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1463,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1466,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1467,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1468,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1468,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1469,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1469,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1472,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1473,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1474,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1475,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1476,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1476,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1477,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1477,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1478,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1479
    functionName: fu_plugin_device_inhibit_children_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_private_flag
    - fu_device_inhibit
    - g_assert_true
    - fu_device_uninhibit
    - fu_device_set_id
    - fu_device_add_flag
    - fu_device_has_flag
    - fu_device_new
    - g_autoptr
    - g_assert_false
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_inhibit_children_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1485,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1486,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1488,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1489,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1489,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1491,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1493,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1493,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1495,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1499,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1500,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1501,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1502,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1503,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1503,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1506,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1509,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1510,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1511,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1511,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1515
    functionName: fu_plugin_delay_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_plugin_device_add
    - fu_plugin_new
    - fu_device_get_id
    - fu_device_set_id
    - fu_plugin_device_remove
    - fu_device_new
    - g_autoptr
    - g_assert_nonnull
    - g_signal_connect
    - FU_PLUGIN
    - G_CALLBACK
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_plugin_delay_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1522,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1522,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1523,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1524,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1525,1
    - Dst: fu_fdt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1525,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1526,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1527,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1528,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1529,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1530,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1531,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1534,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1535,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1542,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1543,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1544,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1544,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1545,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1546,1
    - Dst: fu_context_get_fdt
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1549,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1550,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1551,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1552,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1553,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1554,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1555,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1555,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1556,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1557,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1558,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1561,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1562,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1563,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1564,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1565,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1566,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1567,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1568,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1517
    functionDepth: 5
    functionLinenumber: 1517
    functionLinenumberEnd: 1570
    functionName: fu_plugin_fdt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_context_get_fdt
    - fu_firmware_get_image_by_id
    - g_file_new_for_path
    - FU_FDT_IMAGE
    - g_assert_true
    - fu_firmware_build_from_xml
    - FU_FIRMWARE
    - g_assert_null
    - g_assert_no_error
    - g_assert_nonnull
    - fu_fdt_firmware_new
    - g_autoptr
    - fu_fdt_image_get_attr_str
    - g_assert_error
    - fu_firmware_write_file
    - fu_firmware_get_image_by_gtype
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_fdt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1577,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1578,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1580,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1581,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1582,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1585,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1586,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1589,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1590,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1593,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1594,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1597,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1598,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1601,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1602,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1605,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1606,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1609,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1611
    functionName: fu_plugin_quirks_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_true
    - fu_context_lookup_quirk_by_id
    - g_assert_no_error
    - g_autoptr
    - fu_context_load_quirks
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_quirks_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1617,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1617,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1618,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1618,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1619,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1619,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1620,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1623,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1624,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1625,1
    - Dst: g_timer_reset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1628,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1632,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1633,1
    - Dst: g_print
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1636,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1637
    functionName: fu_plugin_quirks_performance_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_quirks_new
    - g_assert_cmpstr
    - g_timer_new
    - g_timer_reset
    - g_timer_elapsed
    - g_assert_true
    - fu_quirks_load
    - g_assert_no_error
    - fu_quirks_lookup_by_id
    - g_autoptr
    - g_print
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_quirks_performance_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1652,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1653,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1653,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1657,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1657,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - quirks
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1662
    functionName: fu_plugin_quirks_append_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_assert_not_reached
    - g_debug
    linkageType: ''
    returnType: void
    signature: "void fu_plugin_quirks_append_cb(FuQuirks *quirks,\n\t\t\t   const
      gchar *key,\n\t\t\t   const gchar *value,\n\t\t\t   FuContextQuirkSource source,\n\t\t\t
      \  gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1667,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1667,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1668,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1668,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1669,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1669,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1670,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1670,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1673,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1674,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1675,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1675,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1676,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1676,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1679,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1680,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1680,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1681,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1681,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1684,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1685,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1686,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1686,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1687,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1688
    functionName: fu_plugin_device_progress_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_progress_new
    - g_assert_cmpint
    - fu_device_get_status
    - g_clear_object
    - fu_device_new
    - g_autoptr
    - fu_device_progress_new
    - fu_progress_set_percentage
    - fu_device_get_percentage
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_progress_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1695,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1695,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1696,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1696,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1697,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1700,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1701,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1702,1
    - Dst: fu_quirks_lookup_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1703,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1708,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1709,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1711
    functionName: fu_plugin_quirks_append_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_quirks_new
    - fu_quirks_lookup_by_id_iter
    - g_assert_true
    - fu_quirks_load
    - g_assert_no_error
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_quirks_append_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1718,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1718,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1719,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1720,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1721,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1722,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1723,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1724,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1725,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1726,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1726,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1727,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1729,1
    - Dst: g_unlink
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1730,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1733,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1734,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1735,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1736,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1737,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1738,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1739,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1740,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1741,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1742,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1743,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1744,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1745,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1746,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1747,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1748,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1749,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1751
    functionName: fu_quirks_vendor_ids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_quirks_new
    - g_assert_cmpstr
    - g_debug
    - g_build_filename
    - g_unlink
    - g_assert_true
    - fu_quirks_load
    - g_assert_no_error
    - fu_path_from_kind
    - fu_quirks_lookup_by_id
    - g_autoptr
    - fwupd_guid_hash_string
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_quirks_vendor_ids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1758,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1758,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1759,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1759,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1761,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1762,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1763,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1764,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1765,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1766,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1767,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1769,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1770,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1771,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1772,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1753
    functionDepth: 2
    functionLinenumber: 1753
    functionLinenumberEnd: 1773
    functionName: fu_plugin_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - g_hash_table_size
    - fu_plugin_get_rules
    - g_assert_cmpint
    - fu_plugin_new
    - g_assert_null
    - g_assert_nonnull
    - g_autoptr
    - fu_plugin_add_report_metadata
    - fu_plugin_get_report_metadata
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1779,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1779,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1780,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1780,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1781,1
    - Dst: fu_plugin_runner_modify_config
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1784,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1785,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1786,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1775
    functionDepth: 3
    functionLinenumber: 1775
    functionLinenumberEnd: 1788
    functionName: fu_plugin_vfuncs_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_clear_error
    - fu_plugin_runner_modify_config
    - fu_plugin_new
    - g_assert_false
    - g_assert_error
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_vfuncs_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1793,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1793,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1794,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1794,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1797,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1798,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1799,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1799,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1802,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1803,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1803,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1806,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1807,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1808
    functionName: fu_plugin_device_gtype_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_plugin_get_device_gtype_default
    - fu_plugin_set_device_gtype_default
    - fu_plugin_new
    - fu_plugin_add_device_gtype
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_gtype_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1814,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1815,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1815,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1816,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1816,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1817,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1817,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1818,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1820,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1821,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1822,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1824,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1825,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1826,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1827,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1810
    functionDepth: 6
    functionLinenumber: 1810
    functionLinenumberEnd: 1829
    functionName: fu_plugin_backend_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_device_add_private_flag
    - fu_plugin_new
    - g_assert_true
    - g_assert_no_error
    - fu_device_set_specialized_gtype
    - fu_plugin_runner_backend_device_added
    - fu_device_new
    - g_autoptr
    - fu_plugin_runner_backend_device_changed
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_backend_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1836
    functionName: fu_test_plugin_backend_proxy_device_added_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_backend_proxy_device_added_cb(FuPlugin *plugin,
      FuDevice *device, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1843,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1843,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1844,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1844,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1845,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1846,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1846,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1847,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1847,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1848,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1850,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1851,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1852,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1853,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1854,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1857,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1859,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1862,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1863,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1864,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1865,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1866,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1869,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1870,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1870,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1873,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1874,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1875,1
    - Dst: FU_IS_TEST_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1838
    functionDepth: 6
    functionLinenumber: 1838
    functionLinenumberEnd: 1876
    functionName: fu_plugin_backend_proxy_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_new
    - g_assert_true
    - g_signal_connect
    - fu_plugin_runner_backend_device_changed
    - fu_context_new
    - FU_IS_DEVICE
    - fu_device_get_proxy
    - fu_device_add_flag
    - fu_device_set_specialized_gtype
    - fu_plugin_runner_backend_device_added
    - G_CALLBACK
    - fu_device_set_id
    - g_assert_nonnull
    - g_autoptr
    - FU_IS_TEST_DEVICE
    - fu_progress_new
    - fu_device_set_proxy_gtype
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_backend_proxy_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1884,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1884,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1885,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1885,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1886,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1888,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1889,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1890,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1893,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1894,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1895,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1896,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1900,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1901,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1901,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1904,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1904,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1907,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1907,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1910,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1910,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1913,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1913,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1918,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1919,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1920,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1921,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1921,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1922,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 1923
    functionName: fu_plugin_quirks_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_device_has_flag
    - fu_context_load_quirks
    - fu_context_new
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_device_add_flag
    - g_assert_false
    - fu_device_get_name
    - fu_device_set_physical_id
    - fu_device_get_children
    - fu_device_add_instance_id
    - fu_device_has_instance_id
    - g_autoptr
    - fu_device_add_instance_id_full
    - g_assert_cmpstr
    - g_assert_no_error
    - fu_device_new
    - fu_device_set_context
    linkageType: ''
    returnType: void
    signature: void fu_plugin_quirks_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1934,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1938,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1939,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1940,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1941,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1943,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1944,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1945,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1946,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1948,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1949,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1950,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 1952
    functionName: fu_common_kernel_lockdown_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_kernel_locked_down
    - g_test_build_filename
    - g_assert_true
    - g_assert_false
    - g_setenv
    linkageType: ''
    returnType: void
    signature: void fu_common_kernel_lockdown_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1960,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1961,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1964,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1968,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1969,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1970,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1971,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1972,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1974,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1975,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1976,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1978,1
    - Dst: fu_kernel_search_path_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1979,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1980,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1981,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1982,1
    - Dst: fu_kernel_search_path_locker_get_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1982,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1984,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1985,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1986,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1987,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1988,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1990,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1991,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1992,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1994
    functionName: fu_common_kernel_search_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpstr
    - g_file_set_contents
    - g_clear_error
    - fu_kernel_search_path_get_current
    - g_assert_true
    - g_assert_null
    - fu_kernel_search_path_locker_get_path
    - g_assert_no_error
    - g_assert_nonnull
    - g_setenv
    - g_autoptr
    - g_assert_error
    - fu_kernel_search_path_locker_new
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_common_kernel_search_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1999,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:1999,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1996
    functionDepth: 0
    functionLinenumber: 1996
    functionLinenumberEnd: 2002
    functionName: fu_test_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_set_data
    - g_assert_cmpstr
    - g_object_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_open_cb(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2007,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2007,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2010
    functionName: fu_test_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_set_data
    - g_assert_cmpstr
    - g_object_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_close_cb(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2015,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2016,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2017,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2017,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2019,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2020,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2021,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2022,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2023,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2024,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2025
    functionName: fu_device_locker_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_object_set_data
    - g_object_get_data
    - g_object_new
    - g_clear_object
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2030,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2033
    functionName: fu_test_fail_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_set_metadata_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_fail_open_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2038,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2041
    functionName: fu_test_fail_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_set_metadata_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_fail_close_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2046,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2047,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2048,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2048,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2049,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2053,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2054,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2055,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2055,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2056,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2056,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2057,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2058
    functionName: fu_device_locker_fail_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_null
    - fu_device_has_private_flag
    - fu_device_new
    - g_assert_error
    - g_autoptr
    - g_assert_false
    - fu_device_get_metadata_boolean
    - fu_device_locker_new_full
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_fail_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2065,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2066,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2067,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2068,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2068,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2070,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2071,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2072,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2073,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2073,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2075,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2076,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2077,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2078,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2079,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2079,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2081,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2082,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2083,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2084,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2085,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2086
    functionName: fu_common_endian_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_memwrite_uint24
    - fu_memread_uint24
    - fu_memwrite_uint16
    - fu_memread_uint16
    linkageType: ''
    returnType: void
    signature: void fu_common_endian_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2094,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2095,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2096,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2097,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2101,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2102,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2106,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2108,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2108,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2109,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2109,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2112,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2113,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2114,1
    - Dst: g_mapped_file_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2115,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2116,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2117,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2117,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2118,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2118,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2121,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2122,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2124
    functionName: fu_common_bytes_get_data_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_data_safe
    - g_file_set_contents
    - g_assert_cmpint
    - g_bytes_get_size
    - g_assert_true
    - g_mapped_file_new
    - g_assert_null
    - g_mapped_file_get_bytes
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_bytes_get_contents
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void fu_common_bytes_get_data_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2129,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2130,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2126
    functionDepth: 1
    functionLinenumber: 2126
    functionLinenumberEnd: 2133
    functionName: fu_device_poll_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata_integer
    - g_debug
    - fu_device_set_metadata_integer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2139,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2141,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2142,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2146,1
    - Dst: fu_device_poll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2149,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2150,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2151,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2153,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2156,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2157,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2158,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2159,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2160,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2161,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2164,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2166,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2167,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2168,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2169,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2170,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2170,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2171,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2174,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2175,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2176,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2177,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2177,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2179
    functionName: fu_device_poll_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_test_loop_quit
    - fu_device_poll
    - fu_device_poll_locker_new
    - fu_device_add_private_flag
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_device_get_metadata_integer
    - fu_test_loop_run_with_timeout
    - fu_device_set_metadata_integer
    - FU_DEVICE_GET_CLASS
    - fu_device_new
    - g_autoptr
    - g_assert_nonnull
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_device_poll_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2186,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2186,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2187,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2187,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2189,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2190,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2193,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2194,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2195,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2196,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2198,1
    - Dst: fu_device_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2199,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2200,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2201,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2203,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2204,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2205,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2181
    functionDepth: 1
    functionLinenumber: 2181
    functionLinenumberEnd: 2206
    functionName: fu_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_contents
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_test_build_filename
    - g_bytes_get_size
    - g_assert_no_error
    - fu_device_get_contents_bytes
    - fu_device_add_possible_plugin
    - fu_device_get_possible_plugins
    - fu_device_new
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2211,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2212,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2213,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2214,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2214,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2215,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2215,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2218,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2219,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2220,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2223,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2224,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2225,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2228,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2229,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2230,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2208
    functionDepth: 3
    functionLinenumber: 2208
    functionLinenumberEnd: 2232
    functionName: fu_device_event_donor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_event
    - fu_device_set_target
    - g_assert_cmpint
    - fu_device_get_events
    - fu_device_new
    - g_autoptr
    - g_assert_nonnull
    - fu_device_event_new
    linkageType: ''
    returnType: void
    signature: void fu_device_event_donor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2240,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2240,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2241,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2241,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2242,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2246,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2248,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2249,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2250,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2251,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2254,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2255,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2256,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2258,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2258,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2259,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2260,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2270,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2270,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2271,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2272,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2273,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2273,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2274,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2274,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2275,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2275,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2276,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2277,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2278,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2278,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2279,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2280,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2281,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2281,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2284,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2285,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2286,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2289,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2290,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2291,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2292,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2234
    functionDepth: 3
    functionLinenumber: 2234
    functionLinenumberEnd: 2294
    functionName: fu_device_event_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_event_check_error
    - fu_device_event_get_str
    - FWUPD_CODEC
    - g_assert_true
    - g_assert_null
    - fu_device_event_set_str
    - g_assert_cmpint
    - g_assert_false
    - fwupd_codec_to_json_string
    - fu_device_event_get_bytes
    - fu_device_event_set_bytes
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_device_event_new
    - g_bytes_new_static
    - g_bytes_get_data
    - fu_device_event_set_data
    - fu_device_event_set_error
    - g_assert_cmpstr
    - fwupd_codec_from_json_string
    - fu_device_event_set_i64
    - fu_device_event_get_i64
    - g_assert_no_error
    - fu_device_event_get_id
    linkageType: ''
    returnType: void
    signature: void fu_device_event_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2300,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2301,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2304,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2305,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2305,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2306,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2296
    functionDepth: 3
    functionLinenumber: 2296
    functionLinenumberEnd: 2313
    functionName: fu_device_event_uncompressed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_event_set_str
    - g_assert_cmpstr
    - FWUPD_CODEC
    - g_assert_no_error
    - g_autoptr
    - fu_device_event_new
    - fwupd_codec_to_json_string
    linkageType: ''
    returnType: void
    signature: void fu_device_event_uncompressed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2319,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2320,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2321,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2321,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2322,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2323,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2324,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2325,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2328,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2329,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2330,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2331,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2333,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2338,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2339,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2340,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2342,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2343,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2344,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2345,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2347,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2348,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2349,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2350,1
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2352,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2353,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2354,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2355,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2356,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2357,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2358,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2359,1
    - Dst: fu_device_detach
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2362,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2363,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2364,1
    - Dst: fu_device_attach
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2365,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2366,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2367,1
    - Dst: fu_device_activate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2368,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2369,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2370,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2373,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2374,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2375,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2376,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2315
    functionDepth: 1
    functionLinenumber: 2315
    functionLinenumberEnd: 2378
    functionName: fu_device_vfuncs_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_null
    - fu_device_probe
    - fu_device_read_firmware
    - fu_context_new
    - fu_device_add_private_flag
    - fu_device_write_firmware
    - fu_device_dump_firmware
    - fu_device_get_results
    - g_assert_false
    - fu_device_bind_driver
    - fu_device_attach
    - g_clear_error
    - g_autoptr
    - g_assert_error
    - fu_firmware_new
    - fu_progress_new
    - fu_device_activate
    - fu_device_unbind_driver
    - fu_device_detach
    - g_assert_no_error
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_vfuncs_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2384,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2384,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2385,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2385,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2386,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2389,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2390,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2391,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2394,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2394,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2397,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2398,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2398,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2400,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2401,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2402,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2403,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2403,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2406,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2407,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2408
    functionName: fu_device_instance_ids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_guid
    - fu_device_setup
    - g_assert_true
    - fu_device_add_instance_id
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    - g_assert_false
    - fu_context_load_quirks
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_instance_ids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2413,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2413,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2414,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2414,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2415,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2415,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2416,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2416,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2419,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2420,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2420,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2423,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2426,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2427,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2427,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2430,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2430,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2435,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2436,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2437,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2438,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2439,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2439,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2442,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2442,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2445,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2445,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2448,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2448,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2453,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2454,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2454,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2457,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2460
    functionName: fu_device_composite_id_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_assert_cmpstr
    - fu_device_get_composite_id
    - fu_device_set_id
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_composite_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2465,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2465,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2467,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2468,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2469,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2469,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2470,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2470,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2473,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2474,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2474,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2477,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2478,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2478,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2479,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2479,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2480,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2480,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2483,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2484,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2484,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2485,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2485,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2488,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2489,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2489,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2490,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2490,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2491,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2491,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2494,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2495,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2495,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2496,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2497
    functionName: fu_device_inhibit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_battery_level
    - fu_device_inhibit
    - fu_device_set_battery_threshold
    - g_assert_true
    - fu_device_uninhibit
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_has_inhibit
    - fu_device_new
    - g_autoptr
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2502,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2502,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2504,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2504,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2505,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2505,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2506,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2506,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2509,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2510,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2510,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2511,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2511,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2512,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2512,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2515,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2516,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2516,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2517,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2517,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2518,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2519
    functionName: fu_device_inhibit_updateable_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_device_inhibit
    - fu_device_get_update_error
    - fu_device_uninhibit
    - fu_device_has_flag
    - g_assert_false
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_updateable_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2525,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2525,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2527,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2528,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2530,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2531,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2531,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2532,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2533,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2533,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2534,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2534,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2535,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2536,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2536,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2537,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2537,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2538,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2539,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2539,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2540,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2540,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2542,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2550
    functionName: fu_device_custom_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_true
    - fu_device_has_private_flag
    - fu_device_to_string
    - fu_device_new
    - fu_device_register_private_flag
    - g_autoptr
    - fu_device_set_custom_flags
    - g_assert_false
    linkageType: ''
    returnType: void
    signature: void fu_device_custom_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2555,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2555,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2556,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2556,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2558,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2558,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2561,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2562,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2563,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2563,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2564,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2567,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2568,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2568,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2571,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2575,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2576,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2576,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2579,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2580,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2580,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2583,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2584,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2585,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2552
    functionDepth: 1
    functionLinenumber: 2552
    functionLinenumberEnd: 2586
    functionName: fu_device_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - g_assert_cmpint
    - g_assert_true
    - fu_device_get_flags
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_remove_flag
    - fu_device_new
    - g_autoptr
    - fu_device_set_custom_flags
    linkageType: ''
    returnType: void
    signature: void fu_device_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2592,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2592,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2593,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2593,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2594,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2594,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2595,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2598,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2599,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2600,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2602,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2603,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2606,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2610,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2611,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2611,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2615,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2616,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2617,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2618,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2588
    functionDepth: 1
    functionLinenumber: 2588
    functionLinenumberEnd: 2619
    functionName: fu_device_children_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_has_guid
    - fu_device_setup
    - g_assert_true
    - fu_device_add_instance_id
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    - g_assert_false
    - fu_context_load_quirks
    - fu_device_set_physical_id
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_children_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2624,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2624,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2625,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2626,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2626,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2627,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2628,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2628,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2629,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2631,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2632,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2633,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2636,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2637,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2640,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2640,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2641,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2641,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2642,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2642,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2645,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2646,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2647,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2648,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2649,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2621
    functionDepth: 1
    functionLinenumber: 2621
    functionLinenumberEnd: 2651
    functionName: fu_device_parent_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_root
    - fu_device_add_child
    - g_assert_true
    - fu_device_new
    - g_autoptr
    - fu_device_get_parent
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_device_parent_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2656,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2656,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2657,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2657,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2658,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2658,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2660,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2661,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2661,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2663,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2664,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2664,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2667,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2668,1
    - Dst: fu_device_get_summary
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2653
    functionDepth: 1
    functionLinenumber: 2653
    functionLinenumberEnd: 2669
    functionName: fu_device_incorporate_descendant_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_summary
    - g_assert_cmpstr
    - fu_device_set_summary
    - g_object_new
    - FU_DEVICE
    - fu_device_new
    - g_autoptr
    - fu_device_get_name
    - fu_device_set_name
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_descendant_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2674,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2674,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2675,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2675,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2676,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2676,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2678,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2682,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2685,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2686,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2687,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2687,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2690,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2690,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2693,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2694,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2694,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2697,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2697,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2700,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2701,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2701,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2702,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2703,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2671
    functionDepth: 1
    functionLinenumber: 2671
    functionLinenumberEnd: 2704
    functionName: fu_device_incorporate_non_generic_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_add_instance_id_full
    - fu_device_add_private_flag
    - g_assert_true
    - fwupd_device_has_instance_id
    - fu_device_new
    - g_autoptr
    - g_assert_false
    - fu_device_has_instance_id
    - FWUPD_DEVICE
    - fu_device_convert_instance_ids
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_non_generic_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2709,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2709,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2710,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2710,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2711,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2711,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2713,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2714,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2715,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2717,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2721,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2721,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2722,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2722,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2723,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2723,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2725,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2726,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2727
    functionName: fu_device_incorporate_flag_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - g_assert_cmpstr
    - fu_device_get_logical_id
    - fu_device_has_vendor_id
    - g_assert_true
    - fu_device_add_vendor_id
    - fu_device_set_logical_id
    - fu_device_get_physical_id
    - fu_device_new
    - g_autoptr
    - fu_device_set_physical_id
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_flag_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2733,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2733,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2734,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2734,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2735,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2735,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2736,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2739,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2740,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2741,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2744,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2745,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2746,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2747,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2748,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2749,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2750,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2751,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2754,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2761,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2762,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2763,1
    - Dst: fu_device_get_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2763,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2764,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2767,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2768,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2769,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2770,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2773,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2774,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2775,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2778,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2779,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2779,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2782,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2782,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2783,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2783,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2784,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2784,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2785,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2785,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2786,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2786,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2787,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2787,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2788,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2789,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2790,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2791,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2792,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2793,1
    - Dst: fu_device_get_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2729
    functionDepth: 1
    functionLinenumber: 2729
    functionLinenumberEnd: 2794
    functionName: fu_device_incorporate_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_device_has_flag
    - fu_context_load_quirks
    - fu_device_build_instance_id_full
    - fu_context_new
    - fu_device_get_metadata
    - fu_device_set_equivalent_id
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_device_set_metadata
    - fu_device_get_created_usec
    - fu_device_add_flag
    - fu_device_set_modified_usec
    - fu_device_register_private_flag
    - fu_device_get_modified_usec
    - fu_device_set_custom_flags
    - fu_device_add_instance_u32
    - fu_device_get_equivalent_id
    - fu_device_get_icons
    - fu_device_add_instance_u16
    - fu_device_incorporate
    - fu_device_has_instance_id
    - g_autoptr
    - fu_device_add_icon
    - fu_device_get_custom_flags
    - g_assert_cmpstr
    - fu_device_build_instance_id
    - g_assert_no_error
    - fu_device_set_created_usec
    - fu_device_new
    - fu_device_add_instance_str
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - device
    - user_data
    argTypes:
    - FuBackend*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2796
    functionDepth: 0
    functionLinenumber: 2796
    functionLinenumberEnd: 2801
    functionName: fu_backend_emulate_count_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_backend_emulate_count_cb(FuBackend *backend, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2813,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2814,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2815,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2816,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2817,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2851,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2859,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2859,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2861,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2863,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2863,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2865,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2867,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2867,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2869,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2873,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2873,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2874,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2875,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2876,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2877,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2878,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2881,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2882,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2883,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2884,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2884,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2887,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2892,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2892,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2893,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2894,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2895,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2896,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2901,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2902,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2903,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2908,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2909,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2910,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2913,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2913,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2914,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2915,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2916,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2917,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2918,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2919,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2920,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2921,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2922,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2922,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2925,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2925,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2926,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2927,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2928,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2929,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2930,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2931,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2932,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2933,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2936,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2937,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2937,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2938,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2939,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2940,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2941,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2944,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2945,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2946,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2803
    functionDepth: 2
    functionLinenumber: 2803
    functionLinenumberEnd: 2948
    functionName: fu_backend_emulate_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_udev_device_ioctl_new
    - FWUPD_CODEC
    - g_assert_true
    - g_assert_null
    - g_object_new
    - fu_device_has_flag
    - fu_device_set_fwupd_version
    - g_signal_connect
    - fu_backend_lookup_by_id
    - FU_BACKEND
    - fu_context_new
    - g_debug
    - g_assert_cmpint
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_ioctl_execute
    - G_CALLBACK
    - fwupd_codec_to_json_string
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_cmpstr
    - fu_device_get_backend_parent_with_subsystem
    - fwupd_codec_from_json_string
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_backend_emulate_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2955,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2955,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2956,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2956,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2957,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2957,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2958,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2958,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2959,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2960,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2963,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2963,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2964,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2964,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2967,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2968,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2969,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2970,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2971,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2972,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2975,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2976,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2977,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2978,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2979,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2980,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2982,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2983,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2984,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2987,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2988,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2991,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2992,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2993,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2994,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2995,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:2996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2997
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2997
    functionName: fu_backend_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_get_enabled
    - fu_backend_coldplug
    - g_assert_true
    - g_assert_null
    - g_object_new
    - fu_backend_get_name
    - fu_backend_lookup_by_id
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_backend_get_devices
    - fu_device_set_physical_id
    - fu_backend_setup
    - fu_backend_device_removed
    - g_assert_nonnull
    - g_autoptr
    - fu_progress_new
    - g_assert_no_error
    - fu_backend_device_added
    - fu_device_new
    - fu_backend_device_changed
    linkageType: ''
    returnType: void
    signature: void fu_backend_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3002,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3004,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3005,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3006,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3007,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3007,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3008,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3009,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3011,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3011,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3013,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3014,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3015,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3016,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3016,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3017,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3017,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3018,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3018,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3019,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3019,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3019,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3021,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3022,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3023,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3024,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3024,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3025,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3025,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3026,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3026,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3027,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3027,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3027,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3029,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3030,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3031,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3032,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3032,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3033,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3033,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3034,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3034,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3035,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3035,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3035,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3037,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3038,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3039,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3040,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 2999
    functionDepth: 3
    functionLinenumber: 2999
    functionLinenumberEnd: 3042
    functionName: fu_chunk_array_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_assert_cmpint
    - strncmp
    - g_assert_null
    - fu_chunk_get_idx
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_assert_error
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3052,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3053,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3054,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3055,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3056,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3058,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3059,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3060,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3073,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3074,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3075,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3088,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3089,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3090,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3091,1
    - Dst: xb_version_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3091,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3092,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3094,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3097,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3098,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3099,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3127,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3128,1
    - Dst: g_print
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3129,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3164
    functionName: fu_chunk_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_version_compare
    - g_autoptr
    - g_print
    - fu_chunk_array_new
    - xb_version_string
    - fu_chunk_array_to_string
    linkageType: ''
    returnType: void
    signature: void fu_chunk_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3179,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3166
    functionDepth: 1
    functionLinenumber: 3166
    functionLinenumberEnd: 3182
    functionName: fu_strstrip_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_strstrip
    linkageType: ''
    returnType: void
    signature: void fu_strstrip_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3200,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3184
    functionDepth: 1
    functionLinenumber: 3184
    functionLinenumberEnd: 3203
    functionName: fu_version_semver_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_version_ensure_semver
    - g_assert_cmpstr
    linkageType: ''
    returnType: void
    signature: void fu_version_semver_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3210,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3212,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3213,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3214,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3215,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3217,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3218,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3219,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3220,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3222,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3223,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3224,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3225,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3227,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3228,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3229,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3230,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3231,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3232,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3233,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3235
    functionName: fu_strtoull_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_strtoull_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3242,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3244,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3245,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3246,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3247,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3249,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3250,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3251,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3252,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3254,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3255,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3256,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3257,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3259,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3260,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3261,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3262,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3263,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3264,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3265,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3267
    functionName: fu_strtoll_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - fu_strtoll
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strtoll_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3355,1
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3357,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3359,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3361,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3363,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3365,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3367,1
    - Dst: fu_version_from_uint24
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3369,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3371,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3373,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3377,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3381,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3383,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3387
    functionName: fu_common_version_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - g_assert_cmpstr
    - fu_version_from_uint24
    - fu_version_parse_from_format
    - fu_version_from_uint32
    - G_N_ELEMENTS
    - fu_version_from_uint16
    linkageType: ''
    returnType: void
    signature: void fu_common_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3393,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3393,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3394,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3395,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3398,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3398,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3401,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3401,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3402,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3403,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3406,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3406,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3407,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3408,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3413,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3413,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3414,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3414,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3417,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3417,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3420,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3420,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3421,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3421,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3424,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3424,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3425,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3425,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3428,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3428,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3429,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3429,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3430,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3430,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3433,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3433,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3436,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3436,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3437,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3437,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3440,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3440,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3443,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3443,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3446,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3446,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3449,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3449,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3454,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3454,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3455,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3455,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3456,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3389
    functionDepth: 1
    functionLinenumber: 3389
    functionLinenumberEnd: 3457
    functionName: fu_common_vercmp_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_version_compare
    linkageType: ''
    returnType: void
    signature: void fu_common_vercmp_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3463,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3463,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3464,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3464,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3465,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3466,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3466,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3470,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3471,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3472,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3475,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3477,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3478,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3480
      start: 3459
    functionDepth: 4
    functionLinenumber: 3459
    functionLinenumberEnd: 3480
    functionName: fu_firmware_raw_aligned_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_firmware_set_alignment
    - fu_firmware_parse_bytes
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - g_bytes_new_static
    - fu_firmware_new
    linkageType: ''
    returnType: void
    signature: void fu_firmware_raw_aligned_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3490,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3490,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3491,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3492,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3493,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3496,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3497,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3498,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3499,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3500,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3501,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3502,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3503,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3503,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3507,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3508,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3509,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3510,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3511,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3482
    functionDepth: 5
    functionLinenumber: 3482
    functionLinenumberEnd: 3522
    functionName: fu_firmware_ihex_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_ihex_firmware_new
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - g_strndup
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ihex_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3531,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3531,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3532,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3533,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3534,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3537,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3538,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3539,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3540,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3541,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3542,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3543,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3544,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3544,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3548,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3549,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3550,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3551,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3552,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3553,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3524
    functionDepth: 5
    functionLinenumber: 3524
    functionLinenumberEnd: 3554
    functionName: fu_firmware_ihex_signed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_ihex_firmware_new
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_get_image_by_id_bytes
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - memcmp
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ihex_signed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3563,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3563,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3564,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3564,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3565,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3566,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3567,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3568,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3571,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3572,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3573,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3574,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3575,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3576,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3577,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3578,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3579,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3591,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3592,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3593,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3593,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3594,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3595,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3596,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3597,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3556
    functionDepth: 4
    functionLinenumber: 3556
    functionLinenumberEnd: 3598
    functionName: fu_firmware_ihex_offset_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_firmware_write
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_ihex_firmware_new
    - g_bytes_get_size
    - g_assert_true
    - fu_firmware_set_addr
    - fu_firmware_get_addr
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_strndup
    - g_bytes_new_static
    - fu_firmware_parse_bytes
    - fu_firmware_set_bytes
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ihex_offset_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3605,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3605,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3606,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3607,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3609,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3610,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3611,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3612,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3613,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3614,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3615,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3616,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3617
      start: 3600
    functionDepth: 5
    functionLinenumber: 3600
    functionLinenumberEnd: 3617
    functionName: fu_firmware_srec_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_srec_firmware_new
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_srec_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3628,1
    - Dst: fu_fdt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3628,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3629,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3630,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3631,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3633,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3634,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3635,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3636,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3637,1
    - Dst: fu_fdt_firmware_get_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3637,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3637,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3638,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3639,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3641,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3642,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3643,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3644,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3644,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3645,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3646,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3647,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3650,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3650,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3653,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3654,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3655,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3655,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3656,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3657,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3658,1
    - Dst: fu_fdt_image_get_attr_u64
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3661,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3662,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3664
      start: 3619
    functionDepth: 5
    functionLinenumber: 3619
    functionLinenumberEnd: 3664
    functionName: fu_firmware_fdt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_to_string
    - g_assert_true
    - fu_firmware_build_from_filename
    - g_debug
    - g_assert_cmpint
    - fu_fdt_image_get_attr_str
    - g_assert_false
    - fu_firmware_get_image_by_id
    - g_assert_nonnull
    - fu_fdt_firmware_new
    - g_autoptr
    - fu_fdt_image_get_attr_u64
    - g_assert_error
    - fu_fdt_firmware_get_image_by_path
    - fu_fdt_firmware_get_cpuid
    - g_assert_cmpstr
    - FU_FDT_IMAGE
    - g_test_build_filename
    - g_assert_no_error
    - FU_FDT_FIRMWARE
    - fu_fdt_image_get_attr_u32
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fdt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3672,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3673,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3674,1
    - Dst: fu_fit_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3674,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3675,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3677,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3678,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3679,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3680,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3681,1
    - Dst: fu_fit_firmware_get_timestamp
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3681,1
    - Dst: FU_FIT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3681,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3682,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3683,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3685,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3685,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3688,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3689,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3690,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3690,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3694,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3695,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3696,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3697,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3698,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3699,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3666
    functionDepth: 5
    functionLinenumber: 3666
    functionLinenumberEnd: 3701
    functionName: fu_firmware_fit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_auto
    - g_debug
    - FU_FIT_FIRMWARE
    - g_assert_cmpint
    - FU_FDT_IMAGE
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_to_string
    - fu_fdt_image_get_attr_strlist
    - fu_fit_firmware_get_timestamp
    - g_assert_no_error
    - fu_fit_firmware_new
    - fu_firmware_build_from_filename
    - g_autoptr
    - FU_FDT_FIRMWARE
    - g_assert_nonnull
    - fu_fdt_firmware_get_image_by_path
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3709,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3709,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3710,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3711,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3712,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3717,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3717,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3718,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3719,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3720,1
    - Dst: fu_firmware_tokenize
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3721,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3722,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3723,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3725,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3725,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3726,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3727,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3728,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3729,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3730,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3731,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3732,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3733,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3703
    functionDepth: 1
    functionLinenumber: 3703
    functionLinenumberEnd: 3735
    functionName: fu_firmware_srec_tokenization_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_assert_cmpint
    - fu_srec_firmware_new
    - fu_firmware_tokenize
    - g_assert_true
    - g_ptr_array_index
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_srec_firmware_get_records
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - FU_SREC_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_srec_tokenization_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3742,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3742,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3743,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3744,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3745,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3747,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3748,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3748,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3749,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3750,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3768,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3768,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3769,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3770,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3773,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3774,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3775,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3776,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3777,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3778,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3779,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3780,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3781,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3782,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3785,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3786,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3787,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3788,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3788,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3791,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3792,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3793,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3794,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3794,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3795,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3795,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3796,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3796,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3797,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3798,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3799,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3800,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3800,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3801,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3801,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3801,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3737
    functionDepth: 4
    functionLinenumber: 3737
    functionLinenumberEnd: 3803
    functionName: fu_firmware_build_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - strlen
    - xb_builder_new
    - xb_builder_import_source
    - g_assert_true
    - fu_firmware_get_addr
    - g_assert_cmpint
    - xb_silo_query_first
    - fu_firmware_get_image_by_id
    - fu_firmware_get_idx
    - xb_builder_source_new
    - g_autoptr
    - g_assert_nonnull
    - g_bytes_new_static
    - fu_firmware_new
    - xb_builder_source_load_bytes
    - g_bytes_get_data
    - g_assert_cmpstr
    - fu_firmware_write
    - xb_builder_compile
    - fu_firmware_build
    - fu_firmware_get_version
    - g_bytes_get_size
    - g_assert_no_error
    - g_strndup
    linkageType: ''
    returnType: void
    signature: void fu_firmware_build_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3808,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3808,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3811,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3805
    functionDepth: 2
    functionLinenumber: 3805
    functionLinenumberEnd: 3815
    functionName: fu_test_firmware_dfuse_image_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_ptr_array_index
    - fu_firmware_get_chunks
    - g_autoptr
    linkageType: ''
    returnType: gsize
    signature: gsize fu_test_firmware_dfuse_image_get_size(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3821,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3821,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3823,1
    - Dst: fu_test_firmware_dfuse_image_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3817
    functionDepth: 3
    functionLinenumber: 3817
    functionLinenumberEnd: 3827
    functionName: fu_test_firmware_dfuse_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_firmware_dfuse_image_get_size
    - fu_firmware_get_images
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gsize
    signature: gsize fu_test_firmware_dfuse_get_size(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3834,1
    - Dst: fu_dfuse_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3834,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3835,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3838,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3839,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3840,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3841,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3842,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3843,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3843,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3843,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3844,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3844,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3844,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3845,1
    - Dst: fu_dfu_firmware_get_release
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3845,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3845,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3846,1
    - Dst: fu_test_firmware_dfuse_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3829
    functionDepth: 5
    functionLinenumber: 3829
    functionLinenumberEnd: 3847
    functionName: fu_firmware_dfuse_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_dfu_firmware_get_vid
    - g_test_build_filename
    - g_assert_true
    - g_assert_no_error
    - fu_test_firmware_dfuse_get_size
    - fu_firmware_build_from_filename
    - g_assert_nonnull
    - g_autoptr
    - fu_dfu_firmware_get_pid
    - fu_dfu_firmware_get_release
    - fu_dfuse_firmware_new
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfuse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3856,1
    - Dst: fu_fmap_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3856,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3857,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3858,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3859,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3861,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3864,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3869,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3870,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3871,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3872,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3873,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3876,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3877,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3880,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3881,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3882,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3883,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3884,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3885,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3886,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3886,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3887,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3887,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3887,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3888,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3891,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3892,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3893,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3894,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3849
    functionDepth: 5
    functionLinenumber: 3849
    functionLinenumberEnd: 3898
    functionName: fu_firmware_fmap_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpstr
    - fu_firmware_write
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - fu_firmware_get_images
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_firmware_build_from_filename
    - g_compute_checksum_for_bytes
    - g_strndup
    - fu_fmap_firmware_new
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fmap_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3905,1
    - Dst: fu_dfu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3905,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3906,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3907,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3908,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3909,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3910,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3911,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3913,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3914,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3915,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3916,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3917,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3918,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3919,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3920,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3921,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3922,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3925,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3933,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3934,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3935,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3935,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3938,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3945,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3946,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3947,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3947,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3950,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3956,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3900
    functionDepth: 5
    functionLinenumber: 3900
    functionLinenumberEnd: 3958
    functionName: fu_firmware_new_from_gtypes_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_TYPE_NAME
    - fu_dfu_firmware_new
    - fu_firmware_write
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_new_from_gtypes
    - g_assert_null
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - g_assert_error
    - g_memory_input_stream_new_from_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_new_from_gtypes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3966,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3966,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3967,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3969,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3974,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3974,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3975,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3975,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3976,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3976,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3977,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3977,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3978,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3978,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3979,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3979,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3981,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3981,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3981,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3982,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3982,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3982,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3985,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3985,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3985,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3988,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3988,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3988,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3990,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3990,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3991,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3992,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3993,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3994,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3995,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3997,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:3998,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4000,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4002,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4002,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4002,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4003,1
    - Dst: fu_csv_entry_get_value_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4003,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4004,1
    - Dst: fu_csv_entry_get_value_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4004,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4005,1
    - Dst: fu_csv_entry_get_value_by_column_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4008
      start: 3960
    functionDepth: 4
    functionLinenumber: 3960
    functionLinenumberEnd: 4008
    functionName: fu_firmware_csv_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_firmware_to_string
    - g_assert_true
    - FU_FIRMWARE
    - fu_firmware_get_images
    - fu_csv_firmware_new
    - fu_firmware_get_id
    - g_debug
    - g_assert_cmpint
    - fu_csv_entry_get_value_by_idx
    - g_ptr_array_index
    - g_autoptr
    - fu_csv_firmware_get_column_id
    - FU_CSV_FIRMWARE
    - g_bytes_new
    - fu_firmware_parse_bytes
    - g_assert_cmpstr
    - fu_csv_entry_get_value_by_column_id
    - fu_csv_firmware_add_column_id
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_firmware_csv_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4015,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4015,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4016,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4017,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4018,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4019,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4020,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4023,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4027,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4028,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4029,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4030,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4031,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4032,1
    - Dst: fu_archive_firmware_get_format
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4032,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4032,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4035,1
    - Dst: fu_archive_firmware_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4035,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4035,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4040,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4040,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4041,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4042,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4043,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4043,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4046,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4047,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4049,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4049,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4050,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4010
    functionDepth: 4
    functionLinenumber: 4010
    functionLinenumberEnd: 4052
    functionName: fu_firmware_archive_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_archive_firmware_get_compression
    - g_test_skip
    - fu_archive_firmware_new
    - g_assert_cmpint
    - g_file_new_for_path
    - g_test_build_filename
    - g_assert_true
    - g_assert_null
    - fu_archive_firmware_get_image_fnmatch
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - FU_ARCHIVE_FIRMWARE
    - fu_firmware_parse_file
    - fu_archive_firmware_get_format
    linkageType: ''
    returnType: void
    signature: void fu_firmware_archive_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4058,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4058,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4059,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4059,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4060,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4060,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4061,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4061,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4062,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4063,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4063,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4064,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4064,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4065,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4066,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4070,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4071,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4072,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4073,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4074,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4075,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4076,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4077,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4077,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4080,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4085,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4086,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4087,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4088,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4091,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4054
    functionDepth: 4
    functionLinenumber: 4054
    functionLinenumberEnd: 4093
    functionName: fu_firmware_linear_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - fu_firmware_add_image
    - g_assert_cmpint
    - fu_linear_firmware_new
    - g_bytes_get_size
    - g_assert_true
    - fu_firmware_to_string
    - fu_firmware_get_images
    - fu_oprom_firmware_new
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_bytes_new_static
    - fu_firmware_parse_bytes
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_linear_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4100,1
    - Dst: fu_dfu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4102,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4104,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4108,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4108,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4108,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4109,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4109,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4109,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4110,1
    - Dst: fu_dfu_firmware_get_release
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4110,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4110,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4111,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4112,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4113,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4114,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4095
    functionDepth: 5
    functionLinenumber: 4095
    functionLinenumberEnd: 4115
    functionName: fu_firmware_dfu_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_new
    - g_assert_cmpint
    - fu_dfu_firmware_get_vid
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - fu_dfu_firmware_get_pid
    - fu_dfu_firmware_get_release
    - g_assert_nonnull
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfu_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4122,1
    - Dst: fu_ifwi_cpd_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4123,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4124,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4126,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4128,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4130,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4131,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4132,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4132,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4133,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4134,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4135,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4136,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4136,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4139,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4140,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4141,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4141,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4142,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4142,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4145,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4146,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4147,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4147,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4148,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4117
    functionDepth: 5
    functionLinenumber: 4117
    functionLinenumberEnd: 4149
    functionName: fu_firmware_ifwi_cpd_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_ifwi_cpd_firmware_new
    - fu_firmware_write
    - fu_firmware_get_size
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_get_idx
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - fu_firmware_get_offset
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ifwi_cpd_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4156,1
    - Dst: fu_ifwi_fpt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4156,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4157,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4160,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4162,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4164,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4165,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4167,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4168,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4169,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4169,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4171,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4172,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4173,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4174,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4174,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4175,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4175,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4177,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4178,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4179,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4180,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4181,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4151
    functionDepth: 5
    functionLinenumber: 4151
    functionLinenumberEnd: 4182
    functionName: fu_firmware_ifwi_fpt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_get_size
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - fu_ifwi_fpt_firmware_new
    - g_assert_nonnull
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_offset
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ifwi_fpt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4189,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4189,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4190,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4192,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4193,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4195,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4196,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4197,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4198,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4199,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4199,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4201,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4202,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4203,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4203,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4206,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4211,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4212,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4213,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4214,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4215,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4216,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4216,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4217,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4218
      start: 4184
    functionDepth: 5
    functionLinenumber: 4184
    functionLinenumberEnd: 4218
    functionName: fu_firmware_oprom_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_get_size
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - fu_oprom_firmware_new
    - g_assert_no_error
    - fu_firmware_get_idx
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - fu_firmware_parse_bytes
    - fu_firmware_get_offset
    linkageType: ''
    returnType: void
    signature: void fu_firmware_oprom_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4226,1
    - Dst: fu_dfu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4226,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4228,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4228,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4229,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4229,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4230,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4232,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4233,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4234,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4235,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4238,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4239,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4240,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4243,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4244,1
    - Dst: fu_dump_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4245,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4247,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4248,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4251,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4253
      start: 4220
    functionDepth: 5
    functionLinenumber: 4220
    functionLinenumberEnd: 4253
    functionName: fu_firmware_dfu_patch_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_new
    - fu_firmware_write
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - fu_dump_full
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - fu_firmware_add_patch
    - g_assert_nonnull
    - g_compute_checksum_for_bytes
    - g_bytes_new_static
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfu_patch_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4260,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4262,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4263,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4265,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4266,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4267,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4268,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4271,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4271,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4280,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4281,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4282,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4282,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4283,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4284,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4285,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4285,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4255
    functionDepth: 5
    functionLinenumber: 4255
    functionLinenumberEnd: 4286
    functionName: fu_hid_descriptor_container_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - FU_HID_DESCRIPTOR
    - fu_firmware_get_image_by_id
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - FU_FIRMWARE
    - fu_hid_descriptor_new
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - fu_hid_report_item_get_value
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: void
    signature: void fu_hid_descriptor_container_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4292,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4293,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4299,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4302,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4303,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4304,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4305,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4309,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4309,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4310,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4311,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4313,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4313,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4314,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4315,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4316,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4316,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4316,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4319,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4319,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4324,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4325,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4326,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4326,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4333,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4334,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4335,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4335,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4336,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4337,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4338,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4338,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4338,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4341,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4341,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4348,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4350
      start: 4288
    functionDepth: 5
    functionLinenumber: 4288
    functionLinenumberEnd: 4350
    functionName: fu_hid_descriptor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - FU_HID_DESCRIPTOR
    - fu_firmware_get_image_by_id
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - g_assert_null
    - FU_FIRMWARE
    - fu_hid_descriptor_new
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - fu_hid_report_item_get_value
    - g_assert_error
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: void
    signature: void fu_hid_descriptor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4356,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4356,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4357,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4357,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4358,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4359,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4362,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4365,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4366,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4367,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4368,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4369,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4370,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4371,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4372,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4373,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4376,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4376,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4377,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4377,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4378,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4378,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4380,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4381,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4382,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4383,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4384,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4385,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4386,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4387,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4387,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4388,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4388,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4389,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4389,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4391,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4392,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4393,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4394,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4395,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4396,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4397,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4398,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4398,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4399,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4399,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4400,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4400,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4402,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4403,1
    - Dst: fu_firmware_remove_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4419,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4420,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4421,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4422,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4423,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4424,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4425,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4426,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4427,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4428,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4429,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4431
      start: 4352
    functionDepth: 3
    functionLinenumber: 4352
    functionLinenumberEnd: 4431
    functionName: fu_firmware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_to_string
    - g_assert_true
    - g_assert_null
    - fu_firmware_get_addr
    - fu_firmware_get_images
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_id
    - fu_firmware_remove_image_by_idx
    - g_assert_cmpint
    - fu_firmware_set_addr
    - g_assert_false
    - fu_firmware_add_image
    - fu_firmware_get_image_by_id
    - g_clear_error
    - fu_firmware_get_idx
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_firmware_new
    - fu_firmware_get_depth
    - fu_firmware_set_id
    - g_assert_cmpstr
    - g_assert_no_error
    - fu_firmware_set_idx
    - fu_firmware_set_filename
    - fu_firmware_remove_image_by_id
    linkageType: ''
    returnType: void
    signature: void fu_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4436,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4436,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4437,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4438,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4433
    functionDepth: 2
    functionLinenumber: 4433
    functionLinenumberEnd: 4439
    functionName: fu_firmware_convert_version_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_firmware_get_version
    - fu_intel_thunderbolt_nvm_new
    - fu_firmware_set_version_raw
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_convert_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4446,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4448,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4449,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4450,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4451,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4453,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4454,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4455,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4456,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4458,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4459,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4461
      start: 4441
    functionDepth: 1
    functionLinenumber: 4441
    functionLinenumberEnd: 4461
    functionName: fu_firmware_common_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - fu_firmware_strparse_uint8_safe
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_firmware_common_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4467,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4467,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4468,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4468,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4469,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4469,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4470,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4470,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4471,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4471,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4472,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4472,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4473,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4474,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4475,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4477,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4478,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4479,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4481,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4482,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4483,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4484,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4484,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4486,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4487,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4488,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4490,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4491,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4492,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4494,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4495,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4496,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4498,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4499,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4500,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4501,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4501,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4502,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4502,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4504,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4505,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4506,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4507,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4507,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4508,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4508,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4510,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4511,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4513
      start: 4463
    functionDepth: 3
    functionLinenumber: 4463
    functionLinenumberEnd: 4513
    functionName: fu_firmware_dedupe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_id
    - g_assert_cmpint
    - fu_firmware_add_image_full
    - g_assert_false
    - fu_firmware_add_image
    - fu_firmware_get_image_by_id
    - fu_firmware_set_images_max
    - fu_firmware_get_idx
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_firmware_new
    - fu_firmware_add_flag
    - g_assert_cmpstr
    - fu_firmware_set_id
    - g_assert_no_error
    - fu_firmware_set_idx
    - fu_firmware_get_parent
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dedupe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4523,1
    - Dst: fu_dummy_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4523,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4524,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4525,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4528,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4529,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4530,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4533,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4534,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4535,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4538,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4545,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4546,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4554,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4555,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4556,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4557,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4558,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4561,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4562,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4563,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4566,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4566,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4567,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4567,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4570,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4571,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4572,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4573,1
    - Dst: fu_efivars_space_used
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4576,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4577,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4578,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4581,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4582,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4583,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4584,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4584,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4585,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4585,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4588,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4595,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4596,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4597,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4604,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4605,1
    - Dst: fu_efivars_delete_with_glob
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4606,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4607,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4608,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4609,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4609,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4610,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4610,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4613,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4614,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4615,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4618,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4625,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4515
    functionDepth: 1
    functionLinenumber: 4515
    functionLinenumberEnd: 4627
    functionName: fu_efivar_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_names
    - fu_efivars_space_used
    - fu_efivars_get_data
    - g_assert_cmpint
    - fu_efivars_space_free
    - fu_efivars_set_data
    - g_assert_true
    - fu_efivars_supported
    - fu_dummy_efivars_new
    - g_assert_no_error
    - fu_efivars_exists
    - fu_efivars_delete_with_glob
    - g_assert_false
    - g_autoptr
    - g_assert_nonnull
    - fu_efivars_delete
    - g_assert_error
    linkageType: ''
    returnType: void
    signature: void fu_efivar_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4634,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4636,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4637,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4637,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4638,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4639,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4639,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4640,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4641,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4642,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4643,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4644,1
    - Dst: fu_efivars_set_boot_current
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4647,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4648,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4649,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4650,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4651,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4652,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4653,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4656,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4657,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4658,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4659,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4660,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4661,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4662,1
    - Dst: fu_efivars_build_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4665,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4666,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4667,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4668,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4669,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4670,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4671,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4672,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4673,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4674,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4675,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4678,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4679,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4680,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4683,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4689,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4690,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4691,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4697,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4698,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4701,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4702,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4703,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4704,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4705,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4706,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4707,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4711,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4712,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4713,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4714,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4715,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4716,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4629
    functionDepth: 4
    functionLinenumber: 4629
    functionLinenumberEnd: 4717
    functionName: fu_efivar_boot_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_build_boot_order
    - fu_efivars_get_boot_entries
    - g_assert_true
    - fu_efivars_create_boot_entry_for_volume
    - fu_efivars_set_boot_current
    - g_array_index
    - fu_context_new
    - g_assert_cmpint
    - fu_firmware_get_filename
    - fu_efivars_get_boot_entry
    - g_ptr_array_index
    - fu_volume_set_partition_uuid
    - fu_volume_set_partition_kind
    - fu_efivars_get_boot_next
    - fu_context_add_esp_volume
    - g_build_filename
    - g_assert_nonnull
    - g_autoptr
    - fu_context_get_esp_files
    - g_getenv
    - fu_efivars_set_boot_next
    - g_assert_cmpstr
    - fu_efivars_get_boot_order
    - fu_volume_new_from_mount_path
    - g_assert_no_error
    - fu_efivars_get_boot_current
    - fu_context_get_efivars
    linkageType: ''
    returnType: void
    signature: void fu_efivar_boot_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4724
    functionDepth: 0
    functionLinenumber: 4724
    functionLinenumberEnd: 4730
    functionName: fu_device_retry_success
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_success(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4739
      start: 4732
    functionDepth: 0
    functionLinenumber: 4732
    functionLinenumberEnd: 4739
    functionName: fu_device_retry_failed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_failed(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4752
      start: 4741
    functionDepth: 0
    functionLinenumber: 4741
    functionLinenumberEnd: 4752
    functionName: fu_device_retry_success_3rd_try
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_success_3rd_try(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4758,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4758,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4759,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4764,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4768,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4769,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4770,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4771,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4754
    functionDepth: 1
    functionLinenumber: 4754
    functionLinenumberEnd: 4773
    functionName: fu_device_retry_success_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_device_retry_add_recovery
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_success_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4779,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4779,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4780,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4785,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4789,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4790,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4791,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4792,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4775
    functionDepth: 1
    functionLinenumber: 4775
    functionLinenumberEnd: 4794
    functionName: fu_device_retry_failed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_assert_cmpint
    - g_assert_true
    - fu_device_retry_add_recovery
    - fu_device_new
    - g_assert_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_failed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4800,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4800,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4801,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4806,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4807,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4808,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4809,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4796
    functionDepth: 1
    functionLinenumber: 4796
    functionLinenumberEnd: 4811
    functionName: fu_device_retry_hardware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_device_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_hardware_func(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4824,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4825,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4826,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4827,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4831,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4836,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4837,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4838,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4843,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4844,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4845,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4847,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4848,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4849,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4851,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4854,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4855,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4856,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4858,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4859,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4860,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4862,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4863,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4864,1
    - Dst: fu_context_get_bios_setting_pending_reboot
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4867,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4868,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4871,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4872,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4873,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4874,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4875,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4876,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4877,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4878,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4879,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4881,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4883,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4885,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4891,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4892,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4893,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4894,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4895,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4897,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4899,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4901,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4909,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4910,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4911,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4912,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4913,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4914,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4915,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4916,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4918,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4921,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4924,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4925,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4926,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4927,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4928,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4929,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4930,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4932,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4935,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4936,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4937,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4938,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4939,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4940,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4943,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4944,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4947,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4948,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4949,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4950,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4951,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4952,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4953,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4954,1
    - Dst: fwupd_bios_setting_get_scalar_increment
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4955,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4956,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4959,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4960,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4961,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4962,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4963,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4964,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4965,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4966,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4969,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4970,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4971,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4972,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4973,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4975,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4977,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4979,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4983,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4984,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4985,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:4986,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4813
    functionDepth: 1
    functionLinenumber: 4813
    functionLinenumberEnd: 4988
    functionName: fu_bios_settings_load_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fwupd_bios_setting_get_upper_bound
    - g_assert_true
    - g_assert_null
    - fwupd_bios_setting_get_lower_bound
    - fu_context_new
    - g_debug
    - fwupd_bios_setting_get_description
    - g_assert_cmpint
    - fwupd_bios_setting_get_name
    - fu_context_get_bios_setting_pending_reboot
    - g_ptr_array_index
    - g_assert_false
    - g_free
    - fu_context_get_bios_setting
    - fu_context_reload_bios_settings
    - fwupd_bios_setting_get_kind
    - fwupd_bios_setting_get_scalar_increment
    - g_clear_error
    - g_build_filename
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - g_setenv
    - g_assert_cmpstr
    - fu_bios_settings_get_all
    - fu_context_get_bios_settings
    - fwupd_bios_setting_get_possible_values
    - g_test_build_filename
    - g_assert_no_error
    - g_strrstr
    - g_strcmp0
    - fwupd_bios_setting_get_read_only
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_load_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5004,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5007,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5008,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5009,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5012,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5013,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5014,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5015,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5016,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5017,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5018,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5019,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5020,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5023,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5024,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5025,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5026,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5027,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5028,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5029,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5030,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5031,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5034,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5035,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5036,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5037,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5038,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5039,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5040,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5041,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5042,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5043,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5043,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5044,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5047,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5048,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5049,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5050,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5051,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5052,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5053,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5054,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5055,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5056,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5057,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5058,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5061,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5062,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5063,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5064,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5065,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5066,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5067,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5068,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5069,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5072,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5073,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5074,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5075,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5076,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5077,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5078,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5079,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5082,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5083,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5084,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5085,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5086,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5087,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5088,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5089,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5092,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5093,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5094,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5095,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5096,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5097,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5098,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5102,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5104
      start: 4990
    functionDepth: 3
    functionLinenumber: 4990
    functionLinenumberEnd: 5104
    functionName: fu_security_attrs_hsi_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_security_attrs_new
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_security_attrs_depsolve
    - fwupd_security_attr_add_obsolete
    - fu_security_attrs_append
    - fwupd_security_attr_set_level
    - fwupd_security_attr_new
    - fwupd_security_attr_set_url
    - fwupd_security_attr_set_fwupd_version
    - g_assert_true
    - fwupd_security_attr_set_plugin
    - g_strdup_printf
    - fu_security_attrs_calculate_hsi
    - g_autoptr
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_hsi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5110,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5111,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5112,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5112,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5113,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5114,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5114,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5115,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5115,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5116,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5119,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5120,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5121,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5122,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5123,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5124,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5125,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5126,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5129,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5130,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5131,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5132,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5133,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5134,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5135,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5136,1
    - Dst: fu_security_attrs_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5138,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5139,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5140,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5141,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5141,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5142,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5142,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5145,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5145,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5148,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5149,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5149,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5150,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5150,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5153,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5153,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5156,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5157,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5157,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5158,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5158,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5161,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5161,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5165,1
    - Dst: fu_security_attrs_equal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5165,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5166,1
    - Dst: fu_security_attrs_equal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5166,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5167,1
    - Dst: fu_security_attrs_equal
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5106
    functionDepth: 2
    functionLinenumber: 5106
    functionLinenumberEnd: 5168
    functionName: fu_security_attrs_compare_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_security_attrs_new
    - fu_security_attrs_compare
    - g_assert_cmpint
    - fwupd_security_attr_get_result_fallback
    - fwupd_security_attr_get_result
    - fu_security_attrs_equal
    - fu_security_attrs_append
    - g_assert_true
    - fwupd_security_attr_new
    - fwupd_security_attr_set_result
    - fwupd_security_attr_set_plugin
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - g_assert_false
    - fwupd_security_attr_set_created
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_compare_func(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5415,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5416,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5423,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5423,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5424,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5424,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5425,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5425,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5426,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5427,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5430,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5431,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5432,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5433,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5434,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5435,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5436,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5437,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5438,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5439,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5440,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5442,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5445,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5446,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5447,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5455,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5456,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5457,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5461,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5461,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5463,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5464,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5466,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5467,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5468,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5472,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5473,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5474,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5475,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5476,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5477,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5478,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5479,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5483
      start: 5175
    functionDepth: 4
    functionLinenumber: 5175
    functionLinenumberEnd: 5483
    functionName: fu_firmware_builder_round_trip_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_debug
    - g_file_get_contents
    - fu_firmware_write
    - g_prefix_error
    - g_test_build_filename
    - g_assert_true
    - fu_bytes_compare
    - fu_firmware_build_from_xml
    - g_object_new
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_firmware_export_to_xml
    - G_N_ELEMENTS
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_firmware_builder_round_trip_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - progress
    - percentage
    - data
    argTypes:
    - FuProgress*
    - guint
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5496
      start: 5490
    functionDepth: 0
    functionLinenumber: 5490
    functionLinenumberEnd: 5496
    functionName: fu_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_progress_percentage_changed_cb(FuProgress *progress, guint
      percentage, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5502,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5502,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5505,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5505,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5507,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5510,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5510,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5512,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5513,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5514,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5517,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5518,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5519,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5522,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5523,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5526,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5527,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5528,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5528,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5529,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5531
      start: 5498
    functionDepth: 1
    functionLinenumber: 5498
    functionLinenumberEnd: 5531
    functionName: fu_progress_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_duration
    - fu_progress_step_done
    - g_debug
    - fu_progress_new
    - fu_progress_traceback
    - g_assert_cmpint
    - FU_PROGRESS
    - fu_progress_set_profile
    - fu_progress_set_steps
    - g_autoptr
    - g_signal_connect
    - g_usleep
    - g_assert_cmpfloat_with_epsilon
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_progress_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5538,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5538,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5541,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5542,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5543,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5543,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5545,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5554,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5555,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5556,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5557,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5560,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5561,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5562,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5564,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5565,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5566,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5567,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5570,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5571,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5572,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5573,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5577,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5580,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5582
      start: 5533
    functionDepth: 1
    functionLinenumber: 5533
    functionLinenumberEnd: 5582
    functionName: fu_progress_child_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_debug
    - fu_progress_new
    - fu_progress_get_child
    - g_assert_cmpint
    - fu_progress_set_profile
    - FU_PROGRESS
    - fu_progress_set_id
    - g_autoptr
    - g_signal_connect
    - fu_progress_set_steps
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5588,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5588,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5590,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5592,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5593,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5593,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5595,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5596,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5597,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5598,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5600,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5601
      start: 5584
    functionDepth: 1
    functionLinenumber: 5584
    functionLinenumberEnd: 5601
    functionName: fu_progress_scaling_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_new
    - g_assert_cmpint
    - g_autoptr
    - fu_progress_get_percentage
    - fu_progress_set_percentage
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_progress_scaling_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5608,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5608,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5611,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5612,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5612,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5614,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5618,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5619,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5620,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5623,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5626,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5628
      start: 5603
    functionDepth: 1
    functionLinenumber: 5603
    functionLinenumberEnd: 5628
    functionName: fu_progress_parent_one_step_proxy_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_new
    - g_assert_cmpint
    - FU_PROGRESS
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_set_percentage
    - g_signal_connect
    - fu_progress_set_steps
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_progress_parent_one_step_proxy_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5633,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5633,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5638,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5639,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5640,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5641,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5642,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5642,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5643,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5643,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5646,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5647,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5648,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5649,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5650,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5650,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5653,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5656,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5656,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5659,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5662,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5662,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5664,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5665,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5665,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5668,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5668,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5671,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5672,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5673,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5674,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5675,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5676,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5676,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5679,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5680,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5680,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5683,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5683,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5693,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5696,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5698,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5701,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5701,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5703,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5706,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5708,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5709,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5709,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5712,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5712,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5714,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5717,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5717,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5718,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5719
      start: 5630
    functionDepth: 1
    functionLinenumber: 5630
    functionLinenumberEnd: 5719
    functionName: fu_progress_non_equal_steps_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_new
    - g_assert_cmpint
    - fu_progress_add_step
    - fu_progress_get_status
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_get_percentage
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_progress_non_equal_steps_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5725,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5725,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5728,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5730,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5731,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5732,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5733,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5737
      start: 5721
    functionDepth: 1
    functionLinenumber: 5721
    functionLinenumberEnd: 5737
    functionName: fu_progress_finish_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_new
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_finished
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_progress_finish_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5743,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5743,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5746,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5747,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5747,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5750,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5751,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5751,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5754,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5755,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5756,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5757,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5758,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5759,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5763
      start: 5739
    functionDepth: 1
    functionLinenumber: 5739
    functionLinenumberEnd: 5763
    functionName: fu_progress_global_fraction_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_new
    - fu_progress_get_global_fraction
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_finished
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_progress_global_fraction_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5769,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5769,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5772,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5774,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5775,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5776,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5780,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5782
      start: 5765
    functionDepth: 1
    functionLinenumber: 5765
    functionLinenumberEnd: 5782
    functionName: fu_progress_child_finished
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_new
    - fu_progress_add_flag
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_set_steps
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_finished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5790,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5790,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5791,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5792,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5792,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5793,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5795,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5795,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5798,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5799,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5800,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5803,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5803,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5804,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5805,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5806,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5806,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5806,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5807,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5807,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5807,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5810,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5811,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5812,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5813,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5814,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5815,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5815,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5815,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5816,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5816,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5816,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5819,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5820,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5821,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5822,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5822,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5822,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5823,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5823,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5824
      start: 5784
    functionDepth: 1
    functionLinenumber: 5784
    functionLinenumberEnd: 5824
    functionName: fu_partial_input_stream_composite_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - G_SEEKABLE
    - g_assert_cmpint
    - g_assert_true
    - g_seekable_seek
    - fu_composite_input_stream_add_bytes
    - g_assert_no_error
    - g_assert_nonnull
    - fu_composite_input_stream_new
    - g_autoptr
    - g_seekable_tell
    - FU_COMPOSITE_INPUT_STREAM
    - g_bytes_new_static
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_composite_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5832,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5832,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5833,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5834,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5834,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5835,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5838,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5839,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5840,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5841,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5841,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5842,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5843,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5844,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5844,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5844,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5847,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5848,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5849,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5850,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5826
    functionDepth: 1
    functionLinenumber: 5826
    functionLinenumberEnd: 5852
    functionName: fu_partial_input_stream_simple_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - G_SEEKABLE
    - g_assert_cmpint
    - g_assert_true
    - g_seekable_seek
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_seekable_tell
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_simple_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5860,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5861,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5862,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5863,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5863,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5865,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5866,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5867,1
    - Dst: g_input_stream_close
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5869,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5870,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5872,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5872,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5873,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5874,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5875,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5876,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5878
      start: 5854
    functionDepth: 1
    functionLinenumber: 5854
    functionLinenumberEnd: 5878
    functionName: fu_partial_input_stream_closed_base_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - G_SEEKABLE
    - g_assert_cmpint
    - g_input_stream_close
    - g_assert_true
    - g_seekable_seek
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_closed_base_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5888,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5889,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5889,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5891,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5892,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5893,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5893,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5894,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5895,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5896,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5897,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5900,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5901,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5902,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5903,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5903,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5904,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5905,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5906,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5906,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5907,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5908,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5909,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5909,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5909,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5910,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5910,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5911,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5912,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5913,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5913,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5913,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5914,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5915,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5916,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5917,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5917,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5918,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5919,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5919,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5920,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5921,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5922,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5923,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5924,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5925,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5925,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5925,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5927,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5927,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5928,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5929,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5930,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5930,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5930,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5932,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5933,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5934,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5936,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5936,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5937,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5938,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5939,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5940,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5941,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5942,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5945,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5946,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5947,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5947,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5948,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5949,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5950,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5950,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5950,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5951,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5951,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5952,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5953,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5954,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5954,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5954,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5955,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5956,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5957,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5958,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5958,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5959,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5960,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5960,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5961,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5962,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5963,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5964,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5965,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5966,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5966,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5966,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5968,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5968,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5969,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5970,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5971,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5972,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5972,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5972,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5974,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5974,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5975,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5976,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5977,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5978,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5979,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5980,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5983,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5984,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5985,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5986,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5986,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5987,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5988,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5989,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5989,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5989,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5992,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5993,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5994,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5995,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5996,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5997,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5997,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5997,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5998,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:5999,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6000,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6003,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6004,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6005,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6006,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6006,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6009,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6009,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6010,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6011,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6012,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6012,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6012,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6013,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6014,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6015,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6016,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6016,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6016,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6019,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6019,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6020,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6021,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6022,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6022,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6022,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6023,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6024,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6025,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6028,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6028,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6029,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6030,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6031,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6031,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6031,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6032,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6033,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6034,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6035,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6038,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6038,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6039,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6040,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6041,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6042,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6043,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6046,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6046,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6047,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6048,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6049,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6052,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6053,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6054,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6055,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6055,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6056,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6057,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6058,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6059,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6060,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6063,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6064,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 154
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6066
      start: 5880
    functionDepth: 1
    functionLinenumber: 5880
    functionLinenumberEnd: 6066
    functionName: fu_partial_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - g_file_read
    - g_assert_true
    - g_assert_null
    - G_SEEKABLE
    - g_assert_cmpint
    - g_file_new_for_path
    - g_assert_false
    - g_seekable_tell
    - fu_input_stream_read_bytes
    - g_clear_error
    - g_seekable_seek
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_bytes_new_static
    - fu_partial_input_stream_new
    - g_test_build_filename
    - g_bytes_get_size
    - G_INPUT_STREAM
    - g_assert_no_error
    - g_memory_input_stream_new_from_bytes
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6076,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6077,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6077,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6078,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6078,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6079,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6079,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6080,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6080,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6081,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6081,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6082,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6085,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6086,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6087,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6088,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6091,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6091,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6092,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6093,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6094,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6095,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6098,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6098,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6099,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6100,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6101,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6102,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6106,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6107,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6108,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6108,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6109,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6111,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6112,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6113,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6116,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6116,1
    - Dst: g_print
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6117,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6127,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6128,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6129,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6130,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6133,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6140,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6141,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6142,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6143,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6153,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6156,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6159,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6159,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6160,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6161,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6162,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6163,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6164,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6165,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6168,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6168,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6169,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6171,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6171,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6171,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6173,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6174,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6177,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6177,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6178,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6179,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6180,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6180,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6180,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6182,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6183,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6186,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6186,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6187,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6188,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6189,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6189,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6189,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6190,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6191,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6192,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6194
      start: 6068
    functionDepth: 4
    functionLinenumber: 6068
    functionLinenumberEnd: 6194
    functionName: fu_composite_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - FWUPD_CODEC
    - g_assert_true
    - FU_PARTIAL_INPUT_STREAM
    - g_print
    - fu_input_stream_size
    - G_SEEKABLE
    - g_assert_cmpint
    - g_memory_input_stream_new_from_bytes
    - fu_composite_input_stream_new
    - g_seekable_tell
    - fwupd_codec_to_string
    - g_seekable_seek
    - g_assert_nonnull
    - g_autoptr
    - g_bytes_new_static
    - fu_composite_input_stream_add_partial_stream
    - fu_input_stream_read_safe
    - fu_partial_input_stream_new
    - fu_composite_input_stream_add_bytes
    - g_assert_no_error
    - FU_COMPOSITE_INPUT_STREAM
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6196
    functionDepth: 0
    functionLinenumber: 6196
    functionLinenumberEnd: 6203
    functionName: fu_strsplit_stream_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_strsplit_stream_cb(GString *token, guint token_idx, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6217,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6218,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6221,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6223,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6223,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6223,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6224,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6225,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6226,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6227,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6229,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6229,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6229,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6231,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6233,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6235,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6235,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6236,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6237,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6238,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6240
      start: 6205
    functionDepth: 1
    functionLinenumber: 6205
    functionLinenumberEnd: 6240
    functionName: fu_strsplit_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_stream
    - g_assert_cmpint
    - strlen
    - g_assert_true
    - G_INPUT_STREAM
    - g_memory_input_stream_new_from_data
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strsplit_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6250,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6251,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6254,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6254,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6256,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6256,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6257,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6258,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6259,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6262,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6262,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6263,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6265
      start: 6242
    functionDepth: 1
    functionLinenumber: 6242
    functionLinenumberEnd: 6265
    functionName: fu_input_stream_find_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_assert_cmpint
    - g_assert_true
    - g_memory_input_stream_new_from_data
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - g_assert_error
    - fu_input_stream_find
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_find_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6273,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6274,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6275,1
    - Dst: fu_input_stream_compute_sum32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6277,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6278,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6280
      start: 6267
    functionDepth: 1
    functionLinenumber: 6267
    functionLinenumberEnd: 6280
    functionName: fu_input_stream_sum_overflow_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - fu_input_stream_compute_sum32
    - g_assert_false
    - g_assert_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_sum_overflow_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6289,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6290,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6291,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6292,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6297,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6298,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6299,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6301,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6302,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6303,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6304,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6304,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6306,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6307,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6308,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6309,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6310,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6312,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6313,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6314,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6315,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6315,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6317,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6318,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6319,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6320,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6321
      start: 6282
    functionDepth: 1
    functionLinenumber: 6282
    functionLinenumberEnd: 6321
    functionName: fu_input_stream_chunkify_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_compute_crc16
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_byte_array_append_uint8
    - fu_sum8_bytes
    - fu_input_stream_compute_checksum
    - g_assert_true
    - fu_crc16
    - fu_input_stream_compute_crc32
    - g_assert_no_error
    - fu_crc32
    - fu_input_stream_compute_sum8
    - g_bytes_new
    - g_autoptr
    - g_assert_nonnull
    - g_memory_input_stream_new_from_bytes
    - g_compute_checksum_for_bytes
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_chunkify_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6327,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6327,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6328,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6329,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6330,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6331,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6336,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6338,1
    - Dst: fu_lzma_compress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6341,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6342,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6343,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6344,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6344,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6347,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6348,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6349,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6350,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6351,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6353
      start: 6323
    functionDepth: 1
    functionLinenumber: 6323
    functionLinenumberEnd: 6353
    functionName: fu_lzma_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_lzma_decompress_bytes
    - g_assert_cmpint
    - g_bytes_get_size
    - g_assert_true
    - fu_bytes_compare
    - fu_lzma_compress_bytes
    - g_assert_no_error
    - g_assert_nonnull
    - g_bytes_new
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_lzma_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6359,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6359,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6360,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6361,1
    - Dst: fu_efi_x509_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6362,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6364,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6364,1
    - Dst: fu_efi_x509_signature_set_issuer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6365,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6366,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6369,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6369,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6372,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6372,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6375,1
    - Dst: fu_efi_x509_signature_get_subject_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6376,1
    - Dst: fu_efi_x509_signature_get_subject_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6376,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6377,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6377,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6377,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6378,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6378,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6378,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6381,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6382,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6383,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6384,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6384,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6385,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6385,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6386,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6386,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6387,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6387,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6388,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6388,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6391,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6355
    functionDepth: 1
    functionLinenumber: 6355
    functionLinenumberEnd: 6395
    functionName: fu_plugin_efi_x509_signature_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efi_x509_signature_set_subject
    - fu_efi_x509_signature_get_issuer
    - g_assert_true
    - fu_firmware_get_version_raw
    - FU_FIRMWARE
    - fu_efi_x509_device_new
    - fu_device_probe
    - fu_efi_x509_signature_set_issuer
    - fu_device_get_vendor
    - fu_context_new
    - fu_device_get_version
    - g_assert_cmpint
    - fu_efi_x509_signature_get_subject_name
    - fu_device_get_name
    - fu_device_has_instance_id
    - g_autoptr
    - fu_efi_x509_signature_new
    - fu_efi_x509_signature_get_subject
    - g_assert_cmpstr
    - fu_firmware_set_id
    - fu_efi_x509_signature_get_subject_vendor
    - fu_firmware_get_version
    - FU_DEVICE
    - g_assert_no_error
    - fu_device_get_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_plugin_efi_x509_signature_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6404,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6405,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6405,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6406,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6407,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6408,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6411,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6412,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6413,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6416,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6417,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6418,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6419,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6420,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6421,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6424,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6427,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6428,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6429,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6431,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6431,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6432,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6434,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6434,1
    - Dst: fu_efi_variable_authentication2_get_signers
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6438,1
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6438,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6439,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6440,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6442,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6443,1
    - Dst: fu_x509_certificate_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6445,1
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6445,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6446,1
    - Dst: fu_x509_certificate_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6448,1
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6449
      start: 6397
    functionDepth: 4
    functionLinenumber: 6397
    functionLinenumberEnd: 6449
    functionName: fu_plugin_efi_variable_authentication2_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - fu_firmware_to_string
    - g_assert_true
    - fu_efi_x509_signature_get_issuer
    - g_object_new
    - g_debug
    - FU_X509_CERTIFICATE
    - g_assert_cmpint
    - g_file_new_for_path
    - g_ptr_array_index
    - fu_firmware_get_image_by_id
    - fu_x509_certificate_get_subject
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_efi_x509_signature_get_subject
    - fu_firmware_parse_file
    - g_assert_cmpstr
    - g_test_build_filename
    - fu_x509_certificate_get_issuer
    - g_assert_no_error
    - FU_EFI_X509_SIGNATURE
    - fu_efi_variable_authentication2_get_signers
    linkageType: ''
    returnType: void
    signature: void fu_plugin_efi_variable_authentication2_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6455,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6455,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6456,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6456,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6457,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6457,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6458,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6458,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6459,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6461,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6462,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6463,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6466,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6466,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6467,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6467,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6468,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6468,1
    - Dst: fu_efi_signature_list_get_newest
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6471,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6471,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6472,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6473,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6474,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6474,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6475
      start: 6451
    functionDepth: 3
    functionLinenumber: 6451
    functionLinenumberEnd: 6475
    functionName: fu_plugin_efi_signature_list_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_list_new
    - fu_firmware_add_image
    - g_assert_cmpint
    - fu_efi_x509_signature_set_subject
    - fu_firmware_get_version_raw
    - FU_FIRMWARE
    - g_ptr_array_index
    - g_autoptr
    - fu_efi_x509_signature_new
    - fu_efi_signature_list_get_newest
    linkageType: ''
    returnType: void
    signature: void fu_plugin_efi_signature_list_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6482,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6483,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6483,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6484,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6485,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6487,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6488,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6489,1
    - Dst: fu_udev_device_list_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6492,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6493,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6494,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6496
      start: 6477
    functionDepth: 1
    functionLinenumber: 6477
    functionLinenumberEnd: 6496
    functionName: fu_device_udev_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_udev_device_list_sysfs
    - fu_udev_device_new
    - g_assert_cmpint
    - g_test_build_filename
    - fu_udev_device_read_property
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_device_udev_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6517,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6519,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6520,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6521,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6524
      start: 6498
    functionDepth: 1
    functionLinenumber: 6498
    functionLinenumberEnd: 6524
    functionName: fu_cab_checksum_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_cab_firmware_compute_checksum
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cab_checksum_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6534,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6534,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6535,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6535,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6536,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6537,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6538,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6539,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6540,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6542,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6543,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6544,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6547,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6548,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6549,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6550,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6550,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6551,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6556,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6557,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6558,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6559,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6560,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6561,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6561,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6562,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6563,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6565,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6566,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6567,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6570,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6571,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6572,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6573,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6573,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6574,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6579,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6580,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6581,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6582,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6583,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6584,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6584,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6585,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6587
      start: 6526
    functionDepth: 4
    functionLinenumber: 6526
    functionLinenumberEnd: 6587
    functionName: fu_efi_lz77_decompressor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpstr
    - fu_efi_lz77_decompressor_new
    - g_assert_cmpint
    - g_test_build_filename
    - g_bytes_get_size
    - g_assert_true
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - g_compute_checksum_for_bytes
    - fu_bytes_get_contents
    - fu_firmware_parse_bytes
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_efi_lz77_decompressor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6600,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6601,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6602,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6604,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6605,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6606,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6607,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6608,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6609,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6610,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6612,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6613,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6613,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6614,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6615,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6618,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6619,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6620,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6621,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6624,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6625,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6626,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6627,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6630,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6631,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6632,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6633,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6634,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6635,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6638,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6645,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6646,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6647,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6648,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6649,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6652,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6659,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6660,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6662
      start: 6589
    functionDepth: 1
    functionLinenumber: 6589
    functionLinenumberEnd: 6662
    functionName: fu_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_file_read
    - g_assert_true
    - fu_input_stream_size
    - g_assert_cmpint
    - g_file_new_for_path
    - g_assert_false
    - fu_dump_raw
    - fu_input_stream_compute_checksum
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - fu_input_stream_read_safe
    - g_assert_cmpstr
    - g_test_build_filename
    - G_INPUT_STREAM
    - g_malloc0
    - g_assert_no_error
    - g_compute_checksum_for_data
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6668,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6669,1
    - Dst: fu_struct_self_test_bits_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6669,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6670,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6673,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6674,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6675,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6676,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6677,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6678,1
    - Dst: fu_struct_self_test_bits_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6680,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6681,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6682,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6684,1
    - Dst: fu_struct_self_test_bits_get_lower
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6684,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6685,1
    - Dst: fu_struct_self_test_bits_get_middle
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6685,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6686,1
    - Dst: fu_struct_self_test_bits_get_upper
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6686,1
    - Dst: fu_struct_self_test_bits_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6688,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6689,1
    - Dst: fu_struct_self_test_bits_set_lower
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6697,1
    - Dst: fu_struct_self_test_bits_set_middle
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6698,1
    - Dst: fu_struct_self_test_bits_set_upper
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6699,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6700,1
    - Dst: fu_struct_self_test_bits_get_lower
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6700,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6701,1
    - Dst: fu_struct_self_test_bits_get_middle
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6701,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6702,1
    - Dst: fu_struct_self_test_bits_get_upper
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6664
    functionDepth: 1
    functionLinenumber: 6664
    functionLinenumberEnd: 6703
    functionName: fu_plugin_struct_bits_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_struct_self_test_bits_set_middle
    - fu_struct_self_test_bits_get_upper
    - fu_struct_self_test_bits_set_upper
    - fu_struct_self_test_bits_parse
    - fu_struct_self_test_bits_set_lower
    - fu_struct_self_test_bits_get_middle
    - g_assert_no_error
    - fu_struct_self_test_bits_to_string
    - fu_struct_self_test_bits_new
    - g_autoptr
    - g_assert_nonnull
    - fu_dump_raw
    - fu_struct_self_test_bits_get_lower
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_bits_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6709,1
    - Dst: fu_struct_self_test_list_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6709,1
    - Dst: fu_struct_self_test_list_set_basic
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6712,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6713,1
    - Dst: fu_struct_self_test_list_get_basic
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6713,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6718,1
    - Dst: fu_struct_self_test_list_member_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6719,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6720,1
    - Dst: fu_struct_self_test_list_member_set_data1
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6722,1
    - Dst: fu_struct_self_test_list_member_set_data2
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6723,1
    - Dst: fu_struct_self_test_list_set_members
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6724,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6725,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6726,1
    - Dst: fu_struct_self_test_list_get_members
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6728,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6729,1
    - Dst: fu_struct_self_test_list_member_get_data1
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6729,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6730,1
    - Dst: fu_struct_self_test_list_member_get_data2
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6730,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6734,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6739
      start: 6705
    functionDepth: 1
    functionLinenumber: 6705
    functionLinenumberEnd: 6739
    functionName: fu_plugin_struct_list_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_list_get_members
    - fu_struct_self_test_list_member_get_data2
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_struct_self_test_list_set_basic
    - fu_struct_self_test_list_member_set_data2
    - fu_byte_array_to_string
    - fu_struct_self_test_list_new
    - fu_struct_self_test_list_get_basic
    - fu_struct_self_test_list_set_members
    - g_assert_true
    - g_assert_no_error
    - fu_struct_self_test_list_member_set_data1
    - g_autoptr
    - fu_struct_self_test_list_member_new
    - fu_struct_self_test_list_member_get_data1
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_list_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6745,1
    - Dst: fu_struct_self_test_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6745,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6748,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6754,1
    - Dst: fu_struct_self_test_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6757,1
    - Dst: fu_struct_self_test_set_length
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6758,1
    - Dst: fu_struct_self_test_set_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6759,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6760,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6761,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6762,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6762,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6763,1
    - Dst: fu_struct_self_test_get_length
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6763,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6766,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6767,1
    - Dst: fu_struct_self_test_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6773,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6774,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6775,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6776,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6776,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6777,1
    - Dst: fu_struct_self_test_get_length
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6777,1
    - Dst: fu_struct_self_test_get_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6778,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6779,1
    - Dst: fu_struct_self_test_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6782,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6783,1
    - Dst: fu_struct_self_test_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6796,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6797,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6798,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6799,1
    - Dst: fu_struct_self_test_validate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6800,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6801,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6803
      start: 6741
    functionDepth: 1
    functionLinenumber: 6741
    functionLinenumberEnd: 6803
    functionName: fu_plugin_struct_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_set_revision
    - g_assert_true
    - g_assert_null
    - fu_struct_self_test_validate
    - g_assert_cmpint
    - fu_struct_self_test_set_oem_table_id
    - fu_struct_self_test_get_length
    - g_assert_false
    - fu_struct_self_test_set_length
    - fu_struct_self_test_get_oem_table_id
    - fu_struct_self_test_parse
    - fu_byte_array_to_string
    - g_clear_error
    - fu_struct_self_test_get_revision
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_cmpstr
    - fu_struct_self_test_new
    - fu_struct_self_test_to_string
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6812,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6813,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6815,1
    - Dst: fu_struct_self_test_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6815,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6816,1
    - Dst: fu_struct_self_test_wrapped_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6816,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6817,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6820,1
    - Dst: fu_struct_self_test_wrapped_set_less
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6823,1
    - Dst: fu_struct_self_test_wrapped_set_more
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6824,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6825,1
    - Dst: fu_struct_self_test_wrapped_get_more
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6825,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6826,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6827,1
    - Dst: fu_struct_self_test_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6833,1
    - Dst: fu_struct_self_test_wrapped_set_base
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6834,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6835,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6836,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6837,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6838,1
    - Dst: fu_struct_self_test_wrapped_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6844,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6845,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6846,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6847,1
    - Dst: fu_struct_self_test_wrapped_get_more
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6847,1
    - Dst: fu_struct_self_test_wrapped_get_base
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6848,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6849,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6849,1
    - Dst: fu_struct_self_test_wrapped_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6852,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6853,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6854,1
    - Dst: fu_struct_self_test_wrapped_parse
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6869,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6870,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6871,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6872,1
    - Dst: fu_struct_self_test_wrapped_validate
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6873,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6874,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6876
      start: 6805
    functionDepth: 1
    functionLinenumber: 6805
    functionLinenumberEnd: 6876
    functionName: fu_plugin_struct_wrapped_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_set_revision
    - g_assert_true
    - g_assert_null
    - fu_struct_self_test_wrapped_set_base
    - fu_struct_self_test_wrapped_set_more
    - g_debug
    - g_assert_cmpint
    - fu_struct_self_test_wrapped_get_base
    - fu_struct_self_test_wrapped_parse
    - g_assert_false
    - fu_struct_self_test_wrapped_set_less
    - g_clear_error
    - fu_byte_array_to_string
    - fu_struct_self_test_wrapped_validate
    - fu_struct_self_test_get_revision
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_cmpstr
    - fu_struct_self_test_new
    - fu_struct_self_test_wrapped_get_more
    - g_assert_no_error
    - fu_struct_self_test_wrapped_to_string
    - fu_struct_self_test_wrapped_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_wrapped_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6883,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6883,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6884,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6884,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6885,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6886,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6888,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6888,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6889,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6890,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6890,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6892,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6893,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6894,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6896,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6896,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6897,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6897,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6897,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6898,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6898,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6899,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6900,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6901,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6903
      start: 6878
    functionDepth: 4
    functionLinenumber: 6878
    functionLinenumberEnd: 6903
    functionName: fu_efi_load_option_path_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_efi_device_path_list_new
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_assert_cmpint
    - fu_efi_load_option_get_metadata
    - fu_firmware_write
    - fu_efi_load_option_get_kind
    - fu_efi_load_option_new
    - fu_efi_load_option_set_metadata
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_bytes_to_string
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_path_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6909,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6909,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6910,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6910,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6911,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6912,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6914,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6914,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6915,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6916,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6917,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6917,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6919,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6919,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6920,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6920,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6920,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6921,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6921,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6922,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6923,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6924,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6924,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6925,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6933
      start: 6905
    functionDepth: 4
    functionLinenumber: 6905
    functionLinenumberEnd: 6933
    functionName: fu_efi_load_option_hive_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_efi_device_path_list_new
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_assert_cmpint
    - g_assert_cmpstr
    - fu_efi_load_option_get_kind
    - fu_efi_load_option_new
    - g_bytes_get_size
    - fu_efi_load_option_set_metadata
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_bytes_to_string
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_hive_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6938,1
    - Dst: fu_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6938,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6945,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6946,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6947,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6948,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6952,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6955,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6955,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6956,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6957,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6957,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6958,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6961
      start: 6935
    functionDepth: 4
    functionLinenumber: 6935
    functionLinenumberEnd: 6961
    functionName: fu_efi_load_option_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - fu_efivars_new
    - fu_firmware_to_string
    - fu_efivars_get_boot_entry
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6968,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6969,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6970,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6973,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6974,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6976,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6977,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6978,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6979,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6980,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6981,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6982,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6983,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6984,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6985,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6986,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6987,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6988,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6990,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6991,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6992,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6993,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6994,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6995,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6996,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6997,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:6999,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7000,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7002,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7003,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7004,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7005,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7006,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7007,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7008,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7009,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7010,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7011,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7012,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7013,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7014,1
    - Dst: g_test_slow
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7015,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7016,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7017,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7018,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7019,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7020,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7021,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7022,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7023,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7024,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7025,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7026,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7027,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7028,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7029,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7030,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7031,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7032,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7033,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7034,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7035,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7037,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7038,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7039,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7040,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7041,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7042,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7043,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7044,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7045,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7046,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7047,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7048,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7049,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7050,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7051,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7052,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7053,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7054,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7055,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7056,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7057,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7058,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7059,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7060,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7061,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7062,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7063,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7064,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7065,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7066,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7067,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7068,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7069,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7070,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7071,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7072,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7073,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7074,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7075,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7077,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7078,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7079,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7080,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7081,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7082,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7083,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7084,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7085,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7086,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7087,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7088,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7089,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7090,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7091,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7092,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7093,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7094,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7095,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7096,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7097,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7098,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7099,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7100,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7101,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7102,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7103,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7104,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7105,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7106,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7107,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7108,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7109,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7110,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7111,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7112,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7113,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7114,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7115,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7116,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7117,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7118,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7119,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7120,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7121,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7122,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7123,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7124,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7125,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7126,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7127,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7128,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7129,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7130,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7131,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7132,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7133,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7134,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7135,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7136,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7137,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7138,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7140,1
    - Dst: g_test_slow
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7142,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7143,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7144,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7145,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7146,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7147,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7148,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7149,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7150,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7151,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7152,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7153,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7154,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7155,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7156,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-self-test.c:7157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 181
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7158
      start: 6963
    functionDepth: 0
    functionLinenumber: 6963
    functionLinenumberEnd: 7158
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_slow
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 715
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:56,1
    - Dst: FU_IS_IHEX_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIhexFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: fu_ihex_firmware_get_records
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IHEX_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_ihex_firmware_get_records(FuIhexFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:75,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:76,1
    - Dst: FU_IS_IHEX_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - padding_value
    argTypes:
    - FuIhexFirmware*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fu_ihex_firmware_set_padding_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_IHEX_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_set_padding_value(FuIhexFirmware *self, guint8
      padding_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:83,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:84,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuIhexFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: fu_ihex_firmware_record_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_string_free
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_record_free(FuIhexFirmwareRecord *rcd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:93,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:94,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:109,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:117,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:119,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:120,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:121,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:123,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:132,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:145,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:150,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:162,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:164,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - ln
    - line
    - flags
    - error
    argTypes:
    - guint
    - gchar*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 167
    functionName: fu_ihex_firmware_record_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_string_new
    - strlen
    - fu_byte_array_append_uint8
    - g_new0
    - g_steal_pointer
    - fu_firmware_strparse_uint8_safe
    - g_set_error_literal
    - fu_firmware_strparse_uint16_safe
    - g_autoptr
    - fu_strsafe
    - g_byte_array_new
    linkageType: ''
    returnType: FuIhexFirmwareRecord
    signature: 'FuIhexFirmwareRecord *

      fu_ihex_firmware_record_new(guint ln, const gchar *line, FuFirmwareParseFlags
      flags, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:183,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:191,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:192,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:199,1
    - Dst: fu_ihex_firmware_record_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:203,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:205,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:208,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 210
    functionName: fu_ihex_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_str_has_prefix
    - strlen
    - g_steal_pointer
    - g_prefix_error
    - g_set_error_literal
    - fu_ihex_firmware_record_new
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ihex_firmware_tokenize_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:218,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: fu_ihex_firmware_tokenize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IHEX_FIRMWARE
    - fu_strsplit_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ihex_firmware_tokenize(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:229,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:238,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:248,1
    - Dst: fu_ihex_firmware_record_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:248,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:250,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:254,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:268,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:288,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:301,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:310,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:319,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:329,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:333,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:351,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:361,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:364,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:373,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:377,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:396,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:398,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:399,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:400,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:410,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:422,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:430,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:432,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:433,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 104
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 435
    functionName: fu_ihex_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_set_error
    - g_debug
    - fu_firmware_add_image_full
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - fu_firmware_set_addr
    - fu_firmware_set_bytes
    - fu_byte_array_append_uint8
    - fu_ihex_firmware_record_type_to_string
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    - fu_firmware_set_id
    - FU_IHEX_FIRMWARE
    - fu_memread_uint32_safe
    - g_set_error_literal
    - GET_PRIVATE
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ihex_firmware_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:445,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:447,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - str
    - address
    - record_type
    - data
    - sz
    argTypes:
    - GString*
    - guint16
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 455
    functionName: fu_ihex_firmware_emit_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    linkageType: ''
    returnType: void
    signature: "void fu_ihex_firmware_emit_chunk(GString *str,\n\t\t\t    guint16
      address,\n\t\t\t    guint8 record_type,\n\t\t\t    const guint8 *data,\n\t\t\t
      \   gsize sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:470,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:474,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:479,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:480,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - bytes
    - addr
    - record_type
    - str
    - error
    argTypes:
    - GBytes*
    - guint32
    - guint8
    - GString*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 491
    functionName: fu_ihex_firmware_image_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - MIN
    - fu_memwrite_uint16
    - g_bytes_get_data
    - fu_ihex_firmware_emit_chunk
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ihex_firmware_image_to_string(GBytes *bytes,\n\t\t\t\t
      guint32 addr,\n\t\t\t\t guint8 record_type,\n\t\t\t\t GString *str,\n\t\t\t\t
      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:496,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:499,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:499,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:502,1
    - Dst: fu_ihex_firmware_image_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:505,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:506,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:513,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:515,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:515,1
    - Dst: fu_ihex_firmware_image_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:518,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:527,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:528,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 530
    functionName: fu_ihex_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_addr
    - g_autoptr
    - g_byte_array_append
    - fu_ihex_firmware_image_to_string
    - fu_ihex_firmware_emit_chunk
    - g_byte_array_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ihex_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:535,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:536,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:537,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 539
    functionName: fu_ihex_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_IHEX_FIRMWARE
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:544,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:546,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:547,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:547,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:548,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIhexFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: fu_ihex_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - fu_firmware_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_init(FuIhexFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:554,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIhexFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: fu_ihex_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_class_init(FuIhexFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:572,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: fu_ihex_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ihex_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:41,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:42,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:43,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:44,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: fu_bios_settings_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_BIOS_SETTINGS
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosSettingsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: fu_bios_settings_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_class_init(FuBiosSettingsClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:63,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:64,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:66,1
    - Dst: fwupd_bios_setting_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:66,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:67,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:68,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:69,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - attr
    - key
    - value_out
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: fu_bios_setting_get_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_build_filename
    - g_prefix_error
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_get_path
    - g_return_val_if_fail
    - g_strchomp
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bios_setting_get_key(FwupdBiosSetting *attr, /* nocheck:name
      */\n\t\t\tconst gchar *key,\n\t\t\tgchar **value_out,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:82,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:82,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:85,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:85,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:87,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:90,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:90,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:92,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:95,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 100
    functionName: fu_bios_settings_set_description
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_get_name
    - fu_bios_setting_get_key
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_set_description
    - g_hash_table_lookup
    - g_return_val_if_fail
    - fwupd_bios_setting_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_set_description(FuBiosSettings *self, FwupdBiosSetting
      *attr, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:110,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - attr
    - key
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: fu_bios_setting_get_key_as_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_bios_setting_get_key
    - fu_strtoull
    linkageType: ''
    returnType: guint64
    signature: "guint64 fu_bios_setting_get_key_as_integer(FwupdBiosSetting *attr,
      /* nocheck:name */\n\t\t\t\t   const gchar *key,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:125,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:128,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:129,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:131,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:131,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:133,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: fu_bios_setting_set_enumeration_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_strsplit
    - fwupd_bios_setting_set_kind
    - strlen
    - g_strrstr
    - fu_bios_setting_get_key
    - fwupd_bios_setting_add_possible_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_setting_set_enumeration_attrs(FwupdBiosSetting *attr,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:145,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:148,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:149,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:152,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: fu_bios_setting_set_string_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_lower_bound
    - fu_bios_setting_get_key_as_integer
    - fwupd_bios_setting_set_upper_bound
    - fwupd_bios_setting_set_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_setting_set_string_attrs(FwupdBiosSetting *attr, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:162,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:165,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:166,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:169,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:170,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:173,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: fu_bios_setting_set_integer_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_lower_bound
    - fwupd_bios_setting_set_upper_bound
    - fu_bios_setting_get_key_as_integer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_setting_set_integer_attrs(FwupdBiosSetting *attr,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:183,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: fu_bios_setting_set_current_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_current_value
    - fu_bios_setting_get_key
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_setting_set_current_value(FwupdBiosSetting *attr,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:193,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:195,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:195,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:196,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:196,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:197,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:199,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:199,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: fu_bios_settings_set_read_only
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_get_kind
    - g_strrstr
    - fwupd_bios_setting_get_id
    - g_strcmp0
    - g_hash_table_lookup
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_set_read_only(FuBiosSettings *self, FwupdBiosSetting
      *attr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:212,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:213,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:213,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:216,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:221,1
    - Dst: fu_bios_setting_set_enumeration_attrs
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:222,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:223,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:224,1
    - Dst: fu_bios_setting_set_integer_attrs
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:227,1
    - Dst: fu_bios_setting_set_string_attrs
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:228,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 232
    functionName: fu_bios_settings_set_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - fu_bios_setting_set_string_attrs
    - FU_IS_BIOS_SETTINGS
    - fu_bios_setting_set_enumeration_attrs
    - fu_bios_setting_get_key
    - g_autoptr
    - FWUPD_IS_BIOS_SETTING
    - g_propagate_error
    - g_strcmp0
    - g_return_val_if_fail
    - fu_bios_setting_set_integer_attrs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_set_type(FuBiosSettings *self, FwupdBiosSetting
      *attr, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:242,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:242,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:243,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:247,1
    - Dst: fu_bios_settings_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:250,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:252,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:254,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: fu_bios_settings_set_file_attributes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_get_name
    - fwupd_bios_setting_set_current_value
    - fu_bios_settings_set_description
    - fu_bios_setting_get_key
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_set_file_attributes(FuBiosSettings *self,
      FwupdBiosSetting *attr, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:263,1
    - Dst: fu_bios_settings_set_type
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:265,1
    - Dst: fu_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:267,1
    - Dst: fu_bios_settings_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:269,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:270,1
    - Dst: fu_bios_settings_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: fu_bios_settings_set_folder_attributes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_bios_setting_set_current_value
    - fu_bios_settings_set_description
    - fu_bios_settings_set_type
    - g_autoptr
    - fu_bios_settings_set_read_only
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_set_folder_attributes(FuBiosSettings *self,
      FwupdBiosSetting *attr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:278,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:278,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:279,1
    - Dst: FU_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:279,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:280,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: fu_bios_settings_add_attribute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - FU_IS_BIOS_SETTINGS
    - g_return_if_fail
    - FU_IS_BIOS_SETTING
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_add_attribute(FuBiosSettings *self, FwupdBiosSetting
      *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:293,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:295,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:296,1
    - Dst: fu_bios_setting_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:298,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:300,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:301,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:302,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:303,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:305,1
    - Dst: fu_bios_settings_set_folder_attributes
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:306,1
    - Dst: fu_bios_settings_set_file_attributes
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:309,1
    - Dst: fu_bios_settings_add_attribute
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - self
    - driver
    - path
    - name
    - error
    argTypes:
    - FuBiosSettings*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 315
    functionName: fu_bios_settings_populate_attribute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fu_bios_settings_set_file_attributes
    - FU_IS_BIOS_SETTINGS
    - g_strdup_printf
    - g_autoptr
    - g_file_test
    - fu_bios_setting_new
    - g_return_val_if_fail
    - fwupd_bios_setting_set_path
    - fu_bios_settings_add_attribute
    - fwupd_bios_setting_set_name
    - fu_bios_settings_set_folder_attributes
    - fwupd_bios_setting_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bios_settings_populate_attribute(FuBiosSettings *self,\n\t\t\t\t
      \   const gchar *driver,\n\t\t\t\t    const gchar *path,\n\t\t\t\t    const
      gchar *name,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:320,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:320,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:322,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:323,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:325,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:325,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:326,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:327,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:329,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 330
    functionName: fu_bios_settings_populate_descriptions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FU_IS_BIOS_SETTINGS
    - _
    - g_return_if_fail
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_populate_descriptions(FuBiosSettings *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:335,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:335,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:337,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:338,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:339,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:339,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:340,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:341,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:342,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: fu_bios_settings_populate_read_only
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FU_IS_BIOS_SETTINGS
    - _
    - g_return_if_fail
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_populate_read_only(FuBiosSettings *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:348,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:350,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:354,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:355,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:356,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:357,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: fu_bios_settings_combination_fixups
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_get_name
    - fu_bios_settings_get_attr
    - g_strcmp0
    - g_info
    - fwupd_bios_setting_get_current_value
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_combination_fixups(FuBiosSettings *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:379,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:381,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:381,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:384,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:385,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:387,1
    - Dst: fu_bios_settings_populate_descriptions
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:388,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:390,1
    - Dst: fu_bios_settings_populate_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:391,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:393,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:394,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:401,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:402,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:405,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:406,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:407,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:410,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:412,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:418,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:421,1
    - Dst: fu_bios_settings_populate_attribute
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:422,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:427,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:432,1
    - Dst: fu_bios_settings_combination_fixups
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:434,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBiosSettings*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 437
    functionName: fu_bios_settings_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_hash_table_size
    - g_debug
    - g_dir_read_name
    - fu_bios_settings_populate_attribute
    - fu_bios_settings_populate_descriptions
    - g_build_filename
    - FU_IS_BIOS_SETTINGS
    - g_dir_open
    - fu_bios_settings_combination_fixups
    - fu_path_from_kind
    - g_ptr_array_set_size
    - g_autoptr
    - fu_bios_settings_populate_read_only
    - g_file_test
    - g_return_val_if_fail
    - g_info
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_setup(FuBiosSettings *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:442,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:443,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: fu_bios_settings_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_init(FuBiosSettings *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:459,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:459,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:460,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:463,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:464,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:465,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:466,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FuBiosSettings*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 470
    functionName: fu_bios_settings_get_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - fwupd_bios_setting_get_name
    - FU_IS_BIOS_SETTINGS
    - g_ptr_array_index
    - g_strcmp0
    - g_return_val_if_fail
    - fwupd_bios_setting_get_id
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fu_bios_settings_get_attr(FuBiosSettings *self, const gchar *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:485,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:485,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: fu_bios_settings_get_all
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BIOS_SETTINGS
    - g_ptr_array_ref
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_bios_settings_get_all(FuBiosSettings *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:506,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:507,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:507,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:510,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:512,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:518,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:526,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:528,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - result
    - error
    argTypes:
    - FuBiosSettings*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 535
    functionName: fu_bios_settings_get_pending_reboot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 1
    functionsReached:
    - fwupd_bios_setting_get_name
    - FU_IS_BIOS_SETTINGS
    - fwupd_bios_setting_set_current_value
    - g_ptr_array_index
    - g_set_error_literal
    - fu_bios_setting_get_key
    - g_strcmp0
    - g_return_val_if_fail
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_get_pending_reboot(FuBiosSettings *self,
      gboolean *result, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:540,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:543,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:543,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:545,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:546,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:546,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:547,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - codec
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 550
    functionName: fu_bios_settings_to_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - FU_BIOS_SETTINGS
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_variant
    - g_variant_new
    - g_variant_builder_add_value
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fu_bios_settings_to_variant(FwupdCodec *codec, FwupdCodecFlags flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:555,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:560,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:561,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:567,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:570,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:571,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:577,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:578,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:579,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:580,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:580,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:581,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:581,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:583,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 588
    functionName: fu_bios_settings_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - json_array_get_element
    - FU_BIOS_SETTINGS
    - g_steal_pointer
    - FWUPD_CODEC
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_array_member
    - json_node_get_object
    - g_autoptr
    - json_object_has_member
    - fwupd_codec_from_json
    - g_ptr_array_add
    - json_array_get_length
    - fwupd_bios_setting_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: fu_bios_settings_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:612,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:614,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:616,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:617,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:618,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:618,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:619,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: fu_bios_settings_to_hash_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - g_hash_table_insert
    - fwupd_bios_setting_get_current_value
    - g_hash_table_new_full
    - g_ptr_array_index
    - g_strdup
    - g_return_val_if_fail
    - fwupd_bios_setting_get_id
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_bios_settings_to_hash_kv(FuBiosSettings *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: fu_bios_settings_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuBiosSettings
    signature: 'FuBiosSettings *

      fu_bios_settings_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:41,1
    - Dst: FU_IS_KERNEL_SEARCH_PATH_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKernelSearchPathLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_kernel_search_path_locker_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_KERNEL_SEARCH_PATH_LOCKER
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kernel_search_path_locker_get_path(FuKernelSearchPathLocker *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:53,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:71,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: fu_kernel_search_path_get_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_file_get_contents
    - g_debug
    - g_steal_pointer
    - fu_path_from_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kernel_search_path_get_current(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:81,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:83,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:83,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:84,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:85,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: fu_kernel_search_path_set_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_set_contents_full
    - strlen
    - fu_path_from_kind
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_search_path_set_current(const gchar *path, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_search_path_set_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:98,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKernelSearchPathLocker*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: fu_kernel_search_path_locker_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - fu_kernel_search_path_set_current
    - g_clear_pointer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_search_path_locker_close(FuKernelSearchPathLocker
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:125,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:126,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:129,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:130,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:136,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:137,1
    - Dst: fu_kernel_search_path_set_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:138,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: fu_kernel_search_path_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 1
    functionsReached:
    - fu_kernel_search_path_set_current
    - g_steal_pointer
    - fu_kernel_search_path_get_current
    - g_object_new
    - g_strdup
    - g_autoptr
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuKernelSearchPathLocker
    signature: 'FuKernelSearchPathLocker *

      fu_kernel_search_path_locker_new(const gchar *path, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_KERNEL_SEARCH_PATH_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:151,1
    - Dst: fu_kernel_search_path_locker_close
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:152,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:153,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: fu_kernel_search_path_locker_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_KERNEL_SEARCH_PATH_LOCKER
    - G_OBJECT_CLASS
    - fu_kernel_search_path_locker_close
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_kernel_search_path_locker_dispose(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KERNEL_SEARCH_PATH_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:161,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:162,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:163,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: fu_kernel_search_path_locker_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - FU_KERNEL_SEARCH_PATH_LOCKER
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kernel_search_path_locker_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKernelSearchPathLockerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: fu_kernel_search_path_locker_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kernel_search_path_locker_class_init(FuKernelSearchPathLockerClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKernelSearchPathLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: fu_kernel_search_path_locker_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_kernel_search_path_locker_init(FuKernelSearchPathLocker *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 721
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:41,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:42,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:47,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:49,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:49,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:50,1
    - Dst: fu_efi_file_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: fu_efi_file_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - fu_efi_guid_to_name
    - FU_EFI_FILE
    - fu_efi_file_type_to_string
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_firmware_get_id
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: fu_efi_file_hdr_checksum8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_efi_file_hdr_checksum8(GBytes *blob)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:78,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:83,1
    - Dst: fu_struct_efi_file_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:86,1
    - Dst: fu_struct_efi_file_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:89,1
    - Dst: fu_struct_efi_file_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:90,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:92,1
    - Dst: fu_struct_efi_file_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:92,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:93,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:98,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:102,1
    - Dst: fu_struct_efi_file_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:105,1
    - Dst: fu_struct_efi_file2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:106,1
    - Dst: fu_struct_efi_file2_get_extended_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:109,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:125,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:127,1
    - Dst: fu_efi_file_hdr_checksum8
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:130,1
    - Dst: fu_struct_efi_file_get_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:132,1
    - Dst: fu_struct_efi_file_get_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:137,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:145,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:153,1
    - Dst: fu_struct_efi_file_get_data_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:155,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:156,1
    - Dst: fu_struct_efi_file_get_data_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:161,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:168,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:169,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:173,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:178,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:179,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:179,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 183
    functionName: fu_efi_file_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - fu_struct_efi_file_get_name
    - g_prefix_error
    - fu_firmware_set_stream
    - g_set_error
    - fu_struct_efi_file2_get_extended_size
    - fu_struct_efi_file2_parse_stream
    - fu_struct_efi_file_get_attrs
    - fu_firmware_set_size
    - FU_EFI_FILE
    - fu_efi_file_hdr_checksum8
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_struct_efi_file_get_size
    - fu_firmware_set_id
    - fu_struct_efi_file_get_type
    - fwupd_guid_to_string
    - fu_efi_parse_sections
    - fu_struct_efi_file_get_hdr_checksum
    - fu_struct_efi_file_parse_stream
    - GET_PRIVATE
    - fu_input_stream_compute_sum8
    - fu_common_align_up
    - fu_input_stream_read_bytes
    - fu_struct_efi_file_unref
    - fu_struct_efi_file_get_data_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_file_parse(FuFirmware *firmware,\n\t\t  GInputStream
      *stream,\n\t\t  FuFirmwareParseFlags flags,\n\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:188,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:189,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:189,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:193,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:197,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:203,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:208,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:209,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:210,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:213,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:214,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:218,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 230
    functionName: fu_efi_file_write_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - g_set_error
    - fu_firmware_write
    - fu_firmware_set_offset
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_bytes_new
    - fu_byte_array_align_up
    - g_byte_array_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_efi_file_write_sections(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:235,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:238,1
    - Dst: fu_struct_efi_file_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:240,1
    - Dst: fu_efi_file_write_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:243,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:246,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:247,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:247,1
    - Dst: fu_struct_efi_file_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:253,1
    - Dst: fu_struct_efi_file_set_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:254,1
    - Dst: fu_struct_efi_file_set_data_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:255,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:255,1
    - Dst: fu_struct_efi_file_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:256,1
    - Dst: fu_struct_efi_file_set_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:257,1
    - Dst: fu_struct_efi_file_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:258,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:258,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:261,1
    - Dst: fu_struct_efi_file_set_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:262,1
    - Dst: fu_efi_file_hdr_checksum8
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:262,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 267
    functionName: fu_efi_file_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_file_set_data_checksum
    - fu_struct_efi_file_set_type
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_struct_efi_file_set_name
    - fu_sum8_bytes
    - fu_struct_efi_file_new
    - fu_efi_file_write_sections
    - g_steal_pointer
    - FU_EFI_FILE
    - fu_struct_efi_file_set_size
    - fu_efi_file_hdr_checksum8
    - g_autoptr
    - g_bytes_new_static
    - fwupd_guid_from_string
    - fu_struct_efi_file_set_attrs
    - g_bytes_get_size
    - GET_PRIVATE
    - fu_struct_efi_file_set_hdr_checksum
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_file_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:272,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:273,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:277,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 286
    functionName: fu_efi_file_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - GET_PRIVATE
    - FU_EFI_FILE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_file_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:291,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:294,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:294,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: fu_efi_file_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_firmware_set_alignment
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_init(FuEfiFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFileClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: fu_efi_file_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_class_init(FuEfiFileClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:318,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: fu_efi_file_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_file_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ifwi_fpt_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: fu_ifwi_fpt_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_fpt_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_fpt_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      gsize offset,\n\t\t\t      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:54,1
    - Dst: fu_struct_ifwi_fpt_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:57,1
    - Dst: fu_struct_ifwi_fpt_get_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:62,1
    - Dst: fu_struct_ifwi_fpt_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:71,1
    - Dst: fu_struct_ifwi_fpt_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:75,1
    - Dst: fu_struct_ifwi_fpt_get_header_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:87,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:88,1
    - Dst: fu_struct_ifwi_fpt_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:91,1
    - Dst: fu_struct_ifwi_fpt_entry_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:94,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:95,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:98,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:100,1
    - Dst: fu_struct_ifwi_fpt_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:103,1
    - Dst: fu_struct_ifwi_fpt_entry_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:106,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:110,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:113,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:115,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:117,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 126
    functionName: fu_ifwi_fpt_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_fpt_entry_parse_stream
    - g_prefix_error
    - fu_struct_ifwi_fpt_get_header_length
    - g_set_error
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_struct_ifwi_fpt_get_num_of_entries
    - fu_struct_ifwi_fpt_entry_get_offset
    - fu_strsafe
    - fu_struct_ifwi_fpt_get_header_version
    - fu_struct_ifwi_fpt_entry_get_partition_name
    - fu_firmware_parse_stream
    - fu_struct_ifwi_fpt_parse_stream
    - fu_struct_ifwi_fpt_entry_get_length
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_firmware_set_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_fpt_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:132,1
    - Dst: fu_struct_ifwi_fpt_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:133,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:133,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:140,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:141,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:143,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:146,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:147,1
    - Dst: fu_struct_ifwi_fpt_set_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:151,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:156,1
    - Dst: fu_struct_ifwi_fpt_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:156,1
    - Dst: fu_struct_ifwi_fpt_entry_set_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:157,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:157,1
    - Dst: fu_struct_ifwi_fpt_entry_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:158,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:158,1
    - Dst: fu_struct_ifwi_fpt_entry_set_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:159,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:159,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:160,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:166,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:167,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:170,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 175
    functionName: fu_ifwi_fpt_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_firmware_get_images
    - fu_struct_ifwi_fpt_entry_set_offset
    - fu_struct_ifwi_fpt_new
    - fu_struct_ifwi_fpt_entry_set_partition_name
    - fu_firmware_set_offset
    - fu_byte_array_append_bytes
    - g_ptr_array_index
    - fu_struct_ifwi_fpt_set_num_of_entries
    - fu_struct_ifwi_fpt_entry_set_length
    - fu_firmware_get_offset
    - g_steal_pointer
    - fu_firmware_get_idx
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_firmware_get_size
    - fu_struct_ifwi_fpt_entry_new
    - g_bytes_get_size
    - g_byte_array_append
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ifwi_fpt_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:180,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfwiFptFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: fu_ifwi_fpt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_fpt_firmware_init(FuIfwiFptFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfwiFptFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: fu_ifwi_fpt_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_fpt_firmware_class_init(FuIfwiFptFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:202,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: fu_ifwi_fpt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifwi_fpt_firmware_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:26,1
    - Dst: fwupd_bios_setting_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:28,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:30,1
    - Dst: fwupd_bios_setting_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:30,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:31,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:34,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:36,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:43,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:44,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 46
    functionName: fu_bios_setting_write_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_debug
    - strlen
    - g_build_filename
    - fwupd_bios_setting_set_current_value
    - fu_io_channel_new_file
    - g_autoptr
    - fwupd_bios_setting_get_path
    - fwupd_bios_setting_get_id
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_setting_write_value(FwupdBiosSetting *self, const
      gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosSettingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: fu_bios_setting_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bios_setting_class_init(FuBiosSettingClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: fu_bios_setting_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bios_setting_init(FuBiosSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: fu_bios_setting_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fu_bios_setting_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:42,1
    - Dst: FuDeviceLocker*::close_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:43,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:44,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:47,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: fu_device_locker_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FuDeviceLocker*::close_func
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_DEVICE_LOCKER
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceLockerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_device_locker_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_class_init(FuDeviceLockerClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: fu_device_locker_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_init(FuDeviceLocker *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:81,1
    - Dst: FU_IS_DEVICE_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:81,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:82,1
    - Dst: FuDeviceLocker*::close_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:85,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:87,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:90,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceLocker*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: fu_device_locker_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 0
    functionsReached:
    - FuDeviceLocker*::close_func
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_DEVICE_LOCKER
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_close(FuDeviceLocker *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:124,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:127,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 138
    functionName: fu_device_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 22
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - g_set_error_literal
    - fu_device_locker_new_full
    linkageType: ''
    returnType: FuDeviceLocker
    signature: 'FuDeviceLocker *

      fu_device_locker_new(gpointer device, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:166,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:170,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:171,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:174,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:175,1
    - Dst: open_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:181,1
    - Dst: close_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:182,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:183,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:184,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - device
    - open_func
    - close_func
    - error
    argTypes:
    - gpointer
    - FuDeviceLockerFunc
    - FuDeviceLockerFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 194
    functionName: fu_device_locker_new_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 5
    functionsReached:
    - g_object_ref
    - g_debug
    - close_func
    - g_error_matches
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    - g_return_val_if_fail
    - open_func
    linkageType: ''
    returnType: FuDeviceLocker
    signature: "FuDeviceLocker *\nfu_device_locker_new_full(gpointer device,\n\t\t\t
      \ FuDeviceLockerFunc open_func,\n\t\t\t  FuDeviceLockerFunc close_func,\n\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:38,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:40,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-path.c:44,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:45,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:50,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:52,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:53,1
    - Dst: fu_path_rmtree
      Src: /src/fwupd/libfwupdplugin/fu-path.c:54,1
    - Dst: g_unlink
      Src: /src/fwupd/libfwupdplugin/fu-path.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:58,1
    - Dst: g_remove
      Src: /src/fwupd/libfwupdplugin/fu-path.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - directory
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: fu_path_rmtree
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_debug
    - g_dir_read_name
    - g_build_filename
    - g_unlink
    - g_dir_open
    - g_remove
    - fu_path_rmtree
    - g_autoptr
    - g_file_test
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_rmtree(const gchar *directory, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:82,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:85,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:90,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:91,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:92,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:94,1
    - Dst: fu_path_get_file_list_internal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:95,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-path.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - files
    - directory
    - error
    argTypes:
    - GPtrArray*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: fu_path_get_file_list_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 1
    functionsReached:
    - g_dir_read_name
    - g_steal_pointer
    - g_build_filename
    - g_dir_open
    - g_file_test
    - g_autoptr
    - g_ptr_array_add
    - fu_path_get_file_list_internal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_get_file_list_internal(GPtrArray *files, const gchar
      *directory, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:120,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-path.c:120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:123,1
    - Dst: fu_path_get_file_list_internal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:125,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: fu_path_get_files
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 4
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_path_get_file_list_internal
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_path_get_files(const gchar *path, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:145,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:147,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-path.c:148,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-path.c:149,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:150,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dirname
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: fu_path_mkdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_debug
    - g_mkdir_with_parents
    - fwupd_strerror
    - g_file_test
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_mkdir(const gchar *dirname, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:178,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupdplugin/fu-path.c:180,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: fu_path_mkdir_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - fu_path_mkdir
    - g_path_get_dirname
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_mkdir_parent(const gchar *filename, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_find_program_in_path
      Src: /src/fwupd/libfwupdplugin/fu-path.c:198,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - basename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: fu_path_find_program
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_find_program_in_path
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_find_program(const gchar *basename, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _splitpath
      Src: /src/fwupd/libfwupdplugin/fu-path.c:226,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: fu_path_get_win32_basedir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - _splitpath
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_get_win32_basedir(void)'
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:252,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:254,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:256,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:256,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:261,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:263,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:264,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:270,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:271,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:274,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:276,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:277,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:280,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:282,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:283,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:284,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:287,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:289,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:290,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:291,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:294,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:296,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:297,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:298,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:301,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:303,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:304,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:305,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:308,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:310,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:311,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:312,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:315,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:317,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:318,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:319,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:322,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:324,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:325,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:326,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:334,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:336,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:337,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:339,1
    - Dst: fu_path_get_win32_basedir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:340,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:342,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:343,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:346,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:348,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:349,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:351,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:352,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:355,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:357,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:358,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:360,1
    - Dst: fu_path_get_win32_basedir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:361,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:363,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:364,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:367,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:369,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:370,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:372,1
    - Dst: fu_path_get_win32_basedir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:373,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:375,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:376,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:379,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:381,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:382,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:384,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:385,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:388,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:390,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:391,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:393,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:394,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:397,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:399,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:400,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:401,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:404,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:406,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:408,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:410,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:411,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:417,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:418,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:419,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:420,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:421,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:424,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:425,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:426,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:427,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:428,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:431,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:433,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:434,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:435,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:438,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:440,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:441,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:442,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:445,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:447,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:448,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:449,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:452,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:453,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:454,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:455,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:456,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:459,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:460,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:461,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:462,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:463,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:466,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:468,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:469,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:470,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:471,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:474,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:476,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:477,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:478,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:481,1
    - Dst: fu_path_get_win32_basedir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:487,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:490,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:492,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:493,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:496,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:498,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:499,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:502,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:504,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:505,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:508,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-path.c:509,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path.c:511,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:513,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:514,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:516,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:517,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:518,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:519,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:520,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-path.c:524,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 226
    argCount: 1
    argNames:
    - path_kind
    argTypes:
    - FuPathKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 528
    functionName: fu_path_from_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 42
    functionsReached:
    - g_warning
    - g_steal_pointer
    - g_build_filename
    - fu_path_get_win32_basedir
    - fu_path_from_kind
    - g_strdup
    - g_file_test
    - g_getenv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_from_kind(FuPathKind path_kind)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-path.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: fu_path_glob_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_path_glob_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:554,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-path.c:554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:556,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:557,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:558,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:560,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:563,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-path.c:564,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-path.c:566,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:566,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:569,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-path.c:575,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - directory
    - pattern
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 577
    functionName: fu_path_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_dir_read_name
    - g_ptr_array_sort
    - g_steal_pointer
    - g_build_filename
    - g_dir_open
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_pattern_match_simple
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_path_glob(const gchar *directory, const gchar *pattern, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:595,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:596,1
    - Dst: realpath
      Src: /src/fwupd/libfwupdplugin/fu-path.c:599,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:600,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:604,1
    - Dst: _fullpath
      Src: /src/fwupd/libfwupdplugin/fu-path.c:608,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:609,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:613,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:617,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:618,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 626
    functionName: fu_path_make_absolute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - realpath
    - _fullpath
    - fwupd_strerror
    - g_strdup
    - g_file_test
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_make_absolute(const gchar *filename, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:643,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:644,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-path.c:646,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-path.c:647,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-path.c:653,1
    - Dst: g_file_info_get_attribute_byte_string
      Src: /src/fwupd/libfwupdplugin/fu-path.c:657,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:659,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 665
    functionName: fu_path_get_symlink_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_file_query_info
    - g_file_new_for_path
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - g_file_info_get_attribute_byte_string
    - fu_error_convert
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_get_symlink_target(const gchar *filename, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 726
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:31,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:32,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:36,1
    - Dst: fu_ifd_access_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:38,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: fu_ifd_image_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_IFD_IMAGE
    - fu_ifd_region_to_string
    - fu_ifd_access_to_string
    - GET_PRIVATE
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: void
    signature: void fu_ifd_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:58,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:59,1
    - Dst: FU_IS_IFD_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:59,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - region
    - access
    argTypes:
    - FuIfdImage*
    - FuIfdRegion
    - FuIfdAccess
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: fu_ifd_image_set_access
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_IFD_IMAGE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_ifd_image_set_access(FuIfdImage *self, FuIfdRegion region,
      FuIfdAccess access)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:78,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:79,1
    - Dst: FU_IS_IFD_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - region
    argTypes:
    - FuIfdImage*
    - FuIfdRegion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: fu_ifd_image_get_access
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_IFD_IMAGE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuIfdAccess
    signature: FuIfdAccess fu_ifd_image_get_access(FuIfdImage *self, FuIfdRegion region)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:87,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:88,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:88,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:92,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:96,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:104,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:104,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:110,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:111,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:114,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:118,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:119,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 124
    functionName: fu_ifd_image_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_alignment
    - g_set_error
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - fu_common_align_up
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ifd_image_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:129,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: fu_ifd_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_alignment
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ifd_image_init(FuIfdImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_ifd_image_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifd_image_class_init(FuIfdImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:150,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: fu_ifd_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifd_image_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:40,1
    - Dst: fu_struct_dfuse_element_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:43,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:47,1
    - Dst: fu_struct_dfuse_element_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:49,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:54,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:55,1
    - Dst: fu_struct_dfuse_element_get_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:55,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuDfuseFirmware*
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: fu_dfuse_firmware_image_chunk_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_element_get_address
    - fu_struct_dfuse_element_get_size
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - fu_chunk_bytes_new
    - fu_struct_dfuse_element_parse_stream
    - fu_chunk_set_address
    - g_autoptr
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfuse_firmware_image_chunk_parse(FuDfuseFirmware *self,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    gsize *offset,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:69,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:70,1
    - Dst: fu_struct_dfuse_image_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:73,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:78,1
    - Dst: fu_struct_dfuse_image_get_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:78,1
    - Dst: fu_struct_dfuse_image_get_target_named
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:79,1
    - Dst: fu_struct_dfuse_image_get_target_name
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:80,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:81,1
    - Dst: fu_struct_dfuse_image_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:97,1
    - Dst: fu_dfuse_firmware_image_chunk_parse
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:98,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:101,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuDfuseFirmware*
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: fu_dfuse_firmware_image_parse_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_image_get_target_named
    - fu_firmware_set_id
    - g_steal_pointer
    - fu_firmware_add_chunk
    - fu_struct_dfuse_image_get_target_name
    - fu_dfuse_firmware_image_chunk_parse
    - fu_struct_dfuse_image_get_alt_setting
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_autoptr
    - fu_struct_dfuse_image_get_chunks
    - fu_firmware_new
    - fu_struct_dfuse_image_parse_stream
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_dfuse_firmware_image_parse_stream(FuDfuseFirmware
      *self,\n\t\t\t\t     GInputStream *stream,\n\t\t\t\t     gsize *offset,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_dfuse_hdr_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: fu_dfuse_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfuse_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:124,1
    - Dst: fu_dfu_firmware_parse_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:127,1
    - Dst: fu_struct_dfuse_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:131,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:136,1
    - Dst: fu_struct_dfuse_hdr_get_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:138,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:139,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:140,1
    - Dst: fu_struct_dfuse_hdr_get_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:146,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:147,1
    - Dst: fu_struct_dfuse_hdr_get_targets
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:155,1
    - Dst: fu_dfuse_firmware_image_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:156,1
    - Dst: FU_DFUSE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:156,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 166
    functionName: fu_dfuse_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dfuse_firmware_image_parse_stream
    - fu_dfu_firmware_parse_footer
    - fu_firmware_add_image_full
    - fu_struct_dfuse_hdr_parse_stream
    - fu_dfu_firmware_get_footer_len
    - FU_DFUSE_FIRMWARE
    - fu_struct_dfuse_hdr_get_targets
    - g_autoptr
    - fu_input_stream_size
    - FU_DFU_FIRMWARE
    - fu_struct_dfuse_hdr_get_image_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfuse_firmware_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:171,1
    - Dst: fu_struct_dfuse_element_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:171,1
    - Dst: fu_struct_dfuse_element_set_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:172,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:172,1
    - Dst: fu_struct_dfuse_element_set_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:173,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:173,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:174,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:174,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:174,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chk
    argTypes:
    - FuDfuseFirmware*
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: fu_dfuse_firmware_chunk_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_dfuse_element_set_address
    - fu_struct_dfuse_element_new
    - g_byte_array_append
    - fu_struct_dfuse_element_set_size
    - g_autoptr
    - fu_chunk_get_data
    - g_bytes_new
    - fu_chunk_get_address
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfuse_firmware_chunk_write(FuDfuseFirmware *self, FuChunk *chk)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:182,1
    - Dst: fu_struct_dfuse_image_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:184,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:187,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:188,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:192,1
    - Dst: fu_dfuse_firmware_chunk_write
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:193,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:194,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:195,1
    - Dst: fu_struct_dfuse_image_set_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:199,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:199,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:200,1
    - Dst: fu_struct_dfuse_image_set_target_named
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:201,1
    - Dst: fu_struct_dfuse_image_set_target_name
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:202,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:203,1
    - Dst: fu_struct_dfuse_image_set_target_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:207,1
    - Dst: fu_struct_dfuse_image_set_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:212,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:213,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - image
    - error
    argTypes:
    - FuDfuseFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 216
    functionName: fu_dfuse_firmware_write_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_dfuse_firmware_chunk_write
    - fu_struct_dfuse_image_set_chunks
    - fu_firmware_get_chunks
    - fu_byte_array_append_bytes
    - fu_struct_dfuse_image_new
    - fu_struct_dfuse_image_set_target_named
    - g_bytes_get_size
    - fu_struct_dfuse_image_set_target_size
    - g_ptr_array_index
    - fu_struct_dfuse_image_set_alt_setting
    - fu_firmware_get_idx
    - fu_struct_dfuse_image_set_target_name
    - g_autoptr
    - g_bytes_new
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_firmware_get_id
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfuse_firmware_write_image(FuDfuseFirmware *self, FuFirmware *image, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFUSE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:223,1
    - Dst: fu_struct_dfuse_hdr_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:226,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:229,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:230,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:233,1
    - Dst: fu_dfuse_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:234,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:237,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:238,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:238,1
    - Dst: fu_struct_dfuse_hdr_set_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:242,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:244,1
    - Dst: fu_struct_dfuse_hdr_set_targets
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:251,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:255,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:256,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:260,1
    - Dst: fu_dfu_firmware_append_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:261,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 262
    functionName: fu_dfuse_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_hdr_set_image_size
    - g_set_error
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - fu_struct_dfuse_hdr_set_targets
    - FU_FIRMWARE
    - FU_DFUSE_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_struct_dfuse_hdr_new
    - g_autoptr
    - g_bytes_new
    - g_ptr_array_new_with_free_func
    - fu_dfu_firmware_append_footer
    - fu_dfuse_firmware_write_image
    - g_ptr_array_add
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_dfuse_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_dfu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:267,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:267,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:268,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuseFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: fu_dfuse_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_dfu_firmware_set_version
    - FU_DFU_FIRMWARE
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_dfuse_firmware_init(FuDfuseFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuseFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: fu_dfuse_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfuse_firmware_class_init(FuDfuseFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:290,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: fu_dfuse_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_dfuse_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 729
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:44,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: fu_dpaux_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    - FU_DPAUX_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:54,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:55,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: fu_dpaux_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_DPAUX_DEVICE
    - g_clear_pointer
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_invalidate(FuDevice *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:67,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:71,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:72,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:72,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:75,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:75,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:75,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:76,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:78,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:79,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:79,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:86,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:86,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 94
    functionName: fu_dpaux_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - fu_udev_device_set_physical_id
    - fu_device_get_logical_id
    - FU_DEVICE_CLASS
    - g_path_get_basename
    - fu_device_set_logical_id
    - fu_device_get_physical_id
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dpaux_device_probe(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:99,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:100,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:103,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:105,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:106,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:106,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:108,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:113,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:123,1
    - Dst: fu_struct_dpaux_dpcd_parse
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:126,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:129,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:130,1
    - Dst: fu_struct_dpaux_dpcd_get_hw_rev
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:131,1
    - Dst: fu_struct_dpaux_dpcd_get_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:132,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:133,1
    - Dst: fu_struct_dpaux_dpcd_get_fw_ver
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:133,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:137,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:139,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:141,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:142,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:148,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:155,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:162,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 173
    functionName: fu_dpaux_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_context_has_hwid_guid
    - g_clear_pointer
    - fu_struct_dpaux_dpcd_get_fw_ver
    - fu_device_build_instance_id_full
    - fu_struct_dpaux_dpcd_get_ieee_oui
    - g_set_error
    - FU_DPAUX_DEVICE
    - fu_device_get_context
    - fu_device_add_instance_strup
    - fu_device_add_instance_u32
    - fu_struct_dpaux_dpcd_get_hw_rev
    - fu_device_get_name
    - fu_dpaux_device_read
    - fu_struct_dpaux_dpcd_parse
    - fu_struct_dpaux_dpcd_get_dev_id
    - g_autoptr
    - fu_device_set_version_raw
    - g_str_has_prefix
    - fu_device_add_instance_u8
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dpaux_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:189,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: fu_dpaux_device_get_dpcd_ieee_oui
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dpaux_device_get_dpcd_ieee_oui(FuDpauxDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:205,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:206,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:206,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:210,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dpcd_ieee_oui
    argTypes:
    - FuDpauxDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: fu_dpaux_device_set_dpcd_ieee_oui
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_set_dpcd_ieee_oui(FuDpauxDevice *self, guint32
      dpcd_ieee_oui)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:227,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: fu_dpaux_device_get_dpcd_hw_rev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dpaux_device_get_dpcd_hw_rev(FuDpauxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:243,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:244,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dpcd_hw_rev
    argTypes:
    - FuDpauxDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: fu_dpaux_device_set_dpcd_hw_rev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_set_dpcd_hw_rev(FuDpauxDevice *self, guint8 dpcd_hw_rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:262,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: fu_dpaux_device_get_dpcd_dev_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dpaux_device_get_dpcd_dev_id(FuDpauxDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:278,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:279,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:279,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:280,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:282,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dpcd_dev_id
    argTypes:
    - FuDpauxDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: fu_dpaux_device_set_dpcd_dev_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_set_dpcd_dev_id(FuDpauxDevice *self, const gchar
      *dpcd_dev_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:307,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:309,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:309,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:311,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:314,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:315,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:315,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:317,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - self
    - offset
    - buf
    - bufsz
    - timeout_ms
    - error
    argTypes:
    - FuDpauxDevice*
    - goffset
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 323
    functionName: fu_dpaux_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write
    - g_strdup_printf
    - fu_udev_device_seek
    - FU_UDEV_DEVICE
    - FU_IS_DPAUX_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dpaux_device_write(FuDpauxDevice *self,\n\t\t      goffset
      offset,\n\t\t      const guint8 *buf,\n\t\t      gsize bufsz,\n\t\t      guint
      timeout_ms,\n\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:348,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:350,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:353,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:353,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:355,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:355,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - self
    - offset
    - buf
    - bufsz
    - timeout_ms
    - error
    argTypes:
    - FuDpauxDevice*
    - goffset
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 367
    functionName: fu_dpaux_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 1
    functionsReached:
    - fu_udev_device_read
    - g_strdup_printf
    - fu_udev_device_seek
    - FU_UDEV_DEVICE
    - FU_IS_DPAUX_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dpaux_device_read(FuDpauxDevice *self,\n\t\t     goffset
      offset,\n\t\t     guint8 *buf,\n\t\t     gsize bufsz,\n\t\t     guint timeout_ms,\n\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:372,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:373,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:374,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:376,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:376,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:377,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:377,1
    - Dst: fu_dpaux_device_set_dpcd_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:382,1
    - Dst: fu_dpaux_device_get_dpcd_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:383,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: fu_dpaux_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_set_dpcd_dev_id
    - fu_dpaux_device_get_dpcd_dev_id
    - FU_DPAUX_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    - FU_IS_DPAUX_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint24
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:389,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: fu_dpaux_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint24
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dpaux_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:395,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:396,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:399,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: fu_dpaux_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - GET_PRIVATE
    - FU_DPAUX_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:410,1
    - Dst: fu_dpaux_device_set_dpcd_ieee_oui
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:413,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:413,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 419
    functionName: fu_dpaux_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_set_dpcd_ieee_oui
    - FU_DPAUX_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:424,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:425,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:426,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:427,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:427,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:428,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:428,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:429,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: fu_dpaux_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_init(FuDpauxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:435,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:436,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:437,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: fu_dpaux_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_DPAUX_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:444,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:445,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:465,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDpauxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 473
    functionName: fu_dpaux_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_class_init(FuDpauxDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 741
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: fu_efi_device_path_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_DEVICE_PATH
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:51,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:52,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: fu_efi_device_path_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_int
    - FU_EFI_DEVICE_PATH
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:70,1
    - Dst: FU_IS_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: fu_efi_device_path_get_subtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_EFI_DEVICE_PATH
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_efi_device_path_get_subtype(FuEfiDevicePath *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:86,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:87,1
    - Dst: FU_IS_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - subtype
    argTypes:
    - FuEfiDevicePath*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: fu_efi_device_path_set_subtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_DEVICE_PATH
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_set_subtype(FuEfiDevicePath *self, guint8 subtype)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:97,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:101,1
    - Dst: fu_struct_efi_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:104,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:108,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:112,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:115,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:115,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:116,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:119,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:121,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:124,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:129,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:130,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:133,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 139
    functionName: fu_efi_device_path_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_input_stream_read_bytes
    - fu_firmware_set_size
    - fu_firmware_set_bytes
    - FU_EFI_DEVICE_PATH
    - GET_PRIVATE
    - fu_struct_efi_device_path_get_length
    - g_autoptr
    - fu_struct_efi_device_path_parse_stream
    - fu_firmware_set_idx
    - fu_input_stream_size
    - fu_struct_efi_device_path_get_subtype
    - fu_struct_efi_device_path_get_type
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_device_path_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:144,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:146,1
    - Dst: fu_struct_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:147,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:150,1
    - Dst: fu_struct_efi_device_path_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:153,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:153,1
    - Dst: fu_struct_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:154,1
    - Dst: fu_struct_efi_device_path_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:155,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:155,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:156,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: fu_efi_device_path_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_device_path_set_subtype
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - fu_struct_efi_device_path_new
    - fu_struct_efi_device_path_set_length
    - FU_EFI_DEVICE_PATH
    - GET_PRIVATE
    - fu_firmware_get_idx
    - g_autoptr
    - fu_struct_efi_device_path_set_type
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_device_path_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:165,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:166,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: fu_efi_device_path_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_EFI_DEVICE_PATH
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_device_path_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: fu_efi_device_path_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: fu_efi_device_path_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_init(FuEfiDevicePath *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: fu_efi_device_path_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_class_init(FuEfiDevicePathClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: fu_efi_device_path_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiDevicePath
    signature: 'FuEfiDevicePath *

      fu_efi_device_path_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:32,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:35,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint16
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: fu_memwrite_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 5
    functionsReached:
    - memcpy
    - GUINT16_TO_LE
    - GUINT16_TO_BE
    linkageType: ''
    returnType: void
    signature: void fu_memwrite_uint16(guint8 *buf, guint16 val_native, FuEndianType
      endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:60,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:61,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:64,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:65,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: fu_memwrite_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - memcpy
    - GUINT32_TO_LE
    - GUINT32_TO_BE
    - g_assert_not_reached
    linkageType: ''
    returnType: void
    signature: void fu_memwrite_uint24(guint8 *buf, guint32 val_native, FuEndianType
      endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:88,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:91,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: fu_memwrite_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - memcpy
    - GUINT32_TO_LE
    - GUINT32_TO_BE
    linkageType: ''
    returnType: void
    signature: void fu_memwrite_uint32(guint8 *buf, guint32 val_native, FuEndianType
      endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUINT64_TO_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:116,1
    - Dst: GUINT64_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:119,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint64
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: fu_memwrite_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - GUINT64_TO_BE
    - GUINT64_TO_LE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fu_memwrite_uint64(guint8 *buf, guint64 val_native, FuEndianType
      endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:143,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:146,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: fu_memread_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 4
    functionsReached:
    - memcpy
    - GUINT16_FROM_BE
    - GUINT16_FROM_LE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_memread_uint16(const guint8 *buf, FuEndianType endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:176,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:177,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:180,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: fu_memread_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - memcpy
    - GUINT32_FROM_LE
    - GUINT32_FROM_BE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_memread_uint24(const guint8 *buf, FuEndianType endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:205,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:208,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: fu_memread_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - memcpy
    - GUINT32_FROM_LE
    - GUINT32_FROM_BE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_memread_uint32(const guint8 *buf, FuEndianType endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:235,1
    - Dst: GUINT64_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:238,1
    - Dst: GUINT64_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: fu_memread_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - memcpy
    - GUINT64_FROM_LE
    - GUINT64_FROM_BE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_memread_uint64(const guint8 *buf, FuEndianType endian)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:279,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:281,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:283,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 8
    argNames:
    - buf1
    - buf1_sz
    - buf1_offset
    - buf2
    - buf2_sz
    - buf2_offset
    - n
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint8*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 302
    functionName: fu_memcmp_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_return_val_if_fail
    - fu_memchk_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memcmp_safe(const guint8 *buf1,\n\t       gsize buf1_sz,\n\t
      \      gsize buf1_offset,\n\t       const guint8 *buf2,\n\t       gsize buf2_sz,\n\t
      \      gsize buf2_offset,\n\t       gsize n,\n\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:325,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:329,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - bufsz
    - offset
    - n
    - error
    argTypes:
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: fu_memchk_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_memchk_read(gsize bufsz, gsize offset, gsize n, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:371,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:375,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - bufsz
    - offset
    - n
    - error
    argTypes:
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: fu_memchk_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_memchk_write(gsize bufsz, gsize offset, gsize n, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:432,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:433,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:434,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:436,1
    - Dst: fu_memchk_write
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:438,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 8
    argNames:
    - dst
    - dst_sz
    - dst_offset
    - src
    - src_sz
    - src_offset
    - n
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint8*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 442
    functionName: fu_memcpy_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 5
    functionsReached:
    - memcpy
    - g_return_val_if_fail
    - fu_memchk_read
    - fu_memchk_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memcpy_safe(guint8 *dst,\n\t       gsize dst_sz,\n\t       gsize
      dst_offset,\n\t       const guint8 *src,\n\t       gsize src_sz,\n\t       gsize
      src_offset,\n\t       gsize n,\n\t       GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:472,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:483,1
    - Dst: memmem
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:494,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:502,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 6
    argNames:
    - haystack
    - haystack_sz
    - needle
    - needle_sz
    - offset
    - error
    argTypes:
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 518
    functionName: fu_memmem_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_return_val_if_fail
    - memcmp
    - memmem
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memmem_safe(const guint8 *haystack,\n\t       gsize haystack_sz,\n\t
      \      const guint8 *needle,\n\t       gsize needle_sz,\n\t       gsize *offset,\n\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:543,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - n
    - error
    argTypes:
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 553
    functionName: fu_memdup_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_memdup2
    linkageType: ''
    returnType: guint8
    signature: 'guint8 *

      fu_memdup_safe(const guint8 *src, gsize n, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:579,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 593
    functionName: fu_memread_uint8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_memread_uint8_safe(const guint8 *buf, gsize bufsz, gsize
      offset, guint8 *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:624,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:625,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:627,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint16*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 639
    functionName: fu_memread_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memread_uint16_safe(const guint8 *buf,\n\t\t       gsize
      bufsz,\n\t\t       gsize offset,\n\t\t       guint16 *value,\n\t\t       FuEndianType
      endian,\n\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:670,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:671,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:673,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint32*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 685
    functionName: fu_memread_uint24_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    - fu_memread_uint24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memread_uint24_safe(const guint8 *buf,\n\t\t       gsize
      bufsz,\n\t\t       gsize offset,\n\t\t       guint32 *value,\n\t\t       FuEndianType
      endian,\n\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:716,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:717,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:719,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint32*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 731
    functionName: fu_memread_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    - fu_memread_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memread_uint32_safe(const guint8 *buf,\n\t\t       gsize
      bufsz,\n\t\t       gsize offset,\n\t\t       guint32 *value,\n\t\t       FuEndianType
      endian,\n\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:762,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:763,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:765,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint64*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 777
    functionName: fu_memread_uint64_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    - fu_memread_uint64
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memread_uint64_safe(const guint8 *buf,\n\t\t       gsize
      bufsz,\n\t\t       gsize offset,\n\t\t       guint64 *value,\n\t\t       FuEndianType
      endian,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:800,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:801,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 811
    functionName: fu_memwrite_uint8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_memwrite_uint8_safe(guint8 *buf, gsize bufsz, gsize offset,
      guint8 value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:843,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:845,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint16
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 854
    functionName: fu_memwrite_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - g_return_val_if_fail
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memwrite_uint16_safe(guint8 *buf,\n\t\t\tgsize bufsz,\n\t\t\tgsize
      offset,\n\t\t\tguint16 value,\n\t\t\tFuEndianType endian,\n\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:885,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:886,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:888,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint32
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 897
    functionName: fu_memwrite_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - g_return_val_if_fail
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memwrite_uint32_safe(guint8 *buf,\n\t\t\tgsize bufsz,\n\t\t\tgsize
      offset,\n\t\t\tguint32 value,\n\t\t\tFuEndianType endian,\n\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:928,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:929,1
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:931,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - value
    - endian
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - guint64
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 940
    functionName: fu_memwrite_uint64_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint64
    - g_return_val_if_fail
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_memwrite_uint64_safe(guint8 *buf,\n\t\t\tgsize bufsz,\n\t\t\tgsize
      offset,\n\t\t\tguint64 value,\n\t\t\tFuEndianType endian,\n\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:961,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:962,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:964,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:966,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:968,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - buf
    - bufsz
    - offset
    - maxsz
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 975
    functionName: fu_memstrsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - fu_memchk_read
    - g_steal_pointer
    - g_set_error_literal
    - g_return_val_if_fail
    - fu_strsafe
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_memstrsafe(const guint8 *buf, gsize bufsz, gsize offset, gsize maxsz, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:57,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:58,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: fu_partial_input_stream_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_PARTIAL_INPUT_STREAM
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_add_string(FwupdCodec *codec, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: fu_partial_input_stream_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:71,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:72,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: fu_partial_input_stream_tell
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_seekable_tell
    - G_SEEKABLE
    - FU_PARTIAL_INPUT_STREAM
    linkageType: ''
    returnType: goffset
    signature: goffset fu_partial_input_stream_tell(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:78,1
    - Dst: g_seekable_can_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:79,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: fu_partial_input_stream_can_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_seekable_can_seek
    - G_SEEKABLE
    - FU_PARTIAL_INPUT_STREAM
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_partial_input_stream_can_seek(GSeekable *seekable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:89,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:91,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:91,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:92,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:95,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:95,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:96,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:96,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:103,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:103,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:109,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - seekable
    - offset
    - type
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GSeekType
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 114
    functionName: fu_partial_input_stream_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - G_SEEKABLE
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_seekable_seek
    - FU_PARTIAL_INPUT_STREAM
    - g_seekable_tell
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_partial_input_stream_seek(GSeekable *seekable,\n\t\t\t
      \    goffset offset,\n\t\t\t     GSeekType type,\n\t\t\t     GCancellable *cancellable,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: fu_partial_input_stream_can_truncate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_partial_input_stream_can_truncate(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seekable
    - offset
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: fu_partial_input_stream_truncate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_partial_input_stream_truncate(GSeekable *seekable,\n\t\t\t\t
      goffset offset,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - GSeekableIface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: fu_partial_input_stream_seekable_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_seekable_iface_init(GSeekableIface *iface)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:162,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:164,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:165,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:167,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:177,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:189,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - stream
    - offset
    - size
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 204
    functionName: fu_partial_input_stream_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 17
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_object_ref
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - G_INPUT_STREAM
    - g_object_new
    - g_autoptr
    - fu_input_stream_size
    - g_return_val_if_fail
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_partial_input_stream_new(GInputStream *stream, gsize offset, gsize size,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:219,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPartialInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: fu_partial_input_stream_get_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_return_val_if_fail
    linkageType: ''
    returnType: gsize
    signature: gsize fu_partial_input_stream_get_offset(FuPartialInputStream *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:236,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPartialInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: fu_partial_input_stream_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_return_val_if_fail
    linkageType: ''
    returnType: gsize
    signature: gsize fu_partial_input_stream_get_size(FuPartialInputStream *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:247,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:248,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:248,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:249,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:250,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:250,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:251,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:254,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:254,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:254,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - stream
    - buffer
    - count
    - cancellable
    - error
    argTypes:
    - GInputStream*
    - void*
    - gsize
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: fu_partial_input_stream_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_input_stream_read
    - G_SEEKABLE
    - FU_IS_PARTIAL_INPUT_STREAM
    - MIN
    - FU_PARTIAL_INPUT_STREAM
    - g_seekable_tell
    - g_return_val_if_fail
    linkageType: ''
    returnType: gssize
    signature: "gssize fu_partial_input_stream_read(GInputStream *stream,\n\t\t\t
      \    void *buffer,\n\t\t\t     gsize count,\n\t\t\t     GCancellable *cancellable,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:261,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:263,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: fu_partial_input_stream_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_object_unref
    - FU_PARTIAL_INPUT_STREAM
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:270,1
    - Dst: G_INPUT_STREAM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPartialInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: fu_partial_input_stream_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - G_INPUT_STREAM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_class_init(FuPartialInputStreamClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPartialInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: fu_partial_input_stream_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_init(FuPartialInputStream *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:35,1
    - Dst: fu_struct_ms_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:37,1
    - Dst: fu_struct_ms_ds20_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:40,1
    - Dst: fu_struct_ms_ds20_get_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:43,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:44,1
    - Dst: fu_usb_device_ms_ds20_desc_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - self
    - stream
    - device
    - error
    argTypes:
    - FuUsbDeviceDs20*
    - GInputStream*
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 53
    functionName: fu_usb_device_ms_ds20_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_ms_ds20_parse_stream
    - fu_struct_ms_ds20_get_type
    - g_autoptr
    - fu_struct_ms_ds20_get_size
    - fu_input_stream_size
    - fu_usb_device_ms_ds20_desc_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_ms_ds20_parse(FuUsbDeviceDs20 *self,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuUsbDevice *device,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE_DS20_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceMsDs20Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: fu_usb_device_ms_ds20_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE_DS20_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_ms_ds20_class_init(FuUsbDeviceMsDs20Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:65,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:65,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:66,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDeviceMsDs20*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: fu_usb_device_ms_ds20_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_ms_ds20_init(FuUsbDeviceMsDs20 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: fu_usb_device_ms_ds20_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_usb_device_ms_ds20_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:34,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fixup
    argTypes:
    - FuIoctlFixup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_ioctl_fixup_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_fixup_free(FuIoctlFixup *fixup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fixup
    - suffix
    argTypes:
    - FuIoctlFixup*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: fu_ioctl_fixup_build_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ioctl_fixup_build_key(FuIoctlFixup *fixup, const gchar *suffix)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:58,1
    - Dst: FU_IS_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:58,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:59,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuIoctl*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_ioctl_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - FU_IS_IOCTL
    - g_string_truncate
    - g_string_append_printf
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_set_name(FuIoctl *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:67,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:69,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:69,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:71,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - udev_device
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: fu_ioctl_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - g_object_new
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuIoctl
    signature: 'FuIoctl *

      fu_ioctl_new(FuUdevDevice *udev_device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:78,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:79,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - event_id
    - key
    - value
    argTypes:
    - GString*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: fu_ioctl_append_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_str_has_suffix
    - g_string_append_c
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_append_key(GString *event_id, const gchar *key, const
      gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:86,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event_id
    - key
    - value
    argTypes:
    - GString*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: fu_ioctl_append_key_as_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_append_key
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_append_key_as_u8(GString *event_id, const gchar *key,
      gsize value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:93,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event_id
    - key
    - value
    argTypes:
    - GString*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fu_ioctl_append_key_as_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_append_key
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_append_key_as_u16(GString *event_id, const gchar *key,
      gsize value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:100,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:101,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:102,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:103,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:105,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - event_id
    - key
    - buf
    - bufsz
    argTypes:
    - GString*
    - gchar*
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: fu_ioctl_append_key_from_buf
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_base64_encode
    - fu_ioctl_append_key
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_append_key_from_buf(GString *event_id, const gchar *key,
      const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:122,1
    - Dst: FU_IS_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:122,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:123,1
    - Dst: fu_ioctl_append_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuIoctl*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: fu_ioctl_add_key_as_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - FU_IS_IOCTL
    - fu_ioctl_append_key_as_u8
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_add_key_as_u8(FuIoctl *self, const gchar *key, gsize
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:140,1
    - Dst: FU_IS_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:140,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:141,1
    - Dst: fu_ioctl_append_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuIoctl*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: fu_ioctl_add_key_as_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - FU_IS_IOCTL
    - fu_ioctl_append_key_as_u16
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_add_key_as_u16(FuIoctl *self, const gchar *key, gsize
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_ioctl_append_key_from_buf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:153,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:155,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:156,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - self
    - key
    - buf
    - bufsz
    - is_mutable
    - fixup_cb
    argTypes:
    - FuIoctl*
    - gchar*
    - guint8*
    - gsize
    - gboolean
    - FuIoctlFixupFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: fu_ioctl_add_buffer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_ptr_array_add
    - g_strdup
    - fu_ioctl_append_key_from_buf
    linkageType: ''
    returnType: void
    signature: "void fu_ioctl_add_buffer(FuIoctl *self,\n\t\t    const gchar *key,\n\t\t
      \   guint8 *buf,\n\t\t    gsize bufsz,\n\t\t    gboolean is_mutable,\n\t\t    FuIoctlFixupFunc
      fixup_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ioctl_add_buffer
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - key
    - buf
    - bufsz
    - fixup_cb
    argTypes:
    - FuIoctl*
    - gchar*
    - guint8*
    - gsize
    - FuIoctlFixupFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: fu_ioctl_add_mutable_buffer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_add_buffer
    linkageType: ''
    returnType: void
    signature: "void fu_ioctl_add_mutable_buffer(FuIoctl *self,\n\t\t\t    const gchar
      *key,\n\t\t\t    guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    FuIoctlFixupFunc
      fixup_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ioctl_add_buffer
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - key
    - buf
    - bufsz
    - fixup_cb
    argTypes:
    - FuIoctl*
    - gchar*
    - guint8*
    - gsize
    - FuIoctlFixupFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: fu_ioctl_add_const_buffer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_add_buffer
    linkageType: ''
    returnType: void
    signature: "void fu_ioctl_add_const_buffer(FuIoctl *self,\n\t\t\t  const gchar
      *key,\n\t\t\t  const guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  FuIoctlFixupFunc
      fixup_cb)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:243,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:246,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:247,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:247,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:249,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:250,1
    - Dst: fu_ioctl_append_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:251,1
    - Dst: fu_ioctl_append_key_from_buf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:252,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:257,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:258,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:262,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:266,1
    - Dst: fu_ioctl_fixup_build_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:267,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:270,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:279,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:287,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:287,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:289,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:295,1
    - Dst: FuIoctlFixup*::fixup_cb
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:296,1
    - Dst: fu_udev_device_ioctl
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:300,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:313,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:315,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:317,1
    - Dst: fu_ioctl_fixup_build_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:318,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:321,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 8
    argNames:
    - self
    - request
    - buf
    - bufsz
    - rc
    - timeout
    - flags
    - error
    argTypes:
    - FuIoctl*
    - gulong
    - gpointer
    - gsize
    - gint*
    - guint
    - FuIoctlFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 327
    functionName: fu_ioctl_execute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - fu_device_has_flag
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - g_ptr_array_index
    - fu_udev_device_ioctl
    - fu_device_event_copy_data
    - g_autoptr
    - fu_ioctl_append_key_from_buf
    - fu_device_event_set_data
    - fu_ioctl_append_key_as_u16
    - FuIoctlFixup*::fixup_cb
    - fu_device_save_event
    - fu_device_event_get_i64
    - fu_device_event_set_i64
    - fu_ioctl_fixup_build_key
    - FU_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ioctl_execute(FuIoctl *self,\n\t\t gulong request,\n\t\t
      gpointer buf,\n\t\t gsize bufsz,\n\t\t gint *rc,\n\t\t guint timeout,\n\t\t
      FuIoctlFlags flags,\n\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:332,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIoctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: fu_ioctl_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_string_new
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_init(FuIoctl *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:339,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:341,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:342,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:344,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: fu_ioctl_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_IOCTL
    - g_string_free
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIoctlClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: fu_ioctl_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_class_init(FuIoctlClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 748
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:52,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:53,1
    - Dst: FU_IS_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: fu_cab_firmware_get_compressed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_CAB_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_firmware_get_compressed(FuCabFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:69,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:70,1
    - Dst: FU_IS_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - compressed
    argTypes:
    - FuCabFirmware*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: fu_cab_firmware_set_compressed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CAB_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_set_compressed(FuCabFirmware *self, gboolean compressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:87,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:88,1
    - Dst: FU_IS_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: fu_cab_firmware_get_only_basename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_CAB_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_firmware_get_only_basename(FuCabFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:104,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:105,1
    - Dst: FU_IS_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - only_basename
    argTypes:
    - FuCabFirmware*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: fu_cab_firmware_set_only_basename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CAB_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_set_only_basename(FuCabFirmware *self, gboolean
      only_basename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:126,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:128,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:130,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:131,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuCabFirmwareParseHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: fu_cab_firmware_parse_helper_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - inflateEnd
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_parse_helper_free(FuCabFirmwareParseHelper *helper)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: G_LIKELY
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - buf
    - bufsz
    - checksum
    - error
    argTypes:
    - guint8*
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 162
    functionName: fu_cab_firmware_compute_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 1
    functionsReached:
    - G_LIKELY
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_firmware_compute_checksum(const guint8 *buf, gsize
      bufsz, guint32 *checksum, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: fu_cab_firmware_compute_checksum_stream_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cab_firmware_compute_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cab_firmware_compute_checksum_stream_cb(const guint8 *buf,\n\t\t\t\t\t
      \  gsize bufsz,\n\t\t\t\t\t   gpointer user_data,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0_n
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: fu_cab_firmware_zalloc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_malloc0_n
    linkageType: ''
    returnType: voidpf
    signature: voidpf fu_cab_firmware_zalloc(voidpf opaque, uInt items, uInt size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: fu_cab_firmware_zfree
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_zfree(voidpf opaque, voidpf address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zstrm
    argTypes:
    - z_stream_deflater*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: fu_cab_firmware_zstream_deflater_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_zstream_deflater_free(z_stream_deflater *zstrm)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:206,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:208,1
    - Dst: fu_struct_cab_data_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:211,1
    - Dst: fu_struct_cab_data_get_comp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:216,1
    - Dst: fu_struct_cab_data_get_uncomp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:217,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:219,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:227,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:228,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:229,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:242,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:244,1
    - Dst: fu_struct_cab_data_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:251,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:251,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:253,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:258,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:259,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:260,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:282,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:284,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:287,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:294,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:294,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:295,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:302,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:310,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:311,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:312,1
    - Dst: inflate
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:316,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:323,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:328,1
    - Dst: inflateReset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:332,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:334,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:338,1
    - Dst: inflateSetDictionary
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:343,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:347,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:351,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:351,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:352,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:352,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:355,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:356,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:357,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 5
    argNames:
    - self
    - helper
    - offset
    - folder_data
    - error
    argTypes:
    - FuCabFirmware*
    - FuCabFirmwareParseHelper*
    - gsize*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 363
    functionName: fu_cab_firmware_parse_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_data_get_checksum
    - g_prefix_error
    - FU_FIRMWARE
    - inflateSetDictionary
    - FU_PARTIAL_INPUT_STREAM
    - fu_firmware_get_size_max
    - g_set_error
    - fu_byte_array_append_uint16
    - fu_struct_cab_data_get_uncomp
    - fu_cab_firmware_compute_checksum
    - fu_memstrsafe
    - zError
    - g_byte_array_free_to_bytes
    - inflate
    - g_steal_pointer
    - fu_struct_cab_data_parse_stream
    - inflateReset
    - g_autoptr
    - g_bytes_get_data
    - g_byte_array_new
    - fu_partial_input_stream_new
    - g_strcmp0
    - fu_composite_input_stream_add_partial_stream
    - FU_COMPOSITE_INPUT_STREAM
    - g_bytes_get_size
    - g_malloc0
    - fu_composite_input_stream_add_bytes
    - fu_struct_cab_data_get_comp
    - fu_input_stream_chunkify
    - g_set_error_literal
    - g_format_size
    - fu_input_stream_read_bytes
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cab_firmware_parse_data(FuCabFirmware *self,\n\t\t\t   FuCabFirmwareParseHelper
      *helper,\n\t\t\t   gsize *offset,\n\t\t\t   GInputStream *folder_data,\n\t\t\t
      \  GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:374,1
    - Dst: fu_struct_cab_folder_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:377,1
    - Dst: fu_struct_cab_folder_get_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:382,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:383,1
    - Dst: fu_struct_cab_folder_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:389,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:394,1
    - Dst: fu_cab_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:398,1
    - Dst: fu_struct_cab_folder_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:404,1
    - Dst: fu_cab_firmware_parse_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:405,1
    - Dst: fu_struct_cab_folder_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:409,1
    - Dst: fu_struct_cab_folder_get_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:410,1
    - Dst: fu_cab_firmware_parse_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - self
    - helper
    - idx
    - offset
    - folder_data
    - error
    argTypes:
    - FuCabFirmware*
    - FuCabFirmwareParseHelper*
    - guint
    - gsize
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 418
    functionName: fu_cab_firmware_parse_folder
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_cab_folder_get_compression
    - fu_cab_compression_to_string
    - fu_struct_cab_folder_get_offset
    - fu_cab_firmware_parse_data
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_struct_cab_folder_parse_stream
    - fu_struct_cab_folder_get_ndatab
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cab_firmware_parse_folder(FuCabFirmware *self,\n\t\t\t
      \    FuCabFirmwareParseHelper *helper,\n\t\t\t     guint idx,\n\t\t\t     gsize
      offset,\n\t\t\t     GInputStream *folder_data,\n\t\t\t     GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:431,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:435,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:435,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:436,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:436,1
    - Dst: fu_struct_cab_file_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:439,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:442,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:442,1
    - Dst: fu_struct_cab_file_get_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:442,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:443,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:443,1
    - Dst: fu_struct_cab_file_get_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:443,1
    - Dst: fu_struct_cab_file_get_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:446,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:448,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:455,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:461,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:465,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:466,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:476,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:481,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:482,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:482,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:484,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:484,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:486,1
    - Dst: fu_struct_cab_file_get_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:487,1
    - Dst: fu_struct_cab_file_get_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:488,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:491,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:494,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:494,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:496,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:496,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:496,1
    - Dst: fu_struct_cab_file_get_date
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:500,1
    - Dst: fu_struct_cab_file_get_time
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:501,1
    - Dst: g_date_time_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:502,1
    - Dst: fu_cab_image_set_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - self
    - helper
    - offset
    - error
    argTypes:
    - FuCabFirmware*
    - FuCabFirmwareParseHelper*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 514
    functionName: fu_cab_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_file_get_time
    - g_string_new
    - g_prefix_error
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - fu_struct_cab_file_get_uoffset
    - g_time_zone_new_utc
    - fu_struct_cab_file_get_date
    - g_set_error
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_struct_cab_file_get_index
    - g_string_append_c
    - g_ptr_array_index
    - fu_cab_image_new
    - fu_cab_image_set_created
    - g_date_time_new
    - fu_firmware_set_size
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_struct_cab_file_get_usize
    - fu_firmware_set_id
    - g_path_get_basename
    - fu_struct_cab_file_parse_stream
    - g_ascii_isprint
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cab_firmware_parse_file(FuCabFirmware *self,\n\t\t\t   FuCabFirmwareParseHelper
      *helper,\n\t\t\t   gsize *offset,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_cab_header_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: fu_cab_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_header_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:526,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:526,1
    - Dst: inflateInit2
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:531,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:533,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:537,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:541,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:543,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - stream
    - flags
    - error
    argTypes:
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 546
    functionName: fu_cab_firmware_parse_helper_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_object_ref
    - inflateInit2
    - g_steal_pointer
    - g_new0
    - g_autoptr
    - zError
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: FuCabFirmwareParseHelper
    signature: 'FuCabFirmwareParseHelper *

      fu_cab_firmware_parse_helper_new(GInputStream *stream, FuFirmwareParseFlags
      flags, GError **error)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:554,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:559,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:562,1
    - Dst: fu_struct_cab_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:566,1
    - Dst: fu_struct_cab_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:572,1
    - Dst: fu_struct_cab_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:577,1
    - Dst: fu_struct_cab_header_get_idx_cabinet
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:581,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:587,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:588,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:589,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:595,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:596,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:600,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:604,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:605,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:609,1
    - Dst: fu_struct_cab_header_get_off_cffile
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:613,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:615,1
    - Dst: fu_cab_firmware_parse_helper_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:623,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:628,1
    - Dst: fu_struct_cab_header_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:633,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:634,1
    - Dst: fu_struct_cab_header_reserve_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:635,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_hdr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:639,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_block
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:640,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_folder
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:641,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:645,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:646,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:646,1
    - Dst: fu_cab_firmware_parse_folder
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:647,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:649,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:652,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:658,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:658,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:663,1
    - Dst: fu_cab_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:664,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 670
    functionName: fu_cab_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_header_get_nr_folders
    - fu_struct_cab_header_get_flags
    - fu_struct_cab_header_get_size
    - fu_struct_cab_header_get_idx_cabinet
    - g_set_error
    - FU_CAB_FIRMWARE
    - fu_cab_firmware_parse_helper_new
    - fu_cab_firmware_parse_folder
    - fu_struct_cab_header_get_off_cffile
    - fu_composite_input_stream_new
    - g_steal_pointer
    - fu_struct_cab_header_parse_stream
    - g_autoptr
    - fu_struct_cab_header_reserve_get_rsvd_hdr
    - g_ptr_array_add
    - fu_cab_firmware_parse_file
    - fu_struct_cab_header_reserve_get_rsvd_folder
    - g_set_error_literal
    - fu_struct_cab_header_reserve_get_rsvd_block
    - fu_struct_cab_header_get_nr_files
    - fu_input_stream_size
    - fu_struct_cab_header_reserve_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cab_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:675,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:680,1
    - Dst: fu_struct_cab_header_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:681,1
    - Dst: fu_struct_cab_folder_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:681,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:682,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:682,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:683,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:685,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:686,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:687,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:691,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:692,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:692,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:693,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:696,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:702,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:705,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:710,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:717,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:717,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:718,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:722,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:723,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:724,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:724,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:725,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:725,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:727,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:730,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:730,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:737,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:738,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:742,1
    - Dst: deflateInit2
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:743,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:750,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:754,1
    - Dst: deflate
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:757,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:759,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:763,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:766,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:767,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:768,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:770,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:770,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:770,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:772,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:772,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:779,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:780,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:780,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:781,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:784,1
    - Dst: fu_struct_cab_header_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:789,1
    - Dst: fu_struct_cab_header_set_off_cffile
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:790,1
    - Dst: fu_struct_cab_header_set_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:791,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:795,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:796,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:796,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:798,1
    - Dst: fu_struct_cab_folder_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:800,1
    - Dst: fu_struct_cab_folder_set_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:801,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:801,1
    - Dst: fu_struct_cab_folder_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:802,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:805,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:809,1
    - Dst: fu_cab_image_get_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:811,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:811,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:812,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:812,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:813,1
    - Dst: fu_struct_cab_file_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:813,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:814,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:814,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:816,1
    - Dst: fu_struct_cab_file_set_fattr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:818,1
    - Dst: fu_struct_cab_file_set_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:819,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:819,1
    - Dst: fu_struct_cab_file_set_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:820,1
    - Dst: fu_struct_cab_file_set_date
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:822,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:823,1
    - Dst: g_date_time_get_month
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:824,1
    - Dst: g_date_time_get_day_of_month
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:825,1
    - Dst: fu_struct_cab_file_set_time
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:826,1
    - Dst: g_date_time_get_hour
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:827,1
    - Dst: g_date_time_get_minute
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:828,1
    - Dst: g_date_time_get_second
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:829,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:831,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:833,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:833,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:834,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:835,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:839,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:841,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:842,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:843,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:843,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:844,1
    - Dst: fu_struct_cab_data_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:844,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:847,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:852,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:857,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:858,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:858,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:859,1
    - Dst: fu_struct_cab_data_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:862,1
    - Dst: fu_struct_cab_data_set_comp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:863,1
    - Dst: fu_struct_cab_data_set_uncomp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:864,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:864,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:865,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:866,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:870,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 119
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 871
    functionName: fu_cab_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - strlen
    - fu_struct_cab_folder_set_ndatab
    - fu_firmware_get_images
    - fu_struct_cab_folder_set_offset
    - FU_CAB_IMAGE
    - g_date_time_get_hour
    - g_set_error
    - g_date_time_get_day_of_month
    - fu_byte_array_append_bytes
    - fu_cab_image_get_win32_filename
    - FU_CAB_FIRMWARE
    - deflate
    - fu_struct_cab_header_set_nr_files
    - fu_byte_array_append_uint16
    - fu_struct_cab_header_new
    - g_ptr_array_index
    - fu_struct_cab_file_new
    - fu_cab_firmware_compute_checksum
    - fu_chunk_get_data
    - zError
    - fu_struct_cab_header_set_off_cffile
    - fu_struct_cab_file_set_date
    - fu_struct_cab_file_set_time
    - fu_struct_cab_data_new
    - g_byte_array_free_to_bytes
    - fu_struct_cab_folder_set_compression
    - fu_struct_cab_header_set_size
    - g_str_is_ascii
    - fu_chunk_array_new_from_bytes
    - fu_cab_image_get_created
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_date_time_get_month
    - fu_struct_cab_data_set_checksum
    - g_date_time_get_year
    - fu_struct_cab_folder_new
    - fu_struct_cab_data_set_uncomp
    - g_date_time_get_second
    - g_autoptr
    - fu_chunk_array_index
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_struct_cab_data_set_comp
    - fu_chunk_get_data_sz
    - g_date_time_get_minute
    - g_bytes_get_size
    - deflateInit2
    - fu_struct_cab_file_set_usize
    - g_set_error_literal
    - GET_PRIVATE
    - fu_struct_cab_file_set_fattr
    - fu_struct_cab_file_set_uoffset
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cab_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:876,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:877,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:881,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:883,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:886,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 894
    functionName: fu_cab_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CAB_FIRMWARE
    - fu_strtobool
    - xb_node_query_text
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:899,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:900,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:901,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 903
    functionName: fu_cab_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CAB_FIRMWARE
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 914
    functionName: fu_cab_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_class_init(FuCabFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:919,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:920,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:920,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:921,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:921,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:922,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:922,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:923,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 924
    functionName: fu_cab_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_init(FuCabFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 937
    functionName: fu_cab_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCabFirmware
    signature: 'FuCabFirmware *

      fu_cab_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - length
    - value
    argTypes:
    - guint16*
    - gsize
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fu_efi_lz77_decompressor_memset16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_efi_lz77_decompressor_memset16(guint16 *buf, gsize length,
      guint16 value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - helper
    - number_of_bits
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: fu_efi_lz77_decompressor_read_source_bits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_read_source_bits(FuEfiLz77DecompressHelper
      *helper,\n\t\t\t\t\t  guint16 number_of_bits,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - helper
    - number_of_bits
    - value
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: fu_efi_lz77_decompressor_get_bits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_get_bits(FuEfiLz77DecompressHelper
      *helper,\n\t\t\t\t  guint16 number_of_bits,\n\t\t\t\t  guint16 *value,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:159,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:165,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:182,1
    - Dst: fu_efi_lz77_decompressor_memset16
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:201,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:222,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 6
    argNames:
    - helper
    - number_of_symbols
    - code_length_array
    - mapping_table_bits
    - table
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16
    - guint8*
    - guint16
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 257
    functionName: fu_efi_lz77_decompressor_make_huffman_table
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_efi_lz77_decompressor_memset16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_make_huffman_table(FuEfiLz77DecompressHelper
      *helper,\n\t\t\t\t\t    guint16 number_of_symbols,\n\t\t\t\t\t    guint8 *code_length_array,\n\t\t\t\t\t
      \   guint16 mapping_table_bits,\n\t\t\t\t\t    guint16 *table,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:279,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - helper
    - value
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 291
    functionName: fu_efi_lz77_decompressor_decode_p
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    - fu_efi_lz77_decompressor_get_bits
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_lz77_decompressor_decode_p(FuEfiLz77DecompressHelper
      *helper, guint32 *value, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:305,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:310,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:316,1
    - Dst: fu_efi_lz77_decompressor_memset16
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:318,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:321,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:339,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:351,1
    - Dst: fu_efi_lz77_decompressor_make_huffman_table
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:360,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 5
    argNames:
    - helper
    - number_of_symbols
    - number_of_bits
    - special_symbol
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 366
    functionName: fu_efi_lz77_decompressor_read_pt_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    - fu_efi_lz77_decompressor_get_bits
    - fu_efi_lz77_decompressor_memset16
    - g_set_error_literal
    - memset
    - fu_efi_lz77_decompressor_make_huffman_table
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_read_pt_len(FuEfiLz77DecompressHelper
      *helper,\n\t\t\t\t     guint16 number_of_symbols,\n\t\t\t\t     guint16 number_of_bits,\n\t\t\t\t
      \    guint16 special_symbol,\n\t\t\t\t     GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:376,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:381,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:383,1
    - Dst: fu_efi_lz77_decompressor_memset16
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:384,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:406,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:415,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:419,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:432,1
    - Dst: fu_efi_lz77_decompressor_make_huffman_table
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:433,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - helper
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 439
    functionName: fu_efi_lz77_decompressor_read_c_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    - fu_efi_lz77_decompressor_get_bits
    - fu_efi_lz77_decompressor_memset16
    - memset
    - fu_efi_lz77_decompressor_make_huffman_table
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_lz77_decompressor_read_c_len(FuEfiLz77DecompressHelper
      *helper, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:451,1
    - Dst: fu_efi_lz77_decompressor_read_pt_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:455,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:456,1
    - Dst: fu_efi_lz77_decompressor_read_c_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:463,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:464,1
    - Dst: fu_efi_lz77_decompressor_read_pt_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:470,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:475,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:484,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:505,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - helper
    - value
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 509
    functionName: fu_efi_lz77_decompressor_decode_c
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    - fu_efi_lz77_decompressor_get_bits
    - g_prefix_error
    - fu_efi_lz77_decompressor_read_pt_len
    - g_set_error_literal
    - fu_efi_lz77_decompressor_read_c_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_lz77_decompressor_decode_c(FuEfiLz77DecompressHelper
      *helper, guint16 *value, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:527,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:536,1
    - Dst: fu_efi_lz77_decompressor_decode_c
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:544,1
    - Dst: fu_efi_lz77_decompressor_decode_p
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:564,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - helper
    - version
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - FuEfiLz77DecompressorVersion
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 585
    functionName: fu_efi_lz77_decompressor_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_source_bits
    - g_set_error
    - fu_efi_lz77_decompressor_decode_p
    - g_set_error_literal
    - fu_efi_lz77_decompressor_decode_c
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_internal(FuEfiLz77DecompressHelper
      *helper,\n\t\t\t\t  FuEfiLz77DecompressorVersion version,\n\t\t\t\t  GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:596,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:597,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:598,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:598,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:605,1
    - Dst: fu_struct_efi_lz77_decompressor_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:607,1
    - Dst: fu_struct_efi_lz77_decompressor_header_get_src_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:610,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:612,1
    - Dst: fu_struct_efi_lz77_decompressor_header_get_dst_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:618,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:620,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:626,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:627,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:628,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:628,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:629,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:637,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:640,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:645,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:647,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:647,1
    - Dst: fu_efi_lz77_decompressor_internal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:652,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:653,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:653,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:654,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:656,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:657,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:661,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:663,1
    - Dst: fu_efi_lz77_decompressor_version_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:665,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:668,1
    - Dst: fu_efi_lz77_decompressor_version_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:670,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:675,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:675,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 587
    functionDepth: 5
    functionLinenumber: 587
    functionLinenumberEnd: 677
    functionName: fu_efi_lz77_decompressor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_lz77_decompressor_header_get_dst_size
    - g_prefix_error
    - fu_firmware_set_stream
    - g_propagate_error
    - fu_efi_lz77_decompressor_version_to_string
    - fu_struct_efi_lz77_decompressor_header_get_src_size
    - fu_firmware_get_size_max
    - fu_efi_lz77_decompressor_internal
    - g_set_error
    - G_SEEKABLE
    - g_propagate_prefixed_error
    - fu_firmware_set_bytes
    - g_byte_array_free_to_bytes
    - g_steal_pointer
    - g_seekable_seek
    - fu_firmware_set_version_raw
    - g_autoptr
    - G_N_ELEMENTS
    - g_byte_array_new
    - g_set_error_literal
    - g_format_size
    - fu_input_stream_size
    - fu_struct_efi_lz77_decompressor_header_parse_stream
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_lz77_decompressor_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:682,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:682,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:683,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLz77Decompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 684
    functionName: fu_efi_lz77_decompressor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_size_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_lz77_decompressor_init(FuEfiLz77Decompressor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiLz77DecompressorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: fu_efi_lz77_decompressor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_lz77_decompressor_class_init(FuEfiLz77DecompressorClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:703,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: fu_efi_lz77_decompressor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_lz77_decompressor_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFirmwareType
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:31,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:32,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:40,1
    - Dst: GetFirmwareEnvironmentVariableA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:48,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:49,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 59
    functionName: fu_windows_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - GetFirmwareEnvironmentVariableA
    - g_set_error_literal
    - GetFirmwareType
    - GetLastError
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_windows_efivars_supported(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:65,1
    - Dst: RegCloseKey
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: fu_windows_efivars_is_running_under_wine
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - RegCloseKey
    - RegOpenKeyEx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_windows_efivars_is_running_under_wine(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:82,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:82,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:83,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:84,1
    - Dst: fu_windows_efivars_is_running_under_wine
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:87,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:88,1
    - Dst: GetFirmwareEnvironmentVariableExA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:97,1
    - Dst: g_byte_array_free
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:104,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:104,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:111,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:117,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 123
    functionName: fu_windows_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_strdup_printf
    - GetFirmwareEnvironmentVariableExA
    - g_byte_array_free
    - g_set_error_literal
    - g_autoptr
    - fu_windows_efivars_is_running_under_wine
    - g_byte_array_new
    - GetLastError
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_windows_efivars_get_data(FuEfivars *efivars,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name,\n\t\t\t    guint8 **data,\n\t\t\t
      \   gsize *data_sz,\n\t\t\t    guint32 *attr,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_windows_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: fu_windows_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - fu_windows_efivars_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_windows_efivars_exists(FuEfivars *efivars, const gchar
      *guid, const gchar *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:135,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:135,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:191,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:194,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:194,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:195,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:198,1
    - Dst: fu_windows_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:199,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:202,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:202,1
    - Dst: fu_windows_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:205,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:208,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:214,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:223,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 224
    functionName: fu_windows_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_string_new
    - fu_windows_efivars_exists
    - g_steal_pointer
    - g_strdup_printf
    - g_string_truncate
    - g_str_has_suffix
    - g_autoptr
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_strcmp0
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_windows_efivars_get_names(FuEfivars *efivars, const gchar *guid, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:235,1
    - Dst: fu_windows_efivars_is_running_under_wine
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:239,1
    - Dst: SetFirmwareEnvironmentVariableExA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:245,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:246,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: fu_windows_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strdup_printf
    - g_set_error_literal
    - SetFirmwareEnvironmentVariableExA
    - fu_windows_efivars_is_running_under_wine
    - GetLastError
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_windows_efivars_set_data(FuEfivars *efivars,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name,\n\t\t\t    const guint8 *data,\n\t\t\t
      \   gsize sz,\n\t\t\t    guint32 attr,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_windows_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: fu_windows_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - fu_windows_efivars_set_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_windows_efivars_delete(FuEfivars *efivars, const gchar
      *guid, const gchar *name, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:270,1
    - Dst: fu_windows_efivars_get_names
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:272,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:274,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:276,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:280,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:281,1
    - Dst: fu_windows_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - efivars
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: fu_windows_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - fu_windows_efivars_delete
    - g_steal_pointer
    - g_error_matches
    - fu_windows_efivars_get_names
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_windows_efivars_delete_with_glob(FuEfivars *efivars,\n\t\t\t\t
      \   const gchar *guid,\n\t\t\t\t    const gchar *name_glob,\n\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWindowsEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: fu_windows_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_windows_efivars_init(FuWindowsEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWindowsEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: fu_windows_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - FU_EFIVARS_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_windows_efivars_class_init(FuWindowsEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:310,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS
    - g_object_new
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_variables_supported
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:30,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: fu_freebsd_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - efi_variables_supported
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_freebsd_efivars_supported(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:44,1
    - Dst: efi_del_variable
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: fu_freebsd_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - efi_del_variable
    - efi_str_to_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_freebsd_efivars_delete(FuEfivars *efivars, const gchar
      *guid, const gchar *name, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:68,1
    - Dst: efi_get_next_variable_name
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:70,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:71,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:73,1
    - Dst: fu_freebsd_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - efivars
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: fu_freebsd_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - efi_get_next_variable_name
    - efi_str_to_guid
    - fu_freebsd_efivars_delete
    - memcmp
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_freebsd_efivars_delete_with_glob(FuEfivars *efivars,\n\t\t\t\t
      \   const gchar *guid,\n\t\t\t\t    const gchar *name_glob,\n\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:89,1
    - Dst: efi_get_next_variable_name
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:90,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: fu_freebsd_efivars_exists_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - efi_get_next_variable_name
    - memcmp
    - efi_str_to_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_freebsd_efivars_exists_guid(const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_freebsd_efivars_exists_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:103,1
    - Dst: fu_freebsd_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: fu_freebsd_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - fu_freebsd_efivars_get_data
    - fu_freebsd_efivars_exists_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_freebsd_efivars_exists(FuEfivars *efivars, const gchar
      *guid, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:118,1
    - Dst: efi_get_variable
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: fu_freebsd_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 1
    functionsReached:
    - efi_get_variable
    - efi_str_to_guid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_freebsd_efivars_get_data(FuEfivars *efivars,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name,\n\t\t\t    guint8 **data,\n\t\t\t
      \   gsize *data_sz,\n\t\t\t    guint32 *attr,\n\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:125,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:125,1
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:129,1
    - Dst: efi_get_next_variable_name
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:132,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:133,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:134,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:134,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: fu_freebsd_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - efi_get_next_variable_name
    - g_steal_pointer
    - efi_str_to_guid
    - g_set_error_literal
    - memcmp
    - g_autoptr
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_freebsd_efivars_get_names(FuEfivars *efivars, const gchar *guid, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_get_next_variable_name
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:159,1
    - Dst: efi_get_variable_size
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:161,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: fu_freebsd_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - efi_get_variable_size
    - efi_get_next_variable_name
    - g_set_error
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_freebsd_efivars_space_used(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:185,1
    - Dst: efi_set_variable
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 198
    functionName: fu_freebsd_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - efi_set_variable
    - efi_str_to_guid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_freebsd_efivars_set_data(FuEfivars *efivars,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name,\n\t\t\t    const guint8 *data,\n\t\t\t
      \   gsize sz,\n\t\t\t    guint32 attr,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFreebsdEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: fu_freebsd_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_freebsd_efivars_init(FuFreebsdEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFreebsdEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: fu_freebsd_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - FU_EFIVARS_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_freebsd_efivars_class_init(FuFreebsdEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:223,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS
    - g_object_new
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: FU_COMMON_VERSION_DECODE_BCD
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_COMMON_VERSION_DECODE_BCD(val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:40,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:51,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:57,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:61,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:65,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint64
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 69
    functionName: fu_version_from_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint64(guint64 val, FwupdVersionFormat kind)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:87,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:95,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:102,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:106,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:110,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:111,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:112,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:113,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:114,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:118,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:126,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:134,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:142,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:149,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:156,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:163,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:167,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:172,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:173,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 176
    functionName: fu_version_from_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 3
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - FU_COMMON_VERSION_DECODE_BCD
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint32(guint32 val, FwupdVersionFormat kind)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:193,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:195,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:197,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:199,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:205,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:211,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:217,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:225,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:226,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:227,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:228,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:229,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:231,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:232,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 235
    functionName: fu_version_from_uint32_hex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - FU_COMMON_VERSION_DECODE_BCD
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint32_hex(guint32 val, FwupdVersionFormat kind)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:253,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:260,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:264,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:268,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:270,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 274
    functionName: fu_version_from_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint24(guint32 val, FwupdVersionFormat kind)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:291,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:292,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:293,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:296,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:299,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:306,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:312,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:316,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:318,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint16
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 322
    functionName: fu_version_from_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - FU_COMMON_VERSION_DECODE_BCD
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint16(guint16 val, FwupdVersionFormat kind)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:339,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:341,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:343,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:345,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:346,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:347,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:350,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:355,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint16
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 359
    functionName: fu_version_from_uint16_hex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - fwupd_version_format_to_string
    - g_critical
    - FU_COMMON_VERSION_DECODE_BCD
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint16_hex(guint16 val, FwupdVersionFormat kind)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - chr1
    - chr2
    argTypes:
    - gchar
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: fu_version_compare_char
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_version_compare_char(gchar chr1, gchar chr2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:379,1
    - Dst: fu_version_compare_char
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:388,1
    - Dst: fu_version_compare_char
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: fu_version_compare_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_version_compare_char
    linkageType: ''
    returnType: gint
    signature: gint fu_version_compare_chunk(const gchar *str1, const gchar *str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:398,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: _g_ascii_is_digits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ascii_isdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_ascii_is_digits(const gchar *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 422
    functionName: fu_version_format_number_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: guint fu_version_format_number_sections(FwupdVersionFormat fmt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_format_number_sections
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:440,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:443,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:443,1
    - Dst: fu_version_ensure_semver_internal
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:446,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:450,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:451,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:452,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:458,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:459,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:466,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:467,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:471,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - version
    - fmt
    argTypes:
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 472
    functionName: fu_version_ensure_semver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 1
    functionsReached:
    - g_auto
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_strsplit
    - fu_version_format_number_sections
    - g_strv_length
    - g_autoptr
    - g_string_append
    - fu_version_ensure_semver_internal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_ensure_semver(const gchar *version, FwupdVersionFormat fmt)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:479,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:479,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:486,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:487,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:492,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:493,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:499,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:504,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:512,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:517,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:517,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 1
    argNames:
    - version
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 518
    functionName: fu_version_ensure_semver_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - g_str_has_prefix
    - g_steal_pointer
    - g_string_free
    - fu_version_parse_from_format
    - g_string_append_c
    - g_string_truncate
    - g_autoptr
    - g_ascii_isdigit
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_ensure_semver_internal(const gchar *version)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:550,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:551,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:554,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:554,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:555,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:558,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:559,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:561,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - version
    - fmt
    argTypes:
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 563
    functionName: fu_version_parse_from_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 3
    functionsReached:
    - g_str_has_prefix
    - strlen
    - g_strstr_len
    - g_strdup
    - fu_version_from_uint32
    - fu_strtoull
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_parse_from_format(const gchar *version, FwupdVersionFormat fmt)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:584,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:591,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:592,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:594,1
    - Dst: _g_ascii_is_digits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:594,1
    - Dst: _g_ascii_is_digits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:602,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - version
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 616
    functionName: fu_version_guess_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 3
    functionsReached:
    - g_auto
    - g_str_has_prefix
    - g_strsplit
    - _g_ascii_is_digits
    - g_strv_length
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fu_version_guess_format(const gchar *version)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 631
    functionName: fu_version_format_convert_base
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fu_version_format_convert_base(FwupdVersionFormat
      fmt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:650,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:651,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:662,1
    - Dst: fu_version_format_convert_base
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:666,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:667,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:672,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:673,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - version
    - fmt
    - error
    argTypes:
    - gchar*
    - FwupdVersionFormat
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 677
    functionName: fu_version_verify_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_version_guess_format
    - fwupd_version_format_to_string
    - fu_version_format_convert_base
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_version_verify_format(const gchar *version, FwupdVersionFormat
      fmt, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:683,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:691,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:695,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:696,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:697,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:697,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:697,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:711,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:712,1
    - Dst: fu_version_compare_chunk
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:721,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - version_a
    - version_b
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 731
    functionName: fu_version_compare_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - MAX
    - g_ascii_strtoll
    - g_strv_length
    - fu_version_compare_chunk
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_version_compare_safe(const gchar *version_a, const gchar *version_b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:750,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:754,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:755,1
    - Dst: fu_version_compare_safe
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:756,1
    - Dst: fu_version_compare_safe
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - version_a
    - version_b
    - fmt
    argTypes:
    - gchar*
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: fu_version_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 19
    functionsReached:
    - fu_version_compare_safe
    - g_strcmp0
    - fu_version_parse_from_format
    linkageType: ''
    returnType: gint
    signature: gint fu_version_compare(const gchar *version_a, const gchar *version_b,
      FwupdVersionFormat fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: fu_common_guid_is_plausible
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-guid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_common_guid_is_plausible(const guint8 *buf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:38,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:41,1
    - Dst: fu_struct_fmap_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:49,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:52,1
    - Dst: fu_struct_fmap_get_base
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:52,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:54,1
    - Dst: fu_struct_fmap_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:56,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:57,1
    - Dst: fu_struct_fmap_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:61,1
    - Dst: fu_struct_fmap_get_nareas
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:78,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:80,1
    - Dst: fu_struct_fmap_area_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:83,1
    - Dst: fu_struct_fmap_area_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:86,1
    - Dst: fu_struct_fmap_area_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:89,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:90,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:95,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:98,1
    - Dst: fu_struct_fmap_area_get_name
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:100,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:101,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:102,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:103,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:104,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:107,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:109,1
    - Dst: fu_struct_fmap_get_ver_major
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:110,1
    - Dst: fu_struct_fmap_get_ver_minor
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:111,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:112,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 119
    functionName: fu_fmap_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fmap_get_base
    - g_prefix_error
    - fu_struct_fmap_get_ver_minor
    - fu_struct_fmap_area_parse_stream
    - g_set_error
    - fu_firmware_add_image_full
    - fu_firmware_set_addr
    - fu_struct_fmap_get_ver_major
    - fu_struct_fmap_get_size
    - fu_input_stream_find
    - fu_struct_fmap_parse_stream
    - fu_struct_fmap_area_get_offset
    - fu_struct_fmap_area_get_name
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    - g_strcmp0
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_struct_fmap_get_nareas
    - g_strdup_printf
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_struct_fmap_area_get_size
    - fu_firmware_set_idx
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fmap_firmware_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:126,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:127,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:128,1
    - Dst: fu_struct_fmap_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:128,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:131,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:132,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:132,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:138,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:138,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:141,1
    - Dst: fu_struct_fmap_set_base
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:145,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:145,1
    - Dst: fu_struct_fmap_set_nareas
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:146,1
    - Dst: fu_struct_fmap_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:147,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:147,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:148,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:153,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:154,1
    - Dst: fu_struct_fmap_area_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:154,1
    - Dst: fu_struct_fmap_area_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:155,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:155,1
    - Dst: fu_struct_fmap_area_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:156,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:156,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:157,1
    - Dst: fu_struct_fmap_area_set_name
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:158,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:158,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:161,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:168,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:168,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:171,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 176
    functionName: fu_fmap_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fmap_area_new
    - fu_firmware_get_addr
    - fu_firmware_get_images
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - g_ptr_array_index
    - fu_firmware_get_offset
    - fu_struct_fmap_set_base
    - fu_struct_fmap_set_nareas
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_struct_fmap_area_set_offset
    - fu_struct_fmap_area_set_size
    - g_autoptr
    - fu_struct_fmap_set_size
    - g_byte_array_new
    - g_bytes_get_size
    - fu_struct_fmap_new
    - g_byte_array_append
    - fu_struct_fmap_area_set_name
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_fmap_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:181,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFmapFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: fu_fmap_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fmap_firmware_init(FuFmapFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFmapFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: fu_fmap_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fmap_firmware_class_init(FuFmapFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:202,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: fu_fmap_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_fmap_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:28,1
    - Dst: fu_device_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - percentage
    - user_data
    argTypes:
    - FuProgress*
    - guint
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_device_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_PROGRESS
    - fu_device_set_percentage
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_percentage_changed_cb(FuProgress *progress,
      guint percentage, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:35,1
    - Dst: fu_device_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - status
    - user_data
    argTypes:
    - FuProgress*
    - FwupdStatus
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_device_progress_status_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_PROGRESS
    - fu_device_set_status
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_status_changed_cb(FuProgress *progress, FwupdStatus
      status, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:42,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:43,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:44,1
    - Dst: fu_device_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:45,1
    - Dst: fu_device_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:46,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:47,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:48,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: fu_device_progress_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_PROGRESS
    - g_object_unref
    - G_OBJECT_CLASS
    - fu_device_set_status
    - g_signal_handler_disconnect
    - fu_device_set_percentage
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceProgressClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: fu_device_progress_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_class_init(FuDeviceProgressClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: fu_device_progress_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_init(FuDeviceProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:82,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:82,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:84,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:84,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:85,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:85,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:89,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:89,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:91,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:93,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:93,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:95,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:97,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: fu_device_progress_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_object_ref
    - g_steal_pointer
    - FU_IS_PROGRESS
    - FU_PROGRESS
    - g_object_new
    - g_autoptr
    - g_return_val_if_fail
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: FuDeviceProgress
    signature: 'FuDeviceProgress *

      fu_device_progress_new(FuDevice *device, FuProgress *progress)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: fu_device_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_flag(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: fu_device_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_flag(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: fu_device_has_request_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_request_flag(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: fu_device_add_request_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_request_flag(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: fu_device_has_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_vendor_id(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: fu_device_has_protocol
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_protocol(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: fu_device_has_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_checksum(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: fu_device_add_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_checksum(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: fu_device_add_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_release(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: fu_device_add_icon
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_icon(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: fu_device_has_icon
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_has_icon(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: fu_device_add_issue
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_issue(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: fu_device_set_description
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_description(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: fu_device_set_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_flags(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: fu_device_set_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_plugin(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: fu_device_set_serial
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_serial(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: fu_device_set_summary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_summary(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: fu_device_set_branch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_branch(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: fu_device_set_update_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_update_error(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: fu_device_add_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_vendor_id(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: fu_device_add_protocol
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_add_protocol(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: fu_device_set_version_bootloader_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_version_bootloader_raw(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: fu_device_set_version_build_date
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_version_build_date(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: fu_device_set_flashes_left
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_flashes_left(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: fu_device_set_install_duration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_install_duration(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: fu_device_get_checksums
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_checksums(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: fu_device_get_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_flags(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: fu_device_get_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_guids(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: fu_device_get_guid_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_guid_default(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: fu_device_get_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_instance_ids(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: fu_device_get_icons
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_icons(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: fu_device_get_issues
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_issues(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: fu_device_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_name(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: fu_device_get_serial
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_serial(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: fu_device_get_summary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_summary(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: fu_device_get_branch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_branch(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: fu_device_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 84
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_id(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: fu_device_get_composite_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_composite_id(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: fu_device_get_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_plugin(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: fu_device_get_update_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_update_error(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: fu_device_get_update_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_update_state(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: fu_device_get_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_vendor(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: fu_device_get_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: fu_device_get_version_lowest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_lowest(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: fu_device_get_version_bootloader
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_bootloader(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: fu_device_get_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_format(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: fu_device_get_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_raw(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: fu_device_get_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_lowest_raw(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: fu_device_get_version_bootloader_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_bootloader_raw(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: fu_device_get_version_build_date
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_build_date(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: fu_device_get_vendor_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_vendor_ids(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: fu_device_get_protocols
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_protocols(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: fu_device_get_flashes_left
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_flashes_left(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: fu_device_get_install_duration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_install_duration(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: fu_device_get_release_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_release_default(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: fu_device_get_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_status(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: fu_device_set_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_status(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: fu_device_get_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_percentage(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: fu_device_set_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_percentage(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 757
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:56,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:57,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: fu_oprom_firmware_get_machine_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_OPROM_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuOpromMachineType
    signature: FuOpromMachineType fu_oprom_firmware_get_machine_type(FuOpromFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:75,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: fu_oprom_firmware_get_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_OPROM_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuOpromSubsystem
    signature: FuOpromSubsystem fu_oprom_firmware_get_subsystem(FuOpromFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:92,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:93,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: fu_oprom_firmware_get_compression_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_OPROM_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuOpromCompressionType
    signature: FuOpromCompressionType fu_oprom_firmware_get_compression_type(FuOpromFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:100,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:101,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:102,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:103,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:104,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:105,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: fu_oprom_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_OPROM_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_oprom_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_oprom_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: fu_oprom_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_oprom_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:121,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:127,1
    - Dst: fu_struct_oprom_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:130,1
    - Dst: fu_struct_oprom_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:133,1
    - Dst: fu_struct_oprom_get_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:134,1
    - Dst: fu_struct_oprom_get_machine_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:135,1
    - Dst: fu_struct_oprom_get_pci_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:140,1
    - Dst: fu_struct_oprom_pci_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:148,1
    - Dst: fu_struct_oprom_pci_get_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:151,1
    - Dst: fu_struct_oprom_pci_get_device_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:152,1
    - Dst: fu_struct_oprom_pci_get_image_length
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:155,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:157,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:160,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:161,1
    - Dst: fu_struct_oprom_pci_get_code_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:161,1
    - Dst: fu_struct_oprom_get_expansion_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:166,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:175,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:178,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:179,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 185
    functionName: fu_oprom_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_struct_oprom_get_expansion_header_offset
    - g_set_error
    - fu_firmware_set_offset
    - fu_struct_oprom_get_pci_header_offset
    - FU_OPROM_FIRMWARE
    - fu_struct_oprom_pci_get_code_type
    - fu_firmware_new_from_gtypes
    - fu_struct_oprom_get_subsystem
    - fu_firmware_add_image
    - fu_firmware_set_size
    - fu_struct_oprom_pci_get_image_length
    - g_autoptr
    - fu_struct_oprom_parse_stream
    - fu_firmware_set_id
    - fu_struct_oprom_pci_get_device_id
    - GET_PRIVATE
    - fu_struct_oprom_get_machine_type
    - fu_firmware_set_idx
    - fu_struct_oprom_get_compression_type
    - fu_struct_oprom_pci_parse_stream
    - fu_struct_oprom_pci_get_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_oprom_firmware_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:190,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:193,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:194,1
    - Dst: fu_struct_oprom_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:195,1
    - Dst: fu_struct_oprom_pci_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:196,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:199,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:200,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:203,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:203,1
    - Dst: fu_struct_oprom_set_image_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:207,1
    - Dst: fu_struct_oprom_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:208,1
    - Dst: fu_struct_oprom_set_machine_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:209,1
    - Dst: fu_struct_oprom_set_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:210,1
    - Dst: fu_struct_oprom_set_expansion_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:212,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:216,1
    - Dst: fu_struct_oprom_pci_set_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:219,1
    - Dst: fu_struct_oprom_pci_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:220,1
    - Dst: fu_struct_oprom_pci_set_image_length
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:221,1
    - Dst: fu_struct_oprom_pci_set_code_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:222,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:222,1
    - Dst: fu_struct_oprom_pci_set_indicator
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:223,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:224,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:225,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:229,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:230,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 235
    functionName: fu_oprom_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_oprom_set_machine_type
    - fu_struct_oprom_set_expansion_header_offset
    - fu_struct_oprom_pci_set_code_type
    - fu_byte_array_append_bytes
    - FU_OPROM_FIRMWARE
    - fu_byte_array_align_up
    - fu_struct_oprom_set_image_size
    - fu_struct_oprom_pci_set_vendor_id
    - fu_struct_oprom_pci_set_indicator
    - g_steal_pointer
    - fu_struct_oprom_pci_new
    - fu_struct_oprom_set_compression_type
    - fu_firmware_get_idx
    - fu_struct_oprom_pci_set_device_id
    - g_autoptr
    - g_byte_array_new
    - fu_struct_oprom_new
    - g_bytes_get_size
    - fu_firmware_get_image_by_id_bytes
    - GET_PRIVATE
    - fu_struct_oprom_pci_set_image_length
    - fu_common_align_up
    - g_byte_array_append
    - fu_struct_oprom_set_subsystem
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_oprom_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:240,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:241,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:245,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:248,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:252,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:255,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:259,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:262,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:266,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:269,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:273,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 283
    functionName: fu_oprom_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - GET_PRIVATE
    - FU_OPROM_FIRMWARE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:288,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: fu_oprom_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_oprom_firmware_init(FuOpromFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuOpromFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: fu_oprom_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_oprom_firmware_class_init(FuOpromFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:312,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: fu_oprom_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_oprom_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 764
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:83,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:84,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:85,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:87,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: fu_udev_device_emit_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_signal_emit
    - g_debug
    - fu_device_rescan
    - g_return_if_fail
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_emit_changed(FuUdevDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:94,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:95,1
    - Dst: fu_io_channel_open_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:96,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:98,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:99,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:100,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:101,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:102,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: fu_udev_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_open_flag_to_string
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:117,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:121,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:125,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:126,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 137
    functionName: fu_udev_device_ensure_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_path_get_basename
    - fu_udev_device_read_property
    - GET_PRIVATE
    - fu_udev_device_get_sysfs_path
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_ensure_bind_id(FuUdevDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:143,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:146,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:149,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:150,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:151,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: fu_udev_device_set_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_subsystem(FuUdevDevice *self, const gchar *subsystem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:166,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:169,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:172,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:173,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:174,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - bind_id
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: fu_udev_device_set_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_bind_id(FuUdevDevice *self, const gchar *bind_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:180,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:183,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:186,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:187,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:188,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - driver
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: fu_udev_device_set_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_driver(FuUdevDevice *self, const gchar *driver)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:203,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:206,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:209,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:210,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:211,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_file
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: fu_udev_device_set_device_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_device_file(FuUdevDevice *self, const gchar
      *device_file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:223,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:224,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:229,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:230,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:230,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:232,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:236,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:237,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:240,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:240,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:245,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:248,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:248,1
    - Dst: fu_path_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:249,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:252,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:256,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 260
    functionName: fu_udev_device_get_symlink_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_event_set_str
    - g_steal_pointer
    - g_build_filename
    - fu_device_event_get_str
    - fu_device_save_event
    - fu_path_get_symlink_target
    - g_strdup_printf
    - fu_device_get_context
    - g_path_get_basename
    - fu_device_has_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_load_event
    - g_strdup
    - fu_udev_device_get_sysfs_path
    - fu_context_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_symlink_target(FuUdevDevice *self, const gchar *attr, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:266,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:267,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - number
    argTypes:
    - FuUdevDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: fu_udev_device_set_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_number(FuUdevDevice *self, guint64 number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:275,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:278,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:281,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:282,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:283,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - devtype
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: fu_udev_device_set_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_devtype(FuUdevDevice *self, const gchar *devtype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:291,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:291,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:291,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:296,1
    - Dst: g_string_erase
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:297,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: fu_udev_device_parse_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - GET_PRIVATE
    - g_string_erase
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_ascii_isdigit
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_parse_number(FuUdevDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:318,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:321,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:324,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:328,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:331,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:332,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 337
    functionName: fu_udev_device_ensure_devtype_from_modalias
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strv_contains
    - fu_udev_device_read_property
    - g_strsplit
    - g_strv_length
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_ensure_devtype_from_modalias(FuUdevDevice *self,
      GError **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:342,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:343,1
    - Dst: fu_udev_device_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:351,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:353,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:356,1
    - Dst: fu_udev_device_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:359,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:361,1
    - Dst: fu_udev_device_ensure_devtype_from_modalias
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:363,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:369,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:371,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:372,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:377,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:383,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:384,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:386,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:389,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:395,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:397,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:402,1
    - Dst: fu_udev_device_parse_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:403,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:404,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:409,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:411,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:411,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:415,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:422,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:436,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:440,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:441,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:442,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:444,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:445,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:455,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:456,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:465,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:466,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:477,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:478,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:480,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 485
    functionName: fu_udev_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_udev_device_read_property
    - fu_udev_device_get_symlink_target
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_parse_number
    - fu_udev_device_set_device_file
    - fu_device_set_vendor
    - fu_device_build_instance_id_full
    - g_debug
    - fu_device_set_vid
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_add_instance_strup
    - g_ascii_strup
    - g_autoptr
    - fu_strtoull
    - fu_udev_device_ensure_devtype_from_modalias
    - fu_udev_device_set_subsystem
    - fu_device_get_backend_parent_with_subsystem
    - g_str_has_prefix
    - fu_device_get_vid
    - fu_device_set_pid
    - g_strdup_printf
    - fu_device_build_vendor_id_u16
    - GET_PRIVATE
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:501,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:503,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:506,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:506,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:509,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:510,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 516
    functionName: fu_udev_device_get_subsystem_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_backend_parent
    - g_set_object
    - FU_DEVICE
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    linkageType: ''
    returnType: guint
    signature: guint fu_udev_device_get_subsystem_depth(FuUdevDevice *self, const
      gchar *subsystem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:521,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:522,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: fu_udev_device_probe_complete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_probe_complete(FuDevice *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:530,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:531,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:533,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:536,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:540,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:541,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:544,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:544,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:545,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:549,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:551,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:554,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 560
    functionName: fu_udev_device_unbind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ensure_bind_id
    - fu_output_stream_from_path
    - strlen
    - g_output_stream_write_all
    - g_build_filename
    - fu_device_has_flag
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_unbind_driver(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:568,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:569,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:573,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:576,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:576,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:580,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:583,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:587,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:588,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:598,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:601,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:608,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:610,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:610,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:613,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:615,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - device
    - subsystem
    - driver
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 619
    functionName: fu_udev_device_bind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_set_error
    - fu_udev_device_ensure_bind_id
    - strlen
    - g_output_stream_write_all
    - g_file_new_for_path
    - g_strdup_printf
    - G_OUTPUT_STREAM
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_strdup
    - g_autoptr
    - g_file_test
    - g_file_replace
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_bind_driver(FuDevice *device,\n\t\t\t   const
      gchar *subsystem,\n\t\t\t   const gchar *driver,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:624,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:625,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: fu_udev_device_get_open_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: FuIoChannelOpenFlag
    signature: FuIoChannelOpenFlag fu_udev_device_get_open_flags(FuUdevDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:632,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:633,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 636
    functionName: fu_udev_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_invalidate(FuDevice *device)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:641,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:642,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:643,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:645,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:645,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:646,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:646,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:649,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:649,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:651,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:651,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:653,1
    - Dst: fu_udev_device_get_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:653,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:655,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:655,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:657,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:657,1
    - Dst: fu_udev_device_set_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:659,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:659,1
    - Dst: fu_udev_device_get_open_flags
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:661,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 662
    functionName: fu_udev_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_subsystem
    - fu_udev_device_get_subsystem
    - fu_udev_device_get_open_flags
    - fu_udev_device_set_driver
    - fu_udev_device_set_devtype
    - fu_udev_device_get_devtype
    - fu_udev_device_get_driver
    - g_return_if_fail
    - fu_udev_device_get_number
    - FU_IS_UDEV_DEVICE
    - fu_udev_device_set_bind_id
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_udev_device_set_number
    - fu_udev_device_set_device_file
    - fu_udev_device_get_device_file
    - fu_udev_device_get_bind_id
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_incorporate(FuDevice *self, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:678,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 680
    functionName: fu_udev_device_get_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 13
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_subsystem(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:695,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:696,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:696,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: fu_udev_device_get_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - fu_udev_device_ensure_bind_id
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_bind_id(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:715,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 717
    functionName: fu_udev_device_get_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_driver(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:732,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:733,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 735
    functionName: fu_udev_device_get_device_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_device_file(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:750,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:750,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 752
    functionName: fu_udev_device_get_sysfs_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 13
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_backend_id
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_sysfs_path(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:767,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:768,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 770
    functionName: fu_udev_device_get_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_udev_device_get_number(FuUdevDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:776,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:776,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:777,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:777,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:780,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:780,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:785,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:786,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:787,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:789,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:790,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:792,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:794,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:796,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:797,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:797,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:802,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:805,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:806,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 807
    functionName: fu_udev_device_get_parent_subsystems
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_object_ref
    - fu_device_get_backend_parent_with_subsystem
    - g_string_new
    - fu_udev_device_get_subsystem
    - g_steal_pointer
    - g_string_free
    - fu_udev_device_get_devtype
    - g_set_object
    - fu_device_has_flag
    - FU_DEVICE
    - g_string_truncate
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_parent_subsystems(FuUdevDevice *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:813,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:815,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:815,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:819,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:820,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:820,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:823,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: fu_udev_device_match_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_auto
    - fu_udev_device_get_subsystem
    - fu_udev_device_get_devtype
    - g_strsplit
    - FU_IS_UDEV_DEVICE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_match_subsystem(FuUdevDevice *self, const gchar
      *subsystem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:837,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:838,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:840,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:840,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:841,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:842,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:845,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:845,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:845,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:846,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:848,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:849,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:856,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:856,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:857,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:860,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:862,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:869,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 870
    functionName: fu_udev_device_get_device_file_from_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_error_matches
    - g_dir_read_name
    - g_build_filename
    - g_strdup_printf
    - g_dir_open
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - g_propagate_error
    - fu_udev_device_get_sysfs_path
    - g_autoptr
    - g_return_val_if_fail
    - fu_error_convert
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_udev_device_get_device_file_from_subsystem(FuUdevDevice
      *self,\n\t\t\t\t\t      const gchar *subsystem,\n\t\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:886,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:888,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:888,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 892
    functionName: fu_udev_device_get_devpath
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strrstr
    - g_strdup
    - fu_udev_device_get_sysfs_path
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_devpath(FuUdevDevice *self)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:918,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:920,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:920,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:921,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:922,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:925,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:927,1
    - Dst: fu_udev_device_match_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:930,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:931,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:936,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:937,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:937,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:939,1
    - Dst: fu_udev_device_get_parent_subsystems
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:944,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:945,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:954,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:955,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:955,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:956,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:957,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:960,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:962,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:965,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:966,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:966,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:967,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:967,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:968,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:968,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:969,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:969,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:970,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:971,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:971,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:973,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:974,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:976,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:979,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:980,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:982,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:985,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:987,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:996,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:996,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 3
    argNames:
    - self
    - subsystems
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 998
    functionName: fu_udev_device_set_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_auto
    - fu_udev_device_read_property
    - fu_device_get_physical_id
    - fu_udev_device_get_sysfs_path
    - g_return_val_if_fail
    - g_object_ref
    - g_set_error
    - fu_udev_device_get_subsystem
    - FU_UDEV_DEVICE
    - fu_udev_device_match_subsystem
    - fu_device_set_physical_id
    - fu_udev_device_get_parent_subsystems
    - g_autoptr
    - fu_device_get_backend_parent_with_subsystem
    - g_strsplit
    - g_strdup_printf
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_set_physical_id(FuUdevDevice *self, const gchar
      *subsystems, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1014,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1016
    functionName: fu_udev_device_get_io_channel
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_udev_device_get_io_channel(FuUdevDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1031,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1032,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1032,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1033,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1033,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - io_channel
    argTypes:
    - FuUdevDevice*
    - FuIOChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1035
    functionName: fu_udev_device_set_io_channel
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_return_if_fail
    - g_set_object
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_io_channel(FuUdevDevice *self, FuIOChannel
      *io_channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1049,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1050,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuUdevDevice*
    - FuIoChannelOpenFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1052
    functionName: fu_udev_device_remove_open_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_remove_open_flag(FuUdevDevice *self, FuIoChannelOpenFlag
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1069,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1070,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuUdevDevice*
    - FuIoChannelOpenFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1076
    functionName: fu_udev_device_add_open_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_add_open_flag(FuUdevDevice *self, FuIoChannelOpenFlag
      flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1081,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1082,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1085,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1085,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1092,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1094,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1095,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1097,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1097,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1098,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1098,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1103,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1104,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1112
    functionName: fu_udev_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_io_channel_new_file
    - g_set_object
    - fu_device_has_flag
    - FU_DEVICE
    - g_critical
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_device_get_id
    - g_autoptr
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1117,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1119,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1121
    functionName: fu_udev_device_rescan
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_device_probe_invalidate
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_rescan(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1126,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1127,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1130,1
    - Dst: fu_io_channel_shutdown
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1141
    functionName: fu_udev_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_io_channel_shutdown
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_close(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1158,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1159,1
    - Dst: fu_udev_device_close
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1161,1
    - Dst: fu_udev_device_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1164
    functionName: fu_udev_device_reopen
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_close
    - fu_udev_device_open
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_reopen(FuUdevDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1179,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1179,1
    - Dst: fu_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1181
    functionName: fu_udev_device_ioctl_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_new
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: FuIoctl
    signature: 'FuIoctl *

      fu_udev_device_ioctl_new(FuUdevDevice *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1195,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1197,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1197,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1199,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1202,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1206,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1210,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1211,1
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1217,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1217,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1223,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1229,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1236,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1242,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1249,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1257,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 8
    argNames:
    - self
    - request
    - buf
    - bufsz
    - rc
    - timeout
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - gulong
    - guint8*
    - gsize
    - gint*
    - guint
    - FuIoctlFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1263
    functionName: fu_udev_device_ioctl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_timer_new
    - fu_io_channel_unix_get_fd
    - g_timer_elapsed
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_get_name
    - g_autoptr
    - fu_device_get_id
    - g_set_error_literal
    - fwupd_strerror
    - g_return_val_if_fail
    - ioctl
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_ioctl(FuUdevDevice *self,\n\t\t     gulong
      request,\n\t\t     guint8 *buf,\n\t\t     gsize bufsz,\n\t\t     gint *rc,\n\t\t
      \    guint timeout,\n\t\t     FuIoctlFlags flags,\n\t\t     GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1282,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1286,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1287,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1288,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1291,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1292,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1292,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1294,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1302,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1303,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1306,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1311,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1315,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1319,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1320,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1320,1
    - Dst: pread
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1325,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1325,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1326,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1329,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1335,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1336,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1342,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1345,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - self
    - port
    - buf
    - bufsz
    - error
    argTypes:
    - FuUdevDevice*
    - goffset
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1351
    functionName: fu_udev_device_pread
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_context_has_flag
    - fwupd_error_convert
    - g_set_error
    - fu_device_get_context
    - fu_device_load_event
    - fu_device_get_name
    - fu_io_channel_unix_get_fd
    - fu_device_event_copy_data
    - fu_device_event_set_data
    - pread
    - fu_device_save_event
    - g_strdup_printf
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_set_error_literal
    - fwupd_strerror
    - g_io_error_from_errno
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_pread(FuUdevDevice *self, goffset port, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1368,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1370,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1371,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1374,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1379,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1383,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1384,1
    - Dst: fu_io_channel_seek
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuUdevDevice*
    - goffset
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1388
    functionName: fu_udev_device_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_io_channel_seek
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - fu_device_get_name
    - fu_device_get_id
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_seek(FuUdevDevice *self, goffset offset, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1411,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1413,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1413,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1414,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1417,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1422,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1426,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1427,1
    - Dst: pwrite
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1432,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1432,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1434,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1437,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1443,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1444,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - port
    - buf
    - bufsz
    - error
    argTypes:
    - FuUdevDevice*
    - goffset
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1455
    functionName: fu_udev_device_pwrite
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_io_channel_unix_get_fd
    - pwrite
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - fu_device_get_name
    - fwupd_strerror
    - fu_device_get_id
    - g_set_error_literal
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_io_error_from_errno
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_pwrite(FuUdevDevice *self,\n\t\t      goffset
      port,\n\t\t      const guint8 *buf,\n\t\t      gsize bufsz,\n\t\t      GError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1488,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1488,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1489,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1490,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1493,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1494,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1494,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1496,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1500,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1500,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1501,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1504,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1506,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1511,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1511,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1515,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1519,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1520,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1523,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1531,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1532,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1532,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1540,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 7
    argNames:
    - self
    - buf
    - bufsz
    - bytes_read
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - guint8*
    - gsize
    - gsize*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1473
    functionDepth: 3
    functionLinenumber: 1473
    functionLinenumberEnd: 1542
    functionName: fu_udev_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - fu_device_event_check_error
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_set_error
    - fu_device_get_context
    - fu_device_load_event
    - fu_device_get_name
    - fu_io_channel_read_raw
    - g_steal_pointer
    - fu_device_event_copy_data
    - g_autoptr
    - fu_device_event_set_data
    - fu_device_event_set_error
    - fu_device_save_event
    - g_strdup_printf
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_read(FuUdevDevice *self,\n\t\t    guint8 *buf,\n\t\t
      \   gsize bufsz,\n\t\t    gsize *bytes_read,\n\t\t    guint timeout_ms,\n\t\t
      \   FuIOChannelFlags flags,\n\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1568,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1568,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1569,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1570,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1572,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1573,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - count
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - gsize
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1558
    functionDepth: 4
    functionLinenumber: 1558
    functionLinenumberEnd: 1576
    functionName: fu_udev_device_read_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_read
    - g_malloc0
    - FU_IS_UDEV_DEVICE
    - g_bytes_new
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_udev_device_read_bytes(FuUdevDevice *self,\n\t\t\t  gsize
      count,\n\t\t\t  guint timeout_ms,\n\t\t\t  FuIOChannelFlags flags,\n\t\t\t  GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1601,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1605,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1605,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1606,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1607,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1610,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1610,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1611,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1611,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1613,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1614,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1618,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1619,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1619,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1627,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1631,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1635,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1635,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1636,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1636,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - self
    - buf
    - bufsz
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - guint8*
    - gsize
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1593
    functionDepth: 1
    functionLinenumber: 1593
    functionLinenumberEnd: 1644
    functionName: fu_udev_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - fu_device_load_event
    - fu_device_get_name
    - fu_device_get_id
    - g_base64_encode
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write(FuUdevDevice *self,\n\t\t     const
      guint8 *buf,\n\t\t     gsize bufsz,\n\t\t     guint timeout_ms,\n\t\t     FuIOChannelFlags
      flags,\n\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1667,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1667,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1668,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1669,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1670,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1671,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - blob
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - GBytes*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1676
    functionName: fu_udev_device_write_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write
    - g_bytes_get_size
    - FU_IS_UDEV_DEVICE
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write_bytes(FuUdevDevice *self,\n\t\t\t   GBytes
      *blob,\n\t\t\t   guint timeout_ms,\n\t\t\t   FuIOChannelFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1695,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1696,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1696,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1698,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1698,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1699,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1702,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1702,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1703,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1703,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1703,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1705,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1709,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1709,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1711,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1713,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1716,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1719,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1721,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1721,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1722,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1727,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1730,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1731,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1737,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1737,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1739,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1742,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1743,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1743,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1747,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1748,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1752,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1753
    functionName: fu_udev_device_list_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_auto
    - g_dir_read_name
    - fu_device_event_get_str
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - g_return_val_if_fail
    - fu_context_has_flag
    - fwupd_error_convert
    - fu_device_event_set_str
    - fu_device_get_context
    - fu_device_load_event
    - g_steal_pointer
    - g_dir_open
    - fu_strjoin
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_device_save_event
    - g_strsplit
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - g_strdup
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_udev_device_list_sysfs(FuUdevDevice *self, GError **error)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1775,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1776,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1778,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1779,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1780,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1783,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1784,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1784,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1786,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1790,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1791,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1794,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1794,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1799,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1802,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1803,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1809,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1809,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1810,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1813,1
    - Dst: g_utf8_validate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1820,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1821,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1826,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1836,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1839,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - self
    - attr
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1840
    functionName: fu_udev_device_read_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 3
    functionsReached:
    - fu_device_event_get_str
    - fu_io_channel_read_byte_array
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_utf8_validate
    - fu_device_event_set_str
    - fu_device_get_context
    - fu_device_load_event
    - g_steal_pointer
    - g_build_filename
    - g_autoptr
    - fu_device_save_event
    - g_strdup_printf
    - fu_io_channel_new_file
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - g_set_error_literal
    - g_strdup
    - g_strndup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_read_sysfs(FuUdevDevice *self, const gchar *attr, guint timeout_ms,
      GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1866,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1867,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1869,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1869,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1870,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1871,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1874,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1875,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1875,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1877,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1881,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1881,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1882,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1882,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1885,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1890,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1890,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1893,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1894,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1900,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1900,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1901,1
    - Dst: fu_io_channel_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1905,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1911,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1914,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - self
    - attr
    - count
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gssize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1915
    functionName: fu_udev_device_read_sysfs_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_event_get_bytes
    - g_steal_pointer
    - g_build_filename
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_io_channel_new_file
    - fu_device_event_set_bytes
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - fu_device_load_event
    - g_set_error_literal
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_io_channel_read_bytes
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_udev_device_read_sysfs_bytes(FuUdevDevice *self,\n\t\t\t\tconst
      gchar *attr,\n\t\t\t\tgssize count,\n\t\t\t\tguint timeout_ms,\n\t\t\t\tGError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1941,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1943,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1943,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1946,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1949,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1950,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1950,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1952,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1956,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1957,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1962,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1963,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1969,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1969,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1970,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1976,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1977,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - self
    - attr
    - val
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1931
    functionDepth: 2
    functionLinenumber: 1931
    functionLinenumberEnd: 1983
    functionName: fu_udev_device_write_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_build_filename
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_io_channel_new_file
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - fu_device_load_event
    - g_set_error_literal
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write_sysfs(FuUdevDevice *self,\n\t\t\t   const
      gchar *attr,\n\t\t\t   const gchar *val,\n\t\t\t   guint timeout_ms,\n\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2011,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2011,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2012,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2014,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2017,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2017,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2018,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2018,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2018,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2020,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2021,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2025,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2025,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2026,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2026,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2031,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2032,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2038,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2038,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2039,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2045,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2045,1
    - Dst: fu_io_channel_write_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2046,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - self
    - attr
    - buf
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2051
    functionName: fu_udev_device_write_sysfs_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_io_channel_new_file
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - fu_device_load_event
    - g_set_error_literal
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_base64_encode
    - fu_io_channel_write_byte_array
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write_sysfs_byte_array(FuUdevDevice *self,\n\t\t\t\t
      \     const gchar *attr,\n\t\t\t\t      GByteArray *buf,\n\t\t\t\t      guint
      timeout_ms,\n\t\t\t\t      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2077,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2079,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2079,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2080,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2081,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2082,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2085,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2085,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2086,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2086,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2086,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2089,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2089,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2089,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2090,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2094,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2094,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2095,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2095,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2101,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2107,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2107,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2108,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2114,1
    - Dst: fu_io_channel_write_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - self
    - attr
    - blob
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GBytes*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2067
    functionDepth: 2
    functionLinenumber: 2067
    functionLinenumberEnd: 2120
    functionName: fu_udev_device_write_sysfs_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_device_save_event
    - g_bytes_get_size
    - g_strdup_printf
    - fu_device_get_context
    - fu_io_channel_new_file
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - fu_device_load_event
    - g_set_error_literal
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_base64_encode
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_bytes_get_data
    - fu_io_channel_write_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write_sysfs_bytes(FuUdevDevice *self,\n\t\t\t\t
      const gchar *attr,\n\t\t\t\t GBytes *blob,\n\t\t\t\t guint timeout_ms,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2136,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2138
    functionName: fu_udev_device_get_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_devtype(FuUdevDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2154,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2154,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2156,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2158
    functionName: fu_udev_device_get_subsystem_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_subsystem_devtype(FuUdevDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2164,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2165,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2165,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2166,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2169,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2170,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2171,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2172,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2174,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2174,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2175
    functionName: fu_udev_device_add_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - fu_udev_device_set_devtype
    - g_return_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - fu_udev_device_set_device_file
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_add_property(FuUdevDevice *self, const gchar *key,
      const gchar *value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2192,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2197,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2197,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2198,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2199,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2202,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2203,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2203,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2205,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2209,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2210,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2213,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2213,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2218,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2223,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2224,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2230,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2233,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2234,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2235,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2236,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2237,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2242,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2242,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2244,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2254,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2257,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2258
    functionName: fu_udev_device_read_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 5
    functionsReached:
    - g_hash_table_insert
    - g_auto
    - fu_device_event_get_str
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_set_error
    - fu_device_event_set_str
    - g_strstr_len
    - fu_device_get_context
    - fu_device_load_event
    - g_steal_pointer
    - fu_device_save_event
    - g_strsplit
    - g_strdup_printf
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    - g_strdup
    - g_hash_table_lookup
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_read_property(FuUdevDevice *self, const gchar *key, GError **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2263,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2264,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2265,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2268,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2269,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2270,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2270,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2272,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2274,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2276,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2278,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2280,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2281,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2282,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2282,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2283,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2284,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2284,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2288,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2289,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2291,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2292,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2293,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2293,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2297,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2299,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - device
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2260
    functionDepth: 2
    functionLinenumber: 2260
    functionLinenumberEnd: 2301
    functionName: fu_udev_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fwupd_codec_json_append
    - fwupd_codec_json_append_int
    - json_builder_begin_array
    - fu_device_get_vid
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_device_get_events
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_add_json(FuDevice *device, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2306,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2310,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2312,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2313,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2315,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2316,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2318,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2319,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2321,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2322,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2324,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2325,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2327,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2328,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2330,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2331,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2333,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2336,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2337,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2338,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2339,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2340,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2340,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2341,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2341,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - device
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2303
    functionDepth: 3
    functionLinenumber: 2303
    functionLinenumberEnd: 2349
    functionName: fu_udev_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_event
    - FWUPD_CODEC
    - fu_udev_device_set_device_file
    - fu_device_set_vid
    - fu_udev_device_set_devtype
    - fu_udev_device_set_bind_id
    - FU_UDEV_DEVICE
    - json_object_get_array_member
    - fu_device_set_backend_id
    - json_array_get_element
    - json_object_get_int_member_with_default
    - json_object_get_string_member_with_default
    - g_autoptr
    - fwupd_codec_from_json
    - fu_device_event_new
    - fu_udev_device_set_subsystem
    - fu_udev_device_set_driver
    - fu_device_set_pid
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_from_json(FuDevice *device, JsonObject *json_object,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2354,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2355,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2358,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2361,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2364,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2367,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2370,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2376
    functionName: fu_udev_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2381,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2384,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2384,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2387,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2387,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2390,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2390,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2393,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2393,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2396,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2396,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2402
    functionName: fu_udev_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_subsystem
    - fu_udev_device_set_driver
    - fu_udev_device_set_devtype
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_udev_device_set_bind_id
    - FU_UDEV_DEVICE
    - fu_udev_device_set_device_file
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2407,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2408,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2410,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2411,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2412,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2413,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2414,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2415,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2417,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2420
    functionName: fu_udev_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2425,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2426
    functionName: fu_udev_device_vid_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_vid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2431,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2432
    functionName: fu_udev_device_pid_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_pid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2437,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2438,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2439,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2440,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2441,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2443,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2445,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2449
    functionName: fu_udev_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - fu_device_set_acquiesce_delay
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_init(FuUdevDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2454,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2455,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2482,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2483,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2499,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2504,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2513,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2518,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2527,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2532,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2541,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2546,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2555,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUdevDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2561
    functionName: fu_udev_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - FU_DEVICE_CLASS
    - g_object_class_install_property
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_class_init(FuUdevDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sysfs_path
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2574
    functionDepth: 0
    functionLinenumber: 2574
    functionLinenumberEnd: 2578
    functionName: fu_udev_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 3
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuUdevDevice
    signature: 'FuUdevDevice *

      fu_udev_device_new(FuContext *ctx, const gchar *sysfs_path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: fu_sum8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_sum8(const guint8 *buf, gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:48,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:49,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:51,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:51,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: fu_sum8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - fu_sum8
    - g_bytes_get_data
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_sum8_bytes(GBytes *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: fu_sum16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_sum16(const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:88,1
    - Dst: fu_sum16
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:89,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:89,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: fu_sum16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_sum16_bytes(GBytes *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:110,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - bufsz
    - endian
    argTypes:
    - guint8*
    - gsize
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: fu_sum16w
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint16
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_sum16w(const guint8 *buf, gsize bufsz, FuEndianType endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:131,1
    - Dst: fu_sum16w
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:132,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:132,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - endian
    argTypes:
    - GBytes*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: fu_sum16w_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    - fu_sum16w
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_sum16w_bytes(GBytes *blob, FuEndianType endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: fu_sum32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_sum32(const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:169,1
    - Dst: fu_sum32
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:170,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:170,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: fu_sum32_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    - fu_sum32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_sum32_bytes(GBytes *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:191,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - bufsz
    - endian
    argTypes:
    - guint8*
    - gsize
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: fu_sum32w
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_sum32w(const guint8 *buf, gsize bufsz, FuEndianType endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:212,1
    - Dst: fu_sum32w
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:213,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:213,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - endian
    argTypes:
    - GBytes*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: fu_sum32w_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_return_val_if_fail
    - g_bytes_get_size
    - fu_sum32w
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_sum32w_bytes(GBytes *blob, FuEndianType endian)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 807
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:64,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:65,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:65,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:66,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:66,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:67,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:67,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:71,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:74,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:77,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:78,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:81,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:82,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:82,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:85,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:86,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:86,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:87,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:88,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:92,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:93,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:93,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:94,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: fu_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 6
    functionsReached:
    - g_hash_table_insert
    - FU_IS_BACKEND
    - FU_IS_DEVICE
    - g_object_ref
    - fu_device_get_backend_id
    - fu_device_get_created_usec
    - g_return_if_fail
    - fu_device_set_backend_id
    - g_hash_table_contains
    - g_signal_emit
    - g_thread_self
    - fu_device_set_backend
    - g_getenv
    - g_warning
    - g_get_real_time
    - fu_device_set_created_usec
    - GET_PRIVATE
    - fu_device_set_context
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_backend_device_added(FuBackend *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:110,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:111,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:111,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:112,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:112,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:113,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:113,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:114,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:115,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: fu_backend_device_removed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - g_signal_emit
    - fu_device_get_backend_id
    - g_thread_self
    - g_hash_table_remove
    - g_return_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_backend_device_removed(FuBackend *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:130,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:131,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:131,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:132,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:132,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:133,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:133,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: fu_backend_device_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_signal_emit
    - g_thread_self
    - g_return_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_backend_device_changed(FuBackend *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:150,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:151,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:151,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:152,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:152,1
    - Dst: FuBackendClass*::registered
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: fu_backend_registered
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FU_IS_BACKEND
    - FuBackendClass*::registered
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_backend_registered(FuBackend *self, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:178,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:179,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:183,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:187,1
    - Dst: FuBackendClass*::get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: fu_backend_get_device_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - G_OBJECT_TYPE_NAME
    - FU_IS_BACKEND
    - FuBackendClass*::get_device_parent
    - g_return_val_if_fail
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_backend_get_device_parent(FuBackend *self,\n\t\t\t
      \    FuDevice *device,\n\t\t\t     const gchar *subsystem,\n\t\t\t     GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:211,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:213,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:216,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:220,1
    - Dst: FuBackendClass*::create_device
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:223,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:226,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 230
    functionName: fu_backend_create_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_TYPE_NAME
    - g_set_error
    - g_steal_pointer
    - FuBackendClass*::create_device
    - FU_IS_BACKEND
    - g_autoptr
    - fu_device_set_backend
    - g_return_val_if_fail
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_backend_create_device(FuBackend *self, const gchar *backend_id, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:248,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:250,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:250,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:251,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:252,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:256,1
    - Dst: FuBackendClass*::create_device_for_donor
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:259,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:262,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - donor
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 266
    functionName: fu_backend_create_device_for_donor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_object_ref
    - g_steal_pointer
    - FU_IS_BACKEND
    - g_autoptr
    - fu_device_set_backend
    - g_return_val_if_fail
    - FuBackendClass*::create_device_for_donor
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_backend_create_device_for_donor(FuBackend *self, FuDevice *donor, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:290,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:291,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:293,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:293,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:294,1
    - Dst: FuBackendClass*::invalidate
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: fu_backend_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FuBackendClass*::invalidate
    - g_return_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_backend_invalidate(FuBackend *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:314,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:315,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:317,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:317,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:318,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:319,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:320,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:321,1
    - Dst: FuBackendClass*::to_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: fu_backend_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 1
    functionsReached:
    - G_OBJECT_TYPE_NAME
    - FuBackendClass*::to_string
    - fwupd_codec_string_append_bool
    - FU_BACKEND_GET_CLASS
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_backend_add_string(FuBackend *self, guint idt, GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:345,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:348,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:349,1
    - Dst: FuBackendClass*::setup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: fu_backend_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 4
    functionsReached:
    - FuBackendClass*::setup
    - FU_IS_BACKEND
    - GET_PRIVATE
    - g_return_val_if_fail
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_backend_setup(FuBackend *self, FuBackendSetupFlags flags,
      FuProgress *progress, GError **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:366,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:371,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:373,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:380,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:381,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:387,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:390,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:395,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:406,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:407,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:408,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:412,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:417,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:418,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:424,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:428,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:429,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:431,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:438,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:442,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:443,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:445,1
    - Dst: fu_device_from_json
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:446,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:448,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:449,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:458,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:458,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:462,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:463,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:464,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:466,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:467,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:468,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:469,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:471,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:472,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:474,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:475,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:476,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:477,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:478,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:483,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:484,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:485,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:486,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:486,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:491,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:492,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:494,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:499,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:502,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:503,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:504,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:504,1
    - Dst: fu_backend_create_device_for_donor
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:508,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:511,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:516,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:516,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:521,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 526
    functionName: fu_backend_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_add_event
    - fu_device_clear_events
    - fu_backend_create_device_for_donor
    - g_object_new
    - fu_device_has_flag
    - fu_backend_device_changed
    - g_propagate_error
    - fu_device_probe
    - fu_device_set_fwupd_version
    - FU_BACKEND
    - fu_backend_lookup_by_id
    - g_set_error
    - fu_device_from_json
    - g_debug
    - fu_device_get_backend_id
    - fu_device_get_created_usec
    - g_object_ref
    - g_ptr_array_index
    - fu_device_add_flag
    - json_object_get_array_member
    - fu_backend_get_devices
    - fu_device_get_name
    - g_type_from_name
    - json_array_get_element
    - g_steal_pointer
    - g_error_matches
    - JSON_NODE_HOLDS_OBJECT
    - fu_backend_device_removed
    - json_object_get_string_member_with_default
    - g_autoptr
    - json_node_get_object
    - fu_device_locker_new
    - g_ptr_array_new_with_free_func
    - fu_device_get_events
    - g_ptr_array_add
    - g_type_is_a
    - g_ptr_array_remove
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_backend_device_added
    - GET_PRIVATE
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_backend_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:531,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:532,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:533,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:536,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:537,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:538,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:541,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:542,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:544,1
    - Dst: fu_device_add_json
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:545,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:546,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 549
    functionName: fu_backend_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - json_builder_begin_array
    - json_builder_end_array
    - json_builder_begin_object
    - fu_device_add_json
    - fu_device_has_flag
    - FU_DEVICE
    - json_builder_set_member_name
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_get_values
    - FU_BACKEND
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_backend_add_json(FwupdCodec *codec, JsonBuilder *builder, FwupdCodecFlags
      flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:567,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:568,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:568,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:569,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:570,1
    - Dst: FuBackendClass*::coldplug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: fu_backend_coldplug
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 4
    functionsReached:
    - FuBackendClass*::coldplug
    - fu_backend_setup
    - FU_IS_BACKEND
    - g_return_val_if_fail
    - FU_BACKEND_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_backend_coldplug(FuBackend *self, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:590,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:591,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 593
    functionName: fu_backend_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_backend_get_name(FuBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: fu_backend_get_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 7
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_backend_get_context(FuBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:625,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:626,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: fu_backend_get_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_backend_get_enabled(FuBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:642,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:643,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - enabled
    argTypes:
    - FuBackend*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: fu_backend_set_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FU_IS_BACKEND
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_backend_set_enabled(FuBackend *self, gboolean enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:661,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:662,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:662,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:663,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: fu_backend_lookup_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 10
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_backend_lookup_by_id(FuBackend *self, const gchar *backend_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:672,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:672,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 673
    functionName: fu_backend_get_devices_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_backend_id
    linkageType: ''
    returnType: gint
    signature: gint fu_backend_get_devices_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:690,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:692,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:692,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:694,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:695,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:697,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:697,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:698,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 700
    functionName: fu_backend_get_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 6
    functionsReached:
    - g_object_ref
    - g_ptr_array_sort
    - g_steal_pointer
    - g_hash_table_get_values
    - FU_IS_BACKEND
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_backend_get_devices(FuBackend *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:705,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:706,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:709,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:712,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:715,1
    - Dst: g_value_set_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:718,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 724
    functionName: fu_backend_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_value_set_gtype
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - g_value_set_string
    - GET_PRIVATE
    - FU_BACKEND
    - g_value_set_boolean
    linkageType: ''
    returnType: void
    signature: void fu_backend_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:729,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:730,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:733,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:736,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:739,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:739,1
    - Dst: g_value_get_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:742,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:745,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 748
    functionName: fu_backend_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_value_get_gtype
    - g_value_get_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_dup_string
    - g_set_object
    - GET_PRIVATE
    - g_value_get_object
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_backend_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 755
    functionName: fu_backend_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_backend_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:760,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:763,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 766
    functionName: fu_backend_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - GET_PRIVATE
    - g_thread_self
    linkageType: ''
    returnType: void
    signature: void fu_backend_init(FuBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:771,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:772,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:773,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:774,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: fu_backend_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_BACKEND
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_backend_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:781,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:782,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:783,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:784,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: fu_backend_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_hash_table_unref
    - GET_PRIVATE
    - g_free
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:791,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:807,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:812,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:822,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:827,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:837,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:842,1
    - Dst: g_param_spec_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:851,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:856,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:867,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:868,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:886,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:887,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:905,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 915
    functionName: fu_backend_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_gtype
    - g_object_class_install_property
    - g_param_spec_boolean
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fu_backend_class_init(FuBackendClass *klass)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:42,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:46,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:50,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:50,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:54,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:54,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:60,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:71,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:71,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:72,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:72,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:73,1
    - Dst: fu_udev_device_parse_number
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:75,1
    - Dst: fu_udev_device_set_number
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:77,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:77,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:78,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:83,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:83,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:84,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:84,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:85,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:85,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:85,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:90,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:103,1
    - Dst: fu_udev_device_set_number
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:109,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:109,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:110,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:111,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:111,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:115,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:117,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:117,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:119,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:120,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:121,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 134
    functionName: fu_i2c_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_udev_device_set_physical_id
    - fu_strsplit
    - strlen
    - fu_udev_device_parse_number
    - fu_udev_device_set_number
    - fu_udev_device_get_sysfs_path
    - fu_device_build_instance_id_full
    - fu_udev_device_set_device_file
    - g_set_error
    - FU_DEVICE_CLASS
    - fu_udev_device_get_subsystem
    - fu_device_get_context
    - g_ptr_array_index
    - FU_UDEV_DEVICE
    - fu_device_add_instance_strsafe
    - fu_udev_device_get_device_file
    - FU_I2C_DEVICE
    - g_autoptr
    - fu_context_get_hwid_guids
    - fu_strtoull
    - fu_device_get_backend_parent_with_subsystem
    - g_str_has_prefix
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_udev_device_get_number
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_i2c_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:153,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:153,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:153,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:155,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - address
    - force
    - error
    argTypes:
    - FuI2cDevice*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: fu_i2c_device_set_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - g_prefix_error
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_i2c_device_set_address(FuI2cDevice *self, guint8 address,
      gboolean force, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:194,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuI2cDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: fu_i2c_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_pwrite
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_i2c_device_write(FuI2cDevice *self, const guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuI2cDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: fu_i2c_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_pread
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_i2c_device_read(FuI2cDevice *self, guint8 *buf, gsize bufsz,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:219,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: fu_i2c_device_register_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag_safe
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_i2c_device_register_flags(FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:226,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:226,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:227,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuI2cDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: fu_i2c_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_i2c_device_init(FuI2cDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuI2cDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: fu_i2c_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_i2c_device_class_init(FuI2cDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:65,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:66,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:67,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:68,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:70,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:71,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:71,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: fu_composite_input_stream_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_add_string
    - FU_COMPOSITE_INPUT_STREAM
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_add_string(FwupdCodec *codec, guint
      idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: fu_composite_input_stream_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_codec_iface_init(FwupdCodecInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:85,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuCompositeInputStreamItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: fu_composite_input_stream_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_item_free(FuCompositeInputStreamItem
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:102,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:104,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:104,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:105,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:107,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:108,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:108,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:109,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - FuCompositeInputStream*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: fu_composite_input_stream_add_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 3
    functionsReached:
    - g_bytes_get_size
    - g_return_if_fail
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_autoptr
    - FU_PARTIAL_INPUT_STREAM
    - g_memory_input_stream_new_from_bytes
    - fu_composite_input_stream_add_partial_stream
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_add_bytes(FuCompositeInputStream *self,
      GBytes *bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:128,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:128,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:129,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:129,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:130,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:130,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:130,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:135,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:137,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:138,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:142,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:143,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:146,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:147,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - partial_stream
    argTypes:
    - FuCompositeInputStream*
    - FuPartialInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: fu_composite_input_stream_add_partial_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 4
    functionsReached:
    - g_object_ref
    - g_debug
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_new0
    - G_INPUT_STREAM
    - g_return_if_fail
    - g_ptr_array_index
    - FU_IS_COMPOSITE_INPUT_STREAM
    - fu_partial_input_stream_get_size
    - FU_PARTIAL_INPUT_STREAM
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fu_composite_input_stream_add_partial_stream(FuCompositeInputStream
      *self,\n\t\t\t\t\t     FuPartialInputStream *partial_stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:170,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:170,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:171,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:172,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:173,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:176,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:178,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:181,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuCompositeInputStream*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: fu_composite_input_stream_add_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_prefix_error
    - G_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_autoptr
    - FU_PARTIAL_INPUT_STREAM
    - g_return_val_if_fail
    - fu_composite_input_stream_add_partial_stream
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_composite_input_stream_add_stream(FuCompositeInputStream
      *self,\n\t\t\t\t     GInputStream *stream,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:191,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: fu_composite_input_stream_tell
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - FU_COMPOSITE_INPUT_STREAM
    - g_return_val_if_fail
    - FU_IS_COMPOSITE_INPUT_STREAM
    linkageType: ''
    returnType: goffset
    signature: goffset fu_composite_input_stream_tell(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: fu_composite_input_stream_can_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_composite_input_stream_can_seek(GSeekable *seekable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:207,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuCompositeInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: fu_composite_input_stream_get_item_for_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_partial_input_stream_get_size
    - g_set_error
    linkageType: ''
    returnType: FuCompositeInputStreamItem
    signature: "FuCompositeInputStreamItem *\nfu_composite_input_stream_get_item_for_offset(FuCompositeInputStream
      *self,\n\t\t\t\t\t      gsize offset,\n\t\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:229,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - seekable
    - offset
    - type
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GSeekType
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: fu_composite_input_stream_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - FU_COMPOSITE_INPUT_STREAM
    - g_return_val_if_fail
    - FU_IS_COMPOSITE_INPUT_STREAM
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_composite_input_stream_seek(GSeekable *seekable,\n\t\t\t
      \      goffset offset,\n\t\t\t       GSeekType type,\n\t\t\t       GCancellable
      *cancellable,\n\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: fu_composite_input_stream_can_truncate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_composite_input_stream_can_truncate(GSeekable *seekable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seekable
    - offset
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: fu_composite_input_stream_truncate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_composite_input_stream_truncate(GSeekable *seekable,\n\t\t\t\t
      \  goffset offset,\n\t\t\t\t   GCancellable *cancellable,\n\t\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - GSeekableIface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: fu_composite_input_stream_seekable_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_seekable_iface_init(GSeekableIface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:287,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: fu_composite_input_stream_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 4
    functionsReached:
    - G_INPUT_STREAM
    - g_object_new
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_composite_input_stream_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:297,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:301,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:302,1
    - Dst: fu_composite_input_stream_get_item_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:305,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:309,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:309,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:317,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - stream
    - buffer
    - count
    - cancellable
    - error
    argTypes:
    - GInputStream*
    - void*
    - gsize
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 329
    functionName: fu_composite_input_stream_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - G_SEEKABLE
    - g_seekable_seek
    - G_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - fu_composite_input_stream_get_item_for_offset
    - FU_COMPOSITE_INPUT_STREAM
    - g_return_val_if_fail
    linkageType: ''
    returnType: gssize
    signature: "gssize fu_composite_input_stream_read(GInputStream *stream,\n\t\t\t
      \      void *buffer,\n\t\t\t       gsize count,\n\t\t\t       GCancellable *cancellable,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:334,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:335,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: fu_composite_input_stream_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - FU_COMPOSITE_INPUT_STREAM
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:342,1
    - Dst: G_INPUT_STREAM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCompositeInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: fu_composite_input_stream_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - G_INPUT_STREAM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_class_init(FuCompositeInputStreamClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCompositeInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: fu_composite_input_stream_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_init(FuCompositeInputStream *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:42,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:51,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:52,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - data
    - datasz
    - offset
    - value
    - error
    argTypes:
    - gchar*
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 59
    functionName: fu_firmware_strparse_uint4_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_strsafe
    - fu_memcpy_safe
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_strparse_uint4_safe(const gchar *data,\n\t\t\t\tgsize
      datasz,\n\t\t\t\tgsize offset,\n\t\t\t\tguint8 *value,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:85,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:94,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:95,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - data
    - datasz
    - offset
    - value
    - error
    argTypes:
    - gchar*
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: fu_firmware_strparse_uint8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 4
    functionsReached:
    - g_prefix_error
    - fu_strsafe
    - fu_memcpy_safe
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_strparse_uint8_safe(const gchar *data,\n\t\t\t\tgsize
      datasz,\n\t\t\t\tgsize offset,\n\t\t\t\tguint8 *value,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:128,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:137,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:138,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - data
    - datasz
    - offset
    - value
    - error
    argTypes:
    - gchar*
    - gsize
    - gsize
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 145
    functionName: fu_firmware_strparse_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 2
    functionsReached:
    - g_prefix_error
    - fu_strsafe
    - fu_memcpy_safe
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_strparse_uint16_safe(const gchar *data,\n\t\t\t\t
      gsize datasz,\n\t\t\t\t gsize offset,\n\t\t\t\t guint16 *value,\n\t\t\t\t GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:171,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:180,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:181,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - data
    - datasz
    - offset
    - value
    - error
    argTypes:
    - gchar*
    - gsize
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 188
    functionName: fu_firmware_strparse_uint24_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_strsafe
    - fu_memcpy_safe
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_strparse_uint24_safe(const gchar *data,\n\t\t\t\t
      gsize datasz,\n\t\t\t\t gsize offset,\n\t\t\t\t guint32 *value,\n\t\t\t\t GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:214,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:223,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - data
    - datasz
    - offset
    - value
    - error
    argTypes:
    - gchar*
    - gsize
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 231
    functionName: fu_firmware_strparse_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_strsafe
    - fu_memcpy_safe
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_strparse_uint32_safe(const gchar *data,\n\t\t\t\t
      gsize datasz,\n\t\t\t\t gsize offset,\n\t\t\t\t guint32 *value,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 826
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:56,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSrecFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: fu_srec_firmware_get_records
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_SREC_FIRMWARE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_srec_firmware_get_records(FuSrecFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:72,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:73,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr_min
    argTypes:
    - FuSrecFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fu_srec_firmware_set_addr_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_SREC_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_set_addr_min(FuSrecFirmware *self, guint32 addr_min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:89,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:90,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr_max
    argTypes:
    - FuSrecFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: fu_srec_firmware_set_addr_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_SREC_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_set_addr_max(FuSrecFirmware *self, guint32 addr_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:97,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuSrecFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: fu_srec_firmware_record_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_record_free(FuSrecFirmwareRecord *rcd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:121,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ln
    - kind
    - addr
    argTypes:
    - guint
    - FuFirmareSrecRecordKind
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: fu_srec_firmware_record_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_byte_array_new
    linkageType: ''
    returnType: FuSrecFirmwareRecord
    signature: 'FuSrecFirmwareRecord *

      fu_srec_firmware_record_new(guint ln, FuFirmareSrecRecordKind kind, guint32
      addr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:133,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:134,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuSrecFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: fu_srec_firmware_record_dup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_srec_firmware_record_new
    - g_byte_array_ref
    linkageType: ''
    returnType: FuSrecFirmwareRecord
    signature: 'FuSrecFirmwareRecord *

      fu_srec_firmware_record_dup(const FuSrecFirmwareRecord *rcd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_boxed_type_register_static
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: fu_srec_firmware_record_get_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_boxed_type_register_static
    linkageType: ''
    returnType: GType
    signature: GType fu_srec_firmware_record_get_type(void)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:172,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:182,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:190,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:191,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:209,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:219,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:222,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:239,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:302,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:314,1
    - Dst: fu_firmware_strparse_uint24_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:323,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:331,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:347,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:356,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:360,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:366,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:369,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:369,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 371
    functionName: fu_srec_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_set_error
    - g_debug
    - strlen
    - fu_firmware_strparse_uint32_safe
    - fu_byte_array_append_uint8
    - g_steal_pointer
    - g_assert_not_reached
    - fu_srec_firmware_record_new
    - fu_firmware_strparse_uint8_safe
    - g_set_error_literal
    - GET_PRIVATE
    - fu_firmware_strparse_uint16_safe
    - g_autoptr
    - fu_firmware_strparse_uint24_safe
    - fu_strsafe
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_srec_firmware_tokenize_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:379,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 395
    functionName: fu_srec_firmware_tokenize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_strsplit_stream
    - FU_SREC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_srec_firmware_tokenize(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:403,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:410,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:410,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:418,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:418,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:422,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:433,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:435,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:438,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:446,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:465,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:475,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:485,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:491,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:501,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:511,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:516,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:520,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:525,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:539,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:540,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:541,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 543
    functionName: fu_srec_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - g_string_new
    - g_debug
    - fu_byte_array_append_uint8
    - fu_firmware_set_bytes
    - g_string_append_c
    - fu_firmware_set_addr
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - g_bytes_new
    - g_byte_array_append
    - g_ascii_isgraph
    - g_byte_array_new
    - FU_SREC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_srec_firmware_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:553,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:553,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:559,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:563,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:564,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:567,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:579,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:580,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:582,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:584,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:585,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - str
    - kind
    - addr
    - buf
    - bufsz
    argTypes:
    - GString*
    - FuFirmareSrecRecordKind
    - guint32
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 586
    functionName: fu_srec_firmware_write_line
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_byte_array_remove_index
    - fu_byte_array_append_uint16
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: void
    signature: "void fu_srec_firmware_write_line(GString *str,\n\t\t\t    FuFirmareSrecRecordKind
      kind,\n\t\t\t    guint32 addr,\n\t\t\t    const guint8 *buf,\n\t\t\t    gsize
      bufsz)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:591,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:592,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:592,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:593,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:594,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:595,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:601,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:604,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:610,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:615,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:623,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:624,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:625,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:628,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:629,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:632,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:635,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:637,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:638,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:639,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:642,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:644,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:644,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:648,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:651,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 653
    functionName: fu_srec_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - g_string_new
    - fu_chunk_array_length
    - strlen
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - g_bytes_get_size
    - g_byte_array_append
    - fu_firmware_get_addr
    - fu_srec_firmware_write_line
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - g_byte_array_new
    - fu_firmware_get_id
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_srec_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:658,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:659,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:660,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 662
    functionName: fu_srec_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_SREC_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:667,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:668,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:669,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSrecFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: fu_srec_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_init(FuSrecFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:675,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSrecFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: fu_srec_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_class_init(FuSrecFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:693,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: fu_srec_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_srec_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:38,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:40,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:41,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:42,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:44,1
    - Dst: g_file_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:45,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:46,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:47,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:51,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - filename
    - bytes
    - error
    argTypes:
    - gchar*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: fu_bytes_set_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 13
    functionsReached:
    - g_debug
    - g_file_set_contents
    - g_file_new_for_path
    - g_file_query_exists
    - g_file_get_parent
    - g_file_make_directory_with_parents
    - g_autoptr
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bytes_set_contents(const gchar *filename, GBytes *bytes,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:73,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:76,1
    - Dst: g_mapped_file_get_length
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:77,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:80,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:84,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:89,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:91,1
    - Dst: g_mapped_file_get_length
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:93,1
    - Dst: g_mapped_file_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 95
    functionName: fu_bytes_get_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 12
    functionsReached:
    - g_file_get_contents
    - g_debug
    - g_bytes_new_take
    - g_mapped_file_new
    - g_mapped_file_get_bytes
    - g_autoptr
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_mapped_file_get_length
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bytes_get_contents(const gchar *filename, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:116,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:117,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:120,1
    - Dst: g_malloc
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:123,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:124,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:125,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:126,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:127,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - bytes
    - blksz
    - padval
    argTypes:
    - GBytes*
    - gsize
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: fu_bytes_align
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 0
    functionsReached:
    - g_debug
    - memcpy
    - g_bytes_new_take
    - g_malloc
    - g_bytes_ref
    - memset
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bytes_align(GBytes *bytes, gsize blksz, gchar padval)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: fu_bytes_is_empty
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bytes_is_empty(GBytes *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:178,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:180,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:181,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:182,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bytes1
    - bytes2
    - error
    argTypes:
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: fu_bytes_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_memcmp_safe
    - g_bytes_get_data
    - MAX
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bytes_compare(GBytes *bytes1, GBytes *bytes2, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:202,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:203,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:206,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:208,1
    - Dst: g_malloc
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:209,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:211,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:212,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:213,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bytes
    - sz
    - data
    argTypes:
    - GBytes*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 218
    functionName: fu_bytes_pad
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 2
    functionsReached:
    - memcpy
    - g_bytes_new_take
    - g_bytes_get_size
    - g_malloc
    - g_bytes_ref
    - memset
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bytes_pad(GBytes *bytes, gsize sz, guint8 data)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:237,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:240,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:241,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:244,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:245,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:252,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - bytes
    - offset
    - length
    - error
    argTypes:
    - GBytes*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 256
    functionName: fu_bytes_new_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_bytes_get_size
    - g_bytes_ref
    - g_return_val_if_fail
    - g_bytes_new_from_bytes
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bytes_new_offset(GBytes *bytes, gsize offset, gsize length, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:279,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bytes
    - bufsz
    - error
    argTypes:
    - GBytes*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: fu_bytes_get_data_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_bytes_get_data
    linkageType: ''
    returnType: guint8
    signature: 'guint8 *

      fu_bytes_get_data_safe(GBytes *bytes, gsize *bufsz, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:302,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:304,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:306,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:308,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:309,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: fu_bytes_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 2
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_autoptr
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bytes_to_string(GBytes *bytes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:329,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:331,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:334,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: fu_bytes_from_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - g_steal_pointer
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_free_to_bytes
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bytes_from_string(const gchar *str, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:49,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuChunk*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: fu_chunk_set_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    functionsReached:
    - FU_IS_CHUNK
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_idx(FuChunk *self, guint idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:66,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_chunk_get_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: guint
    signature: guint fu_chunk_get_idx(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:82,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - page
    argTypes:
    - FuChunk*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: fu_chunk_set_page
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - FU_IS_CHUNK
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_page(FuChunk *self, guint page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:99,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: fu_chunk_get_page
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: guint
    signature: guint fu_chunk_get_page(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:115,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - address
    argTypes:
    - FuChunk*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: fu_chunk_set_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    functionsReached:
    - FU_IS_CHUNK
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_address(FuChunk *self, gsize address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:132,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: fu_chunk_get_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: gsize
    signature: gsize fu_chunk_get_address(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:149,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fu_chunk_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: guint8
    signature: 'guint8 *

      fu_chunk_get_data(FuChunk *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:171,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:171,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: fu_chunk_get_data_out
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_CHUNK
    linkageType: ''
    returnType: guint8
    signature: 'guint8 *

      fu_chunk_get_data_out(FuChunk *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:194,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: fu_chunk_get_data_sz
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: gsize
    signature: gsize fu_chunk_get_data_sz(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:202,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data_sz
    argTypes:
    - FuChunk*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: fu_chunk_set_data_sz
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - FU_IS_CHUNK
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_data_sz(FuChunk *self, gsize data_sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:218,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:218,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:225,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:229,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:230,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - FuChunk*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: fu_chunk_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - FU_IS_CHUNK
    - g_bytes_get_size
    - g_return_if_fail
    - g_bytes_ref
    - g_bytes_get_data
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_bytes(FuChunk *self, GBytes *bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:248,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:248,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:250,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: fu_chunk_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK
    - g_bytes_new_static
    - g_bytes_ref
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_chunk_get_bytes(FuChunk *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - idx
    - page
    - address
    - data
    - data_sz
    argTypes:
    - guint
    - guint
    - gsize
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: fu_chunk_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_chunk_new(guint idx, guint page, gsize address, const guint8 *data, gsize
      data_sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:293,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: fu_chunk_bytes_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 4
    functionsReached:
    - fu_chunk_set_bytes
    - g_object_new
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_chunk_bytes_new(GBytes *bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:301,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:302,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:303,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:306,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:308,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:311,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:314,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - flags
    - bn
    argTypes:
    - FuChunk*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 318
    functionName: fu_chunk_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    - MIN
    - fu_memstrsafe
    - fu_xmlb_builder_insert_kx
    - g_base64_encode
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: void
    signature: void fu_chunk_export(FuChunk *self, FuFirmwareExportFlags flags, XbBuilderNode
      *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:333,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:333,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:334,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: fu_chunk_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_export
    - fu_chunk_export
    - xb_builder_node_new
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_chunk_to_string(FuChunk *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:355,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:355,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:358,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:358,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:359,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 366
    functionName: fu_chunk_array_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - fu_chunk_export
    - xb_builder_node_new
    - xb_builder_node_export
    - g_ptr_array_index
    - g_autoptr
    - xb_builder_node_insert
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_chunk_array_to_string(GPtrArray *chunks)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:392,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:393,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:395,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - data
    - data_sz
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: fu_chunk_array_mutable_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - g_ptr_array_index
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_chunk_array_mutable_new(guint8 *data,\n\t\t\t   gsize
      data_sz,\n\t\t\t   gsize addr_offset,\n\t\t\t   gsize page_sz,\n\t\t\t   gsize
      packet_sz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:427,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:430,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:433,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:445,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:446,1
    - Dst: fu_chunk_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:448,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - data
    - data_sz
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 461
    functionName: fu_chunk_array_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 2
    functionsReached:
    - g_warning
    - MIN
    - fu_chunk_new
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_chunk_array_new(const guint8 *data,\n\t\t   gsize
      data_sz,\n\t\t   gsize addr_offset,\n\t\t   gsize page_sz,\n\t\t   gsize packet_sz)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:470,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:471,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:472,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:475,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:478,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:481,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:484,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:488,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:489,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:489,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:490,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:491,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:493,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:494,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuChunk*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 500
    functionName: fu_chunk_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - xb_node_query_text_as_uint
    - g_base64_decode
    - xb_node_get_text
    - XB_IS_NODE
    - g_autoptr
    - g_bytes_new
    - xb_node_query_first
    - g_return_val_if_fail
    - FU_IS_CHUNK
    - fu_chunk_set_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_chunk_build(FuChunk *self, XbNode *n, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:505,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:507,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: fu_chunk_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_CHUNK
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_chunk_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuChunkClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: fu_chunk_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_chunk_class_init(FuChunkClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: fu_chunk_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_chunk_init(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 833
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:33,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:34,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:36,1
    - Dst: fu_efi_signature_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:36,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:41,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:41,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:43,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: fu_efi_signature_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - fu_efi_signature_kind_to_string
    - fu_bytes_to_string
    - GET_PRIVATE
    - g_autoptr
    - FU_EFI_SIGNATURE
    - fu_firmware_get_bytes
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:62,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:62,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:63,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FuEfiSignatureKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: fu_efi_signature_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - GET_PRIVATE
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuEfiSignature
    signature: 'FuEfiSignature *

      fu_efi_signature_new(FuEfiSignatureKind kind)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:81,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:82,1
    - Dst: FU_IS_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: fu_efi_signature_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_SIGNATURE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuEfiSignatureKind
    signature: FuEfiSignatureKind fu_efi_signature_get_kind(FuEfiSignature *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:90,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:91,1
    - Dst: FU_IS_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuEfiSignature*
    - FuEfiSignatureKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_efi_signature_set_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_SIGNATURE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_set_kind(FuEfiSignature *self, FuEfiSignatureKind
      kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:109,1
    - Dst: FU_IS_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: fu_efi_signature_get_owner
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_SIGNATURE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_signature_get_owner(FuEfiSignature *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:119,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:120,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:127,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:143,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:146,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:149,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:155,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 162
    functionName: fu_efi_signature_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - g_prefix_error
    - fwupd_guid_to_string
    - GET_PRIVATE
    - g_autoptr
    - FU_EFI_SIGNATURE
    - fu_input_stream_read_bytes
    - fu_firmware_set_bytes
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_signature_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:167,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:170,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:171,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:175,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:181,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:184,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:187,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 191
    functionName: fu_efi_signature_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - GET_PRIVATE
    - g_autoptr
    - FU_EFI_SIGNATURE
    - g_byte_array_append
    - g_byte_array_new
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_signature_write(FuFirmware *firmware, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:196,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:197,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:201,1
    - Dst: fu_efi_signature_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:203,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:205,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:213,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:216,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:219,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:220,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:224,1
    - Dst: fu_bytes_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:225,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 233
    functionName: fu_efi_signature_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_firmware_set_bytes
    - GET_PRIVATE
    - g_free
    - g_strdup
    - g_autoptr
    - FU_EFI_SIGNATURE
    - xb_node_query_text
    - fu_efi_signature_kind_from_string
    - fu_bytes_from_string
    - fwupd_guid_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_signature_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:238,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:240,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:240,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:246,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: fu_efi_signature_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes_with_patches
    - fu_bytes_to_string
    - GET_PRIVATE
    - g_compute_checksum_for_bytes
    - g_autoptr
    - FU_EFI_SIGNATURE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_signature_get_checksum(FuFirmware *firmware, GChecksumType csum_kind,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:255,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:256,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:257,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: fu_efi_signature_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - FU_EFI_SIGNATURE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:264,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiSignatureClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: fu_efi_signature_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_class_init(FuEfiSignatureClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: fu_efi_signature_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_init(FuEfiSignature *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:34,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:34,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:36,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:40,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:45,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:49,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:52,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:57,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:59,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:61,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:63,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:65,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:67,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:69,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:74,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:78,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:79,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:81,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:86,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:88,1
    - Dst: g_log
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:91,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 6
    argNames:
    - log_domain
    - title
    - data
    - len
    - columns
    - flags
    argTypes:
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint
    - FuDumpFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 92
    functionName: fu_dump_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dump.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_log
    - g_return_if_fail
    - g_ascii_isprint
    - g_autoptr
    - g_getenv
    - g_string_append
    linkageType: ''
    returnType: void
    signature: "void fu_dump_full(const gchar *log_domain,\n\t     const gchar *title,\n\t
      \    const guint8 *data,\n\t     gsize len,\n\t     guint columns,\n\t     FuDumpFlags
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_full
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - log_domain
    - title
    - data
    - len
    argTypes:
    - gchar*
    - gchar*
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: fu_dump_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dump.c
    functionUses: 7
    functionsReached:
    - fu_dump_full
    linkageType: ''
    returnType: void
    signature: void fu_dump_raw(const gchar *log_domain, const gchar *title, const
      guint8 *data, gsize len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:128,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-dump.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - log_domain
    - title
    - bytes
    argTypes:
    - gchar*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fu_dump_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dump.c
    functionUses: 1
    functionsReached:
    - fu_dump_raw
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void fu_dump_bytes(const gchar *log_domain, const gchar *title, GBytes
      *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 844
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:37,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: fu_pci_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_PCI_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:48,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:56,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: fu_pci_device_ensure_subsys_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - GET_PRIVATE
    - g_strdup_printf
    - fu_device_add_instance_str
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_ensure_subsys_instance_id(FuPciDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:72,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:73,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:73,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem_vid
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: fu_pci_device_set_subsystem_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_pci_device_ensure_subsys_instance_id
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_set_subsystem_vid(FuPciDevice *self, guint16 subsystem_vid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:93,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:94,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: fu_pci_device_get_subsystem_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_pci_device_get_subsystem_vid(FuPciDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:110,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:111,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:111,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem_pid
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: fu_pci_device_set_subsystem_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_pci_device_ensure_subsys_instance_id
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_set_subsystem_pid(FuPciDevice *self, guint16 subsystem_pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:132,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: fu_pci_device_get_subsystem_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_pci_device_get_subsystem_pid(FuPciDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:148,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:149,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:149,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - revision
    argTypes:
    - FuPciDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: fu_pci_device_set_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_u8
    - g_return_if_fail
    - FU_DEVICE
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_set_revision(FuPciDevice *self, guint8 revision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:167,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:168,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: fu_pci_device_get_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_pci_device_get_revision(FuPciDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:175,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:176,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:177,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:178,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:180,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:180,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:181,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:181,1
    - Dst: fu_pci_device_set_subsystem_vid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:186,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:186,1
    - Dst: fu_pci_device_set_subsystem_pid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:188,1
    - Dst: fu_pci_device_get_subsystem_pid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:188,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:190,1
    - Dst: fu_pci_device_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: fu_pci_device_to_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_pci_device_set_subsystem_vid
    - fu_pci_device_get_revision
    - FU_PCI_DEVICE
    - fu_pci_device_set_revision
    - g_return_if_fail
    - fu_pci_device_set_subsystem_pid
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    - fu_pci_device_get_subsystem_vid
    - fu_pci_device_get_subsystem_pid
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_to_incorporate(FuDevice *self, FuDevice *donor)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:196,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:197,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:207,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:211,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:211,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:211,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:214,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:220,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:221,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:227,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:237,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:240,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:240,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:245,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:246,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:251,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:251,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:257,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:259,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:261,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:262,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:264,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:265,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:266,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:269,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:271,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:273,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:287,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:287,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:293,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:302,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:302,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:308,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:318,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:328,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:330,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:345,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:345,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:348,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:349,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:352,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 354
    functionName: fu_pci_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_read_property
    - fu_device_build_instance_id_full
    - fu_pci_device_ensure_subsys_instance_id
    - fu_device_set_version
    - fu_device_get_version
    - FU_DEVICE_CLASS
    - fu_udev_device_get_subsystem
    - FU_PCI_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_physical_id
    - fu_pci_device_set_revision
    - g_ascii_strup
    - g_autoptr
    - fu_strtoull
    - g_warning
    - fu_device_set_version_format
    - fu_device_get_version_format
    - g_strdup_printf
    - fu_device_has_private_flag
    - GET_PRIVATE
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pci_device_probe(FuDevice *device, GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:360,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:365,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:373,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:378,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:386,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:391,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:399,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:404,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:412,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:417,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:425,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:430,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:438,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:443,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:451,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:459,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:467,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:472,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:480,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:488,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:496,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:496,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:501,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:509,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:517,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:525,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:530,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:538,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:546,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:551,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:551,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:559,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:559,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 88
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 566
    functionName: fu_pci_device_set_quirks_fallback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_quirk_kv
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_set_quirks_fallback(FuPciDevice *self, guint16 base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:571,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:572,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:575,1
    - Dst: fu_pci_device_set_quirks_fallback
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: fu_pci_device_probe_complete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_PCI_DEVICE
    - fu_pci_device_set_quirks_fallback
    - GET_PRIVATE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_probe_complete(FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: fu_pci_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_init(FuPciDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: fu_pci_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_class_init(FuPciDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:57,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIOChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fu_io_channel_unix_get_fd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 4
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_return_val_if_fail
    linkageType: ''
    returnType: gint
    signature: gint fu_io_channel_unix_get_fd(FuIOChannel *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:75,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:75,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:76,1
    - Dst: g_close
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIOChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: fu_io_channel_shutdown
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_return_val_if_fail
    - g_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_io_channel_shutdown(FuIOChannel *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:101,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:101,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:105,1
    - Dst: lseek
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:112,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:115,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:121,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuIOChannel*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 128
    functionName: fu_io_channel_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_set_error
    - g_set_error_literal
    - fwupd_strerror
    - lseek
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_io_error_from_errno
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_io_channel_seek(FuIOChannel *self, gsize offset, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_poll
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:137,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIOChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: fu_io_channel_flush_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - read
    - g_poll
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_io_channel_flush_input(FuIOChannel *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:168,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - bytes
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - GBytes*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: fu_io_channel_write_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_bytes_get_data
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_io_channel_write_bytes(FuIOChannel *self,\n\t\t\t  GBytes
      *bytes,\n\t\t\t  guint timeout_ms,\n\t\t\t  FuIOChannelFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: fu_io_channel_write_stream_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_io_channel_write_stream_cb(const guint8 *buf, gsize bufsz,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:214,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:215,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:216,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - stream
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - GInputStream*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: fu_io_channel_write_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - FU_IS_IO_CHANNEL
    - g_return_val_if_fail
    - fu_input_stream_chunkify
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_io_channel_write_stream(FuIOChannel *self,\n\t\t\t   GInputStream
      *stream,\n\t\t\t   guint timeout_ms,\n\t\t\t   FuIOChannelFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - buf
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - GByteArray*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: fu_io_channel_write_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_io_channel_write_byte_array(FuIOChannel *self,\n\t\t\t
      \      GByteArray *buf,\n\t\t\t       guint timeout_ms,\n\t\t\t       FuIOChannelFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:269,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:269,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:270,1
    - Dst: fu_io_channel_flush_input
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:274,1
    - Dst: write
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:280,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:283,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:290,1
    - Dst: g_poll
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:311,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:315,1
    - Dst: write
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:325,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:328,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:332,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:339,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:345,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - self
    - data
    - datasz
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - guint8*
    - gsize
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 355
    functionName: fu_io_channel_write_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 6
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_set_error
    - g_debug
    - write
    - fu_io_channel_flush_input
    - fwupd_strerror
    - g_return_val_if_fail
    - g_poll
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_io_channel_write_raw(FuIOChannel *self,\n\t\t\tconst guint8
      *data,\n\t\t\tgsize datasz,\n\t\t\tguint timeout_ms,\n\t\t\tFuIOChannelFlags
      flags,\n\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:378,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:379,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - count
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - gssize
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: fu_io_channel_read_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - fu_io_channel_read_byte_array
    - g_bytes_new
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_io_channel_read_bytes(FuIOChannel *self,\n\t\t\t gssize
      count,\n\t\t\t guint timeout_ms,\n\t\t\t FuIOChannelFlags flags,\n\t\t\t GError
      **error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:410,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:411,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:411,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:413,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:413,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:416,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:416,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:421,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:423,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:426,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:432,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:433,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:440,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:442,1
    - Dst: g_poll
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:448,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:450,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:456,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:466,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:472,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:475,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:481,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:482,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:488,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:498,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:505,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:512,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:522,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:531,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 70
    argCount: 5
    argNames:
    - self
    - count
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - gssize
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 532
    functionName: fu_io_channel_read_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 2
    functionsReached:
    - FU_IS_IO_CHANNEL
    - g_set_error
    - read
    - g_steal_pointer
    - g_byte_array_append
    - fwupd_strerror
    - MIN
    - g_set_error_literal
    - g_autoptr
    - g_byte_array_set_size
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_byte_array_new
    - g_poll
    - g_io_error_from_errno
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_io_channel_read_byte_array(FuIOChannel *self,\n\t\t\t
      \     gssize count,\n\t\t\t      guint timeout_ms,\n\t\t\t      FuIOChannelFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:559,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:561,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:561,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:563,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:567,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - self
    - buf
    - bufsz
    - bytes_read
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuIOChannel*
    - guint8*
    - gsize
    - gsize*
    - guint
    - FuIOChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 571
    functionName: fu_io_channel_read_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - FU_IS_IO_CHANNEL
    - memcpy
    - fu_io_channel_read_byte_array
    - MIN
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_io_channel_read_raw(FuIOChannel *self,\n\t\t       guint8
      *buf,\n\t\t       gsize bufsz,\n\t\t       gsize *bytes_read,\n\t\t       guint
      timeout_ms,\n\t\t       FuIOChannelFlags flags,\n\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:576,1
    - Dst: g_close
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:578,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: fu_io_channel_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - g_close
    - FU_IO_CHANNEL
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_io_channel_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIOChannelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: fu_io_channel_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_io_channel_class_init(FuIOChannelClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIOChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: fu_io_channel_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_io_channel_init(FuIOChannel *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:609,1
    - Dst: FU_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: fu_io_channel_unix_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - FU_IO_CHANNEL
    - g_object_new
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_io_channel_unix_new(gint fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:633,1
    - Dst: g_open
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:651,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:653,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:656,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:662,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:663,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - open_flags
    - error
    argTypes:
    - gchar*
    - FuIoChannelOpenFlag
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 667
    functionName: fu_io_channel_new_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 7
    functionsReached:
    - g_set_error
    - g_open
    - fu_io_channel_unix_new
    - fwupd_strerror
    - g_return_val_if_fail
    - fwupd_error_convert
    - g_io_error_from_errno
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_io_channel_new_file(const gchar *filename, FuIoChannelOpenFlag open_flags,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:686,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:687,1
    - Dst: memfd_create
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:689,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:691,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:694,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:700,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:701,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:704,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 709
    functionName: fu_io_channel_virtual_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_io_channel_unix_new
    - fwupd_strerror
    - g_set_error_literal
    - g_return_val_if_fail
    - memfd_create
    - fwupd_error_convert
    - g_io_error_from_errno
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_io_channel_virtual_new(const gchar *name, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:37,1
    - Dst: FU_IS_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:41,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:41,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:41,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:41,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:42,1
    - Dst: fu_cab_image_set_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: fu_cab_image_get_win32_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 1
    functionsReached:
    - g_string_new
    - g_string_replace
    - FU_FIRMWARE
    - g_autoptr
    - FU_IS_CAB_IMAGE
    - fu_cab_image_set_win32_filename
    - g_return_val_if_fail
    - fu_firmware_get_id
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cab_image_get_win32_filename(FuCabImage *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:63,1
    - Dst: FU_IS_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:63,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:64,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - win32_filename
    argTypes:
    - FuCabImage*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_cab_image_set_win32_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 1
    functionsReached:
    - FU_IS_CAB_IMAGE
    - g_free
    - g_strdup
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_set_win32_filename(FuCabImage *self, const gchar
      *win32_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:81,1
    - Dst: FU_IS_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_cab_image_get_created
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CAB_IMAGE
    linkageType: ''
    returnType: GDateTime
    signature: 'GDateTime *

      fu_cab_image_get_created(FuCabImage *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:97,1
    - Dst: FU_IS_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:97,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:99,1
    - Dst: g_date_time_ref
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FuCabImage*
    - GDateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: fu_cab_image_set_created
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 1
    functionsReached:
    - FU_IS_CAB_IMAGE
    - g_date_time_ref
    - g_date_time_unref
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_set_created(FuCabImage *self, GDateTime *created)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:109,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:113,1
    - Dst: fu_cab_image_set_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:115,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:118,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:120,1
    - Dst: fu_cab_image_set_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: fu_cab_image_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - fu_cab_image_set_created
    - g_set_error
    - g_date_time_new_from_iso8601
    - FU_CAB_IMAGE
    - g_autoptr
    - fu_cab_image_set_win32_filename
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cab_image_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:137,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:138,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:140,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: fu_cab_image_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - FU_CAB_IMAGE
    - g_date_time_format_iso8601
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:148,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:149,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:151,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: fu_cab_image_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - FU_CAB_IMAGE
    - g_free
    - G_OBJECT_CLASS
    - g_date_time_unref
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:158,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: fu_cab_image_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_class_init(FuCabImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: fu_cab_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_init(FuCabImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: fu_cab_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 4
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCabImage
    signature: 'FuCabImage *

      fu_cab_image_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:45,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:46,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: fu_security_attrs_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_SECURITY_ATTRS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSecurityAttrsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: fu_security_attrs_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_class_init(FuSecurityAttrsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: fu_security_attrs_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_init(FuSecurityAttrs *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:75,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:75,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:76,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:76,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:77,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuSecurityAttrs*
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fu_security_attrs_append_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - FU_IS_SECURITY_ATTRS
    - g_return_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_append_internal(FuSecurityAttrs *self, FwupdSecurityAttr
      *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:93,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fu_security_attrs_is_valid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SECURITY_ATTRS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_security_attrs_is_valid(FuSecurityAttrs *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:109,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:109,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:110,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:110,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:113,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:114,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:114,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:118,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:120,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:122,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:123,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:124,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:124,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:126,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:128,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:129,1
    - Dst: fu_security_attrs_append_internal
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuSecurityAttrs*
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: fu_security_attrs_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 6
    functionsReached:
    - g_warning
    - FU_IS_SECURITY_ATTRS
    - g_str_has_prefix
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_get_url
    - g_strdup_printf
    - fu_security_attrs_append_internal
    - g_return_if_fail
    - fwupd_security_attr_set_url
    - fwupd_security_attr_get_appstream_id
    - FWUPD_IS_SECURITY_ATTR
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_append(FuSecurityAttrs *self, FwupdSecurityAttr
      *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:151,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:153,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:160,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:161,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:161,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - appstream_id
    - error
    argTypes:
    - FuSecurityAttrs*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: fu_security_attrs_get_by_appstream_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_set_error
    - FU_IS_SECURITY_ATTRS
    - g_ptr_array_index
    - g_set_error_literal
    - fwupd_security_attr_get_appstream_id
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: "FwupdSecurityAttr *\nfu_security_attrs_get_by_appstream_id(FuSecurityAttrs
      *self,\n\t\t\t\t      const gchar *appstream_id,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:183,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:183,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:185,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:187,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:188,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:190,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:192,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:192,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: fu_security_attrs_to_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - FU_IS_SECURITY_ATTRS
    - G_VARIANT_TYPE
    - g_variant_builder_init
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_to_variant
    - g_return_val_if_fail
    - g_variant_new
    - g_variant_builder_add_value
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fu_security_attrs_to_variant(FuSecurityAttrs *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:211,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:212,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:214,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:215,1
    - Dst: fu_security_attr_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:217,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:219,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:219,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuSecurityAttrs*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: fu_security_attrs_get_all
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 6
    functionsReached:
    - g_object_ref
    - FU_IS_SECURITY_ATTRS
    - g_steal_pointer
    - fwupd_security_attr_has_flag
    - fu_security_attr_check_fwupd_version
    - g_ptr_array_index
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_security_attrs_get_all(FuSecurityAttrs *self, const gchar *fwupd_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:235,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:235,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: fu_security_attrs_remove_all
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 4
    functionsReached:
    - g_ptr_array_set_size
    - FU_IS_SECURITY_ATTRS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_remove_all(FuSecurityAttrs *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:258,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:264,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:272,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:273,1
    - Dst: fu_security_attr_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:275,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:277,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:295,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:296,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:298,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:299,1
    - Dst: fu_security_attr_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:301,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:304,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:307,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:311,1
    - Dst: fwupd_security_attr_flag_to_suffix
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:313,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:318,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:325,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 39
    argCount: 3
    argNames:
    - self
    - fwupd_version
    - flags
    argTypes:
    - FuSecurityAttrs*
    - gchar*
    - FuSecurityAttrsFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 326
    functionName: fu_security_attrs_calculate_hsi
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - g_string_append_printf
    - fwupd_security_attr_get_flags
    - FU_IS_SECURITY_ATTRS
    - g_string_new
    - fwupd_security_attr_get_level
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_flag_to_suffix
    - g_string_free
    - fu_security_attr_check_fwupd_version
    - g_steal_pointer
    - g_ptr_array_index
    - g_autoptr
    - g_return_val_if_fail
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_security_attrs_calculate_hsi(FuSecurityAttrs *self,\n\t\t\t\tconst
      gchar *fwupd_version,\n\t\t\t\tFuSecurityAttrsFlags flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:331,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:334,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:334,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:337,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:338,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:339,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:340,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:341,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:343,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:347,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:348,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:348,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:350,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:350,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 353
    functionName: fu_security_attrs_get_sort_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fwupd_security_attr_get_level
    - fwupd_security_attr_has_flag
    - g_string_free
    - fwupd_security_attr_get_name
    - fwupd_security_attr_get_appstream_id
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attrs_get_sort_key(FwupdSecurityAttr *attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_security_attrs_get_sort_key
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:360,1
    - Dst: fu_security_attrs_get_sort_key
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:361,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: fu_security_attrs_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fu_security_attrs_get_sort_key
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_security_attrs_sort_cb(gconstpointer item1, gconstpointer item2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:414,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:417,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:421,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:425,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:426,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:427,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:433,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 435
    functionName: fu_security_attrs_ensure_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_security_attr_get_level
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_set_level
    - fwupd_security_attr_get_appstream_id
    - g_strcmp0
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_ensure_level(FwupdSecurityAttr *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:488,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:491,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:495,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:499,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:500,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:501,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 510
    functionName: fu_security_attrs_ensure_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_get_fwupd_version
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_get_appstream_id
    - g_strcmp0
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_ensure_fwupd_version(FwupdSecurityAttr *attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:527,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:527,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:531,1
    - Dst: fu_security_attrs_ensure_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:532,1
    - Dst: fu_security_attrs_ensure_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:533,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:538,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:539,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:540,1
    - Dst: fwupd_security_attr_get_obsoletes
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:541,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:544,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:545,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:546,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:549,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:550,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:556,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:558,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:561,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:565,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:567,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:569,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:574,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:579,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:581,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:582,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:583,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:588,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:597,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 598
    functionName: fu_security_attrs_depsolve
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - g_debug
    - FU_IS_SECURITY_ATTRS
    - fwupd_security_attr_add_flag
    - g_ptr_array_sort
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_add_obsolete
    - g_return_if_fail
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_has_obsolete
    - fwupd_security_attr_get_obsoletes
    - g_strcmp0
    - fu_security_attrs_ensure_level
    - fu_security_attrs_ensure_fwupd_version
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_depsolve(FuSecurityAttrs *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:603,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:604,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:606,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:607,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:608,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:610,1
    - Dst: fwupd_security_attr_get_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:611,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:612,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:614,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:615,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:616,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:616,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:617,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:618,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 621
    functionName: fu_security_attrs_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - fwupd_security_attr_get_created
    - fwupd_security_attr_has_flag
    - json_builder_begin_object
    - json_builder_end_array
    - FWUPD_CODEC
    - json_builder_end_object
    - g_ptr_array_index
    - fwupd_codec_to_json
    - json_builder_set_member_name
    - g_autoptr
    - fwupd_security_attr_set_created
    - fu_security_attrs_get_all
    - FU_SECURITY_ATTRS
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:626,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:631,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:632,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:638,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:641,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:642,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:648,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:649,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:651,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:651,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:652,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:652,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:654,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 661
    functionName: fu_security_attrs_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - json_array_get_element
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fu_security_attrs_append
    - fwupd_security_attr_new
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_array_member
    - json_node_get_object
    - g_autoptr
    - json_object_has_member
    - fwupd_codec_from_json
    - FU_SECURITY_ATTRS
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_security_attrs_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 668
    functionName: fu_security_attrs_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:687,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:688,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:689,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:690,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:690,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:691,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:692,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:694,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:694,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:695,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:695,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:699,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:700,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:701,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:705,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:706,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:707,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:714,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:715,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:715,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:717,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:717,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:718,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:718,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:725,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:727,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:727,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:729,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:729,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:730,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:731,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:733,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:734,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:734,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:742,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:743,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:743,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:748,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:749,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:750,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:750,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:751,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:751,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:752,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:754,1
    - Dst: fwupd_security_attr_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:755,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:755,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:756,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:756,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:761,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - attrs1
    - attrs2
    argTypes:
    - FuSecurityAttrs*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 762
    functionName: fu_security_attrs_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - g_hash_table_insert
    - fwupd_security_attr_set_result_fallback
    - fwupd_security_attr_get_flags
    - FU_IS_SECURITY_ATTRS
    - fwupd_security_attr_copy
    - g_steal_pointer
    - fwupd_security_attr_get_result
    - g_hash_table_new
    - g_hash_table_lookup
    - g_ptr_array_index
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_set_result
    - fwupd_security_attr_set_flags
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_security_attrs_get_all
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_security_attrs_compare(FuSecurityAttrs *attrs1, FuSecurityAttrs *attrs2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:779,1
    - Dst: fu_security_attrs_compare
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - attrs1
    - attrs2
    argTypes:
    - FuSecurityAttrs*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 781
    functionName: fu_security_attrs_equal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 2
    functionsReached:
    - fu_security_attrs_compare
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_security_attrs_equal(FuSecurityAttrs *attrs1, FuSecurityAttrs
      *attrs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: fu_security_attrs_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 8
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuSecurityAttrs
    signature: 'FuSecurityAttrs *

      fu_security_attrs_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: fu_plugin_get_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_plugin_get_flags(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: fu_plugin_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_plugin_has_flag(p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: fu_plugin_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_plugin_add_flag(p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: fu_plugin_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_plugin_remove_flag(p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-darwin.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: fu_common_get_block_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-darwin.c
    functionUses: 3
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_common_get_block_devices(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysctl
      Src: /src/fwupd/libfwupdplugin/fu-common-darwin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: fu_common_get_memory_size_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-darwin.c
    functionUses: 0
    functionsReached:
    - sysctl
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_common_get_memory_size_impl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/fwupd/libfwupdplugin/fu-common-darwin.c:40,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-common-darwin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: fu_common_get_kernel_cmdline_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-darwin.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - sysctlbyname
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline_impl(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-darwin.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: fu_common_get_olson_timezone_id_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-darwin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:33,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:35,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:37,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:40,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:49,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:53,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:54,1
    - Dst: g_dbus_error_strip_remote_error
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:63,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:64,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:71,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:72,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:77,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:80,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:82,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:84,1
    - Dst: strcmp
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:86,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:89,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:98,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:103,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:105,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 108
    functionName: fu_common_get_block_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
    functionUses: 3
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_variant_get
    - strlen
    - strncmp
    - g_steal_pointer
    - g_prefix_error
    - g_dbus_error_strip_remote_error
    - g_ptr_array_new_with_free_func
    - g_variant_iter_next
    - g_variant_unref
    - strcmp
    - g_autoptr
    - g_ptr_array_add
    - g_variant_iter_init
    - g_dbus_proxy_new_sync
    - g_bus_get_sync
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_common_get_block_devices(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:113,1
    - Dst: sysconf
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: fu_common_get_memory_size_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_common_get_memory_size_impl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kenv_get_string
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: fu_common_get_kernel_cmdline_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
    functionUses: 0
    functionsReached:
    - fu_kenv_get_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline_impl(GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:32,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:34,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:35,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:37,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:38,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:40,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:43,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: fu_input_stream_from_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 16
    functionsReached:
    - g_file_read
    - g_steal_pointer
    - g_file_new_for_path
    - G_INPUT_STREAM
    - g_autoptr
    - g_return_val_if_fail
    - fwupd_error_convert
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_input_stream_from_path(const gchar *path, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:73,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:75,1
    - Dst: fu_memchk_write
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:77,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:79,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:79,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:80,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:83,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:85,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - stream
    - buf
    - bufsz
    - offset
    - seek_set
    - count
    - error
    argTypes:
    - GInputStream*
    - guint8*
    - gsize
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: fu_input_stream_read_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 5
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_input_stream_read
    - g_set_error
    - G_SEEKABLE
    - g_prefix_error
    - g_seekable_seek
    - fu_memchk_write
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_read_safe(GInputStream *stream,\n\t\t\t  guint8
      *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  gsize offset,\n\t\t\t  gsize seek_set,\n\t\t\t
      \ gsize count,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:117,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:119,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - stream
    - offset
    - value
    - error
    argTypes:
    - GInputStream*
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: fu_input_stream_read_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 4
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_read_u8(GInputStream *stream, gsize offset,
      guint8 *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:148,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:148,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:150,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:151,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - stream
    - offset
    - value
    - endian
    - error
    argTypes:
    - GInputStream*
    - gsize
    - guint16*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: fu_input_stream_read_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 2
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_read_u16(GInputStream *stream,\n\t\t\t gsize
      offset,\n\t\t\t guint16 *value,\n\t\t\t FuEndianType endian,\n\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:179,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:180,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:181,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:182,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - stream
    - offset
    - value
    - endian
    - error
    argTypes:
    - GInputStream*
    - gsize
    - guint32*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: fu_input_stream_read_u24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - fu_memread_uint24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_read_u24(GInputStream *stream,\n\t\t\t gsize
      offset,\n\t\t\t guint32 *value,\n\t\t\t FuEndianType endian,\n\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:210,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:212,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:213,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - stream
    - offset
    - value
    - endian
    - error
    argTypes:
    - GInputStream*
    - gsize
    - guint32*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: fu_input_stream_read_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_return_val_if_fail
    - fu_memread_uint32
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_read_u32(GInputStream *stream,\n\t\t\t gsize
      offset,\n\t\t\t guint32 *value,\n\t\t\t FuEndianType endian,\n\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:241,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:241,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:242,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:243,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:244,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - stream
    - offset
    - value
    - endian
    - error
    argTypes:
    - GInputStream*
    - gsize
    - guint64*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: fu_input_stream_read_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_return_val_if_fail
    - fu_memread_uint64
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_read_u64(GInputStream *stream,\n\t\t\t gsize
      offset,\n\t\t\t guint64 *value,\n\t\t\t FuEndianType endian,\n\t\t\t GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:274,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:277,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:278,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:279,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:283,1
    - Dst: G_IS_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:291,1
    - Dst: g_seekable_can_seek
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:291,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:291,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:292,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:292,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:299,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:301,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:307,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:316,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:318,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:333,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - stream
    - offset
    - count
    - progress
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 334
    functionName: fu_input_stream_read_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 2
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_input_stream_read
    - fu_progress_set_percentage_full
    - G_SEEKABLE
    - g_steal_pointer
    - FU_IS_PROGRESS
    - g_seekable_can_seek
    - g_seekable_seek
    - g_byte_array_append
    - g_set_error_literal
    - MIN
    - G_IS_SEEKABLE
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_input_stream_read_byte_array(GInputStream *stream,\n\t\t\t\tgsize
      offset,\n\t\t\t\tgsize count,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:359,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:360,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:361,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:361,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:362,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:363,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:366,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - stream
    - offset
    - count
    - progress
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: fu_input_stream_read_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 19
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_steal_pointer
    - FU_IS_PROGRESS
    - fu_input_stream_read_byte_array
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_free_to_bytes
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_input_stream_read_bytes(GInputStream *stream,\n\t\t\t
      \  gsize offset,\n\t\t\t   gsize count,\n\t\t\t   FuProgress *progress,\n\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:385,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:387,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:388,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:390,1
    - Dst: g_utf8_validate_len
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:393,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:394,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - stream
    - offset
    - count
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 401
    functionName: fu_input_stream_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_read_byte_array
    - g_utf8_validate_len
    - g_set_error_literal
    - g_autoptr
    - g_strndup
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_input_stream_read_string(GInputStream *stream, gsize offset, gsize count,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:420,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:421,1
    - Dst: G_IS_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:424,1
    - Dst: g_seekable_can_seek
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:424,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:424,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:430,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:430,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:431,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:435,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - stream
    - val
    - error
    argTypes:
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 439
    functionName: fu_input_stream_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 27
    functionsReached:
    - G_IS_INPUT_STREAM
    - G_SEEKABLE
    - g_seekable_can_seek
    - g_prefix_error
    - g_seekable_seek
    - G_IS_SEEKABLE
    - g_seekable_tell
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_size(GInputStream *stream, gsize *val, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: fu_input_stream_compute_checksum_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - g_checksum_update
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_compute_checksum_cb(const guint8 *buf,\n\t\t\t\t
      \   gsize bufsz,\n\t\t\t\t    gpointer user_data,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:467,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:469,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:470,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:472,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:474,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - stream
    - checksum_type
    - error
    argTypes:
    - GInputStream*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: fu_input_stream_compute_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 12
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_checksum_new
    - g_strdup
    - g_autoptr
    - g_return_val_if_fail
    - g_checksum_get_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_input_stream_compute_checksum(GInputStream *stream, GChecksumType checksum_type,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: fu_input_stream_compute_sum8_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - fu_sum8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum8_cb(const guint8 *buf, gsize bufsz,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:500,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:501,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:502,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stream
    - value
    - error
    argTypes:
    - GInputStream*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: fu_input_stream_compute_sum8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 3
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum8(GInputStream *stream, guint8
      *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:511,1
    - Dst: fu_sum16
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 521
    functionName: fu_input_stream_compute_sum16_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum16_cb(const guint8 *buf, gsize
      bufsz, gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:538,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:538,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:539,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:540,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stream
    - value
    - error
    argTypes:
    - GInputStream*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 542
    functionName: fu_input_stream_compute_sum16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum16(GInputStream *stream, guint16
      *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:549,1
    - Dst: fu_sum32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 559
    functionName: fu_input_stream_compute_sum32_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_sum32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum32_cb(const guint8 *buf, gsize
      bufsz, gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:576,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:576,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:577,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:578,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stream
    - value
    - error
    argTypes:
    - GInputStream*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: fu_input_stream_compute_sum32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_sum32(GInputStream *stream, guint32
      *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_crc32_step
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 593
    functionName: fu_input_stream_compute_crc32_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - fu_crc32_step
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_crc32_cb(const guint8 *buf, gsize
      bufsz, gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:615,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:616,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:617,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:618,1
    - Dst: fu_crc32_done
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - stream
    - kind
    - crc
    - error
    argTypes:
    - GInputStream*
    - FuCrcKind
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: fu_input_stream_compute_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_return_val_if_fail
    - fu_crc32_done
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_crc32(GInputStream *stream, FuCrcKind
      kind, guint32 *crc, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_crc16_step
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: fu_input_stream_compute_crc16_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - fu_crc16_step
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_crc16_cb(const guint8 *buf, gsize
      bufsz, gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:657,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:657,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:658,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:659,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:660,1
    - Dst: fu_crc16_done
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - stream
    - kind
    - crc
    - error
    argTypes:
    - GInputStream*
    - FuCrcKind
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 664
    functionName: fu_input_stream_compute_crc16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_input_stream_chunkify
    - g_return_val_if_fail
    - fu_crc16_done
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_input_stream_compute_crc16(GInputStream *stream, FuCrcKind
      kind, guint16 *crc, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:685,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:687,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:687,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:688,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:689,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:691,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:698,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:699,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:700,1
    - Dst: func_cb
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:703,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:703,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - stream
    - func_cb
    - user_data
    - error
    argTypes:
    - GInputStream*
    - FuInputStreamChunkifyFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 707
    functionName: fu_input_stream_chunkify
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 9
    functionsReached:
    - G_IS_INPUT_STREAM
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_return_val_if_fail
    - func_cb
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_chunkify(GInputStream *stream,\n\t\t\t FuInputStreamChunkifyFunc
      func_cb,\n\t\t\t gpointer user_data,\n\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:730,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:735,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:738,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:739,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:742,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:743,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:746,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:752,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:754,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:754,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:757,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:760,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:769,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - stream
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - GInputStream*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 781
    functionName: fu_input_stream_find
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 2
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_set_error
    - g_steal_pointer
    - g_error_matches
    - fu_input_stream_read_byte_array
    - g_byte_array_remove_range
    - g_byte_array_append
    - g_propagate_error
    - g_autoptr
    - fu_memmem_safe
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_find(GInputStream *stream,\n\t\t     const
      guint8 *buf,\n\t\t     gsize bufsz,\n\t\t     gsize *offset,\n\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 855
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:37,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:39,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:41,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fu_v4l_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - FU_V4L_DEVICE
    - GET_PRIVATE
    - fu_v4l_cap_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_v4l_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:60,1
    - Dst: FU_IS_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fu_v4l_device_get_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_V4L_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_v4l_device_get_index(FuV4lDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:81,1
    - Dst: FU_IS_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_v4l_device_get_caps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_V4L_DEVICE
    linkageType: ''
    returnType: FuV4lCap
    signature: FuV4lCap fu_v4l_device_get_caps(FuV4lDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:89,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:91,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:93,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:94,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:101,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:103,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:104,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:106,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:107,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - usb_device
    - error
    argTypes:
    - FuV4lDevice*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: fu_v4l_device_usb_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_instance_str
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_probe
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_v4l_device_usb_probe(FuV4lDevice *self, FuDevice *usb_device,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:125,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:128,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:128,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:133,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:136,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:136,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:148,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:154,1
    - Dst: fu_v4l_device_usb_probe
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 162
    functionName: fu_v4l_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_udev_device_read_sysfs
    - g_prefix_error
    - FU_V4L_DEVICE
    - fu_strtoull
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_v4l_device_usb_probe
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_v4l_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:168,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:171,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:171,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:171,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 189
    functionName: fu_v4l_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - FU_V4L_DEVICE
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_v4l_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:194,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:195,1
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:196,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:196,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:197,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: fu_v4l_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_v4l_device_get_index
    - GET_PRIVATE
    - FU_V4L_DEVICE
    - fu_v4l_device_get_caps
    linkageType: ''
    returnType: void
    signature: void fu_v4l_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:203,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: fu_v4l_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_v4l_device_init(FuV4lDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuV4lDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: fu_v4l_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_v4l_device_class_init(FuV4lDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:107,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: fu_progress_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_progress_get_id(FuProgress *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:123,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:123,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:127,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:131,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: fu_progress_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 40
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_id(FuProgress *self, const gchar *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:148,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: fu_progress_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_progress_get_name(FuProgress *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: fu_progress_get_name_fallback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fwupd_status_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_progress_get_name_fallback(FuProgress *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:172,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:172,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:173,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:176,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:180,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: fu_progress_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 9
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_name(FuProgress *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:197,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: fu_progress_get_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: FwupdStatus
    signature: FwupdStatus fu_progress_get_status(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:213,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: fu_progress_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 20
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_add_flag(FuProgress *self, FuProgressFlag flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:229,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: fu_progress_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_remove_flag(FuProgress *self, FuProgressFlag flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:245,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: fu_progress_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_progress_has_flag(FuProgress *self, FuProgressFlag flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:261,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:261,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuProgress*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: fu_progress_set_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 4
    functionsReached:
    - g_signal_emit
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_status(FuProgress *self, FwupdStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:285,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: fu_progress_get_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: guint
    signature: guint fu_progress_get_percentage(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:294,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:294,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:295,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:295,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuProgress*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: fu_progress_set_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_profile
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_parent(FuProgress *self, FuProgress *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: fu_progress_get_duration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_progress_get_duration(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - duration
    argTypes:
    - FuProgress*
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: fu_progress_set_duration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_duration(FuProgress *self, gdouble duration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:326,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - str
    - level
    argTypes:
    - FuProgress*
    - GString*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: fu_progress_build_parent_chain
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fu_progress_build_parent_chain
    linkageType: ''
    returnType: void
    signature: void fu_progress_build_parent_chain(FuProgress *self, GString *str,
      guint level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:349,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:349,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:359,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:359,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:360,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:361,1
    - Dst: fu_progress_set_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:371,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:371,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:373,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:374,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 381
    functionName: fu_progress_set_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 3
    functionsReached:
    - g_warning
    - g_signal_emit
    - g_string_new
    - FU_IS_PROGRESS
    - fu_progress_set_duration
    - g_timer_elapsed
    - g_return_if_fail
    - g_ptr_array_index
    - g_autoptr
    - g_signal_handlers_disconnect_by_data
    - fu_progress_build_parent_chain
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_percentage(FuProgress *self, guint percentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:397,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:397,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:398,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - progress_done
    - progress_total
    argTypes:
    - FuProgress*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: fu_progress_set_percentage_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_percentage
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_percentage_full(FuProgress *self, gsize progress_done,
      gsize progress_total)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:417,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - profile
    argTypes:
    - FuProgress*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: fu_progress_set_profile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 8
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_profile(FuProgress *self, gboolean profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:434,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: fu_progress_get_profile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_progress_get_profile(FuProgress *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:449,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:449,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:457,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:458,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 463
    functionName: fu_progress_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 5
    functionsReached:
    - g_ptr_array_set_size
    - g_timer_start
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_reset(FuProgress *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:480,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:480,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:491,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:495,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:498,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:502,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:503,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - step_max
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 507
    functionName: fu_progress_set_steps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 21
    functionsReached:
    - FU_IS_PROGRESS
    - fu_progress_add_step
    - fu_progress_add_flag
    - g_return_if_fail
    - g_ptr_array_index
    - fu_progress_set_percentage
    - g_signal_handlers_disconnect_by_data
    - g_timer_start
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_steps(FuProgress *self, guint step_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:522,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: fu_progress_get_global_fraction
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_progress_get_global_fraction(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:540,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: fu_progress_get_steps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: guint
    signature: guint fu_progress_get_steps(FuProgress *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - discrete
    - step_max
    argTypes:
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: fu_progress_discrete_to_percent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_warning
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_progress_discrete_to_percent(guint discrete, guint step_max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:566,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 587
    functionName: fu_progress_get_step_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_progress_get_step_percentage(FuProgress *self, guint idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - child
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: fu_progress_child_status_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_status_changed_cb(FuProgress *child, FwupdStatus
      status, FuProgress *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:605,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:615,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:621,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:622,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:623,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:623,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:628,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:632,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:633,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:639,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:644,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:645,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:654,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - child
    - percentage
    - self
    argTypes:
    - FuProgress*
    - guint
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 655
    functionName: fu_progress_child_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_progress_set_status
    - fu_progress_discrete_to_percent
    - fu_progress_get_step_percentage
    - fu_progress_get_status
    - g_ptr_array_index
    - fu_progress_set_percentage
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_percentage_changed_cb(FuProgress *child, guint
      percentage, FuProgress *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:674,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:674,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:676,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:676,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:677,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:678,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:681,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:689,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:690,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:690,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:692,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:695,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:695,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:697,1
    - Dst: fu_progress_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:699,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:701,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:705,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:708,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:708,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - status
    - value
    - name
    argTypes:
    - FuProgress*
    - FwupdStatus
    - guint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 712
    functionName: fu_progress_add_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 23
    functionsReached:
    - fu_progress_set_status
    - fu_progress_new
    - g_steal_pointer
    - FU_IS_PROGRESS
    - FU_PROGRESS
    - g_return_if_fail
    - fu_progress_get_global_fraction
    - fu_progress_set_parent
    - g_autoptr
    - g_timer_start
    - g_signal_connect
    - g_ptr_array_add
    - fu_progress_set_name
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_progress_add_step(FuProgress *self, FwupdStatus status, guint
      value, const gchar *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:725,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:725,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:733,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:737,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 740
    functionName: fu_progress_finished
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 6
    functionsReached:
    - FU_IS_PROGRESS
    - fu_progress_add_flag
    - g_return_if_fail
    - g_ptr_array_index
    - fu_progress_set_percentage
    linkageType: ''
    returnType: void
    signature: void fu_progress_finished(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:757,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:757,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:758,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:762,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:763,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:766,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 767
    functionName: fu_progress_get_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 36
    functionsReached:
    - FU_PROGRESS
    - g_return_val_if_fail
    - g_ptr_array_index
    - FU_IS_PROGRESS
    linkageType: ''
    returnType: FuProgress
    signature: 'FuProgress *

      fu_progress_get_child(FuProgress *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:775,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:782,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:784,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:785,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:785,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:788,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:789,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:793,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:794,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:801,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:803,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:804,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:808,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:810,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:811,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:811,1
    - Dst: fabs
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:814,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:814,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:819,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:822,1
    - Dst: fu_progress_get_name_fallback
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:822,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:824,1
    - Dst: fu_progress_get_name_fallback
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:824,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:825,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:829,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 831
    functionName: fu_progress_show_profile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_progress_get_duration
    - g_string_set_size
    - g_debug
    - g_string_new
    - g_warning
    - g_ptr_array_index
    - g_autoptr
    - g_string_append
    - fu_progress_get_name_fallback
    - fabs
    linkageType: ''
    returnType: void
    signature: void fu_progress_show_profile(FuProgress *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:847,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:847,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:859,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:859,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:860,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:861,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:867,1
    - Dst: fu_progress_set_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:872,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:872,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:873,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:878,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:878,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:879,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:880,1
    - Dst: fu_progress_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:885,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:887,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:887,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:888,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:889,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:903,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:904,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:905,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:905,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:907,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:907,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:909,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:917,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:919,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:920,1
    - Dst: fu_progress_show_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:924,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 925
    functionName: fu_progress_step_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 40
    functionsReached:
    - g_warning
    - fu_progress_set_status
    - fu_progress_discrete_to_percent
    - g_string_new
    - fu_progress_has_flag
    - fu_progress_show_profile
    - FU_IS_PROGRESS
    - fu_progress_set_duration
    - g_timer_elapsed
    - fu_progress_get_step_percentage
    - g_return_if_fail
    - fu_progress_get_status
    - g_ptr_array_index
    - g_autoptr
    - g_timer_start
    - fu_progress_set_percentage
    - fu_progress_build_parent_chain
    linkageType: ''
    returnType: void
    signature: void fu_progress_step_done(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:943,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:943,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:944,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:946,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:948,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - delay_ms
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 951
    functionName: fu_progress_sleep
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage
    - g_usleep
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_sleep(FuProgress *self, guint delay_ms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:962,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:964,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:966,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:968,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:970,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:972,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:973,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:973,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:974,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:977,1
    - Dst: fu_progress_traceback_cb
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:978,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 5
    argNames:
    - self
    - idt
    - child_idx
    - threshold_ms
    - str
    argTypes:
    - FuProgress*
    - guint
    - guint
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 980
    functionName: fu_progress_traceback_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fu_progress_get_duration
    - fu_progress_traceback_cb
    - g_ptr_array_index
    - g_string_append
    linkageType: ''
    returnType: void
    signature: "void fu_progress_traceback_cb(FuProgress *self,\n\t\t\t guint idt,\n\t\t\t
      guint child_idx,\n\t\t\t guint threshold_ms,\n\t\t\t GString *str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:995,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:997,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:997,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1001,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1002,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1008,1
    - Dst: fu_progress_traceback_cb
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1011,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1014,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1015
    functionName: fu_progress_traceback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 3
    functionsReached:
    - g_warning
    - fu_progress_traceback_cb
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_autoptr
    - g_getenv
    - fu_strtoull
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_progress_traceback(FuProgress *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1020,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1026,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1027,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1029,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1031,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1031,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1033,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1034,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1035,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1037,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1038,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1038,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1040
    functionName: fu_progress_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fwupd_status_to_string
    - FU_PROGRESS
    - fwupd_codec_string_append_int
    - FWUPD_CODEC
    - g_ptr_array_index
    - fwupd_codec_add_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_progress_add_string(FwupdCodec *codec, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1046
    functionName: fu_progress_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_progress_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1054,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1055,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1059
    functionName: fu_progress_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_timer_new
    linkageType: ''
    returnType: void
    signature: void fu_progress_init(FuProgress *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1064,1
    - Dst: fu_progress_show_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1068,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1070,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1071,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1072,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1073,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1074,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1075,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1078
    functionName: fu_progress_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - fu_progress_show_profile
    - FU_PROGRESS
    - fu_progress_reset
    - g_timer_destroy
    - G_OBJECT_CLASS
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_progress_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1083,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1095,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1096,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1114,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuProgressClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1124
    functionName: fu_progress_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_progress_class_init(FuProgressClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1138,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1140,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1142
    functionName: fu_progress_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 67
    functionsReached:
    - FU_PROGRESS
    - fu_progress_set_id
    - g_object_new
    linkageType: ''
    returnType: FuProgress
    signature: 'FuProgress *

      fu_progress_new(const gchar *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 860
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:69,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:69,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: fu_cfi_device_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - fu_device_get_firmware_size_max
    - FU_DEVICE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_cfi_device_get_size(FuCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:85,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:85,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FuCfiDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: fu_cfi_device_set_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_firmware_size_max
    - FU_DEVICE
    - FU_IS_CFI_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_size(FuCfiDevice *self, guint64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:103,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: fu_cfi_device_get_flash_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cfi_device_get_flash_id(FuCfiDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:119,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:120,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:121,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:123,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flash_id
    argTypes:
    - FuCfiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: fu_cfi_device_set_flash_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFI_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_flash_id(FuCfiDevice *self, const gchar *flash_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:130,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:131,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:134,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: fu_cfi_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - GET_PRIVATE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:145,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:148,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:148,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: fu_cfi_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_set_flash_id
    - FU_CFI_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_string
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:159,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:160,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:161,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: fu_cfi_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - GET_PRIVATE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_finalize(GObject *object)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:177,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:177,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:180,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:183,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:185,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 207
    functionName: fu_cfi_device_wait_for_status_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_new
    - fu_cfi_device_chip_select_locker_new
    - g_prefix_error
    - FU_CFI_DEVICE
    - fu_cfi_device_send_command
    - g_autoptr
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_wait_for_status_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - mask
    - value
    - count
    - delay
    - error
    argTypes:
    - FuCfiDevice*
    - guint8
    - guint8
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 224
    functionName: fu_cfi_device_wait_for_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfi_device_wait_for_status(FuCfiDevice *self,\n\t\t\t
      \     guint8 mask,\n\t\t\t      guint8 value,\n\t\t\t      guint count,\n\t\t\t
      \     guint delay,\n\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:233,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:234,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:234,1
    - Dst: FuCfiDeviceClass*::read_jedec
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:238,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:241,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:246,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:253,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:258,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:261,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:262,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:263,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 268
    functionName: fu_cfi_device_read_jedec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - FuCfiDeviceClass*::read_jedec
    - fu_progress_new
    - g_string_new
    - fu_cfi_device_chip_select_locker_new
    - g_prefix_error
    - fu_cfi_device_send_command
    - g_autoptr
    - FU_CFI_DEVICE_GET_CLASS
    - fu_cfi_device_set_flash_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_read_jedec(FuCfiDevice *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:274,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:275,1
    - Dst: fu_cfi_device_read_jedec
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:279,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:287,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:289,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:298,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:299,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:311,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 313
    functionName: fu_cfi_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - FU_CFI_DEVICE
    - g_set_error_literal
    - fu_device_add_flag
    - GET_PRIVATE
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strndup
    - fu_device_build_instance_id_full
    - fu_cfi_device_read_jedec
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:331,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:333,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:334,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:337,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:344,1
    - Dst: fu_cfi_device_cmd_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - cmd
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - FuCfiDeviceCmd
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: fu_cfi_device_get_cmd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - FU_IS_CFI_DEVICE
    - fu_cfi_device_cmd_to_string
    - g_set_error_literal
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_get_cmd(FuCfiDevice *self, FuCfiDeviceCmd cmd,
      guint8 *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:372,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: fu_cfi_device_get_page_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_cfi_device_get_page_size(FuCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:388,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:389,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - page_size
    argTypes:
    - FuCfiDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: fu_cfi_device_set_page_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_page_size(FuCfiDevice *self, guint32 page_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:408,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:409,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: fu_cfi_device_get_sector_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_cfi_device_get_sector_size(FuCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:425,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:426,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - block_size
    argTypes:
    - FuCfiDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: fu_cfi_device_set_block_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_block_size(FuCfiDevice *self, guint32 block_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:446,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: fu_cfi_device_get_block_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_cfi_device_get_block_size(FuCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:462,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:463,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - sector_size
    argTypes:
    - FuCfiDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 465
    functionName: fu_cfi_device_set_sector_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_sector_size(FuCfiDevice *self, guint32 sector_size)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:470,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:471,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:474,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:475,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:480,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:481,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:486,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:487,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:492,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:493,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:498,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:499,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:504,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:505,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:510,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:516,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:517,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:522,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:523,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:528,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:529,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:534,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:535,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:540,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:541,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:546,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:547,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:552,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 557
    functionName: fu_cfi_device_set_quirk_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:562,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:563,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:564,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:566,1
    - Dst: fu_cfi_device_cmd_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:568,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:571,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:572,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 574
    functionName: fu_cfi_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - fu_cfi_device_cmd_to_string
    - GET_PRIVATE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:601,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:602,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:602,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:603,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:603,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:604,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:606,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:613,1
    - Dst: FuCfiDeviceClass*::send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:614,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 7
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 619
    functionName: fu_cfi_device_send_command
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_CFI_DEVICE
    - FU_IS_PROGRESS
    - g_set_error_literal
    - fu_dump_raw
    - FuCfiDeviceClass*::send_command
    - FU_CFI_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfi_device_send_command(FuCfiDevice *self,\n\t\t\t   const
      guint8 *wbuf,\n\t\t\t   gsize wbufsz,\n\t\t\t   guint8 *rbuf,\n\t\t\t   gsize
      rbufsz,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:636,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:637,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:637,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:638,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:640,1
    - Dst: FuCfiDeviceClass*::chip_select
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: fu_cfi_device_chip_select
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFI_DEVICE
    - g_set_error_literal
    - FuCfiDeviceClass*::chip_select
    - FU_CFI_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_select(FuCfiDevice *self, gboolean value,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_chip_select
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:652,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: fu_cfi_device_chip_select_assert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_chip_select
    - FU_CFI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_select_assert(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_chip_select
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:658,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 659
    functionName: fu_cfi_device_chip_select_deassert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_chip_select
    - FU_CFI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_select_deassert(GObject *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:674,1
    - Dst: FU_IS_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:674,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:675,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 680
    functionName: fu_cfi_device_chip_select_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CFI_DEVICE
    - fu_device_locker_new_full
    linkageType: ''
    returnType: FuDeviceLocker
    signature: 'FuDeviceLocker *

      fu_cfi_device_chip_select_locker_new(FuCfiDevice *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:687,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:687,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:690,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:692,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:695,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:697,1
    - Dst: fu_cfi_device_wait_for_status
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 702
    functionName: fu_cfi_device_write_enable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_cfi_device_wait_for_status
    - fu_cfi_device_chip_select_locker_new
    - fu_cfi_device_send_command
    - g_autoptr
    - fu_device_locker_close
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_write_enable(FuCfiDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:709,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:709,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:712,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:717,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:719,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:721,1
    - Dst: fu_cfi_device_wait_for_status
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 726
    functionName: fu_cfi_device_chip_erase
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_cfi_device_wait_for_status
    - fu_cfi_device_chip_select_locker_new
    - fu_cfi_device_send_command
    - g_autoptr
    - fu_device_locker_close
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_erase(FuCfiDevice *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:732,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:733,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:733,1
    - Dst: fu_cfi_device_write_enable
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:735,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:738,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:743,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:745,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:746,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:746,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:747,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:747,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:747,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:748,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:748,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:749,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:751,1
    - Dst: fu_cfi_device_wait_for_status
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - page
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 756
    functionName: fu_cfi_device_write_page
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_debug
    - fu_byte_array_append_uint24
    - fu_byte_array_append_uint8
    - fu_cfi_device_chip_select_locker_new
    - fu_cfi_device_wait_for_status
    - fu_cfi_device_write_enable
    - g_byte_array_append
    - fu_cfi_device_send_command
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_device_locker_close
    - g_byte_array_new
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_write_page(FuCfiDevice *self, FuChunk *page,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:765,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:766,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:766,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:767,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:768,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:771,1
    - Dst: fu_cfi_device_write_page
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:774,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:774,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - pages
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 758
    functionDepth: 5
    functionLinenumber: 758
    functionLinenumberEnd: 781
    functionName: fu_cfi_device_write_pages
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_cfi_device_write_page
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfi_device_write_pages(FuCfiDevice *self,\n\t\t\t  FuChunkArray
      *pages,\n\t\t\t  FuProgress *progress,\n\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:787,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:790,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:793,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:795,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:795,1
    - Dst: fu_cfi_device_send_command
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:796,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:799,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - block
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 803
    functionName: fu_cfi_device_read_block
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_cfi_device_chip_select_locker_new
    - fu_memwrite_uint24
    - fu_cfi_device_send_command
    - g_autoptr
    - fu_chunk_get_address
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_read_block(FuCfiDevice *self, FuChunk *block,
      FuProgress *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:808,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:809,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:812,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:813,1
    - Dst: fu_cfi_device_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:817,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:818,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:819,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:821,1
    - Dst: fu_cfi_device_read_block
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:822,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:822,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:824,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 829
    functionName: fu_cfi_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - fu_cfi_device_get_block_size
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_cfi_device_read_block
    - fu_progress_set_id
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_cfi_device_read_firmware(FuCfiDevice *self, gsize bufsz, FuProgress *progress,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:834,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:835,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:836,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:839,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:845,1
    - Dst: fu_cfi_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 831
    functionDepth: 5
    functionLinenumber: 831
    functionLinenumberEnd: 852
    functionName: fu_cfi_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_read_firmware
    - FU_CFI_DEVICE
    - g_set_error_literal
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_cfi_device_dump_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:862,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:863,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:865,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:868,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:873,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:874,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:875,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:876,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:879,1
    - Dst: fu_cfi_device_write_enable
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:884,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:885,1
    - Dst: fu_cfi_device_chip_erase
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:888,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:889,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:892,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:895,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:898,1
    - Dst: fu_cfi_device_write_pages
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:899,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:899,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:900,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:903,1
    - Dst: fu_cfi_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:906,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:907,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:908,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:911,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:914,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:915,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 854
    functionDepth: 6
    functionLinenumber: 854
    functionLinenumberEnd: 922
    functionName: fu_cfi_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_cfi_device_chip_erase
    - fu_progress_get_child
    - fu_cfi_device_get_page_size
    - fu_cfi_device_read_firmware
    - fu_cfi_device_write_enable
    - FU_CFI_DEVICE
    - fu_progress_add_step
    - g_prefix_error
    - g_bytes_get_size
    - fu_bytes_compare
    - fu_cfi_device_write_pages
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfi_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:927,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:928,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:929,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:930,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:931,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 933
    functionName: fu_cfi_device_set_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:938,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:950,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:951,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:952,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:953,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:953,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:954,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:954,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:955,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 956
    functionName: fu_cfi_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_init(FuCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:961,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:962,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 963
    functionName: fu_cfi_device_constructed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_CFI_DEVICE
    - fu_device_add_instance_id
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:968,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:969,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:990,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 996
    functionName: fu_cfi_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfi_device_class_init(FuCfiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flash_id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1012
    functionName: fu_cfi_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCfiDevice
    signature: 'FuCfiDevice *

      fu_cfi_device_new(FuContext *ctx, const gchar *flash_id)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - result
    - error
    argTypes:
    - FuMkhiStatus
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: fu_heci_device_result_to_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_heci_device_result_to_error(FuMkhiStatus result, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:71,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:72,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:73,1
    - Dst: fu_mkhi_read_file_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:76,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:76,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:77,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:78,1
    - Dst: fu_mkhi_read_file_request_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:81,1
    - Dst: fu_mkhi_read_file_request_set_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:83,1
    - Dst: fu_mkhi_read_file_request_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:84,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:85,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:85,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:93,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:94,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:94,1
    - Dst: fu_mkhi_read_file_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:101,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:104,1
    - Dst: fu_mkhi_read_file_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:104,1
    - Dst: fu_mkhi_read_file_response_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:108,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:110,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:120,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHeciDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 122
    functionName: fu_heci_device_read_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_HECI_DEVICE
    - fu_mkhi_read_file_response_get_data_size
    - g_return_val_if_fail
    - fu_mkhi_read_file_request_set_data_size
    - g_set_error
    - FU_MEI_DEVICE
    - fu_mei_device_read
    - fu_mkhi_read_file_request_set_filename
    - g_steal_pointer
    - fu_heci_device_result_to_error
    - fu_mei_device_write
    - g_autoptr
    - g_byte_array_new
    - fu_mkhi_read_file_response_get_result
    - fu_mkhi_read_file_response_parse
    - fu_mkhi_read_file_request_new
    - fu_mkhi_read_file_request_set_flags
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_heci_device_read_file(FuHeciDevice *self, const gchar *filename, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:146,1
    - Dst: fu_mkhi_read_file_ex_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:148,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:149,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:151,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:152,1
    - Dst: fu_mkhi_read_file_ex_request_set_file_id
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:155,1
    - Dst: fu_mkhi_read_file_ex_request_set_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:156,1
    - Dst: fu_mkhi_read_file_ex_request_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:157,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:158,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:158,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:166,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:167,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:167,1
    - Dst: fu_mkhi_read_file_ex_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:174,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:177,1
    - Dst: fu_mkhi_read_file_ex_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:177,1
    - Dst: fu_mkhi_read_file_ex_response_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:182,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:184,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:194,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - self
    - file_id
    - section
    - datasz_req
    - error
    argTypes:
    - FuHeciDevice*
    - guint32
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 196
    functionName: fu_heci_device_read_file_ex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - fu_mkhi_read_file_ex_response_get_data_size
    - FU_IS_HECI_DEVICE
    - g_return_val_if_fail
    - g_set_error
    - fu_mkhi_read_file_ex_request_set_flags
    - FU_MEI_DEVICE
    - fu_mei_device_read
    - fu_mkhi_read_file_ex_request_new
    - fu_mkhi_read_file_ex_response_get_result
    - fu_mkhi_read_file_ex_request_set_data_size
    - fu_mkhi_read_file_ex_response_parse
    - fu_heci_device_result_to_error
    - g_steal_pointer
    - fu_mei_device_write
    - g_autoptr
    - g_byte_array_new
    - fu_mkhi_read_file_ex_request_set_file_id
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_heci_device_read_file_ex(FuHeciDevice *self,\n\t\t\t
      \   guint32 file_id,\n\t\t\t    guint32 section,\n\t\t\t    guint32 datasz_req,\n\t\t\t
      \   GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:222,1
    - Dst: fu_mkhi_arbh_svn_get_info_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:224,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:226,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:227,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:230,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:230,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:238,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:238,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:238,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:239,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:239,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:246,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:249,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:249,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_get_num_entries
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:257,1
    - Dst: fu_mkhi_arbh_svn_info_entry_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:261,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_usage_id
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:266,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_executing
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:269,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_min_allowed
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:272,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - self
    - usage_id
    - executing
    - min_allowed
    - error
    argTypes:
    - FuHeciDevice*
    - guint8
    - guint8*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 292
    functionName: fu_heci_device_arbh_svn_get_info
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_HECI_DEVICE
    - fu_mkhi_arbh_svn_info_entry_parse
    - fu_mei_device_get_max_msg_length
    - fu_mkhi_arbh_svn_get_info_response_get_num_entries
    - fu_mkhi_arbh_svn_info_entry_get_min_allowed
    - g_return_val_if_fail
    - g_set_error
    - fu_mkhi_arbh_svn_info_entry_get_usage_id
    - FU_MEI_DEVICE
    - fu_mei_device_read
    - fu_mkhi_arbh_svn_get_info_request_new
    - fu_heci_device_result_to_error
    - fu_mkhi_arbh_svn_get_info_response_parse
    - fu_mei_device_write
    - g_autoptr
    - fu_mkhi_arbh_svn_info_entry_get_executing
    - g_byte_array_new
    - fu_mkhi_arbh_svn_get_info_response_get_result
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_heci_device_arbh_svn_get_info(FuHeciDevice *self,\n\t\t\t\t
      guint8 usage_id,\n\t\t\t\t guint8 *executing,\n\t\t\t\t guint8 *min_allowed,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHeciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: fu_heci_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_heci_device_init(FuHeciDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHeciDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: fu_heci_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_heci_device_class_init(FuHeciDeviceClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:27,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:30,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:36,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:39,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:39,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:40,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:42,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:43,1
    - Dst: g_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:43,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:48,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:49,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:50,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:53,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:54,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:55,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 62
    functionName: fu_hwids_darwin_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strstr_len
    - g_strsplit
    - g_strstrip
    - g_spawn_command_line_sync
    - g_strv_length
    - fu_context_set_chassis_kind
    - fu_hwids_add_value
    - g_strcmp0
    - fu_hwids_get_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_darwin_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:39,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_linux_efivars_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_path_from_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_efivars_get_path(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:46,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - guid
    - name
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: fu_linux_efivars_get_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_efivars_get_filename(const gchar *guid, const gchar *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:53,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: fu_linux_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_linux_efivars_get_path
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_supported(FuEfivars *efivars, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:73,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:79,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:83,1
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:108,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - fd
    - value
    - value_old
    - error
    argTypes:
    - int
    - gboolean
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 116
    functionName: fu_linux_efivars_set_immutable_fd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_strerror
    - ioctl
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_set_immutable_fd(int fd, gboolean value,
      gboolean *value_old, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:122,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:125,1
    - Dst: open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:131,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:135,1
    - Dst: g_unix_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:140,1
    - Dst: fu_linux_efivars_set_immutable_fd
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fn
    - value
    - value_old
    - error
    argTypes:
    - gchar*
    - gboolean
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 147
    functionName: fu_linux_efivars_set_immutable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_linux_efivars_set_immutable_fd
    - g_set_error
    - g_str_has_prefix
    - open
    - g_unix_input_stream_new
    - g_set_error_literal
    - g_autoptr
    - fwupd_strerror
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_set_immutable(const gchar *fn, gboolean value,
      gboolean *value_old, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:153,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:155,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:156,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:157,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:158,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:162,1
    - Dst: g_file_delete
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: fu_linux_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_delete
    - fu_linux_efivars_get_filename
    - g_file_new_for_path
    - g_file_query_exists
    - g_prefix_error
    - fu_linux_efivars_set_immutable
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_delete(FuEfivars *efivars, const gchar *guid,
      const gchar *name, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:177,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:179,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:182,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:183,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:184,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:186,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:186,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:187,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:188,1
    - Dst: g_file_delete
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - efivars
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: fu_linux_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_delete
    - g_dir_read_name
    - g_file_new_for_path
    - g_build_filename
    - g_prefix_error
    - fu_linux_efivars_set_immutable
    - g_strdup_printf
    - g_dir_open
    - g_autoptr
    - g_pattern_match_simple
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_efivars_delete_with_glob(FuEfivars *efivars,\n\t\t\t\t
      \ const gchar *guid,\n\t\t\t\t  const gchar *name_glob,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:203,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:205,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:208,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: fu_linux_efivars_exists_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_dir_read_name
    - g_dir_open
    - g_str_has_suffix
    - g_autoptr
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_exists_guid(const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_exists_guid
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:222,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:224,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: fu_linux_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_linux_efivars_exists_guid
    - fu_linux_efivars_get_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_exists(FuEfivars *efivars, const gchar *guid,
      const gchar *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:244,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:247,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:248,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:249,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:249,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:251,1
    - Dst: g_file_input_stream_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:254,1
    - Dst: G_FILE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:254,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:259,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:260,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:265,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:267,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:276,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:278,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:279,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:288,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:297,1
    - Dst: g_input_stream_read_all
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:298,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:299,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 305
    functionName: fu_linux_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - G_FILE_INPUT_STREAM
    - g_input_stream_read
    - g_file_read
    - fu_linux_efivars_get_filename
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - g_steal_pointer
    - g_prefix_error
    - G_INPUT_STREAM
    - g_malloc0
    - g_set_error_literal
    - g_autoptr
    - g_file_input_stream_query_info
    - fwupd_error_convert
    - g_input_stream_read_all
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_efivars_get_data(FuEfivars *efivars,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  guint8 **data,\n\t\t\t  gsize
      *data_sz,\n\t\t\t  guint32 *attr,\n\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:313,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:313,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:316,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:319,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:323,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:324,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:324,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:330,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 340
    functionName: fu_linux_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strndup
    - g_dir_read_name
    - strlen
    - g_steal_pointer
    - g_dir_open
    - g_strcmp0
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_linux_efivars_get_names(FuEfivars *efivars, const gchar *guid, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:350,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:352,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:353,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:354,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:356,1
    - Dst: g_file_monitor_set_rate_limit
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:359,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: fu_linux_efivars_get_monitor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_monitor_file
    - fu_linux_efivars_get_filename
    - g_steal_pointer
    - g_file_new_for_path
    - g_autoptr
    - g_file_monitor_set_rate_limit
    - fwupd_error_convert
    linkageType: ''
    returnType: GFileMonitor
    signature: "GFileMonitor *\nfu_linux_efivars_get_monitor(FuEfivars *efivars,\n\t\t\t
      \    const gchar *guid,\n\t\t\t     const gchar *name,\n\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:368,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:370,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:372,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:381,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:383,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:389,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:392,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:395,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:396,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:398,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:405,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:408,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 417
    functionName: fu_linux_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_query_info
    - g_dir_read_name
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - g_build_filename
    - g_dir_open
    - g_autoptr
    - fwupd_error_convert
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_linux_efivars_space_used(FuEfivars *efivars, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:424,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:425,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:428,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:434,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:437,1
    - Dst: statfs
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:443,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:445,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:449,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 465
    functionName: fu_linux_efivars_space_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_query_info
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - statfs
    - g_autoptr
    - fwupd_strerror
    - fwupd_error_convert
    - fu_linux_efivars_get_path
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_linux_efivars_space_free(FuEfivars *efivars, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:479,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:481,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:484,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:485,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:486,1
    - Dst: open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:496,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:498,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:503,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:506,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:507,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:508,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:509,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:510,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:511,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:516,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 523
    functionName: fu_linux_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_linux_efivars_get_filename
    - open
    - g_unix_output_stream_new
    - memcpy
    - g_prefix_error
    - fu_linux_efivars_set_immutable
    - g_malloc0
    - g_output_stream_write
    - g_autoptr
    - g_file_test
    - fwupd_strerror
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_efivars_set_data(FuEfivars *efivars,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  const guint8 *data,\n\t\t\t
      \ gsize sz,\n\t\t\t  guint32 attr,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: fu_linux_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_efivars_init(FuLinuxEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 544
    functionName: fu_linux_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - FU_EFIVARS_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_efivars_class_init(FuLinuxEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:549,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS
    - g_object_new
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: fu_common_get_block_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-windows.c
    functionUses: 3
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_common_get_block_devices(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GlobalMemoryStatusEx
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: fu_common_get_memory_size_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-windows.c
    functionUses: 0
    functionsReached:
    - GlobalMemoryStatusEx
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_common_get_memory_size_impl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: fu_common_get_kernel_cmdline_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-windows.c
    functionUses: 0
    functionsReached:
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline_impl(GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:190,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:191,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tzinfo
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 199
    functionName: fu_common_convert_tzinfo_to_olson_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-windows.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_strdup
    - g_set_error
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_convert_tzinfo_to_olson_id(const gchar *tzinfo, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetTimeZoneInformation
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:209,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:211,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:215,1
    - Dst: g_utf16_to_utf8
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:218,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:220,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:225,1
    - Dst: fu_common_convert_tzinfo_to_olson_id
      Src: /src/fwupd/libfwupdplugin/fu-common-windows.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: fu_common_get_olson_timezone_id_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-windows.c
    functionUses: 0
    functionsReached:
    - GetTimeZoneInformation
    - g_set_error
    - g_prefix_error
    - g_strstr_len
    - fu_common_convert_tzinfo_to_olson_id
    - g_utf16_to_utf8
    - GetLastError
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:47,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:48,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:49,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:50,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:51,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:52,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: fu_usb_interface_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_USB_INTERFACE
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:60,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:64,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:64,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:65,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:65,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuUsbInterface*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: fu_usb_interface_parse_extra
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_firmware_add_image_full
    - FU_FIRMWARE
    - g_object_new
    - g_bytes_new
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_interface_parse_extra(FuUsbInterface *self, const guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:81,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:86,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:87,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:93,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:96,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:98,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:100,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:102,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:104,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:106,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:108,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:110,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:113,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:114,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:115,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:117,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:118,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:119,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:119,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:121,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:121,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:126,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:129,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 136
    functionName: fu_usb_interface_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_base64_decode
    - json_array_get_element
    - json_object_get_int_member_with_default
    - fu_usb_interface_parse_extra
    - FU_USB_INTERFACE
    - FWUPD_CODEC
    - g_object_new
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_string_member_with_default
    - json_object_get_array_member
    - json_node_get_object
    - g_autoptr
    - json_object_has_member
    - fwupd_codec_from_json
    - g_ptr_array_add
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_interface_from_json(FwupdCodec *codec, JsonNode *json_node,
      GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:142,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:142,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:146,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:147,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:150,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:151,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:154,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:155,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:158,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:159,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:162,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:163,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:166,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:167,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:170,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:171,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:174,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:175,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:180,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:183,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:184,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:185,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:185,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:186,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:194,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:194,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:197,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:197,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:197,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:199,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:201,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:202,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:203,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 205
    functionName: fu_usb_interface_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - fu_byte_array_append_bytes
    - FU_USB_INTERFACE
    - json_builder_end_array
    - json_builder_begin_object
    - FWUPD_CODEC
    - json_builder_add_string_value
    - FU_FIRMWARE
    - fu_firmware_get_images
    - json_builder_add_int_value
    - json_builder_set_member_name
    - g_ptr_array_index
    - fwupd_codec_to_json
    - g_autoptr
    - g_base64_encode
    - json_builder_end_object
    - g_byte_array_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_add_json(FwupdCodec *codec, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:217,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:220,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:223,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:226,1
    - Dst: fu_usb_endpoint_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:226,1
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - iface
    - error
    argTypes:
    - struct libusb_interface_descriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: fu_usb_interface_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_parse_extra
    - FU_USB_INTERFACE
    - memcpy
    - g_object_new
    - g_ptr_array_add
    - fu_usb_endpoint_new
    linkageType: ''
    returnType: FuUsbInterface
    signature: 'FuUsbInterface *

      fu_usb_interface_new(const struct libusb_interface_descriptor *iface, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:244,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: fu_usb_interface_get_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_number(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:261,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: fu_usb_interface_get_alternate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_alternate(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:278,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: fu_usb_interface_get_class
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_class(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:296,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: fu_usb_interface_get_subclass
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_subclass(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:314,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: fu_usb_interface_get_protocol
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_protocol(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:331,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: fu_usb_interface_get_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_interface_get_index(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:348,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:348,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: fu_usb_interface_get_endpoints
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_INTERFACE
    - g_return_val_if_fail
    - g_ptr_array_ref
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_usb_interface_get_endpoints(FuUsbInterface *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:356,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:356,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:357,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:357,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:358,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - endpoint
    argTypes:
    - FuUsbInterface*
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: fu_usb_interface_add_endpoint
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - FU_IS_USB_ENDPOINT
    - g_return_if_fail
    - FU_IS_USB_INTERFACE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_add_endpoint(FuUsbInterface *self, FuUsbEndpoint
      *endpoint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:368,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:371,1
    - Dst: fu_usb_interface_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:376,1
    - Dst: fu_usb_interface_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:379,1
    - Dst: fu_usb_interface_hdr_get_interface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:381,1
    - Dst: fu_usb_interface_hdr_get_alternate_setting
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:382,1
    - Dst: fu_usb_interface_hdr_get_num_endpoints
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:383,1
    - Dst: fu_usb_interface_hdr_get_interface_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:384,1
    - Dst: fu_usb_interface_hdr_get_interface_sub_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:385,1
    - Dst: fu_usb_interface_hdr_get_interface_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:386,1
    - Dst: fu_usb_interface_hdr_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:387,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:388,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:392,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:393,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 406
    functionName: fu_usb_interface_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_hdr_parse_stream
    - fu_usb_interface_parse_extra
    - FU_USB_INTERFACE
    - fu_usb_interface_hdr_get_interface_protocol
    - fu_firmware_set_size
    - fu_usb_interface_hdr_get_interface
    - fu_input_stream_read_byte_array
    - fu_usb_interface_hdr_get_interface_sub_class
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - fu_usb_interface_hdr_get_alternate_setting
    - fu_usb_interface_hdr_get_length
    - g_autoptr
    - fu_usb_interface_hdr_get_interface_number
    - fu_usb_interface_hdr_get_num_endpoints
    - fu_usb_interface_hdr_get_interface_class
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_interface_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: fu_usb_interface_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:418,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:419,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: fu_usb_interface_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_USB_INTERFACE
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: fu_usb_interface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_init(FuUsbInterface *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:432,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbInterfaceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 437
    functionName: fu_usb_interface_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_class_init(FuUsbInterfaceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 875
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - freg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: FU_IFD_FREG_BASE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_IFD_FREG_BASE(freg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - freg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: FU_IFD_FREG_LIMIT
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_IFD_FREG_LIMIT(freg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:65,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:66,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:67,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:68,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:69,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:70,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:71,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:72,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:73,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:74,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:75,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:76,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:77,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:78,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:79,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:82,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:83,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:88,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 95
    functionName: fu_ifd_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFD_FIRMWARE
    - GET_PRIVATE
    - g_strdup_printf
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_ifd_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ifd_fdbar_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: fu_ifd_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifd_fdbar_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ifd_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:108,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:109,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:109,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:112,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:115,1
    - Dst: fu_composite_input_stream_add_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:118,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:118,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:122,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: fu_ifd_firmware_fixup_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - fu_composite_input_stream_add_stream
    - FU_COMPOSITE_INPUT_STREAM
    - fu_composite_input_stream_add_bytes
    - fu_composite_input_stream_new
    - g_bytes_new
    - g_autoptr
    - fu_input_stream_size
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_ifd_firmware_fixup_stream(GInputStream *stream, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - region
    - flash_master
    - new_layout
    argTypes:
    - FuIfdRegion
    - guint32
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 156
    functionName: fu_ifd_firmware_region_to_access
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuIfdAccess
    signature: FuIfdAccess fu_ifd_firmware_region_to_access(FuIfdRegion region, guint32
      flash_master, gboolean new_layout)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:164,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:169,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:175,1
    - Dst: fu_ifd_firmware_fixup_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:184,1
    - Dst: fu_struct_ifd_fdbar_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:189,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:192,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:199,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map2
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:202,1
    - Dst: fu_struct_ifd_fcba_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:206,1
    - Dst: fu_struct_ifd_fcba_get_flcomp
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:209,1
    - Dst: fu_struct_ifd_fcba_get_flill
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:210,1
    - Dst: fu_struct_ifd_fcba_get_flill1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:211,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:214,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:220,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:226,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:234,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:236,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:244,1
    - Dst: FU_IFD_FREG_BASE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:245,1
    - Dst: FU_IFD_FREG_LIMIT
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:256,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:259,1
    - Dst: fu_ifd_bios_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:263,1
    - Dst: fu_ifd_image_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:265,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:267,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:273,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:274,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:276,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:277,1
    - Dst: fu_ifd_firmware_region_to_access
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:283,1
    - Dst: fu_ifd_image_set_access
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:286,1
    - Dst: FU_IFD_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:286,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 292
    functionName: fu_ifd_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFD_FIRMWARE
    - fu_struct_ifd_fdbar_get_descriptor_map2
    - fu_ifd_image_set_access
    - fu_input_stream_read_u32
    - FU_IFD_IMAGE
    - g_new0
    - fu_struct_ifd_fdbar_parse_stream
    - fu_struct_ifd_fcba_get_flill
    - g_prefix_error
    - fu_ifd_firmware_region_to_access
    - FU_IFD_FREG_BASE
    - g_set_error
    - g_debug
    - fu_ifd_bios_new
    - fu_ifd_firmware_fixup_stream
    - fu_firmware_add_image_full
    - fu_struct_ifd_fdbar_get_descriptor_map0
    - fu_struct_ifd_fcba_get_flill1
    - fu_firmware_set_addr
    - FU_IFD_FREG_LIMIT
    - fu_struct_ifd_fdbar_get_descriptor_map1
    - fu_ifd_region_to_string
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_struct_ifd_fcba_parse_stream
    - fu_struct_ifd_fcba_get_flcomp
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - GET_PRIVATE
    - fu_ifd_image_new
    - fu_firmware_set_idx
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifd_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - cmd
    argTypes:
    - FuIfdFirmware*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: fu_ifd_firmware_check_jedec_cmd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ifd_firmware_check_jedec_cmd(FuIfdFirmware *self, guint8
      cmd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:321,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:324,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:324,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:325,1
    - Dst: fu_struct_ifd_fcba_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:326,1
    - Dst: fu_struct_ifd_fdbar_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:328,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:333,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:334,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:335,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:338,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:339,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:340,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:341,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:342,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:343,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:352,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:353,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:359,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:359,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:362,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:363,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:367,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:370,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:370,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:370,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:373,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:373,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:373,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:375,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:378,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:379,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map2
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:380,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:381,1
    - Dst: fu_struct_ifd_fcba_set_flcomp
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:392,1
    - Dst: fu_struct_ifd_fcba_set_flill
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:393,1
    - Dst: fu_struct_ifd_fcba_set_flill1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:394,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:410,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:410,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:413,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:413,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:413,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:414,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:415,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:418,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:431,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:431,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:434,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:434,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:434,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:435,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:437,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:438,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:439,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:441,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:447,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 448
    functionName: fu_ifd_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - FU_IFD_FIRMWARE
    - fu_struct_ifd_fdbar_set_descriptor_map0
    - g_prefix_error
    - fu_firmware_get_addr
    - fu_struct_ifd_fcba_set_flill
    - fu_struct_ifd_fcba_set_flill1
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_id
    - g_set_error
    - fu_struct_ifd_fdbar_set_descriptor_map1
    - g_debug
    - fu_struct_ifd_fcba_set_flcomp
    - fu_firmware_new_from_bytes
    - fu_firmware_set_addr
    - fu_memwrite_uint32_safe
    - fu_struct_ifd_fdbar_new
    - fu_firmware_add_image
    - g_steal_pointer
    - g_hash_table_new_full
    - fu_firmware_get_idx
    - fu_struct_ifd_fcba_new
    - g_autoptr
    - g_bytes_new
    - g_bytes_get_data
    - g_byte_array_new
    - fu_firmware_write
    - fu_firmware_set_id
    - fu_struct_ifd_fdbar_set_descriptor_map2
    - g_bytes_get_size
    - fu_memcpy_safe
    - MAX
    - GET_PRIVATE
    - fu_firmware_set_idx
    - g_bytes_ref
    - g_hash_table_lookup
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ifd_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:453,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:454,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:458,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:461,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:464,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:467,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:470,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 478
    functionName: fu_ifd_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_IFD_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ifd_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:483,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:496,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:497,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: fu_ifd_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_ifd_firmware_init(FuIfdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:504,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:505,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:506,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: fu_ifd_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFD_FIRMWARE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifd_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:513,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 521
    functionName: fu_ifd_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifd_firmware_class_init(FuIfdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:533,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: fu_ifd_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifd_firmware_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:48,1
    - Dst: fu_struct_cfu_payload_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:50,1
    - Dst: fu_struct_cfu_payload_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:54,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:56,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:62,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:65,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:66,1
    - Dst: fu_struct_cfu_payload_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:66,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: fu_cfu_payload_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - fu_struct_cfu_payload_get_size
    - fu_input_stream_read_bytes
    - fu_struct_cfu_payload_parse_stream
    - fu_chunk_bytes_new
    - fu_chunk_set_address
    - fu_struct_cfu_payload_get_addr
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_size
    - fu_firmware_add_chunk
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_payload_parse(FuFirmware *firmware,\n\t\t     GInputStream
      *stream,\n\t\t     FuFirmwareParseFlags flags,\n\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:80,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:81,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:83,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:88,1
    - Dst: fu_struct_cfu_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:88,1
    - Dst: fu_struct_cfu_payload_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:89,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:89,1
    - Dst: fu_struct_cfu_payload_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:90,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:90,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:91,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:92,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:92,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:92,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: fu_cfu_payload_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_firmware_get_chunks
    - g_steal_pointer
    - fu_struct_cfu_payload_set_addr
    - g_byte_array_append
    - fu_struct_cfu_payload_new
    - g_ptr_array_index
    - fu_struct_cfu_payload_set_size
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_get_address
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cfu_payload_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: fu_cfu_payload_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_cfu_payload_init(FuCfuPayload *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuPayloadClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: fu_cfu_payload_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfu_payload_class_init(FuCfuPayloadClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:120,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: fu_cfu_payload_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_cfu_payload_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 882
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:47,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: fu_dfu_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:56,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: fu_dfu_firmware_get_footer_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dfu_firmware_get_footer_len(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:74,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_dfu_firmware_get_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_firmware_get_vid(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:91,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:92,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: fu_dfu_firmware_get_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_firmware_get_pid(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:110,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: fu_dfu_firmware_get_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_firmware_get_release(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:127,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:128,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fu_dfu_firmware_get_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_firmware_get_version(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:144,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:145,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - vid
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: fu_dfu_firmware_set_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_set_vid(FuDfuFirmware *self, guint16 vid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:161,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:162,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pid
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: fu_dfu_firmware_set_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_set_pid(FuDfuFirmware *self, guint16 pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:178,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:179,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: fu_dfu_firmware_set_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_set_release(FuDfuFirmware *self, guint16 release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:195,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:196,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: fu_dfu_firmware_set_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_set_version(FuDfuFirmware *self, guint16 version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:204,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:207,1
    - Dst: fu_struct_dfu_ftr_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: fu_dfu_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - g_set_error_literal
    - fu_struct_dfu_ftr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:226,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:228,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:231,1
    - Dst: fu_struct_dfu_ftr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:234,1
    - Dst: fu_struct_dfu_ftr_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:237,1
    - Dst: fu_struct_dfu_ftr_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:238,1
    - Dst: fu_struct_dfu_ftr_get_release
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:239,1
    - Dst: fu_struct_dfu_ftr_get_ver
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:240,1
    - Dst: fu_struct_dfu_ftr_get_len
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:241,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:245,1
    - Dst: fu_struct_dfu_ftr_get_crc
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:247,1
    - Dst: fu_struct_dfu_ftr_get_crc
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:252,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuDfuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 270
    functionName: fu_dfu_firmware_parse_footer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_struct_dfu_ftr_get_len
    - fu_struct_dfu_ftr_get_vid
    - fu_struct_dfu_ftr_get_pid
    - fu_struct_dfu_ftr_get_ver
    - GET_PRIVATE
    - fu_struct_dfu_ftr_get_release
    - g_autoptr
    - fu_crc32
    - fu_struct_dfu_ftr_parse_stream
    - fu_input_stream_read_bytes
    - fu_struct_dfu_ftr_get_crc
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_firmware_parse_footer(FuDfuFirmware *self,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:278,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:281,1
    - Dst: fu_dfu_firmware_parse_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:284,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:288,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:290,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: fu_dfu_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_parse_footer
    - fu_input_stream_read_bytes
    - GET_PRIVATE
    - g_autoptr
    - fu_input_stream_size
    - fu_firmware_set_bytes
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:301,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:302,1
    - Dst: fu_struct_dfu_ftr_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:302,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:305,1
    - Dst: fu_struct_dfu_ftr_set_release
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:306,1
    - Dst: fu_struct_dfu_ftr_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:307,1
    - Dst: fu_struct_dfu_ftr_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:308,1
    - Dst: fu_struct_dfu_ftr_set_ver
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:309,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:310,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:311,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:312,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - self
    - contents
    - error
    argTypes:
    - FuDfuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 315
    functionName: fu_dfu_firmware_append_footer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_struct_dfu_ftr_set_pid
    - g_steal_pointer
    - fu_struct_dfu_ftr_set_release
    - fu_struct_dfu_ftr_new
    - GET_PRIVATE
    - fu_struct_dfu_ftr_set_ver
    - g_autoptr
    - fu_struct_dfu_ftr_set_vid
    - fu_crc32
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_dfu_firmware_append_footer(FuDfuFirmware *self, GBytes *contents, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:321,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:321,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:322,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:326,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:334,1
    - Dst: fu_dfu_firmware_append_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 338
    functionName: fu_dfu_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_images
    - g_autoptr
    - fu_dfu_firmware_append_footer
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_dfu_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:343,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:344,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:348,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:351,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:354,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 363
    functionName: fu_dfu_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - GET_PRIVATE
    - FU_DFU_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:368,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:373,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:373,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:374,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: fu_dfu_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_init(FuDfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: fu_dfu_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_firmware_class_init(FuDfuFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:398,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: fu_dfu_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_dfu_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:28,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - smbios
    - type
    - offset
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: fu_hwids_smbios_convert_string_table_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    functionUses: 0
    functionsReached:
    - fu_smbios_get_string
    - fu_strstrip
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_hwids_smbios_convert_string_table_cb(FuSmbios *smbios,\n\t\t\t\t\tguint8
      type,\n\t\t\t\t\tguint8 offset,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:42,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - smbios
    - type
    - offset
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: fu_hwids_smbios_convert_padded_integer_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_smbios_get_integer
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_hwids_smbios_convert_padded_integer_cb(FuSmbios *smbios,\n\t\t\t\t\t
      \ guint8 type,\n\t\t\t\t\t  guint8 offset,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:52,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - smbios
    - type
    - offset
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: fu_hwids_smbios_convert_integer_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_smbios_get_integer
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_smbios_convert_integer_cb(FuSmbios *smbios, guint8 type, guint8 offset,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_smbios
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:61,1
    - Dst: fu_smbios_setup
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:121,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:125,1
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:134,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:136,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:138,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:141,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 153
    functionName: fu_hwids_smbios_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    functionUses: 0
    functionsReached:
    - func
    - g_debug
    - fu_smbios_setup
    - fu_smbios_get_integer
    - fu_context_get_smbios
    - g_autoptr
    - fu_hwids_add_value
    - fu_context_set_chassis_kind
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_smbios_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 897
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:44,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:48,1
    - Dst: fu_uswid_payload_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: fu_uswid_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_uswid_payload_compression_to_string
    - FU_USWID_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_uswid_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_uswid_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: fu_uswid_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_uswid_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uswid_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:67,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:72,1
    - Dst: fu_struct_uswid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:75,1
    - Dst: fu_struct_uswid_get_hdrver
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:80,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:82,1
    - Dst: fu_struct_uswid_get_hdrsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:90,1
    - Dst: fu_struct_uswid_get_payloadsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:93,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:99,1
    - Dst: fu_struct_uswid_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:103,1
    - Dst: fu_struct_uswid_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:104,1
    - Dst: fu_struct_uswid_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:120,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:121,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:121,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:124,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:127,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:127,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:129,1
    - Dst: g_filter_input_stream_set_close_base_stream
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:130,1
    - Dst: G_FILTER_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:130,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:135,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:136,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:139,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:147,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:158,1
    - Dst: fu_coswid_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:159,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:162,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:165,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:171,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:174,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:180,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 88
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 185
    functionName: fu_uswid_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_filter_input_stream_set_close_base_stream
    - fu_struct_uswid_get_hdrver
    - g_prefix_error
    - G_FILTER_INPUT_STREAM
    - fu_coswid_firmware_new
    - g_set_error
    - fu_lzma_decompress_bytes
    - G_SEEKABLE
    - fu_firmware_add_image_full
    - fu_struct_uswid_get_hdrsz
    - g_converter_input_stream_new
    - g_zlib_decompressor_new
    - G_CONVERTER
    - fu_struct_uswid_get_compression
    - fu_input_stream_read_bytes
    - fu_firmware_set_size
    - g_seekable_seek
    - g_autoptr
    - fu_struct_uswid_get_flags
    - fu_bytes_new_offset
    - fu_firmware_parse_bytes
    - fu_partial_input_stream_new
    - fu_firmware_get_size
    - g_bytes_get_size
    - g_set_error_literal
    - fu_struct_uswid_parse_stream
    - GET_PRIVATE
    - FU_USWID_FIRMWARE
    - fu_struct_uswid_get_payloadsz
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uswid_firmware_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:190,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:192,1
    - Dst: fu_struct_uswid_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:193,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:195,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:195,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:200,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:200,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:210,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:212,1
    - Dst: g_zlib_compressor_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:212,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:213,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:214,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:219,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:219,1
    - Dst: fu_lzma_compress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:220,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:224,1
    - Dst: fu_struct_uswid_set_hdrver
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:228,1
    - Dst: fu_struct_uswid_set_payloadsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:229,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:229,1
    - Dst: fu_struct_uswid_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:234,1
    - Dst: fu_struct_uswid_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:235,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:240,1
    - Dst: fu_struct_uswid_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:248,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:249,1
    - Dst: fu_struct_uswid_set_hdrsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:250,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:252,1
    - Dst: fu_struct_uswid_set_hdrsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:253,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:255,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 259
    functionName: fu_uswid_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_uswid_new
    - g_zlib_compressor_new
    - fu_firmware_get_images
    - g_byte_array_set_size
    - fu_byte_array_append_bytes
    - g_converter_input_stream_new
    - fu_struct_uswid_set_flags
    - fu_struct_uswid_set_hdrsz
    - g_ptr_array_index
    - G_CONVERTER
    - g_steal_pointer
    - fu_struct_uswid_set_hdrver
    - fu_lzma_compress_bytes
    - g_memory_input_stream_new_from_data
    - g_autoptr
    - g_bytes_new
    - fu_struct_uswid_set_compression
    - g_byte_array_new
    - fu_firmware_write
    - g_bytes_get_size
    - g_set_error_literal
    - fu_struct_uswid_set_payloadsz
    - GET_PRIVATE
    - FU_USWID_FIRMWARE
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_uswid_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:264,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:265,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:270,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:275,1
    - Dst: fu_uswid_payload_compression_from_string
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:277,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 292
    functionName: fu_uswid_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_query_text_as_uint
    - fu_uswid_payload_compression_from_string
    - GET_PRIVATE
    - FU_USWID_FIRMWARE
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uswid_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:297,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:300,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:301,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:301,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:302,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:302,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: fu_uswid_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - GET_PRIVATE
    - fu_firmware_add_flag
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_uswid_firmware_init(FuUswidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUswidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: fu_uswid_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uswid_firmware_class_init(FuUswidFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:327,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: fu_uswid_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uswid_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_elf_file_header64le_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: fu_elf_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elf_file_header64le_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elf_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:50,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:51,1
    - Dst: fu_struct_elf_file_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:54,1
    - Dst: fu_struct_elf_file_header64le_get_phoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:59,1
    - Dst: fu_struct_elf_file_header64le_get_phentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:60,1
    - Dst: fu_struct_elf_file_header64le_get_phnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:63,1
    - Dst: fu_struct_elf_program_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:64,1
    - Dst: fu_struct_elf_file_header64le_get_shoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:71,1
    - Dst: fu_struct_elf_file_header64le_get_shnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:74,1
    - Dst: fu_struct_elf_section_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:75,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:78,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:78,1
    - Dst: fu_struct_elf_file_header64le_get_shentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:84,1
    - Dst: fu_struct_elf_section_header64le_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:85,1
    - Dst: fu_struct_elf_section_header64le_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:87,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:87,1
    - Dst: fu_struct_elf_file_header64le_get_shstrndx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:90,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:93,1
    - Dst: fu_elf_section_header_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:98,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:99,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:102,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:112,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:118,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:119,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:121,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:124,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:127,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:134,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:143,1
    - Dst: fu_struct_elf_section_header64le_get_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:146,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:148,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:154,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:161,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:164,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:167,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 172
    functionName: fu_elf_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_input_stream_read_byte_array
    - fu_struct_elf_file_header64le_parse_stream
    - fu_struct_elf_file_header64le_get_shoff
    - fu_struct_elf_section_header64le_get_type
    - fu_struct_elf_file_header64le_get_shstrndx
    - fu_struct_elf_file_header64le_get_phentsize
    - fu_firmware_get_image_by_idx
    - g_set_error
    - fu_struct_elf_file_header64le_get_shnum
    - fu_struct_elf_section_header64le_get_offset
    - fu_firmware_add_image_full
    - g_ptr_array_index
    - fu_struct_elf_section_header64le_get_name
    - fu_elf_section_header_type_to_string
    - fu_struct_elf_program_header64le_parse_stream
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_struct_elf_section_header64le_parse_stream
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_firmware_new
    - g_ptr_array_add
    - fu_partial_input_stream_new
    - fu_struct_elf_file_header64le_get_phnum
    - fu_firmware_set_id
    - fu_struct_elf_section_header64le_get_size
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_strndup
    - fu_struct_elf_file_header64le_get_shentsize
    - fu_struct_elf_file_header64le_get_phoff
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elf_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:183,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - FuElfFirmwareStrtabEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: fu_elf_firmware_strtab_entry_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_elf_firmware_strtab_entry_free(FuElfFirmwareStrtabEntry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:190,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:197,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:200,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:201,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strtab
    - name
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: fu_elf_firmware_strtab_insert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_new0
    - g_return_if_fail
    - g_ptr_array_index
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_elf_firmware_strtab_insert(GPtrArray *strtab, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:209,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:210,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:211,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:212,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: fu_elf_firmware_strtab_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_steal_pointer
    - g_autoptr
    - fu_elf_firmware_strtab_insert
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_elf_firmware_strtab_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:219,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:219,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:221,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:222,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strtab
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: fu_elf_firmware_strtab_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_index
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elf_firmware_strtab_write(GPtrArray *strtab)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:231,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - strtab
    - name
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: fu_elf_firmware_strtab_get_offset_for_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: gsize
    signature: gsize fu_elf_firmware_strtab_get_offset_for_name(GPtrArray *strtab,
      const gchar *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:243,1
    - Dst: fu_struct_elf_file_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:244,1
    - Dst: fu_struct_elf_program_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:245,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:246,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:247,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:250,1
    - Dst: fu_elf_firmware_strtab_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:250,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:258,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:260,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:261,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:262,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:266,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:269,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:269,1
    - Dst: fu_elf_firmware_strtab_write
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:271,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:282,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:285,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:285,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:288,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:294,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:295,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:307,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:308,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:309,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:313,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:314,1
    - Dst: fu_elf_firmware_strtab_get_offset_for_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:316,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:316,1
    - Dst: fu_struct_elf_section_header64le_set_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:317,1
    - Dst: fu_struct_elf_section_header64le_set_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:318,1
    - Dst: fu_struct_elf_section_header64le_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:320,1
    - Dst: fu_struct_elf_section_header64le_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:321,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:323,1
    - Dst: fu_struct_elf_section_header64le_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:324,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:325,1
    - Dst: fu_struct_elf_section_header64le_set_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:326,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:326,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:330,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:331,1
    - Dst: fu_struct_elf_section_header64le_set_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:332,1
    - Dst: fu_struct_elf_section_header64le_set_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:334,1
    - Dst: fu_struct_elf_section_header64le_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:336,1
    - Dst: fu_struct_elf_section_header64le_set_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:338,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:339,1
    - Dst: fu_struct_elf_file_header64le_set_entry
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:343,1
    - Dst: fu_struct_elf_file_header64le_set_shoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:344,1
    - Dst: fu_struct_elf_file_header64le_set_phentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:347,1
    - Dst: fu_struct_elf_file_header64le_set_phnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:349,1
    - Dst: fu_struct_elf_file_header64le_set_shentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:350,1
    - Dst: fu_struct_elf_file_header64le_set_shnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:352,1
    - Dst: fu_struct_elf_file_header64le_set_shstrndx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:353,1
    - Dst: fu_struct_elf_program_header64le_set_vaddr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:354,1
    - Dst: fu_struct_elf_program_header64le_set_paddr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:355,1
    - Dst: fu_struct_elf_program_header64le_set_filesz
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:356,1
    - Dst: fu_struct_elf_program_header64le_set_memsz
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:359,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:364,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:365,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:366,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:367,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:368,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 369
    functionName: fu_elf_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elf_file_header64le_new
    - fu_struct_elf_file_header64le_set_shoff
    - fu_struct_elf_file_header64le_set_shstrndx
    - fu_struct_elf_program_header64le_set_memsz
    - fu_struct_elf_program_header64le_new
    - fu_struct_elf_program_header64le_set_vaddr
    - fu_firmware_get_images
    - fu_struct_elf_file_header64le_set_entry
    - fu_struct_elf_file_header64le_set_phnum
    - fu_firmware_get_id
    - g_set_error
    - fu_byte_array_append_bytes
    - fu_firmware_set_offset
    - fu_elf_firmware_strtab_write
    - g_ptr_array_index
    - fu_elf_firmware_strtab_insert
    - fu_struct_elf_section_header64le_new
    - fu_struct_elf_file_header64le_set_shentsize
    - fu_struct_elf_program_header64le_set_paddr
    - fu_firmware_get_offset
    - g_steal_pointer
    - fu_struct_elf_file_header64le_set_phentsize
    - fu_struct_elf_file_header64le_set_shnum
    - fu_struct_elf_program_header64le_set_filesz
    - fu_struct_elf_section_header64le_set_name
    - fu_struct_elf_section_header64le_set_type
    - fu_struct_elf_section_header64le_set_offset
    - fu_firmware_get_idx
    - g_autoptr
    - fu_struct_elf_section_header64le_set_flags
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_elf_firmware_strtab_new
    - fu_firmware_get_size
    - fu_struct_elf_section_header64le_set_size
    - fu_elf_firmware_strtab_get_offset_for_name
    - fu_struct_elf_section_header64le_set_addr
    - g_byte_array_append
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elf_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:374,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElfFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: fu_elf_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_elf_firmware_init(FuElfFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElfFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: fu_elf_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elf_firmware_class_init(FuElfFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:396,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: fu_elf_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elf_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:42,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:43,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:44,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: fu_efi_x509_signature_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - FU_EFI_X509_SIGNATURE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:62,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_efi_x509_signature_get_issuer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_X509_SIGNATURE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_get_issuer(FuEfiX509Signature *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:70,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:70,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:71,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:73,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - issuer
    argTypes:
    - FuEfiX509Signature*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: fu_efi_x509_signature_set_issuer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 1
    functionsReached:
    - FU_IS_EFI_X509_SIGNATURE
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_set_issuer(FuEfiX509Signature *self, const
      gchar *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:80,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:99,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:100,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: fu_efi_x509_signature_normalize_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_string_new
    - G_N_ELEMENTS
    - g_string_replace
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_normalize_vendor(const gchar *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_x509_signature_normalize_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FuEfiX509Signature*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: fu_efi_x509_signature_set_subject_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - fu_efi_x509_signature_normalize_vendor
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_set_subject_vendor(FuEfiX509Signature *self,
      const gchar *vendor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:113,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:113,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:118,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:124,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:125,1
    - Dst: fu_efi_x509_signature_normalize_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuEfiX509Signature*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: fu_efi_x509_signature_set_subject_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - FU_FIRMWARE
    - g_string_truncate
    - fu_efi_x509_signature_normalize_vendor
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_set_subject_name(FuEfiX509Signature *self,
      const gchar *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:135,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:135,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:138,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:139,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:140,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: fu_efi_x509_signature_build_dedupe_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_X509_SIGNATURE
    - g_strdup_printf
    - g_strdup
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_build_dedupe_key(FuEfiX509Signature *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:149,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:149,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:150,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:152,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:153,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:157,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:157,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:159,1
    - Dst: fu_efi_x509_signature_set_subject_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:160,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:163,1
    - Dst: fu_efi_x509_signature_set_subject_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - self
    - subject
    argTypes:
    - FuEfiX509Signature*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: fu_efi_x509_signature_set_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_auto
    - g_str_has_prefix
    - FU_IS_EFI_X509_SIGNATURE
    - fu_efi_x509_signature_set_subject_name
    - g_strsplit
    - fu_efi_x509_signature_set_subject_vendor
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_set_subject(FuEfiX509Signature *self, const
      gchar *subject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:184,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: fu_efi_x509_signature_get_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_X509_SIGNATURE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_get_subject(FuEfiX509Signature *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:201,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: fu_efi_x509_signature_get_subject_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_X509_SIGNATURE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_get_subject_name(FuEfiX509Signature *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:218,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: fu_efi_x509_signature_get_subject_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_X509_SIGNATURE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_get_subject_vendor(FuEfiX509Signature *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:229,1
    - Dst: fu_x509_certificate_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:230,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:233,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:238,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:241,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:241,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:243,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:243,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:243,1
    - Dst: fu_efi_x509_signature_set_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:244,1
    - Dst: fu_x509_certificate_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:244,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:245,1
    - Dst: fu_x509_certificate_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:245,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:248,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:249,1
    - Dst: fu_x509_certificate_get_activation_time
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:251,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:252,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:253,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:253,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 259
    functionName: fu_efi_x509_signature_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - fu_x509_certificate_new
    - fu_firmware_set_id
    - g_debug
    - fu_efi_x509_signature_set_subject
    - fu_x509_certificate_get_activation_time
    - fu_firmware_get_id
    - g_date_time_get_year
    - fu_firmware_get_version_raw
    - FU_FIRMWARE
    - fu_x509_certificate_get_issuer
    - FU_FIRMWARE_CLASS
    - fu_x509_certificate_get_subject
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_efi_x509_signature_set_issuer
    - FU_EFI_X509_SIGNATURE
    - fu_firmware_parse_bytes
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_x509_signature_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:264,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: fu_efi_x509_signature_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint64
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_x509_signature_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_signature_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:270,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:270,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:271,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: fu_efi_x509_signature_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - FU_EFI_SIGNATURE
    - fu_firmware_set_version_format
    - fu_efi_signature_set_kind
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_init(FuEfiX509Signature *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:277,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:278,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:279,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:280,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:281,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 283
    functionName: fu_efi_x509_signature_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - FU_EFI_X509_SIGNATURE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:288,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiX509SignatureClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: fu_efi_x509_signature_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_class_init(FuEfiX509SignatureClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: fu_efi_x509_signature_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiX509Signature
    signature: 'FuEfiX509Signature *

      fu_efi_x509_signature_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:32,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:33,1
    - Dst: cbor_isa_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:35,1
    - Dst: cbor_string_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:37,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:43,1
    - Dst: cbor_string_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:43,1
    - Dst: cbor_string_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:43,1
    - Dst: cbor_isa_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:45,1
    - Dst: cbor_bytestring_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:45,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:46,1
    - Dst: cbor_bytestring_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - item
    - error
    argTypes:
    - cbor_item_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: fu_coswid_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_bytestring_length
    - cbor_bytestring_handle
    - fwupd_guid_to_string
    - cbor_string_handle
    - cbor_isa_bytestring
    - g_set_error_literal
    - cbor_isa_string
    - cbor_string_length
    - g_strndup
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_coswid_read_string(cbor_item_t *item, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:71,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:74,1
    - Dst: cbor_isa_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:77,1
    - Dst: cbor_bytestring_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:83,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:84,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:90,1
    - Dst: cbor_bytestring_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:90,1
    - Dst: cbor_bytestring_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:90,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - item
    - error
    argTypes:
    - cbor_item_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: fu_coswid_read_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_bytestring_length
    - g_steal_pointer
    - cbor_bytestring_handle
    - g_byte_array_append
    - cbor_isa_bytestring
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_coswid_read_byte_array(cbor_item_t *item, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:112,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:113,1
    - Dst: cbor_isa_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:116,1
    - Dst: cbor_get_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidTag*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 133
    functionName: fu_coswid_read_tag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_isa_uint
    - g_set_error
    - g_set_error_literal
    - cbor_get_int
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_tag(cbor_item_t *item, FuCoswidTag *value,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:152,1
    - Dst: cbor_isa_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:155,1
    - Dst: cbor_get_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidVersionScheme*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: fu_coswid_read_version_scheme
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_isa_uint
    - g_return_val_if_fail
    - g_set_error_literal
    - cbor_get_int
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_version_scheme(cbor_item_t *item, FuCoswidVersionScheme
      *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:183,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:184,1
    - Dst: cbor_isa_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:186,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:187,1
    - Dst: cbor_get_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:193,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - cbor_item_t*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: fu_coswid_read_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_isa_uint
    - g_set_error
    - g_set_error_literal
    - cbor_get_int
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_u8(cbor_item_t *item, guint8 *value, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:225,1
    - Dst: cbor_is_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:228,1
    - Dst: cbor_get_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:236,1
    - Dst: cbor_isa_negint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - cbor_item_t*
    - gint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 245
    functionName: fu_coswid_read_s8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - cbor_is_int
    - g_set_error_literal
    - cbor_get_int
    - g_return_val_if_fail
    - cbor_isa_negint
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_s8(cbor_item_t *item, gint8 *value, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:264,1
    - Dst: cbor_isa_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:266,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:267,1
    - Dst: cbor_get_int
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - cbor_item_t*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: fu_coswid_read_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_isa_uint
    - g_return_val_if_fail
    - g_set_error_literal
    - cbor_get_int
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_u64(cbor_item_t *item, guint64 *value, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:292,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:293,1
    - Dst: cbor_build_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:293,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:294,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: fu_coswid_write_tag_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_build_string
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_string(cbor_item_t *item, FuCoswidTag tag,
      const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:314,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:315,1
    - Dst: cbor_build_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:315,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:316,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - item
    - tag
    - buf
    - bufsz
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: fu_coswid_write_tag_bytestring
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_build_bytestring
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_bytestring(cbor_item_t *item, FuCoswidTag
      tag, const guint8 *buf, gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:335,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:336,1
    - Dst: cbor_build_bool
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:336,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:337,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: fu_coswid_write_tag_bool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_build_bool
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_bool(cbor_item_t *item, FuCoswidTag tag, gboolean
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:356,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:357,1
    - Dst: cbor_build_uint16
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:357,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:358,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: fu_coswid_write_tag_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_build_uint16
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_u16(cbor_item_t *item, FuCoswidTag tag, guint16
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:377,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:378,1
    - Dst: cbor_build_uint64
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:378,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:379,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: fu_coswid_write_tag_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_build_uint64
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_u64(cbor_item_t *item, FuCoswidTag tag, guint64
      value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:398,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:399,1
    - Dst: cbor_new_int8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:399,1
    - Dst: cbor_set_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:401,1
    - Dst: cbor_set_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:403,1
    - Dst: cbor_mark_negint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:404,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:406,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - gint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: fu_coswid_write_tag_s8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - cbor_mark_negint
    - cbor_new_int8
    - g_critical
    - cbor_map_add
    - g_autoptr
    - cbor_set_uint8
    - cbor_build_uint8
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_s8(cbor_item_t *item, FuCoswidTag tag, gint8
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:425,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:425,1
    - Dst: cbor_map_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:426,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - cbor_item_t*
    - FuCoswidTag
    - cbor_item_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: fu_coswid_write_tag_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_critical
    - cbor_build_uint8
    - cbor_map_add
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_item(cbor_item_t *item, FuCoswidTag tag, cbor_item_t
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:449,1
    - Dst: cbor_isa_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:452,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:453,1
    - Dst: cbor_isa_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:456,1
    - Dst: cbor_array_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:458,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:458,1
    - Dst: cbor_isa_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:459,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:460,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:466,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - item
    - func
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidItemFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 478
    functionName: fu_coswid_parse_one_or_many
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - func
    - cbor_array_size
    - cbor_isa_array
    - g_set_error_literal
    - g_autoptr
    - cbor_array_get
    - cbor_isa_map
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_parse_one_or_many(cbor_item_t *item,\n\t\t\t    FuCoswidItemFunc
      func,\n\t\t\t    gpointer user_data,\n\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fu_efi_device_path_list_gtype_to_member_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - g_type_name
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_device_path_list_gtype_to_member_name(GType gtype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:50,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:50,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:52,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:53,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:55,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:56,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:57,1
    - Dst: fu_efi_device_path_list_gtype_to_member_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:59,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:59,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:60,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:61,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:61,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:62,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:63,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: fu_efi_device_path_list_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - json_builder_begin_array
    - json_builder_end_array
    - json_builder_begin_object
    - fu_efi_device_path_list_gtype_to_member_name
    - FWUPD_CODEC
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - json_builder_set_member_name
    - fwupd_codec_to_json
    - g_autoptr
    - json_builder_end_object
    - G_OBJECT_TYPE
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_list_add_json(FwupdCodec *codec, JsonBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:80,1
    - Dst: fu_struct_efi_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:83,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:86,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:88,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:89,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:91,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:91,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:92,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:94,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:96,1
    - Dst: fu_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:96,1
    - Dst: fu_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:98,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:100,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:101,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:103,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:103,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:105,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 110
    functionName: fu_efi_device_path_list_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - FU_EFI_DEVICE_PATH
    - g_autoptr
    - fu_struct_efi_device_path_parse_stream
    - fu_efi_file_path_device_path_new
    - fu_input_stream_size
    - fu_efi_hard_drive_device_path_new
    - fu_efi_device_path_new
    - fu_struct_efi_device_path_get_subtype
    - fu_struct_efi_device_path_get_type
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_device_path_list_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:115,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:116,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:117,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:122,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:122,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:125,1
    - Dst: fu_struct_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:129,1
    - Dst: fu_struct_efi_device_path_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:130,1
    - Dst: fu_struct_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:131,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: fu_efi_device_path_list_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_device_path_set_subtype
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_struct_efi_device_path_new
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_byte_array_append
    - fu_struct_efi_device_path_set_type
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_device_path_list_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: fu_efi_device_path_list_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_list_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiDevicePathListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: fu_efi_device_path_list_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_list_class_init(FuEfiDevicePathListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:155,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:156,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:157,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePathList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: fu_efi_device_path_list_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_list_init(FuEfiDevicePathList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: fu_efi_device_path_list_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 4
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiDevicePathList
    signature: 'FuEfiDevicePathList *

      fu_efi_device_path_list_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:98,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:99,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fu_quirks_build_group_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - fwupd_guid_hash_string
    - fwupd_guid_is_valid
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_quirks_build_group_key(const gchar *group)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:106,1
    - Dst: g_ascii_isalnum
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:114,1
    - Dst: g_ascii_isalpha
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:121,1
    - Dst: g_ascii_islower
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:122,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - value
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: fu_quirks_validate_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_ascii_isalnum
    - g_ascii_islower
    - g_return_val_if_fail
    - g_ascii_isalpha
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_validate_flags(const gchar *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:144,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:145,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:147,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuQuirksConvertHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: fu_quirks_convert_helper_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_quirks_convert_helper_free(FuQuirksConvertHelper *helper)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:186,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:189,1
    - Dst: fu_quirks_build_group_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:190,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:191,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:192,1
    - Dst: g_string_assign
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:193,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:199,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:210,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:219,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:222,1
    - Dst: fu_quirks_validate_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:223,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:224,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 235
    functionName: fu_quirks_convert_keyfile_to_xml_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - xb_builder_node_insert
    - g_auto
    - fu_quirks_validate_flags
    - fu_strstrip
    - g_strsplit
    - g_string_assign
    - g_set_object
    - fu_quirks_build_group_key
    - g_autoptr
    - g_strndup
    - g_strcmp0
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_quirks_convert_keyfile_to_xml_cb(GString *token,\n\t\t\t\t
      \   guint token_idx,\n\t\t\t\t    gpointer user_data,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:242,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:242,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:245,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:246,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:247,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:247,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:248,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:256,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:259,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:260,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - bytes
    - error
    argTypes:
    - FuQuirks*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: fu_quirks_convert_keyfile_to_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_full
    - g_string_new
    - xb_builder_node_new
    - xb_builder_node_export
    - strlen
    - g_new0
    - g_bytes_new_take
    - g_steal_pointer
    - g_bytes_get_size
    - g_autoptr
    - g_bytes_get_data
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_quirks_convert_keyfile_to_xml(FuQuirks *self, GBytes *bytes, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:272,1
    - Dst: xb_builder_source_ctx_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:274,1
    - Dst: fu_quirks_convert_keyfile_to_xml
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:277,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - source
    - ctx
    - user_data
    - cancellable
    - error
    argTypes:
    - XbBuilderSource*
    - XbBuilderSourceCtx*
    - gpointer
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 281
    functionName: fu_quirks_convert_quirk_to_xml_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - fu_quirks_convert_keyfile_to_xml
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    - xb_builder_source_ctx_get_bytes
    linkageType: ''
    returnType: GInputStream
    signature: "GInputStream *\nfu_quirks_convert_quirk_to_xml_cb(XbBuilderSource
      *source,\n\t\t\t\t  XbBuilderSourceCtx *ctx,\n\t\t\t\t  gpointer user_data,\n\t\t\t\t
      \ GCancellable *cancellable,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: fu_quirks_filename_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_quirks_filename_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:296,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:296,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:298,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:301,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:303,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:306,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:307,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:307,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:308,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:311,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:311,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:315,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:320,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:321,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:321,1
    - Dst: xb_builder_source_add_simple_adapter
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:324,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:329,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:335,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:336,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - self
    - builder
    - path
    - error
    argTypes:
    - FuQuirks*
    - XbBuilder*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 346
    functionName: fu_quirks_add_quirks_for_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_add_simple_adapter
    - g_dir_read_name
    - g_prefix_error
    - xb_builder_import_source
    - fwupd_error_convert
    - g_debug
    - g_ptr_array_sort
    - g_file_new_for_path
    - g_ptr_array_index
    - g_str_has_suffix
    - g_info
    - g_build_filename
    - g_dir_open
    - xb_builder_source_new
    - g_file_test
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - xb_builder_source_load_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_add_quirks_for_path(FuQuirks *self, XbBuilder *builder,
      const gchar *path, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: fu_quirks_strcasecmp_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_ascii_strcasecmp
    linkageType: ''
    returnType: gint
    signature: gint fu_quirks_strcasecmp_cb(gconstpointer a, gconstpointer b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:364,1
    - Dst: xb_silo_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:367,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:371,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:372,1
    - Dst: fu_quirks_add_quirks_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:373,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:377,1
    - Dst: fu_quirks_add_quirks_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:383,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:384,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:388,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:389,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:390,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:392,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:393,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:399,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:406,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:407,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:408,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:413,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:415,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:425,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:428,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:433,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:436,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:437,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:440,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:441,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQuirks*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 447
    functionName: fu_quirks_check_silo
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - g_prefix_error
    - fu_path_from_kind
    - fwupd_error_convert
    - xb_builder_set_profile_flags
    - g_debug
    - g_ptr_array_sort
    - g_file_new_for_path
    - xb_query_new_full
    - xb_builder_ensure
    - fu_quirks_add_quirks_for_path
    - g_info
    - xb_silo_is_valid
    - xb_silo_query_first
    - g_build_filename
    - g_file_new_tmp
    - fu_strjoin
    - g_autoptr
    - g_getenv
    - xb_silo_query_build_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_check_silo(FuQuirks *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:465,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:466,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:466,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:468,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:475,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:476,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:482,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:482,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:485,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:486,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:487,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:488,1
    - Dst: g_intern_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:490,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:496,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:497,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:506,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:507,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:507,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:508,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:508,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:509,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:511,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:513,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:515,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:519,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:519,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:520,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - self
    - guid
    - key
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 521
    functionName: fu_quirks_lookup_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 2
    functionsReached:
    - g_auto
    - sqlite3_prepare_v2
    - g_return_val_if_fail
    - g_debug
    - xb_node_get_text
    - xb_value_bindings_bind_str
    - sqlite3_step
    - fu_quirks_check_silo
    - sqlite3_column_text
    - sqlite3_bind_text
    - g_error_matches
    - xb_query_context_set_flags
    - g_autoptr
    - xb_query_context_get_bindings
    - g_intern_string
    - xb_silo_query_first_with_context
    - XB_QUERY_CONTEXT_INIT
    - g_warning
    - FU_IS_QUIRKS
    - sqlite3_errmsg
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_quirks_lookup_by_id(FuQuirks *self, const gchar *guid, const gchar *key)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:545,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:546,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:546,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:548,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:548,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:549,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:550,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:555,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:557,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:562,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:562,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:565,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:567,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:573,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:573,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:576,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:577,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:579,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:580,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:581,1
    - Dst: iter_cb
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:582,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:588,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:589,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:595,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:600,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:601,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:601,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:603,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:603,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:604,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:606,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:609,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:611,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:613,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:617,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:619,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:619,1
    - Dst: iter_cb
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:620,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:621,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - self
    - guid
    - key
    - iter_cb
    - user_data
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    - FuQuirksIter
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 628
    functionName: fu_quirks_lookup_by_id_iter
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 1
    functionsReached:
    - g_auto
    - sqlite3_prepare_v2
    - g_return_val_if_fail
    - g_debug
    - xb_node_get_text
    - xb_value_bindings_bind_str
    - sqlite3_step
    - fu_quirks_check_silo
    - g_ptr_array_index
    - sqlite3_column_text
    - sqlite3_bind_text
    - g_error_matches
    - xb_node_get_attr
    - xb_query_context_set_flags
    - g_autoptr
    - xb_query_context_get_bindings
    - xb_silo_query_with_context
    - XB_QUERY_CONTEXT_INIT
    - g_warning
    - iter_cb
    - FU_IS_QUIRKS
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_quirks_lookup_by_id_iter(FuQuirks *self,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *key,\n\t\t\t    FuQuirksIter iter_cb,\n\t\t\t
      \   gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:645,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuQuirksDbHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: fu_quirks_db_helper_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_quirks_db_helper_free(FuQuirksDbHelper *helper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:657,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:660,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:662,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:663,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:664,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:665,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:666,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:667,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:668,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:669,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - helper
    - vid
    - name
    - error
    argTypes:
    - FuQuirksDbHelper*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: fu_quirks_db_add_vendor_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - g_set_error
    - sqlite3_bind_text
    - g_strdup_printf
    - sqlite3_step
    - g_ascii_strup
    - sqlite3_reset
    - fwupd_guid_hash_string
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_quirks_db_add_vendor_entry(FuQuirksDbHelper *helper,\n\t\t\t
      \     const gchar *vid,\n\t\t\t      const gchar *name,\n\t\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:688,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:691,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:692,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:694,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:700,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:701,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:702,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:703,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:704,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:705,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:706,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - helper
    - vid
    - pid
    - name
    - error
    argTypes:
    - FuQuirksDbHelper*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 716
    functionName: fu_quirks_db_add_name_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - g_set_error
    - sqlite3_bind_text
    - g_strdup_printf
    - sqlite3_step
    - g_ascii_strup
    - sqlite3_reset
    - fwupd_guid_hash_string
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_quirks_db_add_name_entry(FuQuirksDbHelper *helper,\n\t\t\t
      \   const gchar *vid,\n\t\t\t    const gchar *pid,\n\t\t\t    const gchar *name,\n\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isxdigit
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 726
    functionName: _g_ascii_isxstrn
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_ascii_isxdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_ascii_isxstrn(const gchar *str, gsize n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:738,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:739,1
    - Dst: _g_ascii_isxstrn
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:743,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:744,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:745,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:746,1
    - Dst: _g_ascii_isxstrn
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:753,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:754,1
    - Dst: fu_quirks_db_add_name_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 764
    functionName: fu_quirks_db_add_usbids_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - _g_ascii_isxstrn
    - g_string_set_size
    - fu_quirks_db_add_vendor_entry
    - fu_quirks_db_add_name_entry
    - g_strstr_len
    - g_strndup
    - g_string_append_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_add_usbids_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _g_ascii_isxstrn
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:777,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:781,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 766
    functionDepth: 4
    functionLinenumber: 766
    functionLinenumberEnd: 783
    functionName: fu_quirks_db_add_ouitxt_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - _g_ascii_isxstrn
    - g_strndup
    - fu_quirks_db_add_vendor_entry
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_add_ouitxt_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:796,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:800,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 802
    functionName: fu_quirks_db_add_pnpids_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_quirks_db_add_vendor_entry
    - g_strstr_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_add_pnpids_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:819,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:822,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:825,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sql
    - error
    argTypes:
    - FuQuirks*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 835
    functionName: fu_quirks_db_sqlite3_exec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_usleep
    - sqlite3_exec
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_sqlite3_exec(FuQuirks *self, const gchar *sql,
      GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:840,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:841,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:842,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:843,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:843,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:844,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:857,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:869,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:873,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:873,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:874,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:876,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:878,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:885,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:886,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:890,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:895,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:899,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:902,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:903,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:904,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:905,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:906,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:907,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:910,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:914,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:916,1
    - Dst: sqlite3_prepare_v3
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:920,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:926,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:930,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:935,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:937,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:938,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:938,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:939,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:939,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:940,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:943,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:944,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:947,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:948,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:948,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:956,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:957,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:962,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:963,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:964,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:965,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:966,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:967,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:971,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:974,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 3
    argNames:
    - self
    - load_flags
    - error
    argTypes:
    - FuQuirks*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 979
    functionName: fu_quirks_db_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_file_query_info
    - g_file_read
    - g_new0
    - sqlite3_prepare_v2
    - fu_path_from_kind
    - g_string_append_printf
    - g_set_error
    - g_debug
    - fu_strsplit_stream
    - sqlite3_reset
    - g_file_info_get_attribute_uint64
    - g_file_new_for_path
    - g_file_query_exists
    - sqlite3_step
    - fwupd_guid_hash_string
    - sqlite3_column_text
    - sqlite3_bind_text
    - g_build_filename
    - g_autoptr
    - sqlite3_prepare_v3
    - G_N_ELEMENTS
    - G_INPUT_STREAM
    - fu_quirks_db_sqlite3_exec
    - g_strcmp0
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_load(FuQuirks *self, FuQuirksLoadFlags load_flags,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:998,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:999,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1002,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1002,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1003,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1006,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1010,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1011,1
    - Dst: sqlite3_open
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1013,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1014,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1019,1
    - Dst: fu_quirks_db_load
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1022,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1028,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - load_flags
    - error
    argTypes:
    - FuQuirks*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 994
    functionDepth: 4
    functionLinenumber: 994
    functionLinenumberEnd: 1029
    functionName: fu_quirks_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_debug
    - fu_path_mkdir_parent
    - g_getenv
    - g_build_filename
    - fu_quirks_db_load
    - fu_quirks_check_silo
    - sqlite3_open
    - FU_IS_QUIRKS
    - fu_path_from_kind
    - g_return_val_if_fail
    - sqlite3_errmsg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_load(FuQuirks *self, FuQuirksLoadFlags load_flags,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1044,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1044,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1045,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1046,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - possible_key
    argTypes:
    - FuQuirks*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1047
    functionName: fu_quirks_add_possible_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_hash_table_add
    - FU_IS_QUIRKS
    - g_strdup
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_quirks_add_possible_key(FuQuirks *self, const gchar *possible_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_release_memory
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1053,1
    - Dst: sqlite3_db_release_memory
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - FuQuirks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1057
    functionName: fu_quirks_housekeeping_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - sqlite3_db_release_memory
    - sqlite3_release_memory
    linkageType: ''
    returnType: void
    signature: void fu_quirks_housekeeping_cb(FuContext *ctx, FuQuirks *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1062,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1064,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1065,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1067
    functionName: fu_quirks_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - g_signal_handlers_disconnect_by_data
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_quirks_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQuirksClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1075
    functionName: fu_quirks_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_quirks_class_init(FuQuirksClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1080,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1081,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1084,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1085,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1086,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1087,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1088,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1089,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1090,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1091,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1092,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1093,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1094,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1095,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1096,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1097,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1098,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1099,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1100,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1101,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1102,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1103,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1104,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1105,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1106,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1107,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1108,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1109,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1110,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1111,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1112,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1113,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1114,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1115,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1116,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1117,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1118,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1119,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1120,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1121,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1122,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1123,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1124,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQuirks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1126
    functionName: fu_quirks_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    - fu_quirks_add_possible_key
    linkageType: ''
    returnType: void
    signature: void fu_quirks_init(FuQuirks *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1131,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1133,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1135,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1137,1
    - Dst: sqlite3_close
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1140,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1142,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1143,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1145
    functionName: fu_quirks_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - g_ptr_array_unref
    - g_object_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - sqlite3_close
    linkageType: ''
    returnType: void
    signature: void fu_quirks_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1160,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1161,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1162,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1162,1
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1164
    functionName: fu_quirks_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 3
    functionsReached:
    - g_object_ref
    - FU_QUIRKS
    - g_object_new
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: FuQuirks
    signature: 'FuQuirks *

      fu_quirks_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:43,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:44,1
    - Dst: fu_usb_descriptor_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: fu_usb_bos_descriptor_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kv
    - fu_usb_descriptor_kind_to_string
    - FU_USB_BOS_DESCRIPTOR
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:53,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:57,1
    - Dst: fu_usb_descriptor_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:59,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: fu_usb_bos_descriptor_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_descriptor_kind_from_string
    - g_set_error
    - xb_node_query_text
    - FU_USB_BOS_DESCRIPTOR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_bos_descriptor_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:77,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:83,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:89,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:93,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:96,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:101,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:101,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:104,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:104,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:105,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:111,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:112,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 118
    functionName: fu_usb_bos_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - g_base64_decode
    - fu_firmware_set_id
    - json_object_get_int_member_with_default
    - g_steal_pointer
    - FU_USB_BOS_DESCRIPTOR
    - fu_firmware_add_image_full
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_string_member_with_default
    - g_memory_input_stream_new_from_data
    - json_node_get_object
    - g_autoptr
    - fu_firmware_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_bos_descriptor_from_json(FwupdCodec *codec, JsonNode
      *json_node, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:124,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:128,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:129,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:133,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:134,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:136,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:136,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:136,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:137,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 140
    functionName: fu_usb_bos_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_BOS_DESCRIPTOR
    - g_bytes_get_size
    - FU_FIRMWARE
    - json_builder_add_int_value
    - json_builder_set_member_name
    - fu_firmware_get_image_by_id_bytes
    - g_autoptr
    - g_base64_encode
    - g_bytes_get_data
    - json_builder_add_string_value
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_add_json(FwupdCodec *codec, JsonBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:155,1
    - Dst: FU_IS_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBosDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: fu_usb_bos_descriptor_get_capability
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_BOS_DESCRIPTOR
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_bos_descriptor_get_capability(FuUsbBosDescriptor *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:166,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:169,1
    - Dst: fu_usb_bos_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:174,1
    - Dst: fu_usb_bos_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:177,1
    - Dst: fu_usb_bos_hdr_get_dev_capability_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:182,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:183,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:185,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:190,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:193,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:199,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:200,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 206
    functionName: fu_usb_bos_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_bos_hdr_get_dev_capability_type
    - fu_firmware_set_id
    - FU_USB_BOS_DESCRIPTOR
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - fu_usb_bos_hdr_parse_stream
    - g_autoptr
    - fu_usb_bos_hdr_get_length
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_bos_descriptor_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:212,1
    - Dst: fu_usb_bos_hdr_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:213,1
    - Dst: fu_usb_bos_hdr_set_dev_capability_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:215,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:216,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:218,1
    - Dst: fu_usb_bos_hdr_set_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:219,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: fu_usb_bos_descriptor_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - FU_USB_BOS_DESCRIPTOR
    - fu_usb_bos_hdr_new
    - fu_usb_bos_hdr_set_length
    - fu_firmware_get_image_by_id_bytes
    - fu_usb_bos_hdr_set_dev_capability_type
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_usb_bos_descriptor_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: fu_usb_bos_descriptor_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbBosDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: fu_usb_bos_descriptor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_class_init(FuUsbBosDescriptorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBosDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: fu_usb_bos_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_init(FuUsbBosDescriptor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:259,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:260,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:263,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:264,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:265,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:266,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:267,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:267,1
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - bos_cap
    argTypes:
    - struct libusb_bos_dev_capability_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: fu_usb_bos_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_USB_BOS_DESCRIPTOR
    - memcpy
    - g_object_new
    - FU_FIRMWARE
    - g_bytes_new
    - g_autoptr
    - fu_firmware_new
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: FuUsbBosDescriptor
    signature: 'FuUsbBosDescriptor *

      fu_usb_bos_descriptor_new(const struct libusb_bos_dev_capability_descriptor
      *bos_cap)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDarwinEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_darwin_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_darwin_efivars_init(FuDarwinEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDarwinEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: fu_darwin_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_darwin_efivars_class_init(FuDarwinEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c:32,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS
    - g_object_new
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:45,1
    - Dst: fu_x509_certificate_new
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:46,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:49,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:50,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:50,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:56,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:56,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuPkcs7*
    - gnutls_datum_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: fu_pkcs7_parse_x509_certificate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - fu_x509_certificate_new
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_bytes_new
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pkcs7_parse_x509_certificate(FuPkcs7 *self, gnutls_datum_t
      *data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PKCS7
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:70,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:74,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:77,1
    - Dst: gnutls_pkcs7_init
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:82,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:86,1
    - Dst: gnutls_pkcs7_import
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:94,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:98,1
    - Dst: gnutls_pkcs7_get_crt_count
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:104,1
    - Dst: gnutls_pkcs7_get_crt_raw2
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:108,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:112,1
    - Dst: fu_pkcs7_parse_x509_certificate
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:116,1
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:117,1
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 129
    functionName: fu_pkcs7_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - gnutls_pkcs7_get_crt_count
    - gnutls_pkcs7_import
    - gnutls_pkcs7_get_crt_raw2
    - FU_PKCS7
    - fu_input_stream_read_byte_array
    - fu_pkcs7_parse_x509_certificate
    - gnutls_strerror
    - gnutls_free
    - g_autoptr
    - gnutls_pkcs7_init
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pkcs7_parse(FuFirmware *firmware,\n\t       GInputStream
      *stream,\n\t       FuFirmwareParseFlags flags,\n\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPkcs7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: fu_pkcs7_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pkcs7_init(FuPkcs7 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPkcs7Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: fu_pkcs7_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pkcs7_class_init(FuPkcs7Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: fu_pkcs7_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPkcs7
    signature: 'FuPkcs7 *

      fu_pkcs7_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 902
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:48,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:49,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:50,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: fu_ifwi_cpd_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFWI_CPD_FIRMWARE
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_cpd_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:63,1
    - Dst: fu_struct_ifwi_cpd_manifest_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:66,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:69,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:69,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:72,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:76,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_header_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:90,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:92,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:95,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_get_extension_type
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:98,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:101,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_get_extension_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:108,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:120,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:123,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:127,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 135
    functionName: fu_ifwi_cpd_firmware_parse_manifest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ifwi_cpd_manifest_ext_parse_stream
    - fu_struct_ifwi_cpd_manifest_ext_get_extension_type
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_struct_ifwi_cpd_manifest_parse_stream
    - fu_struct_ifwi_cpd_manifest_get_version
    - g_prefix_error
    - fu_struct_ifwi_cpd_manifest_get_size
    - fu_firmware_parse_stream
    - fu_struct_ifwi_cpd_manifest_ext_get_extension_length
    - fu_struct_ifwi_cpd_manifest_get_header_length
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_firmware_set_idx
    - fu_input_stream_size
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_cpd_firmware_parse_manifest(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ifwi_cpd_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: fu_ifwi_cpd_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_cpd_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_cpd_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      gsize offset,\n\t\t\t      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:152,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:154,1
    - Dst: fu_struct_ifwi_cpd_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:159,1
    - Dst: fu_struct_ifwi_cpd_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:162,1
    - Dst: fu_struct_ifwi_cpd_get_entry_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:163,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:164,1
    - Dst: fu_struct_ifwi_cpd_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:164,1
    - Dst: fu_struct_ifwi_cpd_get_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:167,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:169,1
    - Dst: fu_struct_ifwi_cpd_get_header_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:181,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:183,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:186,1
    - Dst: fu_struct_ifwi_cpd_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:188,1
    - Dst: fu_struct_ifwi_cpd_entry_get_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:193,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:194,1
    - Dst: fu_struct_ifwi_cpd_entry_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:197,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:199,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:203,1
    - Dst: fu_struct_ifwi_cpd_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:205,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:208,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:211,1
    - Dst: fu_struct_ifwi_cpd_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:216,1
    - Dst: fu_ifwi_cpd_firmware_parse_manifest
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:218,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 230
    functionName: fu_ifwi_cpd_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_cpd_entry_parse_stream
    - g_prefix_error
    - g_set_error
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_struct_ifwi_cpd_entry_get_name
    - fu_ifwi_cpd_firmware_parse_manifest
    - fu_struct_ifwi_cpd_get_header_length
    - fu_struct_ifwi_cpd_entry_get_length
    - fu_struct_ifwi_cpd_get_entry_version
    - FU_IFWI_CPD_FIRMWARE
    - fu_struct_ifwi_cpd_get_partition_name
    - fu_struct_ifwi_cpd_get_num_of_entries
    - fu_firmware_parse_stream
    - fu_struct_ifwi_cpd_parse_stream
    - fu_struct_ifwi_cpd_entry_get_offset
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_struct_ifwi_cpd_get_header_version
    - fu_firmware_set_id
    - GET_PRIVATE
    - fu_firmware_set_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_cpd_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:235,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:238,1
    - Dst: fu_struct_ifwi_cpd_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:239,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:239,1
    - Dst: fu_struct_ifwi_cpd_set_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:242,1
    - Dst: fu_struct_ifwi_cpd_set_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:243,1
    - Dst: fu_struct_ifwi_cpd_set_entry_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:244,1
    - Dst: fu_struct_ifwi_cpd_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:245,1
    - Dst: fu_struct_ifwi_cpd_set_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:246,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:246,1
    - Dst: fu_struct_ifwi_cpd_set_crc32
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:247,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:254,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:256,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:258,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:261,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:262,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:268,1
    - Dst: fu_struct_ifwi_cpd_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:268,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:271,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:272,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:276,1
    - Dst: fu_struct_ifwi_cpd_entry_set_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:279,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:279,1
    - Dst: fu_struct_ifwi_cpd_entry_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:281,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:281,1
    - Dst: fu_struct_ifwi_cpd_entry_set_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:282,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:282,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:283,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:289,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:290,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:293,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 298
    functionName: fu_ifwi_cpd_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_firmware_get_images
    - fu_struct_ifwi_cpd_entry_set_offset
    - fu_struct_ifwi_cpd_set_partition_name
    - fu_firmware_get_id
    - g_set_error
    - fu_firmware_set_offset
    - fu_struct_ifwi_cpd_set_header_version
    - fu_byte_array_append_bytes
    - g_ptr_array_index
    - fu_struct_ifwi_cpd_entry_set_length
    - fu_struct_ifwi_cpd_set_crc32
    - fu_firmware_get_offset
    - g_steal_pointer
    - FU_IFWI_CPD_FIRMWARE
    - fu_struct_ifwi_cpd_entry_new
    - fu_firmware_get_idx
    - fu_struct_ifwi_cpd_new
    - fu_struct_ifwi_cpd_set_entry_version
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_firmware_get_size
    - fu_struct_ifwi_cpd_set_num_of_entries
    - g_bytes_get_size
    - fu_struct_ifwi_cpd_set_checksum
    - GET_PRIVATE
    - g_byte_array_append
    - fu_struct_ifwi_cpd_entry_set_name
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ifwi_cpd_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:303,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:304,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:308,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:311,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:315,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: fu_ifwi_cpd_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFWI_CPD_FIRMWARE
    - xb_node_query_text
    - GET_PRIVATE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ifwi_cpd_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:330,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfwiCpdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: fu_ifwi_cpd_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_cpd_firmware_init(FuIfwiCpdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfwiCpdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: fu_ifwi_cpd_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_cpd_firmware_class_init(FuIfwiCpdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:354,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: fu_ifwi_cpd_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifwi_cpd_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 906
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:114,1
    - Dst: libusb_strerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - rc
    - error
    argTypes:
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 117
    functionName: fu_usb_device_libusb_error_to_gerror
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - libusb_strerror
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_libusb_error_to_gerror(gint rc, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:132,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:144,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:156,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:162,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 169
    functionName: fu_usb_device_libusb_status_to_gerror
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_libusb_status_to_gerror(gint status, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:178,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: fu_usb_device_get_dev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: libusb_device
    signature: 'libusb_device *

      fu_usb_device_get_dev(FuUsbDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:185,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:189,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: fu_usb_device_not_open_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - FU_DEVICE
    - fu_device_get_vid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_not_open_error(FuUsbDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:197,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:198,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:201,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:205,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:206,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: fu_usb_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_ptr_array_set_size
    - GET_PRIVATE
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_invalidate(FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:213,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:216,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbDevice*
    - struct libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: fu_usb_device_set_dev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_clear_pointer
    - GET_PRIVATE
    - libusb_ref_device
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_set_dev(FuUsbDevice *self, struct libusb_device
      *usb_device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:224,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: fu_usb_device_vid_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_vid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:230,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: fu_usb_device_pid_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_pid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:236,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:237,1
    - Dst: g_value_set_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:240,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: fu_usb_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_pointer
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:251,1
    - Dst: fu_usb_device_set_dev
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:254,1
    - Dst: g_value_get_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:254,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: fu_usb_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_set_dev
    - g_value_get_pointer
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:265,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:266,1
    - Dst: libusb_close
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:269,1
    - Dst: libusb_unref_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:271,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:273,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:274,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:275,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:276,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:277,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 280
    functionName: fu_usb_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - libusb_unref_device
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_USB_DEVICE
    - libusb_close
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:285,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:287,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:288,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:289,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:290,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:291,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:292,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:293,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:297,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:299,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:301,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 305
    functionName: fu_usb_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_acquiesce_delay
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_init(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:320,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:321,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - claim_retry_count
    argTypes:
    - FuUsbDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: fu_usb_device_set_claim_retry_count
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_set_claim_retry_count(FuUsbDevice *self, guint claim_retry_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:338,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:339,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: fu_usb_device_get_claim_retry_count
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_usb_device_get_claim_retry_count(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:355,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:356,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - configuration
    argTypes:
    - FuUsbDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: fu_usb_device_set_configuration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_set_configuration(FuUsbDevice *device, gint configuration)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:372,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:375,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:375,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:378,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:382,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:388,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - number
    argTypes:
    - FuUsbDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 391
    functionName: fu_usb_device_add_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_return_if_fail
    - g_ptr_array_index
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_add_interface(FuUsbDevice *device, guint8 number)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:399,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:399,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:402,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:404,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:417,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:420,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:424,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:425,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:426,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:428,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:431,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:433,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:437,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 448
    functionName: fu_usb_device_query_hub
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fu_common_align_up
    - g_prefix_error
    - fu_memread_uint8_safe
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - g_autoptr
    - fu_usb_device_get_spec
    - fu_device_add_instance_str
    - fu_dump_raw
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_query_hub(FuUsbDevice *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:453,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:453,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:454,1
    - Dst: fu_context_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:455,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:459,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:462,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:466,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:467,1
    - Dst: libusb_open
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:473,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:476,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:476,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:478,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:484,1
    - Dst: libusb_wrap_sys_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:485,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:487,1
    - Dst: libusb_close
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:489,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 496
    functionName: fu_usb_device_open_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - libusb_open
    - fu_io_channel_unix_get_fd
    - fu_device_get_vid
    - libusb_wrap_sys_device
    - fu_context_get_data
    - fu_device_get_context
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_has_flag
    - FU_DEVICE
    - fu_udev_device_get_io_channel
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_set_error_literal
    - libusb_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_open_internal(FuUsbDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:501,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:504,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:504,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:507,1
    - Dst: libusb_close
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: fu_usb_device_close_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_not_open_error
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - libusb_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_close_internal(FuUsbDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:517,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:521,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:521,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:522,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:525,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:528,1
    - Dst: libusb_get_configuration
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:531,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:533,1
    - Dst: libusb_set_configuration
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:538,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - configuration
    - error
    argTypes:
    - FuUsbDevice*
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: fu_usb_device_set_configuration_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_not_open_error
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - libusb_set_configuration
    - g_return_val_if_fail
    - libusb_get_configuration
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_set_configuration_internal(FuUsbDevice *self,
      gint configuration, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:545,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:546,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:548,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:548,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:549,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:552,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:556,1
    - Dst: fu_usb_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:560,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:561,1
    - Dst: fu_usb_device_set_configuration_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:567,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:568,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:576,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:577,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:581,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 587
    functionName: fu_usb_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_open_internal
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_ptr_array_index
    - FU_USB_DEVICE
    - g_return_val_if_fail
    - fu_usb_device_claim_interface
    - fu_usb_device_set_configuration_internal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:602,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 606
    functionName: fu_usb_device_get_bus
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_bus(FuUsbDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:621,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:622,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 625
    functionName: fu_usb_device_get_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_address(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:640,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:641,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: fu_usb_device_get_manufacturer_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_manufacturer_index(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:658,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:659,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: fu_usb_device_get_product_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_product_index(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: libusb_get_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: libusb_device
    signature: 'libusb_device *

      libusb_get_parent(libusb_device *dev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libusb_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:675,1
    - Dst: fu_usb_device_build_parent_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:677,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:678,1
    - Dst: libusb_get_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - dev
    argTypes:
    - GString*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: fu_usb_device_build_parent_port_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - fu_usb_device_build_parent_port_number
    - libusb_get_port_number
    - libusb_get_parent
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_build_parent_port_number(GString *str, libusb_device
      *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:687,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:688,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:688,1
    - Dst: fu_usb_device_build_parent_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:689,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:690,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 692
    functionName: fu_usb_device_build_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_free
    - g_string_truncate
    - fu_usb_device_build_parent_port_number
    - libusb_get_bus_number
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_usb_device_build_physical_id(struct libusb_device *dev)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:697,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:699,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:699,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:700,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:703,1
    - Dst: fu_usb_device_get_manufacturer_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:704,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:707,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:708,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:710,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:710,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:712,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:714,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:715,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:721,1
    - Dst: fu_usb_device_get_product_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:722,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:725,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:726,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:728,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:728,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:730,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:731,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:732,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:738,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:739,1
    - Dst: fu_usb_device_get_serial_number_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:740,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:743,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:744,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:746,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:746,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:748,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:750,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:751,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:757,1
    - Dst: fu_usb_device_query_hub
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:758,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 764
    functionName: fu_usb_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_serial_number_index
    - fu_usb_device_get_class
    - fu_usb_device_get_string_descriptor
    - fu_usb_device_get_product_index
    - fu_usb_device_query_hub
    - fu_device_get_vendor
    - g_return_val_if_fail
    - fu_device_set_vendor
    - g_debug
    - FU_USB_DEVICE
    - fu_usb_device_get_address
    - fu_device_get_name
    - g_strchomp
    - g_autoptr
    - fu_device_set_serial
    - fu_usb_device_get_manufacturer_index
    - fu_usb_device_get_bus
    - fu_device_has_private_flag
    - FU_IS_USB_DEVICE
    - fu_device_get_serial
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:770,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:773,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:773,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:777,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:779,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:784,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:786,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:789,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:790,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:791,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:795,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:796,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:799,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:800,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:803,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:804,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 810
    functionName: fu_usb_device_ready
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_subclass
    - fu_device_get_icons
    - g_prefix_error
    - fu_device_add_icon
    - fu_usb_interface_get_class
    - fu_device_has_flag
    - FU_DEVICE
    - g_ptr_array_index
    - g_autoptr
    - FU_USB_DEVICE
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_ready(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:815,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:816,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:818,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:818,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:819,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:826,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:829,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:830,1
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:833,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:837,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:838,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:839,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:843,1
    - Dst: fu_usb_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:852,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:856,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 857
    functionName: fu_usb_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_usb_device_close_internal
    - FU_DEVICE_CLASS
    - g_error_matches
    - fu_usb_device_release_interface
    - g_ptr_array_index
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - FU_USB_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_close(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:863,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:865,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:869,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:869,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:872,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:880,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:883,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:884,1
    - Dst: FU_IS_USB_DEVICE_MS_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:887,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:891,1
    - Dst: fu_usb_device_ds20_apply_to_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:897,1
    - Dst: FU_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:897,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - bos
    - error
    argTypes:
    - FuUsbDevice*
    - FuUsbBosDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 859
    functionDepth: 4
    functionLinenumber: 859
    functionLinenumberEnd: 904
    functionName: fu_usb_device_probe_bos_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - FU_USB_DEVICE_DS20
    - g_prefix_error
    - fu_firmware_to_string
    - fu_firmware_new_from_gtypes
    - fu_firmware_get_image_by_id_stream
    - fu_usb_device_ds20_apply_to_device
    - FU_FIRMWARE
    - FU_IS_USB_DEVICE_MS_DS20
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_probe_bos_descriptor(FuUsbDevice *self, FuUsbBosDescriptor
      *bos, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:914,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:915,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:915,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:917,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:921,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:921,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:922,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:925,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:925,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:928,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:931,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:935,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:935,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:935,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:937,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:937,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:941,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:941,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:941,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:942,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:943,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:953,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:953,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:956,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:960,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - self
    - basename
    - error
    argTypes:
    - FuUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 961
    functionName: fu_usb_device_load_descriptor_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_event_get_bytes
    - fu_device_get_backend_id
    - g_build_filename
    - fu_device_save_event
    - fu_input_stream_from_path
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_event_set_bytes
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_autoptr
    - g_file_test
    - g_memory_input_stream_new_from_bytes
    - fu_bytes_get_contents
    - fu_context_has_flag
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_usb_device_load_descriptor_stream(FuUsbDevice *self, const gchar *basename,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:966,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:967,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:967,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:969,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:971,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:976,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:977,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:978,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:980,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:980,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:986,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:988,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:989,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuUsbDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 994
    functionName: fu_usb_device_parse_bos_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_linear_firmware_new
    - fu_firmware_parse_stream
    - fu_firmware_get_images
    - g_ptr_array_index
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_parse_bos_descriptor(FuUsbDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:999,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1010,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1013,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1014,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1018,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1021,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1025,1
    - Dst: libusb_get_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1029,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1030,1
    - Dst: fu_usb_bos_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1041,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1042,1
    - Dst: libusb_free_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1044,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1047,1
    - Dst: fu_usb_device_load_descriptor_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1051,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1053,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1054,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1055,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1055,1
    - Dst: fu_usb_device_parse_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1059,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1066
    functionName: fu_usb_device_ensure_bos_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - libusb_free_bos_descriptor
    - fu_usb_device_not_open_error
    - g_steal_pointer
    - g_error_matches
    - libusb_get_bos_descriptor
    - fu_usb_bos_descriptor_new
    - fu_usb_device_parse_bos_descriptor
    - fu_usb_device_get_spec
    - fu_usb_device_libusb_error_to_gerror
    - fu_usb_device_load_descriptor_stream
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - fu_device_locker_new
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_ensure_bos_descriptors(FuUsbDevice *self, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1071,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1072,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1075,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1075,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1076,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1080,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1081,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1082,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1083,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1086,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1086,1
    - Dst: fu_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1087,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1091,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1092,1
    - Dst: fu_usb_bos_descriptor_get_capability
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1094,1
    - Dst: fu_usb_device_probe_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1096,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1098,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1068
    functionDepth: 5
    functionLinenumber: 1068
    functionLinenumberEnd: 1106
    functionName: fu_usb_device_probe_bos_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_usb_bos_descriptor_get_capability
    - fu_usb_device_probe_bos_descriptor
    - fu_device_has_private_flag
    - g_ptr_array_index
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - fu_usb_device_ensure_bos_descriptors
    - g_autoptr
    - g_propagate_error
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_probe_bos_descriptors(FuUsbDevice *self, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1111,1
    - Dst: libusb_get_device_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1116,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1118,1
    - Dst: libusb_strerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1122,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1125,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1126,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1127,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1128,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1137,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1137,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1140,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1145,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1145,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1148,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1153,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1155,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1159,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1160,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1160,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1161,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1161,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1162,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1162,1
    - Dst: fu_usb_device_build_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1167,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1168,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1171,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1171,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1171,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1108
    functionDepth: 5
    functionLinenumber: 1108
    functionLinenumberEnd: 1177
    functionName: fu_usb_device_probe_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - libusb_get_device_descriptor
    - fu_udev_device_read_property
    - fu_usb_device_ensure_interfaces
    - fu_usb_device_ensure_bos_descriptors
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_set_device_file
    - g_set_error
    - fu_device_set_vid
    - FU_UDEV_DEVICE
    - fu_device_set_physical_id
    - libusb_strerror
    - libusb_get_device_address
    - fu_strtoull
    - g_path_get_basename
    - fu_device_set_pid
    - fu_udev_device_add_open_flag
    - g_strdup_printf
    - FU_DEVICE
    - GET_PRIVATE
    - fu_usb_device_build_physical_id
    - libusb_get_bus_number
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_probe_internal(FuUsbDevice *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1185,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1188,1
    - Dst: fu_usb_device_probe_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1189,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1194,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1194,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1197,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1199,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1200,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1201,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1205,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1206,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1213,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1222,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1223,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1242,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1243,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1243,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1244,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1244,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1245,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1245,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1246,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1253,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1261,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1273,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1274,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1274,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1276,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1280,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1282,1
    - Dst: fu_usb_device_probe_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1287,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1288,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1289,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1291,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1179
    functionDepth: 6
    functionLinenumber: 1179
    functionLinenumberEnd: 1298
    functionName: fu_usb_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_subclass
    - fu_usb_device_probe_bos_descriptors
    - fu_usb_device_get_release
    - g_prefix_error
    - fu_device_add_parent_physical_id
    - fu_device_has_flag
    - fu_device_get_physical_id
    - fu_device_build_instance_id_full
    - g_debug
    - fu_usb_interface_get_protocol
    - g_ptr_array_index
    - FU_USB_DEVICE
    - fu_device_add_instance_u16
    - g_error_matches
    - fu_usb_device_probe_internal
    - fu_usb_interface_get_class
    - g_autoptr
    - fu_device_set_version_raw
    - fu_usb_device_get_interfaces
    - g_warning
    - fu_device_set_version_format
    - fu_device_get_version_format
    - fu_device_get_vid
    - fu_device_add_instance_u8
    - fu_device_build_vendor_id_u16
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_strrstr
    - g_strdup
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1314,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1316
    functionName: fu_usb_device_get_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_usb_device_get_release(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1331,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1332,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1334
    functionName: fu_usb_device_get_spec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_usb_device_get_spec(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1350,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1352
    functionName: fu_usb_device_get_class
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuUsbClass
    signature: FuUsbClass fu_usb_device_get_class(FuUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1357,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1358,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iface
    argTypes:
    - FuUsbDevice*
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1359
    functionName: fu_usb_device_add_interface_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - GET_PRIVATE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_add_interface_internal(FuUsbDevice *self, FuUsbInterface
      *iface)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1364,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1365,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1366,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1367,1
    - Dst: fu_usb_device_set_dev
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1369,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1373,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1377,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1378,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1378,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1385,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1386,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1386,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1393,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1394,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1400,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1401,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - device
    - device_donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1404
    functionName: fu_usb_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - memcpy
    - g_ptr_array_index
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_usb_device_set_dev
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_incorporate(FuDevice *device, FuDevice *device_donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1409,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1410
    functionName: fu_usb_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_usb_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1452,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1458,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1458,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1459,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1462,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1463,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1463,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1465,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1466,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1486,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1489,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1492,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1494,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1495,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1497,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1498,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1503,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1506,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1506,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1508,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1508,1
    - Dst: libusb_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1518,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1527,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1529,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1538,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 13
    argNames:
    - self
    - direction
    - request_type
    - recipient
    - request
    - value
    - idx
    - data
    - length
    - actual_length
    - timeout
    - cancellable
    - error
    argTypes:
    - FuUsbDevice*
    - FuUsbDirection
    - FuUsbRequestType
    - FuUsbRecipient
    - guint8
    - guint16
    - guint16
    - guint8*
    - gsize
    - gsize*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1437
    functionDepth: 2
    functionLinenumber: 1437
    functionLinenumberEnd: 1542
    functionName: fu_usb_device_control_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - libusb_control_transfer
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_copy_data
    - g_base64_encode
    - fu_device_event_set_data
    - fu_usb_device_not_open_error
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_event_set_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_control_transfer(FuUsbDevice *self,\n\t\t\t
      \      FuUsbDirection direction,\n\t\t\t       FuUsbRequestType request_type,\n\t\t\t
      \      FuUsbRecipient recipient,\n\t\t\t       guint8 request,\n\t\t\t       guint16
      value,\n\t\t\t       guint16 idx,\n\t\t\t       guint8 *data,\n\t\t\t       gsize
      length,\n\t\t\t       gsize *actual_length,\n\t\t\t       guint timeout,\n\t\t\t
      \      GCancellable *cancellable,\n\t\t\t       GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1576,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1582,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1582,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1583,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1586,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1587,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1587,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1589,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1590,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1600,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1603,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1606,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1608,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1609,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1611,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1612,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1617,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1620,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1620,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1620,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1622,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1622,1
    - Dst: libusb_bulk_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1626,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1627,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1629,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1637,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 8
    argNames:
    - self
    - endpoint
    - data
    - length
    - actual_length
    - timeout
    - cancellable
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8*
    - gsize
    - gsize*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1641
    functionName: fu_usb_device_bulk_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_copy_data
    - g_base64_encode
    - fu_device_event_set_data
    - fu_usb_device_not_open_error
    - libusb_bulk_transfer
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_event_set_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_bulk_transfer(FuUsbDevice *self,\n\t\t\t    guint8
      endpoint,\n\t\t\t    guint8 *data,\n\t\t\t    gsize length,\n\t\t\t    gsize
      *actual_length,\n\t\t\t    guint timeout,\n\t\t\t    GCancellable *cancellable,\n\t\t\t
      \   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1672,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1678,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1679,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1682,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1683,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1683,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1683,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1685,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1686,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1696,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1696,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1699,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1702,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1704,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1705,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1707,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1708,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1713,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1716,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1716,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1718,1
    - Dst: libusb_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1722,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1723,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1725,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1733,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 8
    argNames:
    - self
    - endpoint
    - data
    - length
    - actual_length
    - timeout
    - cancellable
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8*
    - gsize
    - gsize*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1737
    functionName: fu_usb_device_interrupt_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_copy_data
    - g_base64_encode
    - fu_device_event_set_data
    - libusb_interrupt_transfer
    - fu_usb_device_not_open_error
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_event_set_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_interrupt_transfer(FuUsbDevice *self,\n\t\t\t\t
      guint8 endpoint,\n\t\t\t\t guint8 *data,\n\t\t\t\t gsize length,\n\t\t\t\t gsize
      *actual_length,\n\t\t\t\t guint timeout,\n\t\t\t\t GCancellable *cancellable,\n\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1759,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1762,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1762,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1763,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1766,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1769,1
    - Dst: libusb_reset_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1771,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1756
    functionDepth: 2
    functionLinenumber: 1756
    functionLinenumberEnd: 1775
    functionName: fu_usb_device_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_not_open_error
    - libusb_reset_device
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_reset(FuUsbDevice *self, GError **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1780,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1783,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1784,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1786,1
    - Dst: fu_usb_device_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1788,1
    - Dst: fu_usb_device_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1791,1
    - Dst: fu_usb_device_hdr_get_usb
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1793,1
    - Dst: fu_usb_device_hdr_get_device_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1794,1
    - Dst: fu_usb_device_hdr_get_device_sub_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1795,1
    - Dst: fu_usb_device_hdr_get_device_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1796,1
    - Dst: fu_usb_device_hdr_get_max_packet_size0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1797,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1798,1
    - Dst: fu_usb_device_hdr_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1798,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1799,1
    - Dst: fu_usb_device_hdr_get_product
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1799,1
    - Dst: fu_usb_device_hdr_get_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1800,1
    - Dst: fu_usb_device_hdr_get_manufacturer_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1801,1
    - Dst: fu_usb_device_hdr_get_product_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1802,1
    - Dst: fu_usb_device_hdr_get_serial_number_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1803,1
    - Dst: fu_usb_device_hdr_get_num_configurations
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1804,1
    - Dst: fu_usb_device_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1806,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1809,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1810,1
    - Dst: fu_usb_base_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1813,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1815,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1817,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1819,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1819,1
    - Dst: fu_usb_base_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1826,1
    - Dst: fu_usb_config_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1827,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1828,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1828,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1834,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1834,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1836,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1836,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1837,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1837,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1843,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1846,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1848,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1849,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1850,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1851,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1853,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1857,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1857,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1858,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1861,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1861,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1866,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1866,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1867,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1867,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1874,1
    - Dst: fu_usb_endpoint_get_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1875,1
    - Dst: fu_usb_interface_add_endpoint
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1877,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1880,1
    - Dst: fu_usb_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1880,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1881,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1881,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1888,1
    - Dst: fu_usb_hid_descriptor_set_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1890,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1892,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1893,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1894,1
    - Dst: fu_usb_descriptor_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1897,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1898,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1902,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 89
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuUsbDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1777
    functionDepth: 3
    functionLinenumber: 1777
    functionLinenumberEnd: 1907
    functionName: fu_usb_device_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_hdr_get_device_protocol
    - fu_usb_device_hdr_get_product_idx
    - FU_FIRMWARE
    - g_object_new
    - g_propagate_error
    - fu_usb_device_hdr_get_usb
    - fu_usb_base_hdr_get_descriptor_type
    - fu_usb_interface_add_endpoint
    - fu_usb_hid_descriptor_set_iface_number
    - fu_usb_device_hdr_get_num_configurations
    - g_debug
    - fu_device_set_vid
    - fu_firmware_add_image_full
    - fu_usb_base_hdr_get_length
    - fu_usb_interface_get_number
    - fu_usb_device_hdr_get_length
    - g_steal_pointer
    - fu_usb_device_hdr_get_max_packet_size0
    - g_error_matches
    - fu_usb_device_add_interface_internal
    - fu_firmware_parse_stream
    - fu_usb_interface_get_class
    - fu_usb_config_descriptor_new
    - g_autoptr
    - fu_usb_device_hdr_get_manufacturer_idx
    - g_ptr_array_add
    - fu_usb_device_hdr_get_serial_number_idx
    - fu_usb_device_hdr_parse_stream
    - g_warning
    - fu_firmware_get_size
    - fu_usb_hid_descriptor_new
    - fu_usb_device_hdr_get_product
    - fu_usb_device_hdr_get_device_class
    - fu_device_set_pid
    - fu_usb_endpoint_get_number
    - g_set_object
    - FU_DEVICE
    - GET_PRIVATE
    - fu_usb_base_hdr_parse_stream
    - fu_usb_device_hdr_get_vendor
    - fu_usb_device_hdr_get_device_sub_class
    - fu_input_stream_size
    - fu_usb_device_hdr_get_device
    - fu_usb_descriptor_kind_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_parse_descriptor(FuUsbDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1912,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1922,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1923,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1929,1
    - Dst: fu_usb_interface_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1929,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1932,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1935,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1937,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1938,1
    - Dst: fu_usb_device_load_descriptor_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1940,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1942,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1943,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1943,1
    - Dst: fu_usb_device_parse_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1909
    functionDepth: 6
    functionLinenumber: 1909
    functionLinenumberEnd: 1954
    functionName: fu_usb_device_ensure_interfaces
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - libusb_free_config_descriptor
    - fu_usb_device_parse_descriptor
    - g_steal_pointer
    - fu_usb_device_add_interface_internal
    - g_error_matches
    - libusb_get_active_config_descriptor
    - fu_usb_device_libusb_error_to_gerror
    - fu_usb_device_load_descriptor_stream
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - fu_usb_interface_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_ensure_interfaces(FuUsbDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1972,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1973,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1975,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1967
    functionDepth: 7
    functionLinenumber: 1967
    functionLinenumberEnd: 1978
    functionName: fu_usb_device_get_interfaces
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 2
    functionsReached:
    - g_ptr_array_ref
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - fu_usb_device_ensure_interfaces
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_usb_device_get_interfaces(FuUsbDevice *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2004,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2006,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2006,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2007,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2010,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2013,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2014,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2016,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2018,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2020,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2024,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - self
    - class_id
    - subclass_id
    - protocol_id
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 1997
    functionDepth: 7
    functionLinenumber: 1997
    functionLinenumberEnd: 2033
    functionName: fu_usb_device_get_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_set_error
    - fu_usb_interface_get_subclass
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - fu_usb_device_ensure_interfaces
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuUsbInterface
    signature: "FuUsbInterface *\nfu_usb_device_get_interface(FuUsbDevice *self,\n\t\t\t
      \   guint8 class_id,\n\t\t\t    guint8 subclass_id,\n\t\t\t    guint8 protocol_id,\n\t\t\t
      \   GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2056,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2056,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2057,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2060,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2060,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2061,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2061,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2061,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2063,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2067,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2067,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2069,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2071,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2071,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2074,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2076,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2079,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2081,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2084,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2087,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2087,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2087,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2090,1
    - Dst: libusb_get_string_descriptor_ascii
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2094,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2096,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2101,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2101,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2103,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2104,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - self
    - desc_index
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2108
    functionName: fu_usb_device_get_string_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - libusb_get_string_descriptor_ascii
    - fu_device_event_get_bytes
    - fu_usb_device_libusb_status_to_gerror
    - g_autoptr
    - g_bytes_get_data
    - fu_device_event_set_data
    - fu_usb_device_not_open_error
    - fu_device_save_event
    - g_bytes_get_size
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_strndup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_usb_device_get_string_descriptor(FuUsbDevice *self, guint8 desc_index, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2132,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2133,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - desc_index
    - langid
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2126
    functionDepth: 1
    functionLinenumber: 2126
    functionLinenumberEnd: 2135
    functionName: fu_usb_device_get_string_descriptor_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - fu_usb_device_get_string_descriptor_bytes_full
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_usb_device_get_string_descriptor_bytes(FuUsbDevice *self,\n\t\t\t\t\t
      \ guint8 desc_index,\n\t\t\t\t\t  guint16 langid,\n\t\t\t\t\t  GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2158,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2164,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2165,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2169,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2170,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2170,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2172,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2182,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2184,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2187,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2189,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2192,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2194,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2197,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2200,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2204,1
    - Dst: libusb_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2207,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2209,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2214,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2214,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2216,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2217,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2221,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - self
    - desc_index
    - langid
    - length
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2151
    functionDepth: 2
    functionLinenumber: 2151
    functionLinenumberEnd: 2222
    functionName: fu_usb_device_get_string_descriptor_bytes_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_get_context
    - fu_device_load_event
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_usb_device_libusb_status_to_gerror
    - g_autoptr
    - g_bytes_new
    - fu_device_event_set_data
    - fu_usb_device_not_open_error
    - fu_device_save_event
    - g_strdup_printf
    - g_malloc0
    - fu_device_event_get_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - libusb_get_string_descriptor
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_usb_device_get_string_descriptor_bytes_full(FuUsbDevice
      *self,\n\t\t\t\t\t       guint8 desc_index,\n\t\t\t\t\t       guint16 langid,\n\t\t\t\t\t
      \      gsize length,\n\t\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2230,1
    - Dst: libusb_detach_kernel_driver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2234,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2238,1
    - Dst: libusb_claim_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2241,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2243
    functionName: fu_usb_device_claim_interface_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_libusb_error_to_gerror
    - libusb_claim_interface
    - libusb_detach_kernel_driver
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_claim_interface_internal(FuUsbDevice *self,\n\t\t\t\t
      \      guint8 iface,\n\t\t\t\t       FuUsbDeviceClaimFlags flags,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2253,1
    - Dst: fu_usb_device_claim_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2250
    functionDepth: 2
    functionLinenumber: 2250
    functionLinenumberEnd: 2256
    functionName: fu_usb_device_claim_interface_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_claim_interface_internal
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_claim_interface_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2279,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2280,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2283,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2287,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2291,1
    - Dst: fu_usb_device_claim_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2299
    functionName: fu_usb_device_claim_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_device_retry_full
    - fu_usb_device_not_open_error
    - fu_usb_device_claim_interface_internal
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_claim_interface(FuUsbDevice *self,\n\t\t\t
      \     guint8 iface,\n\t\t\t      FuUsbDeviceClaimFlags flags,\n\t\t\t      GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2323,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2323,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2324,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2327,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2331,1
    - Dst: libusb_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2333,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2335,1
    - Dst: libusb_attach_kernel_driver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2338,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2346
    functionName: fu_usb_device_release_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_usb_device_not_open_error
    - libusb_attach_kernel_driver
    - libusb_release_interface
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_release_interface(FuUsbDevice *self,\n\t\t\t\tguint8
      iface,\n\t\t\t\tFuUsbDeviceClaimFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2353,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2355,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2358,1
    - Dst: fu_usb_config_descriptor_get_configuration_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2359,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - configuration_value
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2348
    functionDepth: 7
    functionLinenumber: 2348
    functionLinenumberEnd: 2369
    functionName: fu_usb_device_get_config_descriptor_for_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_ptr_array_index
    - fu_usb_config_descriptor_get_configuration_value
    - GET_PRIVATE
    - fu_usb_device_ensure_interfaces
    linkageType: ''
    returnType: FuUsbConfigDescriptor
    signature: "FuUsbConfigDescriptor *\nfu_usb_device_get_config_descriptor_for_value(FuUsbDevice
      *self,\n\t\t\t\t\t      guint8 configuration_value,\n\t\t\t\t\t      GError
      **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2386,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2391,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2391,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2394,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2395,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2395,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2397,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2402,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2403,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2406,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2409,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2410,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2417,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2424,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2426,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2428,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2435,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2435,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2441,1
    - Dst: fu_usb_device_get_config_descriptor_for_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2451,1
    - Dst: fu_usb_config_descriptor_get_configuration
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2454,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2456,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2466,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2466,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2468,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2469,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2383
    functionDepth: 8
    functionLinenumber: 2383
    functionLinenumberEnd: 2473
    functionName: fu_usb_device_get_configuration_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_usb_config_descriptor_get_configuration
    - g_set_error
    - libusb_get_active_config_descriptor
    - fu_device_get_context
    - fu_device_load_event
    - FU_UDEV_DEVICE
    - fu_usb_device_get_config_descriptor_for_value
    - libusb_free_config_descriptor
    - fu_device_event_get_bytes
    - g_autoptr
    - g_bytes_get_data
    - fu_strtoull
    - fu_device_event_set_data
    - fu_device_save_event
    - g_bytes_get_size
    - g_strdup_printf
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_configuration_index(FuUsbDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2488,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2489,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2485
    functionDepth: 0
    functionLinenumber: 2485
    functionLinenumberEnd: 2491
    functionName: fu_usb_device_get_serial_number_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_device_get_serial_number_index(FuUsbDevice *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2520,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2520,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2521,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2524,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2525,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2525,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2527,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2535,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2537,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2539,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2542,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2544,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2545,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2547,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2548,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2551,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2552,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2559,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2565,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2566,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2582,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2584,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2586,1
    - Dst: fu_usb_interface_get_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2589,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2594,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2606,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2606,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2608,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2608,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2609,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 5
    argNames:
    - self
    - class_id
    - subclass_id
    - protocol_id
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2507
    functionDepth: 8
    functionLinenumber: 2507
    functionLinenumberEnd: 2614
    functionName: fu_usb_device_get_custom_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_set_error
    - libusb_get_active_config_descriptor
    - fu_device_get_context
    - fu_device_load_event
    - libusb_free_config_descriptor
    - fu_device_event_get_bytes
    - fu_usb_interface_get_index
    - fu_usb_device_libusb_status_to_gerror
    - g_autoptr
    - g_bytes_get_data
    - fu_device_event_set_data
    - fu_device_save_event
    - g_bytes_get_size
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_usb_device_libusb_error_to_gerror
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - fu_usb_device_get_interface
    linkageType: ''
    returnType: guint8
    signature: "guint8 fu_usb_device_get_custom_index(FuUsbDevice *self,\n\t\t\t       guint8
      class_id,\n\t\t\t       guint8 subclass_id,\n\t\t\t       guint8 protocol_id,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2635,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2635,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2636,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2639,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2639,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2643,1
    - Dst: libusb_set_interface_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2644,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - iface
    - alt
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2646
    functionName: fu_usb_device_set_interface_alt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_not_open_error
    - libusb_set_interface_alt_setting
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_has_flag
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_set_interface_alt(FuUsbDevice *self, guint8
      iface, guint8 alt, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_hid_descriptor_get_descriptor_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2654,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2656,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2659,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2663,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2664,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2666,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2667,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2673,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2680,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2683,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2685,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2689,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2696,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2696,1
    - Dst: fu_usb_hid_descriptor_set_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - hid_descriptor
    - error
    argTypes:
    - FuUsbDevice*
    - FuUsbHidDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2648
    functionDepth: 3
    functionLinenumber: 2648
    functionLinenumberEnd: 2699
    functionName: fu_usb_device_ensure_hid_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_steal_pointer
    - fu_usb_hid_descriptor_get_iface_number
    - g_bytes_new_take
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_malloc0
    - fu_usb_hid_descriptor_get_descriptor_length
    - g_autoptr
    - fu_dump_raw
    - fu_usb_hid_descriptor_set_blob
    - fu_usb_hid_descriptor_get_blob
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_ensure_hid_descriptor(FuUsbDevice *self,\n\t\t\t\t
      \   FuUsbHidDescriptor *hid_descriptor,\n\t\t\t\t    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2704,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2706,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2706,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2710,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2713,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2716,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2717,1
    - Dst: fu_usb_device_ensure_hid_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2718,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2719,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2720,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2722,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2701
    functionDepth: 7
    functionLinenumber: 2701
    functionLinenumberEnd: 2728
    functionName: fu_usb_device_ensure_hid_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_usb_device_not_open_error
    - g_steal_pointer
    - g_error_matches
    - fu_usb_device_ensure_hid_descriptor
    - fu_device_has_flag
    - FU_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_usb_device_ensure_interfaces
    - g_autoptr
    - g_propagate_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_ensure_hid_descriptors(FuUsbDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2748,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2749,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2751,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2751,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2752,1
    - Dst: fu_usb_device_ensure_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2754,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2757,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2758,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2760,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2761,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2761,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2763,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2744
    functionDepth: 8
    functionLinenumber: 2744
    functionLinenumberEnd: 2764
    functionName: fu_usb_device_get_hid_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_ensure_hid_descriptors
    - g_steal_pointer
    - g_ptr_array_index
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - g_bytes_ref
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - fu_usb_hid_descriptor_get_blob
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_usb_device_get_hid_descriptors(FuUsbDevice *self, GError **error)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2769,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2770,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2774,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2776,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2776,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2777,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2778,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2779,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2779,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2780,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2781,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2782,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2784,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2786,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2788,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2790,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2791,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2793,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2796,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2798,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2799,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2800,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2801,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2802,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2803,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2803,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2805,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2805,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2810,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2812,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2813,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2815,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2816,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2817,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2817,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2819,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2819,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2824,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2826,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2827,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2828,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2829,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2830,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2831,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2831,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2833,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2833,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2838,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2839,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2840,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2841,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2842,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2842,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2843,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2843,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2845,1
    - Dst: json_object_has_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2850,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2851,1
    - Dst: json_array_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2852,1
    - Dst: json_array_get_element
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2853,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2854,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2854,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2855,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2855,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2857,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2857,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 3
    argNames:
    - device
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2766
    functionDepth: 3
    functionLinenumber: 2766
    functionLinenumberEnd: 2865
    functionName: fu_usb_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_event
    - FWUPD_CODEC
    - g_object_new
    - g_object_ref
    - fu_device_set_vid
    - json_object_get_array_member
    - FU_USB_DEVICE
    - fu_device_set_physical_id
    - json_array_get_element
    - json_object_get_int_member_with_default
    - fu_usb_device_add_interface_internal
    - json_object_get_string_member_with_default
    - g_autoptr
    - fwupd_codec_from_json
    - fu_device_event_new
    - g_ptr_array_add
    - fu_device_set_pid
    - FU_DEVICE
    - GET_PRIVATE
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_from_json(FuDevice *device, JsonObject *json_object,
      GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2870,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2871,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2872,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2873,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2874,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2875,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2876,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2879,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2880,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2880,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2881,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2881,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2882,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2883,1
    - Dst: g_date_time_new_from_unix_utc_usec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2884,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2884,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2886,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2886,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2887,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2887,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2889,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2890,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2892,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2893,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2895,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2895,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2897,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2898,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2900,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2903,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2905,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2907,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2909,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2911,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2913,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2915,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2917,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2920,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2921,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2923,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2924,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2927,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2928,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2929,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2929,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2930,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2932,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2937,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2938,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2941,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2942,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2943,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2943,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2944,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2946,1
    - Dst: fu_usb_device_ensure_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2950,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2951,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2953,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2954,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2957,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2958,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2958,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2960,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2964,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2966,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2968,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2969,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2971,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2972,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2973,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2973,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2974,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2976,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2981,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2982,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2984,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2985,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2986,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2986,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2990,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2992,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 3
    argNames:
    - device
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2867
    functionDepth: 8
    functionLinenumber: 2867
    functionLinenumberEnd: 2994
    functionName: fu_usb_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_int
    - FWUPD_CODEC
    - fu_device_get_physical_id
    - fu_usb_device_ensure_bos_descriptors
    - g_date_time_new_from_unix_utc
    - fu_device_get_created_usec
    - g_debug
    - fu_usb_device_ensure_hid_descriptors
    - json_builder_begin_object
    - g_date_time_format_iso8601
    - g_ptr_array_index
    - json_builder_set_member_name
    - FU_USB_DEVICE
    - g_date_time_new_from_unix_utc_usec
    - fu_device_get_pid
    - fwupd_codec_to_json
    - g_autoptr
    - fu_device_get_events
    - fu_usb_device_get_interfaces
    - GLIB_CHECK_VERSION
    - fwupd_codec_json_append
    - json_builder_begin_array
    - fu_device_get_vid
    - json_builder_end_array
    - FU_DEVICE
    - GET_PRIVATE
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_add_json(FuDevice *device, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - usb_device
    argTypes:
    - FuContext*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 3007
    functionDepth: 0
    functionLinenumber: 3007
    functionLinenumberEnd: 3011
    functionName: fu_usb_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuUsbDevice
    signature: 'FuUsbDevice *

      fu_usb_device_new(FuContext *ctx, libusb_device *usb_device)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3016,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3017,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3020,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3021,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3022,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3023,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3026,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3027,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3028,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3030,1
    - Dst: fu_usb_class_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3033,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3033,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3035,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3037,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3038,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3038,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3042,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3045,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3046,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3046,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3050,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3053,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3054,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3054,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3058,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3060,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3061,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3062,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3065,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3013
    functionDepth: 3
    functionLinenumber: 3013
    functionLinenumberEnd: 3068
    functionName: fu_usb_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_class
    - fu_usb_class_to_string
    - FWUPD_CODEC
    - g_bytes_get_size
    - g_strdup_printf
    - g_ptr_array_index
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fwupd_codec_add_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3073,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3074,1
    - Dst: g_param_spec_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3099,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3070
    functionDepth: 0
    functionLinenumber: 3070
    functionLinenumberEnd: 3104
    functionName: fu_usb_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_pointer
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_class_init(FuUsbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 957
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:43,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:44,1
    - Dst: FU_IS_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:44,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:45,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:46,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FuCsvEntry*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: fu_csv_entry_add_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FU_IS_CSV_ENTRY
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_add_value(FuCsvEntry *self, const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:64,1
    - Dst: FU_IS_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:64,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuCsvEntry*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: fu_csv_entry_get_value_by_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - g_return_val_if_fail
    - FU_IS_CSV_ENTRY
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_csv_entry_get_value_by_idx(FuCsvEntry *self, guint idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:84,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:85,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:85,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:85,1
    - Dst: fu_csv_firmware_get_idx_for_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:86,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:88,1
    - Dst: FU_IS_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:88,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:89,1
    - Dst: FU_IS_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:89,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:90,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:91,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - column_id
    argTypes:
    - FuCsvEntry*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: fu_csv_entry_get_value_by_column_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_csv_firmware_get_idx_for_column_id
    - FU_IS_CSV_FIRMWARE
    - FU_CSV_FIRMWARE
    - fu_firmware_get_parent
    - g_return_val_if_fail
    - FU_IS_CSV_ENTRY
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_csv_entry_get_value_by_column_id(FuCsvEntry *self, const gchar *column_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_csv_entry_get_value_by_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:102,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:105,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - column_id
    - value
    - error
    argTypes:
    - FuCsvEntry*
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: fu_csv_entry_get_value_by_column_id_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_strtoull
    - fu_csv_entry_get_value_by_column_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_csv_entry_get_value_by_column_id_uint64(FuCsvEntry *self,\n\t\t\t\t\t
      \  const gchar *column_id,\n\t\t\t\t\t   guint64 *value,\n\t\t\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:116,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:117,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:118,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:119,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:119,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:122,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:123,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: fu_csv_entry_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_insert
    - FU_CSV_ENTRY
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - fu_csv_firmware_get_column_id
    - FU_CSV_FIRMWARE
    - fu_firmware_get_parent
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:132,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:133,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:133,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:135,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:137,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:139,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:143,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:144,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:145,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:145,1
    - Dst: fu_csv_entry_add_value
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:146,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: fu_csv_entry_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - xb_node_get_text
    - FU_CSV_ENTRY
    - xb_node_query
    - g_ptr_array_index
    - fu_csv_firmware_add_column_id
    - fu_csv_entry_add_value
    - g_autoptr
    - fu_csv_firmware_get_column_id
    - FU_CSV_FIRMWARE
    - fu_firmware_get_parent
    - xb_node_get_element
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_entry_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:154,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:155,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:156,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:156,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:157,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:169,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:170,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:170,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:171,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:173,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:175,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:175,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:176,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:177,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:177,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:178,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:180,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:182,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:182,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:186,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 188
    functionName: fu_csv_entry_parse_token_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - FU_CSV_ENTRY
    - fu_firmware_set_version
    - FU_FIRMWARE
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - fu_csv_firmware_get_column_id
    - fu_firmware_set_idx
    - FU_CSV_FIRMWARE
    - fu_firmware_get_parent
    - g_strdup
    - g_ptr_array_add
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_entry_parse_token_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:196,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: fu_csv_entry_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - FU_CSV_ENTRY
    - fu_strsplit_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_csv_entry_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:203,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:205,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:206,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:206,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:210,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:212,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:214,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:216,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 221
    functionName: fu_csv_entry_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - FU_CSV_ENTRY
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - g_byte_array_append
    - g_string_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_csv_entry_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:226,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCsvEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: fu_csv_entry_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_init(FuCsvEntry *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:233,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:234,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:235,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: fu_csv_entry_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_CSV_ENTRY
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:242,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCsvEntryClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: fu_csv_entry_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_class_init(FuCsvEntryClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:261,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: fu_csv_entry_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_csv_entry_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:35,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:36,1
    - Dst: kenv
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:39,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kenv.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - key
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: fu_kenv_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kenv.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - kenv
    - g_set_error_literal
    - g_strndup
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kenv_get_string(const gchar *key, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:20,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:20,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:24,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:25,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: fu_hwids_config_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-config.c
    functionUses: 0
    functionsReached:
    - fu_config_get_value
    - fu_hwids_get_keys
    - g_ptr_array_index
    - fu_context_get_config
    - g_autoptr
    - fu_hwids_add_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_config_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 965
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:52,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:53,1
    - Dst: FU_IS_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_lowest
    argTypes:
    - FuUsbDeviceDs20*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: fu_usb_device_ds20_set_version_lowest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 1
    functionsReached:
    - FU_IS_USB_DEVICE_DS20
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_ds20_set_version_lowest(FuUsbDeviceDs20 *self, guint32
      version_lowest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE_DS20_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:72,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:74,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:75,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:77,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:79,1
    - Dst: FU_IS_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:80,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:81,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:83,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:96,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:100,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:111,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:114,1
    - Dst: FuUsbDeviceDs20Class*::parse
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuUsbDeviceDs20*
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 116
    functionName: fu_usb_device_ds20_apply_to_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - g_prefix_error
    - FuUsbDeviceDs20Class*::parse
    - FU_IS_USB_DEVICE_DS20
    - fu_usb_device_control_transfer
    - g_malloc0
    - FU_FIRMWARE
    - g_memory_input_stream_new_from_data
    - fu_firmware_get_idx
    - FU_IS_USB_DEVICE
    - FU_USB_DEVICE_DS20_GET_CLASS
    - g_autoptr
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_ds20_apply_to_device(FuUsbDeviceDs20 *self,
      FuUsbDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:124,1
    - Dst: fu_struct_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:128,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:131,1
    - Dst: fu_struct_ds20_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:132,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:133,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: fu_usb_device_ds20_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ds20_get_guid
    - fwupd_guid_to_string
    - g_autoptr
    - g_strcmp0
    - fu_firmware_get_id
    - fu_struct_ds20_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_ds20_validate(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    gsize offset,\n\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: fu_usb_device_ds20_sort_by_platform_ver_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_usb_device_ds20_sort_by_platform_ver_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:163,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:164,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:167,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:167,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:169,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:173,1
    - Dst: fu_struct_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:176,1
    - Dst: fu_struct_ds20_get_platform_ver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:179,1
    - Dst: fu_struct_ds20_get_total_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:180,1
    - Dst: fu_struct_ds20_get_vendor_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:181,1
    - Dst: fu_struct_ds20_get_alt_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:183,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:189,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:189,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:209,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:220,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 232
    functionName: fu_usb_device_ds20_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_struct_ds20_get_total_length
    - g_new0
    - fu_firmware_get_version_raw
    - g_set_error
    - g_debug
    - g_ptr_array_sort
    - fu_struct_ds20_get_alt_code
    - g_ptr_array_index
    - fu_struct_ds20_parse_stream
    - fu_struct_ds20_get_vendor_code
    - FU_USB_DEVICE_DS20
    - g_steal_pointer
    - fu_firmware_set_size
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_struct_ds20_get_platform_ver
    - g_set_error_literal
    - GET_PRIVATE
    - fu_firmware_set_idx
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_device_ds20_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:237,1
    - Dst: fu_struct_ds20_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:237,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:241,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:241,1
    - Dst: fu_struct_ds20_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:246,1
    - Dst: fu_struct_ds20_set_platform_ver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:247,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:247,1
    - Dst: fu_struct_ds20_set_total_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:248,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:248,1
    - Dst: fu_struct_ds20_set_vendor_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:249,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:249,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: fu_usb_device_ds20_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - g_steal_pointer
    - fu_struct_ds20_set_platform_ver
    - fwupd_guid_from_string
    - fu_firmware_get_version_raw
    - fu_firmware_get_idx
    - g_autoptr
    - fu_struct_ds20_set_total_length
    - fu_struct_ds20_set_guid
    - fu_struct_ds20_set_vendor_code
    - fu_struct_ds20_new
    - fu_firmware_get_id
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_usb_device_ds20_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:256,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDeviceDs20*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: fu_usb_device_ds20_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_ds20_init(FuUsbDeviceDs20 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceDs20Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: fu_usb_device_ds20_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_ds20_class_init(FuUsbDeviceDs20Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 967
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/libfwupdplugin/fu-config.c:49,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:50,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:52,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:53,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: fu_config_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_file_monitor_cancel
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_config_item_free(FuConfigItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:62,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_config_emit_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_config_emit_changed(FuConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:69,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: fu_config_emit_loaded
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_config_emit_loaded(FuConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-config.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - section
    - key
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: fu_config_build_section_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_config_build_section_key(const gchar *section, const gchar *key)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:82,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:84,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:84,1
    - Dst: g_key_file_load_from_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:86,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:87,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-config.c:88,1
    - Dst: g_key_file_get_groups
      Src: /src/fwupd/libfwupdplugin/fu-config.c:92,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:94,1
    - Dst: g_key_file_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-config.c:96,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:98,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:107,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:109,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:117,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:120,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:127,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:128,1
    - Dst: g_key_file_get_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:129,1
    - Dst: g_key_file_set_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:136,1
    - Dst: g_key_file_get_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:145,1
    - Dst: g_key_file_set_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:147,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuConfig*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 163
    functionName: fu_config_load_bytes_replace
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_key_file_new
    - g_key_file_set_string
    - g_key_file_load_from_data
    - g_prefix_error
    - g_bytes_get_size
    - g_key_file_get_keys
    - fu_config_build_section_key
    - g_key_file_set_comment
    - GET_PRIVATE
    - g_strcmp0
    - g_autoptr
    - g_key_file_get_string
    - g_key_file_get_comment
    - g_hash_table_lookup
    - g_bytes_get_data
    - g_key_file_get_groups
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_load_bytes_replace(FuConfig *self, GBytes *blob,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:168,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:202,1
    - Dst: g_key_file_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:204,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:212,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:213,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:218,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:219,1
    - Dst: g_key_file_remove_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:223,1
    - Dst: g_key_file_remove_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:227,1
    - Dst: g_key_file_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-config.c:234,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-config.c:235,1
    - Dst: g_key_file_remove_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:236,1
    - Dst: g_key_file_remove_group
      Src: /src/fwupd/libfwupdplugin/fu-config.c:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 240
    functionName: fu_config_migrate_keyfile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_key_file_get_keys
    - g_key_file_remove_comment
    - g_key_file_remove_key
    - g_strv_length
    - GET_PRIVATE
    - g_ascii_strcasecmp
    - g_key_file_remove_group
    - g_hash_table_lookup
    - g_key_file_get_value
    - g_strcmp0
    - fu_config_build_section_key
    linkageType: ''
    returnType: void
    signature: void fu_config_migrate_keyfile(FuConfig *self)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:246,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-config.c:246,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:263,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:266,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:272,1
    - Dst: g_file_info_get_attribute_uint32
      Src: /src/fwupd/libfwupdplugin/fu-config.c:275,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:277,1
    - Dst: g_file_info_set_attribute_uint32
      Src: /src/fwupd/libfwupdplugin/fu-config.c:281,1
    - Dst: g_file_set_attributes_from_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:289,1
    - Dst: g_key_file_load_from_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:301,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:306,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:308,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-config.c:309,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:311,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:314,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:316,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:319,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:322,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:322,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:323,1
    - Dst: fu_config_load_bytes_replace
      Src: /src/fwupd/libfwupdplugin/fu-config.c:326,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:327,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:334,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupdplugin/fu-config.c:335,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-config.c:338,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-config.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:340,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-config.c:341,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:343,1
    - Dst: fu_config_load_bytes_replace
      Src: /src/fwupd/libfwupdplugin/fu-config.c:346,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:347,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-config.c:350,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:350,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:357,1
    - Dst: fu_config_migrate_keyfile
      Src: /src/fwupd/libfwupdplugin/fu-config.c:362,1
    - Dst: g_key_file_to_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:365,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-config.c:368,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:381,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-config.c:382,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:383,1
    - Dst: g_rename
      Src: /src/fwupd/libfwupdplugin/fu-config.c:384,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:385,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 398
    functionName: fu_config_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_file_query_info
    - g_file_info_set_attribute_uint32
    - g_prefix_error
    - g_propagate_error
    - g_rename
    - g_set_error
    - g_debug
    - g_file_set_contents_full
    - g_key_file_load_from_data
    - g_path_get_dirname
    - g_ptr_array_index
    - g_info
    - g_steal_pointer
    - g_error_matches
    - g_build_filename
    - g_autoptr
    - fu_config_load_bytes_replace
    - g_file_test
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_key_file_to_data
    - g_file_info_get_attribute_uint32
    - g_strdup_printf
    - fu_config_migrate_keyfile
    - g_file_set_attributes_from_info
    - GET_PRIVATE
    - fu_bytes_get_contents
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_reload(FuConfig *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:408,1
    - Dst: g_file_get_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:409,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:413,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:418,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:419,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-config.c:420,1
    - Dst: fu_config_emit_changed
      Src: /src/fwupd/libfwupdplugin/fu-config.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 422
    functionName: fu_config_monitor_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_file_get_path
    - fu_config_emit_changed
    - g_autoptr
    - fu_config_reload
    - FU_CONFIG
    - g_info
    linkageType: ''
    returnType: void
    signature: "void fu_config_monitor_changed_cb(GFileMonitor *monitor,\n\t\t\t     GFile
      *file,\n\t\t\t     GFile *other_file,\n\t\t\t     GFileMonitorEvent event_type,\n\t\t\t
      \    gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:438,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:439,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:439,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:440,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:441,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-config.c:442,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:443,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - section
    - key
    - value
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 445
    functionName: fu_config_set_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 3
    functionsReached:
    - g_hash_table_insert
    - g_return_if_fail
    - GET_PRIVATE
    - FU_IS_CONFIG
    - g_strdup
    - fu_config_build_section_key
    linkageType: ''
    returnType: void
    signature: void fu_config_set_default(FuConfig *self, const gchar *section, const
      gchar *key, const gchar *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:450,1
    - Dst: g_key_file_to_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:453,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:457,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-config.c:460,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-config.c:462,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:469,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-config.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 475
    functionName: fu_config_save
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_file_set_contents_full
    - fu_path_mkdir_parent
    - g_ptr_array_index
    - g_set_error_literal
    - GET_PRIVATE
    - fu_config_reload
    - g_key_file_to_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_save(FuConfig *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:498,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:500,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:501,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:502,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:503,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:507,1
    - Dst: fu_config_migrate_keyfile
      Src: /src/fwupd/libfwupdplugin/fu-config.c:512,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:515,1
    - Dst: fu_config_save
      Src: /src/fwupd/libfwupdplugin/fu-config.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - section
    - key
    - value
    - error
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 517
    functionName: fu_config_set_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - g_key_file_set_string
    - fu_config_save
    - fu_config_migrate_keyfile
    - GET_PRIVATE
    - FU_IS_CONFIG
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_config_set_value(FuConfig *self,\n\t\t    const gchar
      *section,\n\t\t    const gchar *key,\n\t\t    const gchar *value,\n\t\t    GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:531,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:532,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:534,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:534,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:535,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:536,1
    - Dst: g_key_file_remove_group
      Src: /src/fwupd/libfwupdplugin/fu-config.c:539,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:541,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:544,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:544,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-config.c:545,1
    - Dst: fu_config_save
      Src: /src/fwupd/libfwupdplugin/fu-config.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuConfig*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 551
    functionName: fu_config_reset_defaults
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 2
    functionsReached:
    - g_steal_pointer
    - g_error_matches
    - fu_config_save
    - GET_PRIVATE
    - FU_IS_CONFIG
    - g_autoptr
    - g_key_file_remove_group
    - g_propagate_error
    - g_return_val_if_fail
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_reset_defaults(FuConfig *self, const gchar *section,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:570,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:573,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:573,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:574,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:575,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:577,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:579,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:580,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:581,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 584
    functionName: fu_config_get_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 5
    functionsReached:
    - g_steal_pointer
    - GET_PRIVATE
    - FU_IS_CONFIG
    - g_key_file_get_string
    - g_strdup
    - g_hash_table_lookup
    - g_return_val_if_fail
    - fu_config_build_section_key
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_config_get_value(FuConfig *self, const gchar *section, const gchar *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:604,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:604,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:605,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:606,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:607,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 611
    functionName: fu_config_get_value_strv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strsplit
    - FU_IS_CONFIG
    - fu_config_get_value
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_config_get_value_strv(FuConfig *self, const gchar *section, const gchar *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:628,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:629,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:631,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:632,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-config.c:634,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:637,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: fu_config_get_value_bool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 11
    functionsReached:
    - fu_config_get_value
    - g_critical
    - GET_PRIVATE
    - g_ascii_strcasecmp
    - g_hash_table_lookup
    - fu_config_build_section_key
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_get_value_bool(FuConfig *self, const gchar *section,
      const gchar *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:657,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:660,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:661,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:664,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:665,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-config.c:667,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-config.c:673,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-config.c:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 678
    functionName: fu_config_get_value_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 3
    functionsReached:
    - g_warning
    - fu_config_get_value
    - fu_strtoull
    - GET_PRIVATE
    - g_critical
    - g_autoptr
    - g_hash_table_lookup
    - fu_config_build_section_key
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_config_get_value_u64(FuConfig *self, const gchar *section,
      const gchar *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:684,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:684,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-config.c:687,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:688,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-config.c:691,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:692,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:694,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:695,1
    - Dst: g_file_info_get_attribute_boolean
      Src: /src/fwupd/libfwupdplugin/fu-config.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:705,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:707,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-config.c:711,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - dirname
    - is_mutable
    - error
    argTypes:
    - FuConfig*
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 713
    functionName: fu_config_add_location
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_query_info
    - g_steal_pointer
    - g_new0
    - g_build_filename
    - g_file_new_for_path
    - g_file_query_exists
    - GET_PRIVATE
    - g_autoptr
    - g_file_info_get_attribute_boolean
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_add_location(FuConfig *self, const gchar *dirname,
      gboolean is_mutable, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:729,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-config.c:730,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-config.c:731,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:733,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:734,1
    - Dst: fu_config_add_location
      Src: /src/fwupd/libfwupdplugin/fu-config.c:737,1
    - Dst: fu_config_add_location
      Src: /src/fwupd/libfwupdplugin/fu-config.c:739,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:741,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:747,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:747,1
    - Dst: g_file_monitor
      Src: /src/fwupd/libfwupdplugin/fu-config.c:748,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-config.c:751,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/libfwupdplugin/fu-config.c:751,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-config.c:753,1
    - Dst: fu_config_emit_loaded
      Src: /src/fwupd/libfwupdplugin/fu-config.c:758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 760
    functionName: fu_config_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 4
    functionsReached:
    - G_FILE_MONITOR
    - g_file_new_for_path
    - fu_config_emit_loaded
    - g_file_monitor
    - fu_config_add_location
    - g_ptr_array_index
    - GET_PRIVATE
    - FU_IS_CONFIG
    - fu_config_reload
    - g_autoptr
    - fu_path_from_kind
    - g_return_val_if_fail
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_load(FuConfig *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:765,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:766,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-config.c:767,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-config.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 769
    functionName: fu_config_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    - GET_PRIVATE
    - g_key_file_new
    linkageType: ''
    returnType: void
    signature: void fu_config_init(FuConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:774,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:775,1
    - Dst: g_key_file_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:776,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:777,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:778,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 780
    functionName: fu_config_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_key_file_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_CONFIG
    linkageType: ''
    returnType: void
    signature: void fu_config_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:785,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:795,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:796,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:812,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 821
    functionName: fu_config_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_config_class_init(FuConfigClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:835,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: fu_config_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - g_object_new
    linkageType: ''
    returnType: FuConfig
    signature: 'FuConfig *

      fu_config_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 981
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:71,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:72,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entity
    argTypes:
    - FuCoswidFirmwareEntity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_coswid_firmware_entity_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_entity_free(FuCoswidFirmwareEntity *entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:81,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - FuCoswidFirmwareLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_coswid_firmware_link_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_link_free(FuCoswidFirmwareLink *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:91,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - FuCoswidFirmwareHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_coswid_firmware_hash_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_hash_free(FuCoswidFirmwareHash *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:100,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: fu_coswid_firmware_payload_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: FuCoswidFirmwarePayload
    signature: 'FuCoswidFirmwarePayload *

      fu_coswid_firmware_payload_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:109,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:110,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - payload
    argTypes:
    - FuCoswidFirmwarePayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: fu_coswid_firmware_payload_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_payload_free(FuCoswidFirmwarePayload *payload)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:122,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:123,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:124,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:126,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:128,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:131,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:134,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:138,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:139,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:145,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:146,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 153
    functionName: fu_coswid_firmware_parse_meta
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - fu_coswid_read_string
    - g_prefix_error
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - fu_coswid_read_tag
    - GET_PRIVATE
    - cbor_map_handle
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_meta(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:159,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:160,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:162,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:162,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:164,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:166,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:169,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:170,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:172,1
    - Dst: fu_coswid_read_s8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:178,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:183,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:184,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:185,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:190,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 192
    functionName: fu_coswid_firmware_parse_link
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - g_steal_pointer
    - g_new0
    - fu_coswid_read_string
    - g_prefix_error
    - fu_coswid_read_s8
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - fu_coswid_read_tag
    - GET_PRIVATE
    - g_autoptr
    - cbor_map_handle
    - g_free
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_link(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:200,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:202,1
    - Dst: cbor_isa_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:205,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:206,1
    - Dst: cbor_array_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:212,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:213,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:219,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:220,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:222,1
    - Dst: fu_coswid_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:228,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:229,1
    - Dst: fu_coswid_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:235,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:237,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:240,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 242
    functionName: fu_coswid_firmware_parse_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_new0
    - cbor_isa_array
    - cbor_array_size
    - g_prefix_error
    - fu_coswid_read_byte_array
    - fu_coswid_read_u8
    - g_set_error_literal
    - g_autoptr
    - cbor_array_get
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_hash(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cbor_array_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:249,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:249,1
    - Dst: fu_coswid_firmware_parse_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: fu_coswid_firmware_parse_hash_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_array_size
    - fu_coswid_firmware_parse_hash
    - g_autoptr
    - cbor_array_get
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_hash_array(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:260,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:261,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:263,1
    - Dst: fu_coswid_firmware_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:263,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:265,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:267,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:270,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:271,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:273,1
    - Dst: fu_coswid_read_u64
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:277,1
    - Dst: cbor_isa_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:280,1
    - Dst: cbor_array_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:282,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:282,1
    - Dst: cbor_isa_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:285,1
    - Dst: fu_coswid_firmware_parse_hash_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:286,1
    - Dst: fu_coswid_firmware_parse_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:291,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:297,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:304,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:305,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:306,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:311,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 313
    functionName: fu_coswid_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_read_u64
    - g_prefix_error
    - fu_coswid_read_tag
    - fu_coswid_firmware_parse_hash
    - g_set_error
    - g_debug
    - cbor_isa_array
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - cbor_array_get
    - cbor_map_handle
    - g_free
    - g_steal_pointer
    - cbor_array_size
    - g_autoptr
    - g_ptr_array_add
    - cbor_map_size
    - fu_coswid_read_string
    - fu_coswid_firmware_payload_new
    - GET_PRIVATE
    - fu_coswid_firmware_parse_hash_array
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_file(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:319,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:320,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:321,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:323,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:326,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:332,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:333,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 340
    functionName: fu_coswid_firmware_parse_path_elements
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - fu_coswid_read_tag
    - cbor_map_handle
    - fu_coswid_parse_one_or_many
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_path_elements(cbor_item_t *item,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:346,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:347,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:348,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:350,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:353,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:359,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:360,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 367
    functionName: fu_coswid_firmware_parse_directory
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - fu_coswid_read_tag
    - cbor_map_handle
    - fu_coswid_parse_one_or_many
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_directory(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:373,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:374,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:375,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:377,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:380,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:386,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:392,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:393,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 400
    functionName: fu_coswid_firmware_parse_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - fu_coswid_read_tag
    - cbor_map_handle
    - fu_coswid_parse_one_or_many
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_payload(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:408,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - cbor_item_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 418
    functionName: fu_coswid_firmware_parse_entity_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_read_string
    - g_prefix_error
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_name(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t     cbor_item_t *item,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:426,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:428,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - cbor_item_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 436
    functionName: fu_coswid_firmware_parse_entity_regid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_read_string
    - g_prefix_error
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_regid(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t      cbor_item_t *item,\n\t\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cbor_isa_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:443,1
    - Dst: fu_coswid_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:445,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:446,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:450,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:457,1
    - Dst: cbor_isa_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:459,1
    - Dst: cbor_array_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:462,1
    - Dst: cbor_array_get
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:462,1
    - Dst: fu_coswid_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:463,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:464,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:468,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:475,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - cbor_item_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 487
    functionName: fu_coswid_firmware_parse_entity_role
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_isa_uint
    - g_set_error
    - cbor_array_size
    - FU_BIT_SET
    - g_prefix_error
    - cbor_isa_array
    - fu_coswid_read_u8
    - g_set_error_literal
    - g_autoptr
    - cbor_array_get
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_role(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t     cbor_item_t *item,\n\t\t\t\t     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:493,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:494,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:496,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:496,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:498,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:500,1
    - Dst: fu_coswid_firmware_parse_entity_name
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:503,1
    - Dst: fu_coswid_firmware_parse_entity_regid
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:506,1
    - Dst: fu_coswid_firmware_parse_entity_role
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:509,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:512,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:513,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:514,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:520,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:527,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:535,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:535,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - cbor_item_t*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 537
    functionName: fu_coswid_firmware_parse_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - cbor_map_size
    - g_debug
    - g_steal_pointer
    - g_new0
    - fu_coswid_firmware_parse_entity_regid
    - FU_COSWID_FIRMWARE
    - fu_coswid_firmware_parse_entity_role
    - fu_coswid_tag_to_string
    - g_set_error_literal
    - fu_coswid_read_tag
    - GET_PRIVATE
    - g_autoptr
    - cbor_map_handle
    - g_ptr_array_add
    - fu_coswid_firmware_parse_entity_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_entity(cbor_item_t *item, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:545,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:549,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: fu_coswid_firmware_malloc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - MAX
    - g_debug
    - g_malloc0
    linkageType: ''
    returnType: void
    signature: 'void *

      fu_coswid_firmware_malloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:556,1
    - Dst: g_realloc
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:560,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: fu_coswid_firmware_realloc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_realloc
    - g_debug
    - MAX
    linkageType: ''
    returnType: void
    signature: 'void *

      fu_coswid_firmware_realloc(void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: fu_coswid_firmware_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_free(void *ptr)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:577,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:582,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:584,1
    - Dst: cbor_load
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:587,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:587,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:587,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:589,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:597,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:600,1
    - Dst: cbor_describe
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:601,1
    - Dst: fflush
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:602,1
    - Dst: cbor_isa_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:606,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:607,1
    - Dst: cbor_map_handle
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:615,1
    - Dst: cbor_map_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:616,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:618,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:623,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:625,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:628,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:630,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:631,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:633,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:637,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:639,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:642,1
    - Dst: fu_coswid_read_version_scheme
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:644,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:649,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:655,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:661,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:667,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:673,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:673,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:678,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:678,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:680,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:690,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 696
    functionName: fu_coswid_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - cbor_describe
    - fu_coswid_read_tag
    - fu_firmware_get_id
    - g_set_error
    - g_debug
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - cbor_load
    - cbor_map_handle
    - g_free
    - fu_firmware_set_size
    - fflush
    - g_autoptr
    - fu_coswid_parse_one_or_many
    - g_getenv
    - g_bytes_get_data
    - cbor_map_size
    - fu_firmware_set_id
    - fu_coswid_read_string
    - fu_firmware_get_version
    - g_bytes_get_size
    - fu_firmware_set_version
    - g_set_error_literal
    - GET_PRIVATE
    - cbor_isa_map
    - fu_input_stream_read_bytes
    - fu_coswid_read_version_scheme
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:701,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:702,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:720,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:724,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:730,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:732,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:734,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:737,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 743
    functionName: fu_coswid_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_byte_array_to_string
    - FU_COSWID_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - fwupd_checksum_type_to_string_display
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_coswid_firmware_get_checksum(FuFirmware *firmware, GChecksumType csum_kind,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:758,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:759,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 761
    functionName: fu_coswid_firmware_get_product
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_COSWID_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_coswid_firmware_get_product(FuCoswidFirmware *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:768,1
    - Dst: cbor_new_definite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:769,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:770,1
    - Dst: cbor_build_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:771,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:772,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:773,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:779,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:780,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:786,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - root
    - hash
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidFirmwareHash*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 796
    functionName: fu_coswid_firmware_write_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_autoptr
    - cbor_build_bytestring
    - cbor_array_push
    - cbor_build_uint8
    - cbor_new_definite_array
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_hash(cbor_item_t *root, FuCoswidFirmwareHash
      *hash, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:803,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:804,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:804,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:806,1
    - Dst: fu_coswid_write_tag_u64
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:809,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:812,1
    - Dst: cbor_new_indefinite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:812,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:814,1
    - Dst: fu_coswid_firmware_write_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:815,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:816,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:820,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:822,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:823,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - root
    - payload
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidFirmwarePayload*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 833
    functionName: fu_coswid_firmware_write_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_u64
    - fu_coswid_write_tag_item
    - g_prefix_error
    - fu_coswid_write_tag_string
    - cbor_new_indefinite_array
    - g_ptr_array_index
    - g_set_error_literal
    - cbor_new_indefinite_map
    - g_autoptr
    - fu_coswid_firmware_write_hash
    - cbor_array_push
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_write_payload(cbor_item_t *root,\n\t\t\t\t
      FuCoswidFirmwarePayload *payload,\n\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:838,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:838,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:839,1
    - Dst: cbor_new_indefinite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:839,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:841,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:844,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:847,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:848,1
    - Dst: cbor_build_uint8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:848,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:849,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:850,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:858,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:859,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - root
    - entity
    - error
    argTypes:
    - cbor_item_t*
    - FuCoswidFirmwareEntity*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 869
    functionName: fu_coswid_firmware_write_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_item
    - fu_coswid_write_tag_string
    - cbor_new_indefinite_array
    - FU_BIT_IS_SET
    - g_set_error_literal
    - cbor_new_indefinite_map
    - g_autoptr
    - cbor_array_push
    - cbor_build_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_entity(cbor_item_t *root, FuCoswidFirmwareEntity
      *entity, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:877,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:882,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:882,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:883,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:883,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:886,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:887,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:889,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:889,1
    - Dst: fu_coswid_write_tag_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:893,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:898,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:900,1
    - Dst: fu_coswid_write_tag_bool
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:903,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:905,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:906,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:907,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:909,1
    - Dst: fu_coswid_write_tag_u16
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:912,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:913,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:914,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:916,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:918,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:925,1
    - Dst: cbor_new_indefinite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:925,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:927,1
    - Dst: fu_coswid_firmware_write_entity
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:928,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:931,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:936,1
    - Dst: cbor_new_indefinite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:936,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:938,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:939,1
    - Dst: cbor_new_indefinite_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:939,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:941,1
    - Dst: fu_coswid_write_tag_s8
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:945,1
    - Dst: cbor_array_push
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:946,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:947,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:954,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:959,1
    - Dst: cbor_new_indefinite_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:959,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:961,1
    - Dst: fu_coswid_firmware_write_payload
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:962,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:965,1
    - Dst: cbor_serialize_alloc
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:969,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:971,1
    - Dst: g_byte_array_new_take
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:977,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:977,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:979,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 985
    functionName: fu_coswid_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_string
    - cbor_new_indefinite_array
    - cbor_array_push
    - fu_coswid_firmware_write_entity
    - fu_firmware_get_id
    - g_byte_array_new_take
    - FU_COSWID_FIRMWARE
    - g_ptr_array_index
    - fu_coswid_write_tag_u16
    - fu_coswid_write_tag_bytestring
    - g_steal_pointer
    - fu_coswid_write_tag_s8
    - cbor_new_indefinite_map
    - g_autoptr
    - fwupd_guid_from_string
    - fu_coswid_write_tag_item
    - fu_firmware_get_version
    - cbor_serialize_alloc
    - g_set_error_literal
    - GET_PRIVATE
    - fu_coswid_write_tag_bool
    - fu_coswid_firmware_write_payload
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_coswid_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:990,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:994,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:994,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:997,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:999,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1002,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1003,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1005,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1008,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1011,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1014,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1015,1
    - Dst: fu_coswid_entity_role_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1016,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1019,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1026,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1031,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1031,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1033
    functionName: fu_coswid_firmware_build_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_get_text
    - g_steal_pointer
    - g_new0
    - FU_BIT_SET
    - xb_node_query
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - fu_coswid_entity_role_from_string
    - g_ptr_array_add
    - xb_node_query_text
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_build_entity(FuCoswidFirmware *self, XbNode
      *n, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1038,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1040,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1040,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1043,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1045,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1048,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1051,1
    - Dst: fu_coswid_link_rel_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1053,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1055,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1065,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1067
    functionName: fu_coswid_firmware_build_link
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_new0
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_add
    - xb_node_query_text
    - fwupd_error_convert
    - fu_coswid_link_rel_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_build_link(FuCoswidFirmware *self, XbNode
      *n, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1076,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1076,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1079,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1081,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1084,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1089,1
    - Dst: fu_coswid_hash_alg_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1091,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1093,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - n
    - payload
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - FuCoswidFirmwarePayload*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1105
    functionName: fu_coswid_firmware_build_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - g_set_error
    - g_steal_pointer
    - g_new0
    - g_autoptr
    - g_ptr_array_add
    - xb_node_query_text
    - fwupd_error_convert
    - fu_coswid_hash_alg_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_build_hash(FuCoswidFirmware *self,\n\t\t\t
      \     XbNode *n,\n\t\t\t      FuCoswidFirmwarePayload *payload,\n\t\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1113,1
    - Dst: fu_coswid_firmware_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1114,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1117,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1119,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1120,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1128,1
    - Dst: fu_coswid_firmware_build_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1129,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1135,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1137
    functionName: fu_coswid_firmware_build_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - g_steal_pointer
    - fu_coswid_firmware_build_hash
    - xb_node_query
    - fu_coswid_firmware_payload_new
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - xb_node_query_text
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_build_payload(FuCoswidFirmware *self, XbNode
      *n, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1142,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1145,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1147,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1150,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1152,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1153,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1155,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1156,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1158,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1160,1
    - Dst: fu_coswid_version_scheme_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1162,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1164,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1177,1
    - Dst: fu_coswid_firmware_build_link
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1178,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1184,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1187,1
    - Dst: fu_coswid_firmware_build_payload
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1188,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1194,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1197,1
    - Dst: fu_coswid_firmware_build_entity
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1198,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1139
    functionDepth: 4
    functionLinenumber: 1139
    functionLinenumberEnd: 1205
    functionName: fu_coswid_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_coswid_firmware_build_payload
    - FU_COSWID_FIRMWARE
    - xb_node_query
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - fu_coswid_firmware_build_link
    - xb_node_query_text
    - fu_coswid_version_scheme_from_string
    - fu_coswid_firmware_build_entity
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1210,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1211,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1213,1
    - Dst: fu_coswid_version_scheme_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1215,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1217,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1218,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1219,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1222,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1222,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1223,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1225,1
    - Dst: fu_coswid_link_rel_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1227,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1231,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1232,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1232,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1233,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1234,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1237,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1237,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1238,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1239,1
    - Dst: fu_coswid_hash_alg_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1241,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1247,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1247,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1248,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1249,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1251,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1252,1
    - Dst: fu_coswid_entity_role_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1258
    functionName: fu_coswid_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_to_string
    - fu_coswid_entity_role_to_string
    - fu_coswid_link_rel_to_string
    - FU_COSWID_FIRMWARE
    - fu_coswid_hash_alg_to_string
    - g_ptr_array_index
    - FU_BIT_IS_SET
    - GET_PRIVATE
    - g_autoptr
    - fu_xmlb_builder_insert_kx
    - xb_builder_node_insert
    - fu_coswid_version_scheme_to_string
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1263,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1265,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1267,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1270
    functionName: fu_coswid_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_init(FuCoswidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1275,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1276,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1278,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1279,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1280,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1281,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1282,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1283,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1286
    functionName: fu_coswid_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_COSWID_FIRMWARE
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1291,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1292,1
    - Dst: cbor_set_allocs
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCoswidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1306
    functionName: fu_coswid_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    - cbor_set_allocs
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_class_init(FuCoswidFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1318,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1319
    functionName: fu_coswid_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_coswid_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:53,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:55,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:56,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:57,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:58,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:59,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:60,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:63,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:64,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: fu_efi_hard_drive_device_path_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_efi_hard_drive_device_path_signature_type_to_string
    - fu_efi_hard_drive_device_path_partition_format_to_string
    - fwupd_guid_to_string
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_efi_hard_drive_device_path_export(FuFirmware *firmware,\n\t\t\t\t
      \    FuFirmwareExportFlags flags,\n\t\t\t\t     XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:75,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:77,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:79,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:80,1
    - Dst: fwupd_codec_json_append_int
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:81,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:82,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:83,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:86,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:87,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: fu_efi_hard_drive_device_path_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append_int
    - fwupd_codec_json_append
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_efi_hard_drive_device_path_signature_type_to_string
    - fwupd_guid_to_string
    - fu_efi_hard_drive_device_path_partition_format_to_string
    linkageType: ''
    returnType: void
    signature: "void fu_efi_hard_drive_device_path_add_json(FwupdCodec *codec,\n\t\t\t\t
      \      JsonBuilder *builder,\n\t\t\t\t       FwupdCodecFlags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:100,1
    - Dst: fu_struct_efi_hard_drive_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:103,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:106,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_start
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:107,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:108,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:109,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_signature
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:110,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:112,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_signature_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:113,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:116,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 118
    functionName: fu_efi_hard_drive_device_path_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_hard_drive_device_path_get_partition_format
    - fu_struct_efi_hard_drive_device_path_get_partition_number
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - memcpy
    - fu_firmware_set_size
    - fu_struct_efi_hard_drive_device_path_get_signature_type
    - fu_struct_efi_hard_drive_device_path_get_partition_start
    - fu_struct_efi_hard_drive_device_path_get_partition_signature
    - fu_struct_efi_hard_drive_device_path_get_partition_size
    - g_autoptr
    - fu_struct_efi_device_path_get_length
    - fu_struct_efi_hard_drive_device_path_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_hard_drive_device_path_parse(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:124,1
    - Dst: fu_struct_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:124,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:127,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_start
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:128,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:129,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_signature
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:130,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:132,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_signature_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:133,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: fu_efi_hard_drive_device_path_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_hard_drive_device_path_set_partition_size
    - g_steal_pointer
    - fu_struct_efi_hard_drive_device_path_new
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_struct_efi_hard_drive_device_path_set_partition_format
    - fu_struct_efi_hard_drive_device_path_set_partition_number
    - fu_struct_efi_hard_drive_device_path_set_partition_signature
    - fu_struct_efi_hard_drive_device_path_set_signature_type
    - g_autoptr
    - fu_struct_efi_hard_drive_device_path_set_partition_start
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_hard_drive_device_path_write(FuFirmware *firmware, GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:142,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:147,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:149,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:153,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:155,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:159,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:161,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:165,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:167,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:173,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:176,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:178,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 186
    functionName: fu_efi_hard_drive_device_path_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_strtoull
    - fu_efi_hard_drive_device_path_signature_type_from_string
    - xb_node_query_text
    - fu_efi_hard_drive_device_path_partition_format_from_string
    - fwupd_guid_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_hard_drive_device_path_build(FuFirmware *firmware,
      XbNode *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:191,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:191,1
    - Dst: fu_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:192,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: fu_efi_hard_drive_device_path_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - fu_efi_device_path_set_subtype
    - FU_EFI_DEVICE_PATH
    - fu_firmware_set_idx
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_hard_drive_device_path_init(FuEfiHardDriveDevicePath *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiHardDriveDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: fu_efi_hard_drive_device_path_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_hard_drive_device_path_class_init(FuEfiHardDriveDevicePathClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:219,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: fu_efi_hard_drive_device_path_get_partition_signature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    linkageType: ''
    returnType: fwupd_guid_t
    signature: 'fwupd_guid_t *

      fu_efi_hard_drive_device_path_get_partition_signature(FuEfiHardDriveDevicePath
      *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:238,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: fu_efi_hard_drive_device_path_get_partition_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_efi_hard_drive_device_path_get_partition_size(FuEfiHardDriveDevicePath
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:257,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: fu_efi_hard_drive_device_path_get_partition_start
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_efi_hard_drive_device_path_get_partition_start(FuEfiHardDriveDevicePath
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:274,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: fu_efi_hard_drive_device_path_get_partition_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_efi_hard_drive_device_path_get_partition_number(FuEfiHardDriveDevicePath
      *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:292,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:293,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:293,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - dp1
    - dp2
    argTypes:
    - FuEfiHardDriveDevicePath*
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: fu_efi_hard_drive_device_path_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    - memcmp
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_hard_drive_device_path_compare(FuEfiHardDriveDevicePath
      *dp1, FuEfiHardDriveDevicePath *dp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: fu_efi_hard_drive_device_path_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_hard_drive_device_path_codec_iface_init(FwupdCodecInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: fu_efi_hard_drive_device_path_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiHardDriveDevicePath
    signature: 'FuEfiHardDriveDevicePath *

      fu_efi_hard_drive_device_path_new(void)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:346,1
    - Dst: fu_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:351,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:352,1
    - Dst: fu_volume_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:355,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:357,1
    - Dst: fu_volume_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:362,1
    - Dst: fu_volume_get_partition_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:363,1
    - Dst: fu_volume_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:364,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:367,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:369,1
    - Dst: fu_volume_get_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:375,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:377,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:383,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:384,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:388,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:393,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:395,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:395,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:396,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:401,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:404,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - volume
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 424
    functionName: fu_efi_hard_drive_device_path_new_from_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 1
    functionsReached:
    - g_auto
    - strlen
    - fu_volume_get_block_size
    - g_prefix_error
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_set_error
    - g_debug
    - fu_memwrite_uint32_safe
    - g_steal_pointer
    - fu_volume_get_partition_kind
    - g_autoptr
    - fu_volume_get_partition_offset
    - fwupd_guid_from_string
    - fu_efi_hard_drive_device_path_new
    - fu_volume_get_partition_number
    - fu_firmware_strparse_uint32_safe
    - g_strsplit
    - fu_volume_get_partition_size
    - g_set_error_literal
    - fu_volume_get_partition_uuid
    - g_strcmp0
    linkageType: ''
    returnType: FuEfiHardDriveDevicePath
    signature: 'FuEfiHardDriveDevicePath *

      fu_efi_hard_drive_device_path_new_from_volume(FuVolume *volume, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 996
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:44,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:47,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:49,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:51,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:53,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:53,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:54,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: fu_efi_section_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_efi_guid_to_name
    - FU_EFI_SECTION
    - fu_efi_section_type_to_string
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_firmware_get_id
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_efi_section_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:66,1
    - Dst: fu_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:66,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:67,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: fu_efi_section_parse_volume_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_efi_volume_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_volume_image(FuEfiSection *self,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:86,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:89,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:94,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:97,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:98,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: fu_efi_section_parse_lzma_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_lzma_decompress_bytes
    - fu_input_stream_read_bytes
    - g_prefix_error
    - fu_efi_parse_sections
    - FU_FIRMWARE
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_lzma_sections(FuEfiSection *self,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:115,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:122,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: fu_efi_section_parse_user_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_byte_array
    - fu_utf16_to_utf8_byte_array
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_user_interface(FuEfiSection *self,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:139,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:141,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:142,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:145,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:146,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:148,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:151,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:153,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 158
    functionName: fu_efi_section_parse_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - g_prefix_error
    - fu_input_stream_read_byte_array
    - fu_firmware_set_version
    - FU_FIRMWARE
    - fu_utf16_to_utf8_byte_array
    - fu_firmware_set_version_raw
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_version(FuEfiSection *self,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:166,1
    - Dst: fu_struct_efi_section_compression_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:167,1
    - Dst: fu_struct_efi_section_compression_get_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:170,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:172,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:177,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:178,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:179,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:181,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:184,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:184,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: fu_efi_section_parse_compression_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_efi_lz77_decompressor_new
    - g_prefix_error
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_efi_parse_sections
    - fu_struct_efi_section_compression_parse_stream
    - fu_struct_efi_section_compression_get_compression_type
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_compression_sections(FuEfiSection *self,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 220
    functionName: fu_efi_section_freeform_subtype_guid_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_section_freeform_subtype_guid_to_string(const gchar *guid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:230,1
    - Dst: fu_struct_efi_section_freeform_subtype_guid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:232,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:237,1
    - Dst: fu_struct_efi_section_freeform_subtype_guid_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:237,1
    - Dst: fu_efi_section_freeform_subtype_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:239,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:241,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 246
    functionName: fu_efi_section_parse_freeform_subtype_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_efi_section_freeform_subtype_guid_get_guid
    - fu_efi_section_freeform_subtype_guid_to_string
    - fwupd_guid_to_string
    - fu_struct_efi_section_freeform_subtype_guid_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse_freeform_subtype_guid(FuEfiSection *self,\n\t\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:254,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:260,1
    - Dst: fu_struct_efi_section_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:263,1
    - Dst: fu_struct_efi_section_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:268,1
    - Dst: fu_struct_efi_section_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:269,1
    - Dst: fu_struct_efi_section2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:270,1
    - Dst: fu_struct_efi_section2_get_extended_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:273,1
    - Dst: fu_struct_efi_section_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:278,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:290,1
    - Dst: fu_struct_efi_section_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:303,1
    - Dst: fu_struct_efi_section_guid_defined_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:304,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:307,1
    - Dst: fu_struct_efi_section_guid_defined_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:307,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:309,1
    - Dst: fu_struct_efi_section_guid_defined_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:311,1
    - Dst: fu_struct_efi_section_guid_defined_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:315,1
    - Dst: fu_struct_efi_section_guid_defined_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:318,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:323,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:325,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:328,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:329,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:330,1
    - Dst: fu_efi_section_parse_volume_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:335,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:336,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:340,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:340,1
    - Dst: fu_efi_section_parse_lzma_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:342,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:343,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:347,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:347,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:349,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:350,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:353,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:354,1
    - Dst: fu_efi_section_parse_user_interface
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:356,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:357,1
    - Dst: fu_efi_section_parse_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:361,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:362,1
    - Dst: fu_efi_section_parse_compression_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:366,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:370,1
    - Dst: fu_efi_section_parse_freeform_subtype_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:374,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:378,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:386,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:387,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:390,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:391,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 99
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 397
    functionName: fu_efi_section_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_section_unref
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_struct_efi_section2_parse_stream
    - fu_struct_efi_section_guid_defined_get_offset
    - fu_efi_section_parse_user_interface
    - fu_firmware_get_id
    - fu_struct_efi_section2_get_extended_size
    - fu_efi_section_parse_version
    - g_set_error
    - g_debug
    - fu_firmware_set_offset
    - fu_efi_section_parse_compression_sections
    - fu_struct_efi_section_get_size
    - fu_struct_efi_section_parse_stream
    - fu_efi_section_parse_freeform_subtype_guid
    - fu_efi_section_parse_volume_image
    - fu_firmware_set_size
    - FU_EFI_SECTION
    - fu_efi_section_type_to_string
    - fu_struct_efi_section_guid_defined_parse_stream
    - g_autoptr
    - g_strcmp0
    - fu_partial_input_stream_new
    - g_warning
    - fu_firmware_set_id
    - fu_struct_efi_section_guid_defined_get_name
    - fwupd_guid_to_string
    - fu_efi_section_parse_lzma_sections
    - fu_struct_efi_section_get_type
    - GET_PRIVATE
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_section_parse(FuFirmware *firmware,\n\t\t     GInputStream
      *stream,\n\t\t     FuFirmwareParseFlags flags,\n\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:402,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:403,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:404,1
    - Dst: fu_struct_efi_section_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:405,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:415,1
    - Dst: fu_struct_efi_section_guid_defined_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:415,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:416,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:416,1
    - Dst: fu_struct_efi_section_guid_defined_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:421,1
    - Dst: fu_struct_efi_section_guid_defined_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:422,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:423,1
    - Dst: fu_struct_efi_section_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:425,1
    - Dst: fu_struct_efi_section_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:426,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:426,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 431
    functionName: fu_efi_section_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_section_set_size
    - fu_byte_array_append_bytes
    - fu_struct_efi_section_set_type
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_struct_efi_section_new
    - fu_firmware_get_id
    - FU_EFI_SECTION
    - g_bytes_get_size
    - fu_struct_efi_section_guid_defined_set_offset
    - fu_struct_efi_section_guid_defined_set_name
    - GET_PRIVATE
    - fu_struct_efi_section_guid_defined_new
    - g_autoptr
    - g_byte_array_append
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_section_write(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:436,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:437,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:442,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:445,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:448,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 460
    functionName: fu_efi_section_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_query_text_as_uint
    - FU_EFI_SECTION
    - GET_PRIVATE
    - g_strdup
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_section_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:465,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:467,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:467,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:468,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:469,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:469,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 472
    functionName: fu_efi_section_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - GET_PRIVATE
    - g_getenv
    - fu_firmware_add_flag
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_efi_section_init(FuEfiSection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:477,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:478,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:479,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: fu_efi_section_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_free
    - GET_PRIVATE
    - FU_EFI_SECTION
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_section_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:486,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiSectionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 493
    functionName: fu_efi_section_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_section_class_init(FuEfiSectionClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:505,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: fu_efi_section_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_section_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 1003
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:51,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:52,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:53,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:54,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:55,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:56,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:57,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:58,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:59,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: fu_drm_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - fu_display_state_to_string
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - FU_DRM_DEVICE
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:78,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:79,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: fu_drm_device_get_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: FuDisplayState
    signature: FuDisplayState fu_drm_device_get_state(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:97,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: fu_drm_device_get_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_drm_device_get_enabled(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:115,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: fu_drm_device_get_connector_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_drm_device_get_connector_id(FuDrmDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:133,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: fu_drm_device_get_crtc_x
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_drm_device_get_crtc_x(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:151,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: fu_drm_device_get_crtc_y
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_drm_device_get_crtc_y(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:169,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: fu_drm_device_get_crtc_width
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_drm_device_get_crtc_width(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:187,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fu_drm_device_get_crtc_height
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_drm_device_get_crtc_height(FuDrmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:205,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: fu_drm_device_get_edid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: FuEdid
    signature: 'FuEdid *

      fu_drm_device_get_edid(FuDrmDevice *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:212,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:213,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:214,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:215,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:215,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:219,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:222,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:223,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:228,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:232,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:233,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:233,1
    - Dst: fu_display_state_from_string
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:237,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:238,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:238,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:243,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:247,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:247,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:249,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:250,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:252,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:256,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:258,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:260,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:260,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:266,1
    - Dst: fu_edid_new
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:267,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:269,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:272,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:272,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:278,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:281,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:281,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:282,1
    - Dst: fu_edid_get_product_code
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:282,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:283,1
    - Dst: fu_edid_get_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:293,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:294,1
    - Dst: fu_edid_get_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:294,1
    - Dst: fu_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:295,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:296,1
    - Dst: fu_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:296,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:297,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:297,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 302
    functionName: fu_drm_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_device_build_vendor_id
    - FU_DRM_DEVICE
    - FU_FIRMWARE
    - fu_udev_device_get_sysfs_path
    - fu_device_build_instance_id_full
    - g_set_error
    - fu_device_add_parent_backend_id
    - fu_edid_get_product_code
    - g_strstr_len
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_display_state_from_string
    - fu_device_set_physical_id
    - fu_device_add_instance_u16
    - g_build_filename
    - fu_edid_get_pnp_id
    - g_autoptr
    - fu_device_set_serial
    - fu_firmware_parse_bytes
    - fu_device_set_name
    - fu_device_get_backend_parent_with_subsystem
    - fu_edid_get_eisa_id
    - fu_edid_get_serial_number
    - g_path_get_basename
    - g_strsplit
    - g_set_object
    - FU_DEVICE
    - GET_PRIVATE
    - g_strdup
    - fu_device_add_instance_str
    - fu_edid_new
    - g_strcmp0
    - fu_bytes_get_contents
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_drm_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:308,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:309,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:310,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:310,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:315,1
    - Dst: drmModeGetResources
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:315,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:324,1
    - Dst: drmModeGetCrtc
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 339
    functionName: fu_drm_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - drmModeGetCrtc
    - fu_io_channel_unix_get_fd
    - FU_DRM_DEVICE
    - drmModeGetResources
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_drm_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:344,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:345,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:346,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:347,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:355,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:357,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 17
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 366
    functionName: fu_drm_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - GET_PRIVATE
    - FU_DRM_DEVICE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:371,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: fu_drm_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_init(FuDrmDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:377,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:378,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:380,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:382,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: fu_drm_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_DRM_DEVICE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:390,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDrmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: fu_drm_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_class_init(FuDrmDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:41,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:46,1
    - Dst: json_node_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:52,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:56,1
    - Dst: json_object_get_int_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - json_node
    - error
    argTypes:
    - FwupdCodec*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: fu_usb_config_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - json_object_get_int_member_with_default
    - FU_USB_CONFIG_DESCRIPTOR
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_node_get_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_config_descriptor_from_json(FwupdCodec *codec, JsonNode
      *json_node, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:67,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:71,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:72,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:75,1
    - Dst: json_builder_add_int_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: fu_usb_config_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - json_builder_add_int_value
    - json_builder_set_member_name
    - FU_USB_CONFIG_DESCRIPTOR
    linkageType: ''
    returnType: void
    signature: void fu_usb_config_descriptor_add_json(FwupdCodec *codec, JsonBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:93,1
    - Dst: FU_IS_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbConfigDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fu_usb_config_descriptor_get_configuration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_CONFIG_DESCRIPTOR
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_config_descriptor_get_configuration(FuUsbConfigDescriptor
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:110,1
    - Dst: FU_IS_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbConfigDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: fu_usb_config_descriptor_get_configuration_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_CONFIG_DESCRIPTOR
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_usb_config_descriptor_get_configuration_value(FuUsbConfigDescriptor
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:121,1
    - Dst: fu_usb_descriptor_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:124,1
    - Dst: fu_usb_descriptor_hdr_get_configuration
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:127,1
    - Dst: fu_usb_descriptor_hdr_get_configuration_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: fu_usb_config_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_CONFIG_DESCRIPTOR
    - fu_usb_descriptor_hdr_get_configuration_value
    - fu_usb_descriptor_hdr_parse_stream
    - g_autoptr
    - fu_usb_descriptor_hdr_get_configuration
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usb_config_descriptor_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: fu_usb_config_descriptor_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_config_descriptor_codec_iface_init(FwupdCodecInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbConfigDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fu_usb_config_descriptor_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usb_config_descriptor_class_init(FuUsbConfigDescriptorClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbConfigDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: fu_usb_config_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_config_descriptor_init(FuUsbConfigDescriptor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:163,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: fu_usb_config_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 1
    functionsReached:
    - FU_USB_CONFIG_DESCRIPTOR
    - g_object_new
    linkageType: ''
    returnType: FuUsbConfigDescriptor
    signature: 'FuUsbConfigDescriptor *

      fu_usb_config_descriptor_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:32,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:33,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:34,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - FuDummyEfivarsKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: fu_dummy_efivars_key_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_dummy_efivars_key_free(FuDummyEfivarsKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: fu_dummy_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dummy_efivars_supported(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:48,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:49,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - self
    - guid
    - name
    argTypes:
    - FuDummyEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: fu_dummy_efivars_find_by_guid_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: FuDummyEfivarsKey
    signature: 'FuDummyEfivarsKey *

      fu_dummy_efivars_find_by_guid_name(FuDummyEfivars *self, const gchar *guid,
      const gchar *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:58,1
    - Dst: fu_dummy_efivars_find_by_guid_name
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:61,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: fu_dummy_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_dummy_efivars_find_by_guid_name
    - FU_DUMMY_EFIVARS
    - g_ptr_array_remove
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dummy_efivars_delete(FuEfivars *efivars, const gchar *guid,
      const gchar *name, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:75,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:75,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:77,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:78,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:82,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - efivars
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: fu_dummy_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - FU_DUMMY_EFIVARS
    - g_ptr_array_remove
    - g_ptr_array_new
    - g_ptr_array_index
    - g_autoptr
    - g_pattern_match_simple
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dummy_efivars_delete_with_glob(FuEfivars *efivars,\n\t\t\t\t
      \ const gchar *guid,\n\t\t\t\t  const gchar *name_glob,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDummyEfivars*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: fu_dummy_efivars_exists_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dummy_efivars_exists_guid(FuDummyEfivars *self, const gchar
      *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:102,1
    - Dst: fu_dummy_efivars_exists_guid
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:104,1
    - Dst: fu_dummy_efivars_find_by_guid_name
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: fu_dummy_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - fu_dummy_efivars_exists_guid
    - fu_dummy_efivars_find_by_guid_name
    - FU_DUMMY_EFIVARS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dummy_efivars_exists(FuEfivars *efivars, const gchar *guid,
      const gchar *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:117,1
    - Dst: fu_dummy_efivars_find_by_guid_name
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:120,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: fu_dummy_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dummy_efivars_find_by_guid_name
    - FU_DUMMY_EFIVARS
    - g_memdup2
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dummy_efivars_get_data(FuEfivars *efivars,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  guint8 **data,\n\t\t\t  gsize
      *data_sz,\n\t\t\t  guint32 *attr,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:141,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:141,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:143,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:144,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:145,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: fu_dummy_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - FU_DUMMY_EFIVARS
    - g_steal_pointer
    - g_ptr_array_index
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_strcmp0
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_dummy_efivars_get_names(FuEfivars *efivars, const gchar *guid, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:153,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:156,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: fu_dummy_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FU_DUMMY_EFIVARS
    - strlen
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_dummy_efivars_space_used(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dummy_efivars_space_used
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: fu_dummy_efivars_space_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - fu_dummy_efivars_space_used
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_dummy_efivars_space_free(FuEfivars *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:182,1
    - Dst: fu_dummy_efivars_find_by_guid_name
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:183,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:185,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:186,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:187,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:188,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:189,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:192,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: fu_dummy_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - FU_DUMMY_EFIVARS
    - g_new0
    - fu_dummy_efivars_find_by_guid_name
    - g_strdup
    - g_byte_array_set_size
    - g_byte_array_append
    - g_ptr_array_add
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dummy_efivars_set_data(FuEfivars *efivars,\n\t\t\t  const
      gchar *guid,\n\t\t\t  const gchar *name,\n\t\t\t  const guint8 *data,\n\t\t\t
      \ gsize sz,\n\t\t\t  guint32 attr,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDummyEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: fu_dummy_efivars_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_dummy_efivars_init(FuDummyEfivars *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DUMMY_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:206,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:207,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fu_dummy_efivars_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_DUMMY_EFIVARS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dummy_efivars_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:214,1
    - Dst: FU_EFIVARS_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDummyEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 226
    functionName: fu_dummy_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_EFIVARS_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dummy_efivars_class_init(FuDummyEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:231,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: fu_dummy_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    functionUses: 1
    functionsReached:
    - FU_EFIVARS
    - g_object_new
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_dummy_efivars_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 1016
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:38,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:38,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:41,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:43,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - attr
    - fwupd_version
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: fu_security_attr_check_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 2
    functionsReached:
    - fwupd_security_attr_get_fwupd_version
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - fu_version_compare
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_security_attr_check_fwupd_version(FwupdSecurityAttr *attr,
      const gchar *fwupd_version)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:64,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:65,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:70,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:73,1
    - Dst: fwupd_security_attr_set_bios_setting_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:74,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:74,1
    - Dst: fwupd_security_attr_set_bios_setting_current_value
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:75,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:76,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:78,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:80,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:82,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:83,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:84,1
    - Dst: fwupd_security_attr_set_bios_setting_target_value
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:87,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:88,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - attr
    - id
    - needle
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 96
    functionName: fu_security_attr_add_bios_target_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_get_kind
    - fwupd_bios_setting_get_possible_values
    - fwupd_security_attr_add_flag
    - FU_SECURITY_ATTR
    - g_ptr_array_index
    - g_utf8_strdown
    - g_strrstr
    - GET_PRIVATE
    - fwupd_bios_setting_get_id
    - fwupd_security_attr_set_bios_setting_id
    - g_strcmp0
    - fwupd_security_attr_set_bios_setting_target_value
    - fwupd_bios_setting_get_read_only
    - fwupd_security_attr_set_bios_setting_current_value
    - fwupd_bios_setting_get_current_value
    - fu_context_get_bios_setting
    linkageType: ''
    returnType: void
    signature: "void fu_security_attr_add_bios_target_value(FwupdSecurityAttr *attr,\n\t\t\t\t
      \      const gchar *id,\n\t\t\t\t       const gchar *needle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: fu_security_attr_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_security_attr_init(FuSecurityAttr *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:106,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:107,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:108,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: fu_security_attr_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 0
    functionsReached:
    - FU_SECURITY_ATTR
    - GET_PRIVATE
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_security_attr_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSecurityAttrClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: fu_security_attr_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_security_attr_class_init(FuSecurityAttrClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:133,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:133,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:135,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:135,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:137,1
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:137,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:138,1
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:139,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attr.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - appstream_id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: fu_security_attr_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attr.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - FU_IS_CONTEXT
    - FWUPD_SECURITY_ATTR
    - g_object_new
    - GET_PRIVATE
    - fwupd_security_attr_set_appstream_id
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_security_attr_new(FuContext *ctx, const gchar *appstream_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:29,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:31,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:32,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:34,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:35,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:37,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:40,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: fu_output_stream_from_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-output-stream.c
    functionUses: 2
    functionsReached:
    - g_steal_pointer
    - g_file_new_for_path
    - G_OUTPUT_STREAM
    - g_file_replace
    - g_autoptr
    - g_return_val_if_fail
    - fwupd_error_convert
    linkageType: ''
    returnType: GOutputStream
    signature: 'GOutputStream *

      fu_output_stream_from_path(const gchar *path, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:65,1
    - Dst: G_IS_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:65,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:66,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:67,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:68,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:73,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:75,1
    - Dst: g_output_stream_write_bytes
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:78,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:80,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:86,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-output-stream.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - stream
    - bytes
    - progress
    - error
    argTypes:
    - GOutputStream*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: fu_output_stream_write_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-output-stream.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_percentage_full
    - g_set_error
    - g_output_stream_write_bytes
    - FU_IS_PROGRESS
    - g_bytes_get_size
    - g_autoptr
    - G_IS_OUTPUT_STREAM
    - g_return_val_if_fail
    - fwupd_error_convert
    - fu_bytes_new_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_output_stream_write_bytes(GOutputStream *stream,\n\t\t\t
      \    GBytes *bytes,\n\t\t\t     FuProgress *progress,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1019
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:35,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:36,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:37,1
    - Dst: fu_archive_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:37,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:38,1
    - Dst: fu_archive_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: fu_archive_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_format_to_string
    - fu_archive_compression_to_string
    - GET_PRIVATE
    - FU_ARCHIVE_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_archive_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:51,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:51,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:52,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - filename
    - bytes
    - user_data
    - error
    argTypes:
    - FuArchive*
    - gchar*
    - GBytes*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: fu_archive_firmware_parse_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image_full
    - FU_FIRMWARE
    - fu_firmware_new_from_bytes
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_archive_firmware_parse_cb(FuArchive *self,\n\t\t\t     const
      gchar *filename,\n\t\t\t     GBytes *bytes,\n\t\t\t     gpointer user_data,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:62,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:65,1
    - Dst: fu_archive_iterate
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: fu_archive_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_iterate
    - fu_archive_new_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_archive_firmware_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:86,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:87,1
    - Dst: FU_IS_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuArchiveFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: fu_archive_firmware_get_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_ARCHIVE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuArchiveFormat
    signature: FuArchiveFormat fu_archive_firmware_get_format(FuArchiveFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:103,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:104,1
    - Dst: FU_IS_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - FuArchiveFirmware*
    - FuArchiveFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: fu_archive_firmware_set_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_ARCHIVE_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_archive_firmware_set_format(FuArchiveFirmware *self, FuArchiveFormat
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:122,1
    - Dst: FU_IS_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuArchiveFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: fu_archive_firmware_get_compression
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_ARCHIVE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuArchiveCompression
    signature: FuArchiveCompression fu_archive_firmware_get_compression(FuArchiveFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:138,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:139,1
    - Dst: FU_IS_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - compression
    argTypes:
    - FuArchiveFirmware*
    - FuArchiveCompression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: fu_archive_firmware_set_compression
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_ARCHIVE_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_archive_firmware_set_compression(FuArchiveFirmware *self, FuArchiveCompression
      compression)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:160,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:160,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:160,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:162,1
    - Dst: FU_IS_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:163,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:164,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:167,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:168,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:172,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:182,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - pattern
    - error
    argTypes:
    - FuArchiveFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 190
    functionName: fu_archive_firmware_get_image_fnmatch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_object_ref
    - g_steal_pointer
    - FU_IS_ARCHIVE_FIRMWARE
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_return_val_if_fail
    - g_pattern_match_simple
    - fu_firmware_get_id
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_archive_firmware_get_image_fnmatch(FuArchiveFirmware *self, const gchar *pattern,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:195,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:198,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:198,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:209,1
    - Dst: fu_archive_new
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:220,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:222,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:223,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:229,1
    - Dst: fu_archive_add_entry
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:232,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:232,1
    - Dst: fu_archive_write
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 235
    functionName: fu_archive_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_write
    - fu_archive_new
    - fu_firmware_get_bytes
    - fu_firmware_get_images
    - g_set_error_literal
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - FU_ARCHIVE_FIRMWARE
    - fu_archive_add_entry
    - fu_firmware_get_id
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_archive_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:240,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:244,1
    - Dst: fu_archive_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:248,1
    - Dst: fu_archive_firmware_set_format
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:255,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:257,1
    - Dst: fu_archive_compression_from_string
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:259,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:261,1
    - Dst: fu_archive_firmware_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 273
    functionName: fu_archive_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_archive_firmware_set_format
    - fu_archive_compression_from_string
    - fu_archive_format_from_string
    - FU_ARCHIVE_FIRMWARE
    - xb_node_query_text
    - fu_archive_firmware_set_compression
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_archive_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:278,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuArchiveFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: fu_archive_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_archive_firmware_init(FuArchiveFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuArchiveFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: fu_archive_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_archive_firmware_class_init(FuArchiveFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:301,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-archive-firmware.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: fu_archive_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_archive_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:52,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:54,1
    - Dst: FU_IS_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:54,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:55,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:57,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:57,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:60,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:63,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfiFilePathDevicePath*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: fu_efi_file_path_device_path_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 1
    functionsReached:
    - g_strdelimit
    - g_steal_pointer
    - FU_FIRMWARE
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - g_return_val_if_fail
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_file_path_device_path_get_name(FuEfiFilePathDevicePath *self, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:83,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:85,1
    - Dst: FU_IS_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:85,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:86,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:90,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:91,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:92,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:98,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:100,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuEfiFilePathDevicePath*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: fu_efi_file_path_device_path_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 1
    functionsReached:
    - g_strdelimit
    - fu_utf8_to_utf16_byte_array
    - FU_FIRMWARE
    - g_strdup
    - g_autoptr
    - g_bytes_new
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - g_return_val_if_fail
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_file_path_device_path_set_name(FuEfiFilePathDevicePath
      *self,\n\t\t\t\t      const gchar *name,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:111,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:112,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: fu_efi_file_path_device_path_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_efi_file_path_device_path_export(FuFirmware *firmware,\n\t\t\t\t
      \   FuFirmwareExportFlags flags,\n\t\t\t\t    XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:121,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:122,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: fu_efi_file_path_device_path_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - fwupd_codec_json_append
    - FU_EFI_FILE_PATH_DEVICE_PATH
    linkageType: ''
    returnType: void
    signature: "void fu_efi_file_path_device_path_add_json(FwupdCodec *codec,\n\t\t\t\t
      \     JsonBuilder *builder,\n\t\t\t\t      FwupdCodecFlags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:130,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:133,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:135,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: fu_efi_file_path_device_path_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - xb_node_get_text
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - fu_efi_file_path_device_path_set_name
    - g_autoptr
    - xb_node_query_first
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_file_path_device_path_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: fu_efi_file_path_device_path_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_path_device_path_codec_iface_init(FwupdCodecInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:152,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:152,1
    - Dst: fu_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:153,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFilePathDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: fu_efi_file_path_device_path_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - fu_efi_device_path_set_subtype
    - FU_EFI_DEVICE_PATH
    - fu_firmware_set_idx
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_path_device_path_init(FuEfiFilePathDevicePath *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFilePathDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: fu_efi_file_path_device_path_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_file_path_device_path_class_init(FuEfiFilePathDevicePathClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: fu_efi_file_path_device_path_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEfiFilePathDevicePath
    signature: 'FuEfiFilePathDevicePath *

      fu_efi_file_path_device_path_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:49,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:50,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:50,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:51,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:54,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:62,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:67,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:75,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:78,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:80,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:81,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:83,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidrawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 91
    functionName: fu_hidraw_device_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - FU_HID_DESCRIPTOR
    - g_steal_pointer
    - g_prefix_error
    - fu_hid_descriptor_new
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_bytes_new
    - fu_dump_raw
    - fu_firmware_parse_bytes
    - fu_ioctl_execute
    linkageType: ''
    returnType: FuHidDescriptor
    signature: 'FuHidDescriptor *

      fu_hidraw_device_parse_descriptor(FuHidrawDevice *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:96,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:99,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidrawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: fu_hidraw_device_probe_usb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - fu_device_get_backend_parent_with_subsystem
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hidraw_device_probe_usb(FuHidrawDevice *self, GError **error)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:114,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:118,1
    - Dst: fu_udev_device_parse_number
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:121,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:121,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:125,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:130,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:130,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:133,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:134,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:135,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:137,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:143,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:146,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:148,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:156,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:159,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:164,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:166,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:166,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:168,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:172,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:174,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:174,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:176,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:180,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:183,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:183,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:186,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:189,1
    - Dst: fu_hidraw_device_probe_usb
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:190,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:196,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:199,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:201,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:207,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:209,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:213,1
    - Dst: fu_udev_device_get_device_file_from_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:216,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:216,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:221,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:221,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:225,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:225,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:226,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:226,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:227,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:234,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:243,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:243,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 247
    functionName: fu_hidraw_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_prefix_error
    - fu_udev_device_read_property
    - fu_device_get_physical_id
    - fu_udev_device_parse_number
    - fu_device_get_vendor
    - fu_udev_device_set_device_file
    - fu_device_build_instance_id_full
    - fu_device_get_logical_id
    - fu_device_set_vid
    - FU_HIDRAW_DEVICE
    - g_strv_length
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_device_set_physical_id
    - fu_hidraw_device_probe_usb
    - g_info
    - fu_udev_device_get_device_file
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_set_version_raw
    - fu_strtoull
    - fu_device_get_backend_parent_with_subsystem
    - g_str_has_prefix
    - fu_device_get_vid
    - fu_device_set_pid
    - g_strsplit
    - fu_udev_device_get_device_file_from_subsystem
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hidraw_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:272,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:272,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:272,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:275,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:277,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:280,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:281,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:284,1
    - Dst: HIDIOCSFEATURE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:285,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuHidrawDevice*
    - guint8*
    - gsize
    - FuIoctlFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 300
    functionName: fu_hidraw_device_set_feature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_memdup_safe
    - FU_IS_HIDRAW_DEVICE
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_return_val_if_fail
    - fu_ioctl_execute
    - HIDIOCSFEATURE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hidraw_device_set_feature(FuHidrawDevice *self,\n\t\t\t
      \    const guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     FuIoctlFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:327,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:329,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:332,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:333,1
    - Dst: HIDIOCGFEATURE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:334,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:342,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuHidrawDevice*
    - guint8*
    - gsize
    - FuIoctlFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 354
    functionName: fu_hidraw_device_get_feature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - HIDIOCGFEATURE
    - fu_udev_device_ioctl_new
    - FU_IS_HIDRAW_DEVICE
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_return_val_if_fail
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hidraw_device_get_feature(FuHidrawDevice *self,\n\t\t\t
      \    guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     FuIoctlFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:359,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidrawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: fu_hidraw_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hidraw_device_init(FuHidrawDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidrawDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: fu_hidraw_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hidraw_device_class_init(FuHidrawDeviceClass *klass)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:47,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:56,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:62,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:64,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:65,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string.c:73,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:74,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:75,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:84,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - str
    - value
    - min
    - max
    - base
    - error
    argTypes:
    - gchar*
    - guint64*
    - guint64
    - guint64
    - FuIntegerBase
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 115
    functionName: fu_strtoull
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 44
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - strlen
    - g_set_error_literal
    - g_ascii_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_strtoull(const gchar *str,\n\t    guint64 *value,\n\t
      \   guint64 min,\n\t    guint64 max,\n\t    FuIntegerBase base,\n\t    GError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:146,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:155,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:161,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:164,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string.c:172,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - str
    - value
    - min
    - max
    - base
    - error
    argTypes:
    - gchar*
    - gint64*
    - gint64
    - gint64
    - FuIntegerBase
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 212
    functionName: fu_strtoll
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - strlen
    - g_ascii_strtoll
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_strtoll(const gchar *str,\n\t   gint64 *value,\n\t   gint64
      min,\n\t   gint64 max,\n\t   FuIntegerBase base,\n\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:231,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:239,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:244,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - str
    - value
    - error
    argTypes:
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 257
    functionName: fu_strtobool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 3
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_strtobool(const gchar *str, gboolean *value, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:275,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:285,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:289,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 293
    functionName: fu_strstrip
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 6
    functionsReached:
    - g_strndup
    - g_return_val_if_fail
    - g_ascii_isspace
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strstrip(const gchar *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:313,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:315,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - str
    - bufsz
    - offset
    argTypes:
    - gchar*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: fu_strdup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_string_new
    - g_string_append_c
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_strdup(const gchar *str, gsize bufsz, gsize offset)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:340,1
    - Dst: g_utf8_get_char
      Src: /src/fwupd/libfwupdplugin/fu-string.c:343,1
    - Dst: g_unichar_iswide
      Src: /src/fwupd/libfwupdplugin/fu-string.c:344,1
    - Dst: g_unichar_iszerowidth
      Src: /src/fwupd/libfwupdplugin/fu-string.c:346,1
    - Dst: g_utf8_next_char
      Src: /src/fwupd/libfwupdplugin/fu-string.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: fu_strwidth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 8
    functionsReached:
    - g_unichar_iswide
    - g_utf8_get_char
    - g_return_val_if_fail
    - g_unichar_iszerowidth
    - g_utf8_next_char
    linkageType: ''
    returnType: gsize
    signature: gsize fu_strwidth(const gchar *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:372,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:374,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:375,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: fu_strsplit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 3
    functionsReached:
    - g_strndup
    - g_return_val_if_fail
    - g_strsplit
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_strsplit(const gchar *str, gsize sz, const gchar *delimiter, gint max_tokens)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:397,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:398,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:398,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: fu_strsplit_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - fu_strsplit
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_strsplit_bytes(GBytes *blob, const gchar *delimiter, gint max_tokens)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:420,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:420,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-string.c:428,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:439,1
    - Dst: g_utf8_validate_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:442,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-string.c:443,1
    - Dst: FuStrsplitHelper*::callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:445,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/libfwupdplugin/fu-string.c:454,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-string.c:454,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - buf
    - helper
    - error
    argTypes:
    - GByteArray*
    - FuStrsplitHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 456
    functionName: fu_strsplit_buffer_drain
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_string_new
    - strncmp
    - FuStrsplitHelper*::callback
    - g_utf8_validate_len
    - g_byte_array_remove_range
    - MIN
    - g_autoptr
    - g_string_append_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_strsplit_buffer_drain(GByteArray *buf, FuStrsplitHelper
      *helper, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:486,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:486,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:487,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:495,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-string.c:495,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:497,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:498,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:500,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:502,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:504,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-string.c:508,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-string.c:510,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-string.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:518,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string.c:518,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-string.c:521,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:521,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-string.c:521,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-string.c:522,1
    - Dst: fu_strsplit_buffer_drain
      Src: /src/fwupd/libfwupdplugin/fu-string.c:523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 6
    argNames:
    - stream
    - offset
    - delimiter
    - callback
    - user_data
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gchar*
    - FuStrsplitFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 529
    functionName: fu_strsplit_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 6
    functionsReached:
    - G_IS_INPUT_STREAM
    - g_object_ref
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_chunk_array_length
    - strlen
    - g_prefix_error
    - g_byte_array_append
    - fu_strsplit_buffer_drain
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_strsplit_stream(GInputStream *stream,\n\t\t   gsize offset,\n\t\t
      \  const gchar *delimiter,\n\t\t   FuStrsplitFunc callback,\n\t\t   gpointer
      user_data,\n\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:565,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:566,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:569,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:574,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:574,1
    - Dst: callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:581,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:581,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-string.c:584,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:587,1
    - Dst: callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - str
    - sz
    - delimiter
    - callback
    - user_data
    - error
    argTypes:
    - gchar*
    - gssize
    - gchar*
    - FuStrsplitFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 595
    functionName: fu_strsplit_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_string_new
    - strlen
    - strncmp
    - g_autoptr
    - g_return_val_if_fail
    - g_string_append_len
    - callback
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_strsplit_full(const gchar *str,\n\t\t gssize sz,\n\t\t
      const gchar *delimiter,\n\t\t FuStrsplitFunc callback,\n\t\t gpointer user_data,\n\t\t
      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:612,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:612,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/libfwupdplugin/fu-string.c:620,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:620,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:621,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:624,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:625,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-string.c:632,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - str
    - maxsz
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 633
    functionName: fu_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 17
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_string_append_c
    - g_autoptr
    - g_ascii_isgraph
    - g_ascii_isspace
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strsafe(const gchar *str, gsize maxsz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:649,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-string.c:650,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:650,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-string.c:651,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - maxsz
    argTypes:
    - GBytes*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: fu_strsafe_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_bytes_get_size
    - MIN
    - g_return_val_if_fail
    - fu_strsafe
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strsafe_bytes(GBytes *blob, gsize maxsz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:675,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:677,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string.c:679,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-string.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - separator
    - array
    argTypes:
    - gchar*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: fu_strjoin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 12
    functionsReached:
    - g_new0
    - g_ptr_array_index
    - g_return_val_if_fail
    - g_strjoinv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strjoin(const gchar *separator, GPtrArray *array)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:696,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:696,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:697,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:698,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:704,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:706,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-string.c:728,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:728,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 729
    functionName: fu_strpassmask
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_string_new
    - g_str_has_prefix
    - strlen
    - g_steal_pointer
    - g_string_free
    - g_strstr_len
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strpassmask(const gchar *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:748,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:749,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:752,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:758,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:760,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:761,1
    - Dst: g_utf16_to_utf8
      Src: /src/fwupd/libfwupdplugin/fu-string.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - endian
    - error
    argTypes:
    - GByteArray*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 764
    functionName: fu_utf16_to_utf8_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_new0
    - g_set_error_literal
    - fu_memwrite_uint16
    - g_utf16_to_utf8
    - g_return_val_if_fail
    - fu_memread_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_utf16_to_utf8_byte_array(GByteArray *array, FuEndianType endian, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:786,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:786,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:790,1
    - Dst: g_utf8_to_utf16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:792,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:798,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:799,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - endian
    - flags
    - error
    argTypes:
    - gchar*
    - FuEndianType
    - FuUtfConvertFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 802
    functionName: fu_utf8_to_utf16_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_steal_pointer
    - fu_byte_array_append_uint16
    - g_utf8_to_utf16
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_memread_uint16
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_utf8_to_utf16_byte_array(const gchar *str,\n\t\t\t
      \   FuEndianType endian,\n\t\t\t    FuUtfConvertFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:821,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:822,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:824,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:825,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string.c:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bytes
    - endian
    - error
    argTypes:
    - GBytes*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 827
    functionName: fu_utf16_to_utf8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    - fu_utf16_to_utf8_byte_array
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_utf16_to_utf8_bytes(GBytes *bytes, FuEndianType endian, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:847,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:850,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string.c:852,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - str
    - endian
    - flags
    - error
    argTypes:
    - gchar*
    - FuEndianType
    - FuUtfConvertFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 856
    functionName: fu_utf8_to_utf16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - g_return_val_if_fail
    - g_bytes_new
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_utf8_to_utf16_bytes(const gchar *str,\n\t\t       FuEndianType
      endian,\n\t\t       FuUtfConvertFlags flags,\n\t\t       GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_SERIO_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:25,1
    - Dst: fu_udev_device_get_devpath
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:26,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:26,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:31,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:35,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:35,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:40,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:41,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:42,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:44,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:45,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:57,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:57,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:62,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:65,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:65,1
    - Dst: fu_udev_device_get_device_file_from_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:67,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:67,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:71,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:76,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: fu_serio_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-serio-device.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - FU_DEVICE_CLASS
    - fu_device_set_summary
    - FU_SERIO_DEVICE
    - fu_udev_device_get_device_file
    - fu_udev_device_get_device_file_from_subsystem
    - g_strdup_printf
    - FU_UDEV_DEVICE
    - g_ascii_strup
    - fu_device_add_instance_strsafe
    - fu_udev_device_get_devpath
    - fu_device_set_physical_id
    - fu_device_build_instance_id_full
    - fu_udev_device_set_device_file
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_serio_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSerioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: fu_serio_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-serio-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_serio_device_init(FuSerioDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-serio-device.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSerioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: fu_serio_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-serio-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_serio_device_class_init(FuSerioDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1025
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:46,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:46,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:49,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: fu_fdt_firmware_string_new_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_append_c
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_fdt_firmware_string_new_safe(const guint8 *buf, gsize bufsz, gsize offset,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:62,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:63,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: fu_fdt_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - FU_FDT_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fdt_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:81,1
    - Dst: FU_IS_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_fdt_firmware_get_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_FDT_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_fdt_firmware_get_cpuid(FuFdtFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:97,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:98,1
    - Dst: FU_IS_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cpuid
    argTypes:
    - FuFdtFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: fu_fdt_firmware_set_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_FIRMWARE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_fdt_firmware_set_cpuid(FuFdtFirmware *self, guint32 cpuid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:118,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:118,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:120,1
    - Dst: FU_IS_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:123,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:128,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:133,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:136,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuFdtFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: fu_fdt_firmware_get_image_by_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_ref
    - g_auto
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - FU_FDT_IMAGE
    - g_strsplit
    - FU_FIRMWARE
    - g_set_object
    - g_autoptr
    - FU_IS_FDT_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuFdtImage
    signature: 'FuFdtImage *

      fu_fdt_firmware_get_image_by_path(FuFdtFirmware *self, const gchar *path, GError
      **error)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:151,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:151,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:151,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:154,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:161,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:172,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:190,1
    - Dst: fu_fdt_firmware_string_new_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:198,1
    - Dst: fu_fdt_image_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:202,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:204,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:205,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:206,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:208,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:215,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:221,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:233,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:236,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:237,1
    - Dst: fu_struct_fdt_prop_parse
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:245,1
    - Dst: fu_struct_fdt_prop_get_len
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:248,1
    - Dst: fu_struct_fdt_prop_get_nameoff
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:249,1
    - Dst: fu_fdt_firmware_string_new_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:258,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:261,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:264,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:270,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:281,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 4
    argNames:
    - self
    - fw
    - strtab
    - error
    argTypes:
    - FuFdtFirmware*
    - GBytes*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 285
    functionName: fu_fdt_firmware_parse_dt_struct
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_FIRMWARE
    - fu_struct_fdt_prop_get_len
    - fu_fdt_image_set_attr
    - g_object_ref
    - g_set_error
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_fdt_image_new
    - fu_dump_bytes
    - fu_struct_fdt_prop_parse
    - g_autoptr
    - fu_struct_fdt_prop_get_nameoff
    - fu_bytes_new_offset
    - fu_fdt_firmware_string_new_safe
    - g_bytes_get_data
    - g_warning
    - fu_firmware_set_id
    - FU_FDT_IMAGE
    - fu_memread_uint32_safe
    - g_set_object
    - g_set_error_literal
    - fu_common_align_up
    - fu_firmware_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_firmware_parse_dt_struct(FuFdtFirmware *self, GBytes
      *fw, GByteArray *strtab, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:301,1
    - Dst: fu_struct_fdt_reserve_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:302,1
    - Dst: fu_struct_fdt_reserve_entry_get_address
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:305,1
    - Dst: fu_struct_fdt_reserve_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:306,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuFdtFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: fu_fdt_firmware_parse_mem_rsvmap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_fdt_reserve_entry_get_address
    - fu_struct_fdt_reserve_entry_parse_stream
    - fu_struct_fdt_reserve_entry_get_size
    - g_autoptr
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fdt_firmware_parse_mem_rsvmap(FuFdtFirmware *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_fdt_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: fu_fdt_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fdt_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:328,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:333,1
    - Dst: fu_struct_fdt_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:336,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:339,1
    - Dst: fu_struct_fdt_get_totalsize
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:343,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:351,1
    - Dst: fu_struct_fdt_get_boot_cpuid_phys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:354,1
    - Dst: fu_struct_fdt_get_off_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:355,1
    - Dst: fu_fdt_firmware_parse_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:357,1
    - Dst: fu_struct_fdt_get_last_comp_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:360,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:361,1
    - Dst: fu_struct_fdt_get_last_comp_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:365,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:369,1
    - Dst: fu_struct_fdt_get_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:369,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:372,1
    - Dst: fu_struct_fdt_get_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:374,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:376,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:378,1
    - Dst: fu_struct_fdt_get_off_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:379,1
    - Dst: fu_struct_fdt_get_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:380,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:386,1
    - Dst: fu_struct_fdt_get_off_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:387,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:388,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:393,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:394,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:401,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:401,1
    - Dst: fu_fdt_firmware_parse_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:402,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 408
    functionName: fu_fdt_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fdt_get_off_mem_rsvmap
    - fu_input_stream_read_byte_array
    - g_set_error
    - fu_struct_fdt_get_off_dt_strings
    - fu_struct_fdt_parse_stream
    - g_byte_array_free_to_bytes
    - g_steal_pointer
    - fu_fdt_firmware_parse_mem_rsvmap
    - fu_firmware_set_size
    - fu_struct_fdt_get_totalsize
    - fu_struct_fdt_get_off_dt_struct
    - fu_struct_fdt_get_size_dt_strings
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_fdt_get_size_dt_struct
    - fu_struct_fdt_get_boot_cpuid_phys
    - fu_struct_fdt_get_last_comp_version
    - fu_fdt_firmware_parse_dt_struct
    - fu_struct_fdt_get_version
    - GET_PRIVATE
    - FU_FDT_FIRMWARE
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fdt_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup_extended
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:423,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:424,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:426,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:428,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:428,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:429,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:430,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:430,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - helper
    - key
    argTypes:
    - FuFdtFirmwareBuildHelper*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 432
    functionName: fu_fdt_firmware_append_to_strtab
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - g_debug
    - g_hash_table_lookup_extended
    - strlen
    - fu_byte_array_append_uint8
    - GPOINTER_TO_UINT
    - g_strdup
    - g_byte_array_append
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_fdt_firmware_append_to_strtab(FuFdtFirmwareBuildHelper *helper,
      const gchar *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:441,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:442,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:442,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:443,1
    - Dst: fu_fdt_image_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:443,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:447,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:455,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:457,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:457,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:459,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:461,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:467,1
    - Dst: fu_struct_fdt_prop_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:467,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:469,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:472,1
    - Dst: fu_struct_fdt_prop_set_len
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:473,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:473,1
    - Dst: fu_struct_fdt_prop_set_nameoff
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:474,1
    - Dst: fu_fdt_firmware_append_to_strtab
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:475,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:476,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:477,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:478,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:483,1
    - Dst: fu_fdt_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:484,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - self
    - img
    - helper
    - depth
    - error
    argTypes:
    - FuFdtFirmware*
    - FuFdtImage*
    - FuFdtFirmwareBuildHelper*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 491
    functionName: fu_fdt_firmware_write_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1
    functionsReached:
    - strlen
    - fu_struct_fdt_prop_set_nameoff
    - fu_fdt_firmware_write_image
    - FU_FIRMWARE
    - fu_firmware_get_images
    - fu_firmware_get_id
    - fu_byte_array_append_uint32
    - fu_struct_fdt_prop_set_len
    - fu_byte_array_append_bytes
    - fu_fdt_image_get_attrs
    - g_ptr_array_index
    - fu_byte_array_align_up
    - fu_byte_array_append_uint8
    - g_autoptr
    - fu_fdt_image_get_attr
    - fu_fdt_firmware_append_to_strtab
    - g_bytes_get_size
    - g_set_error_literal
    - fu_struct_fdt_prop_new
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fdt_firmware_write_image(FuFdtFirmware *self,\n\t\t\t
      \   FuFdtImage *img,\n\t\t\t    FuFdtFirmwareBuildHelper *helper,\n\t\t\t    guint
      depth,\n\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:496,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:501,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:501,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:502,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:503,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:504,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:505,1
    - Dst: fu_struct_fdt_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:506,1
    - Dst: fu_struct_fdt_reserve_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:506,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:514,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:518,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:522,1
    - Dst: fu_fdt_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:525,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:526,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:526,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:531,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:535,1
    - Dst: fu_struct_fdt_set_totalsize
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:538,1
    - Dst: fu_struct_fdt_set_off_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:539,1
    - Dst: fu_struct_fdt_set_off_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:540,1
    - Dst: fu_struct_fdt_set_off_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:541,1
    - Dst: fu_struct_fdt_set_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:542,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:542,1
    - Dst: fu_struct_fdt_set_boot_cpuid_phys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:543,1
    - Dst: fu_struct_fdt_set_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:544,1
    - Dst: fu_struct_fdt_set_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:545,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:546,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:549,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:550,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:551,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:552,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:553,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:554,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 558
    functionName: fu_fdt_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fdt_set_off_dt_strings
    - fu_fdt_firmware_write_image
    - fu_firmware_get_version_raw
    - fu_struct_fdt_set_version
    - fu_struct_fdt_set_size_dt_struct
    - fu_firmware_get_images
    - fu_struct_fdt_set_size_dt_strings
    - fu_struct_fdt_new
    - fu_byte_array_append_uint32
    - g_ptr_array_index
    - fu_byte_array_align_up
    - g_steal_pointer
    - g_hash_table_new_full
    - fu_struct_fdt_set_totalsize
    - g_autoptr
    - fu_struct_fdt_set_off_mem_rsvmap
    - g_byte_array_new
    - fu_struct_fdt_set_off_dt_struct
    - FU_FDT_IMAGE
    - g_set_error_literal
    - fu_struct_fdt_reserve_entry_new
    - GET_PRIVATE
    - FU_FDT_FIRMWARE
    - fu_common_align_up
    - g_byte_array_append
    - fu_struct_fdt_set_boot_cpuid_phys
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_fdt_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:563,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:564,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: fu_fdt_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - GET_PRIVATE
    - FU_FDT_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:579,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:580,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: fu_fdt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fdt_firmware_init(FuFdtFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFdtFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: fu_fdt_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fdt_firmware_class_init(FuFdtFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:604,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 605
    functionName: fu_fdt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_fdt_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: fu_crc_reflect8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc_reflect8(guint8 data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - bitwidth
    argTypes:
    - guint32
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: fu_crc_reflect
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc_reflect(guint32 data, guint bitwidth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:106,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: fu_crc8_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc8_step(FuCrcKind kind, const guint8 *buf, gsize bufsz,
      guint8 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:136,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: fu_crc8_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - fu_crc_reflect
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc8_done(FuCrcKind kind, guint8 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:157,1
    - Dst: fu_crc8_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:158,1
    - Dst: fu_crc8_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: fu_crc8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - fu_crc8_done
    - g_return_val_if_fail
    - fu_crc8_step
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc8(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:176,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:177,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:177,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: fu_crc8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_return_val_if_fail
    - g_bytes_get_size
    - fu_crc8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc8_bytes(FuCrcKind kind, GBytes *blob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:201,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: fu_crc16_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect8
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc16_step(FuCrcKind kind, const guint8 *buf, gsize bufsz,
      guint16 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:232,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: fu_crc16_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - fu_crc_reflect
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc16_done(FuCrcKind kind, guint16 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:252,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:253,1
    - Dst: fu_crc16_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:254,1
    - Dst: fu_crc16_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: fu_crc16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 2
    functionsReached:
    - fu_crc16_step
    - g_return_val_if_fail
    - fu_crc16_done
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc16(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:271,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:272,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:273,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:273,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: fu_crc16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_size
    - fu_crc16
    - g_bytes_get_data
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc16_bytes(FuCrcKind kind, GBytes *blob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:296,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:297,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 311
    functionName: fu_crc32_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect8
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_step(FuCrcKind kind, const guint8 *buf, gsize bufsz,
      guint32 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:328,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: fu_crc32_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - fu_crc_reflect
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_done(FuCrcKind kind, guint32 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:349,1
    - Dst: fu_crc32_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:350,1
    - Dst: fu_crc32_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: fu_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_crc32_done
    - fu_crc32_step
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:368,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:369,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:369,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: fu_crc32_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - fu_crc32
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_bytes(FuCrcKind kind, GBytes *blob)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:392,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:394,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:398,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - bufsz
    - crc_target
    argTypes:
    - guint8*
    - gsize
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 407
    functionName: fu_crc_find
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - fu_crc32
    - fu_crc16
    - G_N_ELEMENTS
    - fu_crc8
    linkageType: ''
    returnType: FuCrcKind
    signature: FuCrcKind fu_crc_find(const guint8 *buf, gsize bufsz, guint32 crc_target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cur
    - new
    argTypes:
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: fu_crc_misr16_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc_misr16_step(guint16 cur, guint16 new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:443,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:444,1
    - Dst: fu_crc_misr16_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:447,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - init
    - buf
    - bufsz
    argTypes:
    - guint16
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: fu_crc_misr16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_misr16_step
    - fu_memread_uint16
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc_misr16(guint16 init, const guint8 *buf, gsize bufsz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:20,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:36,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:37,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:44,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:46,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:47,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:58,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:60,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:66,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 75
    functionName: fu_hwids_dmi_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - g_file_get_contents
    - g_debug
    - g_build_filename
    - fu_context_set_chassis_kind
    - g_autoptr
    - g_file_test
    - fu_hwids_add_value
    - g_strcmp0
    - fu_path_from_kind
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_dmi_setup(FuContext *ctx, FuHwids *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 1031
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:64,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_intel_thunderbolt_nvm_get_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_intel_thunderbolt_nvm_get_vendor_id(FuIntelThunderboltNvm
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_intel_thunderbolt_nvm_get_device_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_intel_thunderbolt_nvm_get_device_id(FuIntelThunderboltNvm
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:99,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fu_intel_thunderbolt_nvm_is_host
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_is_host(FuIntelThunderboltNvm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:116,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:117,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: fu_intel_thunderbolt_nvm_is_native
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_is_native(FuIntelThunderboltNvm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:135,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: fu_intel_thunderbolt_nvm_has_pd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_has_pd(FuIntelThunderboltNvm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:152,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:153,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: fu_intel_thunderbolt_nvm_get_model_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_intel_thunderbolt_nvm_get_model_id(FuIntelThunderboltNvm
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:174,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: fu_intel_thunderbolt_nvm_get_flash_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_intel_thunderbolt_nvm_get_flash_size(FuIntelThunderboltNvm
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:183,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:184,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:185,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:186,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:187,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:188,1
    - Dst: fu_intel_thunderbolt_nvm_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:190,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:191,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:192,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:193,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:194,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:195,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:196,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:200,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:201,1
    - Dst: fu_intel_thunderbolt_nvm_section_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:204,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 211
    functionName: fu_intel_thunderbolt_nvm_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - g_strdup_printf
    - g_return_if_fail
    - GET_PRIVATE
    - FU_INTEL_THUNDERBOLT_NVM
    - fu_xmlb_builder_insert_kx
    - g_autoptr
    - fu_intel_thunderbolt_nvm_section_to_string
    - xb_builder_node_insert
    - fu_intel_thunderbolt_nvm_family_to_string
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_intel_thunderbolt_nvm_export(FuFirmware *firmware,\n\t\t\t\tFuFirmwareExportFlags
      flags,\n\t\t\t\tXbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: fu_intel_thunderbolt_nvm_valid_pd_pointer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_valid_pd_pointer(guint32 pointer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:234,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:235,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - value
    - error
    argTypes:
    - FuIntelThunderboltNvm*
    - GInputStream*
    - guint32
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 247
    functionName: fu_intel_thunderbolt_nvm_read_ucode_section_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_input_stream_read_u16
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_thunderbolt_nvm_read_ucode_section_len(FuIntelThunderboltNvm
      *self,\n\t\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\t\tguint32 offset,\n\t\t\t\t\t\tguint16
      *value,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:256,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:259,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:270,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:299,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:305,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:308,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:315,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:320,1
    - Dst: fu_intel_thunderbolt_nvm_read_ucode_section_len
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:329,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuIntelThunderboltNvm*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 343
    functionName: fu_intel_thunderbolt_nvm_read_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_input_stream_read_u32
    - g_prefix_error
    - fu_input_stream_read_u8
    - g_set_error_literal
    - GET_PRIVATE
    - fu_intel_thunderbolt_nvm_read_ucode_section_len
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_thunderbolt_nvm_read_sections(FuIntelThunderboltNvm
      *self,\n\t\t\t\t       GInputStream *stream,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: fu_intel_thunderbolt_nvm_missing_needed_drom
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_missing_needed_drom(FuIntelThunderboltNvm
      *self)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:362,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:393,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:393,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:400,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:405,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:411,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:417,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:422,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:428,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:434,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:448,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:455,1
    - Dst: fu_intel_thunderbolt_nvm_read_sections
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:464,1
    - Dst: fu_intel_thunderbolt_nvm_missing_needed_drom
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:466,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:467,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:476,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:483,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:486,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:493,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:503,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:510,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:513,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:513,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:525,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:531,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:548,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:555,1
    - Dst: fu_intel_thunderbolt_nvm_valid_pd_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:558,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:562,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:564,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:565,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 570
    functionName: fu_intel_thunderbolt_nvm_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_intel_thunderbolt_nvm_valid_pd_pointer
    - fu_input_stream_read_u32
    - fu_intel_thunderbolt_nvm_missing_needed_drom
    - g_prefix_error
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - FU_INTEL_THUNDERBOLT_NVM
    - g_set_error
    - fu_firmware_add_image_full
    - fu_firmware_parse_stream
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_firmware_new
    - fu_firmware_set_id
    - fu_intel_thunderbolt_nvm_read_sections
    - g_set_error_literal
    - GET_PRIVATE
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_thunderbolt_nvm_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:576,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:578,1
    - Dst: fu_intel_thunderbolt_nvm_digital_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:579,1
    - Dst: fu_intel_thunderbolt_nvm_drom_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:579,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:580,1
    - Dst: fu_intel_thunderbolt_nvm_arc_params_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:581,1
    - Dst: fu_intel_thunderbolt_nvm_dram_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:581,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_available_sections
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:584,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:587,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:588,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:588,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flags_host
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:589,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flash_size
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:590,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flags_is_native
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:591,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_drom
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:594,1
    - Dst: fu_intel_thunderbolt_nvm_drom_set_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:595,1
    - Dst: fu_intel_thunderbolt_nvm_drom_set_model_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:596,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:597,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_arc_params
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:600,1
    - Dst: fu_intel_thunderbolt_nvm_arc_params_set_pd_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:601,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:602,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_ucode
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:605,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:606,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 610
    functionName: fu_intel_thunderbolt_nvm_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_intel_thunderbolt_nvm_digital_set_device_id
    - fu_intel_thunderbolt_nvm_digital_set_arc_params
    - fu_firmware_get_version_raw
    - FU_INTEL_THUNDERBOLT_NVM
    - fu_intel_thunderbolt_nvm_digital_set_drom
    - fu_intel_thunderbolt_nvm_digital_set_flags_host
    - fu_intel_thunderbolt_nvm_digital_set_flash_size
    - fu_intel_thunderbolt_nvm_digital_new
    - fu_intel_thunderbolt_nvm_digital_set_version
    - fu_intel_thunderbolt_nvm_dram_new
    - g_steal_pointer
    - fu_intel_thunderbolt_nvm_drom_set_model_id
    - fu_intel_thunderbolt_nvm_drom_new
    - fu_intel_thunderbolt_nvm_digital_set_ucode
    - g_autoptr
    - fu_intel_thunderbolt_nvm_drom_set_vendor_id
    - fu_intel_thunderbolt_nvm_digital_set_flags_is_native
    - fu_intel_thunderbolt_nvm_arc_params_new
    - GET_PRIVATE
    - fu_intel_thunderbolt_nvm_digital_set_available_sections
    - g_byte_array_append
    - fu_intel_thunderbolt_nvm_arc_params_set_pd_pointer
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_intel_thunderbolt_nvm_write(FuFirmware *firmware, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:618,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:619,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:620,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:621,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:624,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:633,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:642,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:652,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:662,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:669,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - firmware
    - firmware_other
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 679
    functionName: fu_intel_thunderbolt_nvm_check_compatible
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - GET_PRIVATE
    - FU_INTEL_THUNDERBOLT_NVM
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_thunderbolt_nvm_check_compatible(FuFirmware *firmware,\n\t\t\t\t\t
      \ FuFirmware *firmware_other,\n\t\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:684,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:685,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:689,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:692,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:696,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:699,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:703,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:706,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:710,1
    - Dst: fu_intel_thunderbolt_nvm_family_from_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:712,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:714,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:722,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:725,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:729,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:731,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:734,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:736,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 742
    functionName: fu_intel_thunderbolt_nvm_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_intel_thunderbolt_nvm_family_from_string
    - g_set_error
    - fu_strtobool
    - GET_PRIVATE
    - FU_INTEL_THUNDERBOLT_NVM
    - xb_node_query_text
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_thunderbolt_nvm_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:747,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: fu_intel_thunderbolt_nvm_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_intel_thunderbolt_nvm_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:753,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:753,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:754,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:754,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:755,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 756
    functionName: fu_intel_thunderbolt_nvm_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_intel_thunderbolt_nvm_init(FuIntelThunderboltNvm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelThunderboltNvmClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: fu_intel_thunderbolt_nvm_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_thunderbolt_nvm_class_init(FuIntelThunderboltNvmClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:780,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: fu_intel_thunderbolt_nvm_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_intel_thunderbolt_nvm_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:51,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:53,1
    - Dst: FU_IS_EFI_SIGNATURE_LIST
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:53,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:57,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:58,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:60,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:64,1
    - Dst: fu_efi_x509_signature_build_dedupe_key
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:65,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:65,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:67,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:69,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:71,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:72,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:72,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:72,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:73,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:75,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:76,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:76,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:78,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:83,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:84,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:86,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:87,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:87,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignatureList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 92
    functionName: fu_efi_signature_list_get_newest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - fu_firmware_get_version_raw
    - FU_FIRMWARE
    - fu_firmware_get_images
    - FU_EFI_SIGNATURE
    - g_hash_table_get_values
    - g_return_val_if_fail
    - fu_firmware_get_checksum
    - g_object_ref
    - g_debug
    - FU_IS_EFI_SIGNATURE_LIST
    - g_ptr_array_index
    - fu_efi_signature_get_kind
    - g_steal_pointer
    - g_hash_table_new_full
    - fu_efi_x509_signature_build_dedupe_key
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - FU_EFI_X509_SIGNATURE
    - g_hash_table_lookup
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efi_signature_list_get_newest(FuEfiSignatureList *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:107,1
    - Dst: fu_struct_efi_signature_list_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:110,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:113,1
    - Dst: fu_struct_efi_signature_list_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:115,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:117,1
    - Dst: fu_struct_efi_signature_list_get_list_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:122,1
    - Dst: fu_struct_efi_signature_list_get_header_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:131,1
    - Dst: fu_struct_efi_signature_list_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:151,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:154,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:154,1
    - Dst: fu_efi_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:156,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:158,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:158,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:159,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:159,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:161,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:161,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:161,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuEfiSignatureList*
    - GInputStream*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 167
    functionName: fu_efi_signature_list_parse_list
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_EFI_SIGNATURE
    - fu_firmware_add_image_full
    - fu_firmware_set_size
    - fu_struct_efi_signature_list_get_type
    - fu_efi_x509_signature_new
    - fwupd_guid_to_string
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_efi_signature_new
    - g_autoptr
    - fu_struct_efi_signature_list_get_list_size
    - fu_struct_efi_signature_list_get_size
    - g_strcmp0
    - fu_struct_efi_signature_list_parse_stream
    - fu_struct_efi_signature_list_get_header_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_signature_list_parse_list(FuEfiSignatureList *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize *offset,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:178,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:185,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: fu_efi_signature_list_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fwupd_guid_to_string
    - g_set_error_literal
    - g_strcmp0
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_signature_list_validate(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       gsize offset,\n\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:208,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:213,1
    - Dst: fu_efi_signature_list_parse_list
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: fu_efi_signature_list_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_list_parse_list
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_signature_list_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:228,1
    - Dst: fu_struct_efi_signature_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:229,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:229,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:232,1
    - Dst: fu_struct_efi_signature_list_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:237,1
    - Dst: fu_struct_efi_signature_list_set_header_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:238,1
    - Dst: fu_struct_efi_signature_list_set_list_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:239,1
    - Dst: fu_struct_efi_signature_list_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:247,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:248,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:251,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:252,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:256,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:259,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 264
    functionName: fu_efi_signature_list_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_efi_signature_list_set_size
    - fu_struct_efi_signature_list_new
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_struct_efi_signature_list_set_type
    - g_steal_pointer
    - g_bytes_get_size
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - fu_struct_efi_signature_list_set_list_size
    - fu_struct_efi_signature_list_set_header_size
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_signature_list_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: fu_efi_signature_list_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_signature_list_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiSignatureListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: fu_efi_signature_list_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_list_class_init(FuEfiSignatureListClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:291,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:291,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:292,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:292,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignatureList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: fu_efi_signature_list_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_list_init(FuEfiSignatureList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: FU_BIT_SET
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_BIT_SET(val, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FU_BIT_CLEAR
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_BIT_CLEAR(val, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: FU_BIT_IS_SET
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_BIT_IS_SET(val, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: FU_BIT_IS_CLEAR
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_BIT_IS_CLEAR(val, pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:17,1
    - Dst: LLVMFuzzerInitialize
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:24,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:26,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:27,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:30,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c
    functionUses: 3
    functionsReached:
    - g_file_get_contents
    - LLVMFuzzerInitialize
    - g_printerr
    - LLVMFuzzerTestOneInput
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1046
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:153,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:154,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:157,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:160,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:163,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:166,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:169,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:172,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:175,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:178,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:181,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:184,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:184,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:187,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:190,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:193,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:196,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-device.c:199,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 202
    functionName: fu_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - g_value_set_uint
    - g_value_set_string
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_get_parent
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fu_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:207,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:210,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:210,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:213,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:213,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:216,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:216,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:219,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:219,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:222,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:222,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:225,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:225,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:228,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:228,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:231,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:231,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:234,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:234,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:237,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:237,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:240,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:240,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:243,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:243,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:246,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:246,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-device.c:249,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 252
    functionName: fu_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint64
    - fu_device_set_equivalent_id
    - fu_device_set_vid
    - fu_device_set_update_image
    - fu_device_set_parent
    - fu_device_set_required_free
    - fu_device_set_backend_id
    - g_value_get_object
    - fu_device_set_physical_id
    - fu_device_set_logical_id
    - fu_device_set_backend
    - fu_device_set_update_message
    - g_value_get_string
    - fu_device_set_pid
    - g_value_get_uint
    - FU_DEVICE
    - fu_device_set_context
    linkageType: ''
    returnType: void
    signature: void fu_device_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:258,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:259,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:259,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:260,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:261,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupdplugin/fu-device.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: fu_device_register_private_flag_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_ref_string_new_intern
    - g_return_if_fail
    - GET_PRIVATE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_register_private_flag_safe(FuDevice *self, const gchar
      *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:267,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:268,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:269,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:270,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:271,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:272,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:273,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:274,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:275,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:276,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:277,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:278,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:279,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:280,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:281,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:282,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:283,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:284,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:285,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:286,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:287,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:288,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:289,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:290,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:291,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:292,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:293,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:294,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:295,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:296,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:297,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:298,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:299,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:300,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:301,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:302,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:303,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:304,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:305,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:306,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:307,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:308,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:309,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:310,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:311,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:312,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:313,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:314,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:315,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:316,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:317,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:318,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:319,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:320,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 322
    functionName: fu_device_register_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag_safe
    linkageType: ''
    returnType: void
    signature: void fu_device_register_flags(FuDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:327,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:328,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:334,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:335,1
    - Dst: FuDeviceClass*::register_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: fu_device_ensure_private_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new
    - FuDeviceClass*::register_flags
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_private_flags(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:346,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupdplugin/fu-device.c:346,1
    - Dst: fu_device_ensure_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:349,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: fu_device_find_private_flag_registered
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ref_string_new_intern
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - fu_device_ensure_private_flags
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fu_device_find_private_flag_registered(FuDevice *self, const gchar *flag)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:371,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:374,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:378,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:379,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:382,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:384,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:391,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:392,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:394,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:395,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/libfwupdplugin/fu-device.c:398,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:402,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:405,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:406,1
    - Dst: g_ptr_array_find
      Src: /src/fwupd/libfwupdplugin/fu-device.c:413,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:417,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:418,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:418,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 419
    functionName: fu_device_add_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 34
    functionsReached:
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_find_private_flag_registered
    - g_ptr_array_find
    - fu_device_get_children
    - fu_device_add_private_flag
    - g_object_notify
    - fu_device_inhibit
    - g_return_if_fail
    - fu_device_set_order
    - g_ptr_array_index
    - GET_PRIVATE
    - g_critical
    - G_OBJECT
    - g_strcmp0
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:433,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:436,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:436,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:437,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:439,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:440,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:442,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:445,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:446,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:451,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:452,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 453
    functionName: fu_device_remove_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_find_private_flag_registered
    - g_object_notify
    - g_ptr_array_remove
    - fu_device_uninhibit
    - g_return_if_fail
    - GET_PRIVATE
    - g_critical
    - G_OBJECT
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:470,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:471,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:473,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:476,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:477,1
    - Dst: g_ptr_array_find
      Src: /src/fwupd/libfwupdplugin/fu-device.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 483
    functionName: fu_device_has_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 46
    functionsReached:
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_find_private_flag_registered
    - g_ptr_array_find
    - g_critical
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:501,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:502,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:502,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - request_kind
    argTypes:
    - FuDevice*
    - FwupdRequestKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: fu_device_get_request_cnt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_request_cnt(FuDevice *self, FwupdRequestKind request_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:520,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: fu_device_get_possible_plugins
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_ptr_array_ref
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_possible_plugins(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:539,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:541,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:541,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:542,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:545,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:547,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 548
    functionName: fu_device_add_possible_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_ptr_array_find_with_equal_func
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_possible_plugin(FuDevice *self, const gchar *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:568,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:571,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:571,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:572,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:576,1
    - Dst: g_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:578,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - domain
    - code
    - func
    argTypes:
    - FuDevice*
    - GQuark
    - gint
    - FuDeviceRetryFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 583
    functionName: fu_device_retry_add_recovery
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_new
    - g_return_if_fail
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_add_recovery(FuDevice *self, GQuark domain, gint
      code, FuDeviceRetryFunc func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:597,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:598,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: fu_device_retry_set_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_set_delay(FuDevice *self, guint delay)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:630,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:632,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:633,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:634,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:638,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:642,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:645,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:650,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:659,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:660,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:668,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:674,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device.c:675,1
    - Dst: FuDeviceRetryRecovery*::recovery_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:677,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:680,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:682,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 6
    argNames:
    - self
    - func
    - count
    - delay
    - user_data
    - error
    argTypes:
    - FuDevice*
    - FuDeviceRetryFunc
    - guint
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 692
    functionName: fu_device_retry_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - func
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - FuDeviceRetryRecovery*::recovery_func
    - g_return_val_if_fail
    - g_info
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_retry_full(FuDevice *self,\n\t\t     FuDeviceRetryFunc
      func,\n\t\t     guint count,\n\t\t     guint delay,\n\t\t     gpointer user_data,\n\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:720,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - func
    - count
    - user_data
    - error
    argTypes:
    - FuDevice*
    - FuDeviceRetryFunc
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 722
    functionName: fu_device_retry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - fu_device_retry_full
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_retry(FuDevice *self,\n\t\tFuDeviceRetryFunc func,\n\t\tguint
      count,\n\t\tgpointer user_data,\n\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:740,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:742,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:742,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:743,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:745,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:747,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - delay_ms
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 751
    functionName: fu_device_sleep
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_flag
    - GET_PRIVATE
    - g_usleep
    linkageType: ''
    returnType: void
    signature: void fu_device_sleep(FuDevice *self, guint delay_ms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:767,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:769,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:769,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:770,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:771,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:771,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:773,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:775,1
    - Dst: fu_progress_sleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - delay_ms
    - progress
    argTypes:
    - FuDevice*
    - guint
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 779
    functionName: fu_device_sleep_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - fu_progress_sleep
    - g_return_if_fail
    - fu_device_has_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_sleep_full(FuDevice *self, guint delay_ms, FuProgress
      *progress)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:805,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:805,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:806,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:807,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:809,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:810,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:811,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:811,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:812,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:813,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:816,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:817,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:817,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:819,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:823,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:825,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:827,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:827,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:830,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:833,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:836,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:841,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:844,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:845,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:845,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:850,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:857,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-device.c:858,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:858,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:859,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:861,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:863,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:866,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:867,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:872,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-device.c:875,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device.c:880,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 5
    argNames:
    - self
    - filename
    - stream
    - progress
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 795
    functionDepth: 5
    functionLinenumber: 795
    functionLinenumberEnd: 884
    functionName: fu_device_set_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - FU_IS_PROGRESS
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_progress_set_steps
    - FU_IS_DEVICE
    - G_IS_INPUT_STREAM
    - fu_byte_array_append_bytes
    - g_file_new_for_path
    - fu_device_get_context
    - fu_device_load_event
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_device_event_get_bytes
    - G_OUTPUT_STREAM
    - g_file_replace
    - g_autoptr
    - fu_chunk_array_index
    - fu_output_stream_write_bytes
    - g_byte_array_new
    - fu_chunk_get_bytes
    - fu_device_event_set_data
    - fu_chunk_array_new_from_stream
    - fu_device_save_event
    - g_strdup_printf
    - fu_bytes_compare
    - FU_DEVICE
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_set_contents(FuDevice *self,\n\t\t       const
      gchar *filename,\n\t\t       GInputStream *stream,\n\t\t       FuProgress *progress,\n\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:907,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:909,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:910,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:911,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:912,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:912,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:913,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:915,1
    - Dst: fu_device_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-device.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - filename
    - blob
    - progress
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 900
    functionDepth: 6
    functionLinenumber: 900
    functionLinenumberEnd: 917
    functionName: fu_device_set_contents_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - fu_device_set_contents
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_set_contents_bytes(FuDevice *self,\n\t\t\t     const
      gchar *filename,\n\t\t\t     GBytes *blob,\n\t\t\t     FuProgress *progress,\n\t\t\t
      \    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:942,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:943,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:945,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:946,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:947,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:947,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:948,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:951,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:952,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:952,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:954,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:958,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:958,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:959,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:959,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:962,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:967,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:967,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:970,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:973,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:979,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:982,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - self
    - filename
    - count
    - progress
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 983
    functionName: fu_device_get_contents_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_event_get_bytes
    - g_steal_pointer
    - FU_IS_PROGRESS
    - fu_device_save_event
    - fu_input_stream_from_path
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_event_set_bytes
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_device_get_contents_bytes(FuDevice *self,\n\t\t\t     const
      gchar *filename,\n\t\t\t     gsize count,\n\t\t\t     FuProgress *progress,\n\t\t\t
      \    GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1009,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1012,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1012,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1014,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1014,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1015,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1018,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1018,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1019,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1019,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1019,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1021,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1025,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1025,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1026,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1026,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1029,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1029,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1034,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1034,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1037,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1040,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1043,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1045,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1054,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1057,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - self
    - filename
    - count
    - progress
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1058
    functionName: fu_device_get_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_PROGRESS
    - fu_device_event_get_str
    - fu_device_has_flag
    - g_return_val_if_fail
    - fu_context_has_flag
    - FU_IS_DEVICE
    - fu_device_event_set_str
    - fu_device_get_context
    - fu_device_load_event
    - g_steal_pointer
    - g_autoptr
    - fu_strsafe_bytes
    - fu_device_save_event
    - fu_input_stream_from_path
    - g_strdup_printf
    - FU_DEVICE
    - g_set_error_literal
    - g_strdup
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_device_get_contents(FuDevice *self,\n\t\t       const
      gchar *filename,\n\t\t       gsize count,\n\t\t       FuProgress *progress,\n\t\t
      \      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1084,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1088,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1090,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1091,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1094,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1094,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1095,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1095,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1095,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1097,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1107,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1108,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1111,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1113,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1118,1
    - Dst: fu_context_get_smbios_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1121,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1124,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1125,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1125,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - self
    - type
    - length
    - offset
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1135
    functionName: fu_device_get_smbios_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_event_check_error
    - fu_device_event_set_str
    - g_steal_pointer
    - fu_device_event_get_str
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - GET_PRIVATE
    - fu_context_get_smbios_string
    - g_autoptr
    - g_propagate_error
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_event_set_error
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_device_get_smbios_string(FuDevice *self,\n\t\t\t    guint8
      type,\n\t\t\t    guint8 length,\n\t\t\t    guint8 offset,\n\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1157,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1157,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1159,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1160,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1163,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1164,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1164,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1166,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1170,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1171,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1174,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1183,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1186,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - filename
    - exists
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1150
    functionDepth: 2
    functionLinenumber: 1150
    functionLinenumberEnd: 1192
    functionName: fu_device_query_file_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_event_get_i64
    - fu_device_event_set_i64
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_file_test
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_query_file_exists(FuDevice *self, const gchar *filename,
      gboolean *exists, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1197,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1198,1
    - Dst: g_atomic_int_inc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1201
    functionName: fu_device_poll_locker_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_atomic_int_inc
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_locker_open_cb(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1206,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1207,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1210
    functionName: fu_device_poll_locker_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - GET_PRIVATE
    - g_atomic_int_dec_and_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_locker_close_cb(GObject *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1229,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1230,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: fu_device_poll_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - fu_device_locker_new_full
    linkageType: ''
    returnType: FuDeviceLocker
    signature: 'FuDeviceLocker *

      fu_device_poll_locker_new(FuDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1252,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1254,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1255,1
    - Dst: FuDeviceClass*::poll
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1263
    functionName: fu_device_poll
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - FuDeviceClass*::poll
    - FU_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll(FuDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1268,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1269,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1270,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1273,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1275,1
    - Dst: fu_device_poll
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1279,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1265
    functionDepth: 3
    functionLinenumber: 1265
    functionLinenumberEnd: 1285
    functionName: fu_device_poll_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_device_poll
    - fu_device_has_private_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_cb(gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1301,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1303,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1303,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1306,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1312,1
    - Dst: g_timeout_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - interval
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1316
    functionName: fu_device_set_poll_interval
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_timeout_add
    - g_timeout_add_seconds
    - GET_PRIVATE
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void fu_device_set_poll_interval(FuDevice *self, guint interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1332,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1333,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1335
    functionName: fu_device_get_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gint
    signature: gint fu_device_get_order(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1350,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1351,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - FuDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    functionName: fu_device_set_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_order(FuDevice *self, gint order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1368,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1369,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1371
    functionName: fu_device_get_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_priority(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1385,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1386,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1388
    functionName: fu_device_set_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_priority(FuDevice *self, guint priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1404,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1406
    functionName: fu_device_get_equivalent_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_equivalent_id(FuDevice *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1421,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1421,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1424,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1428,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1429,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1432,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1432,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1433,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1437,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1438,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1439,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - equivalent_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1440
    functionName: fu_device_set_equivalent_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - fwupd_device_id_is_valid
    - g_critical
    - fu_device_get_id
    - g_strdup
    - g_strcmp0
    - G_OBJECT
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_equivalent_id(FuDevice *self, const gchar *equivalent_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1462,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1463,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1463,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1464
    functionName: fu_device_get_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 11
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE
    - fwupd_device_get_parent
    - FWUPD_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_parent(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1483,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1483,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1485,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1479
    functionDepth: 2
    functionLinenumber: 1479
    functionLinenumberEnd: 1490
    functionName: fu_device_get_root
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_object_ref
    - g_return_val_if_fail
    - fu_device_get_parent
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_root(FuDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1498,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1498,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1501,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1503,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - composite_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1506
    functionName: fu_device_set_composite_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_get_children
    - fwupd_device_set_composite_id
    - fu_device_set_composite_id
    - g_ptr_array_index
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_composite_id(FuDevice *self, const gchar *composite_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1524,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1524,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1528,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1529,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1530,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1531,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1532,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1537,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1537,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1541,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1541,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1542,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1542,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1545,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1545,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1545,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1546,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1521
    functionDepth: 3
    functionLinenumber: 1521
    functionLinenumberEnd: 1547
    functionName: fu_device_set_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_composite_id
    - g_object_notify
    - FWUPD_DEVICE
    - fu_device_set_composite_id
    - fu_device_get_context
    - g_return_if_fail
    - fu_device_set_context
    - G_OBJECT
    - fu_device_get_id
    - fwupd_device_set_parent
    - fu_device_get_name
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_set_parent(FuDevice *self, FuDevice *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1555,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1556,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1557,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1557,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1561
    functionName: fu_device_incorporate_from_proxy_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_flag_to_string
    - g_debug
    - fu_device_has_flag
    - fu_device_add_flag
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_from_proxy_flags(FuDevice *self, FuDevice
      *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1566,1
    - Dst: fu_device_incorporate_from_proxy_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - proxy
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1568
    functionName: fu_device_proxy_flags_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate_from_proxy_flags
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_proxy_flags_notify_cb(FuDevice *proxy, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1587,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1589,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1589,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1597,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1603,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1605,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1605,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1607,1
    - Dst: fu_device_incorporate_from_proxy_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1609,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1613,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1614,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1615,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1618,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1618,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1621,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1621,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1624,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1624,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1584
    functionDepth: 3
    functionLinenumber: 1584
    functionLinenumberEnd: 1625
    functionName: fu_device_set_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_incorporate
    - fu_device_set_target
    - g_object_notify
    - fu_device_incorporate_from_proxy_flags
    - g_object_remove_weak_pointer
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_set_object
    - GET_PRIVATE
    - G_OBJECT
    - g_object_add_weak_pointer
    - FWUPD_DEVICE
    - g_signal_handler_disconnect
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: void
    signature: void fu_device_set_proxy(FuDevice *self, FuDevice *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1645,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1646,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1648
    functionName: fu_device_get_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_proxy(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1664,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1665,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1665,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1661
    functionDepth: 3
    functionLinenumber: 1661
    functionLinenumberEnd: 1670
    functionName: fu_device_get_proxy_with_fallback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    - fu_device_has_private_flag
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_proxy_with_fallback(FuDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1686,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1686,1
    - Dst: fwupd_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1687,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1688
    functionName: fu_device_get_children
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - FWUPD_DEVICE
    - g_return_val_if_fail
    - fwupd_device_get_children
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_children(FuDevice *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1703,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1705,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1707,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1707,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1708,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1708,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1711,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1712,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1715,1
    - Dst: fwupd_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1718,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1718,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1718,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1722,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1723,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1723,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1726,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1734,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1736,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1737,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1739,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1747,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1749,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1750,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1752,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1761,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1762,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1766,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1775,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1776,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1779,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1782,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1700
    functionDepth: 4
    functionLinenumber: 1700
    functionLinenumberEnd: 1783
    functionName: fu_device_add_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 18
    functionsReached:
    - fu_device_has_flag
    - g_hash_table_get_values
    - FU_IS_DEVICE
    - g_debug
    - fu_device_set_parent
    - g_return_if_fail
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_device_get_remove_delay
    - fu_device_convert_instance_ids
    - fwupd_device_add_child
    - fu_device_incorporate
    - g_signal_emit
    - fu_device_get_children
    - fu_device_ensure_id
    - fu_device_get_acquiesce_delay
    - g_autoptr
    - FWUPD_DEVICE
    - g_warning
    - fu_device_inhibit_full
    - fu_device_set_acquiesce_delay
    - fu_device_has_private_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_child(FuDevice *self, FuDevice *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1797,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1797,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1798,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1798,1
    - Dst: fwupd_device_remove_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1801,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1801,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1801,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1805
    functionName: fu_device_remove_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_remove_child
    - g_signal_emit
    - g_return_if_fail
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_child(FuDevice *self, FuDevice *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1820,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1820,1
    - Dst: fwupd_device_remove_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1823,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1823,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1826,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1828,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1815
    functionDepth: 3
    functionLinenumber: 1815
    functionLinenumberEnd: 1831
    functionName: fu_device_remove_children
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_signal_emit
    - fu_device_get_children
    - fwupd_device_remove_children
    - g_return_if_fail
    - g_ptr_array_index
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_children(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1836,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1840
    functionName: fu_device_ensure_parent_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_parent_guids(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1856,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1857,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1857,1
    - Dst: fu_device_ensure_parent_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1860
    functionName: fu_device_get_parent_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_ensure_parent_guids
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_parent_guids(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1876,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1878,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1878,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1879,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1884,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1889
    functionName: fu_device_has_parent_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_parent_guid(FuDevice *self, const gchar *guid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1910,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1912,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1912,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1913,1
    - Dst: fu_device_ensure_parent_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1916,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1919,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1920,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1921,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1923,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1924,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1924,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1929,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1931,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1932
    functionName: fu_device_add_parent_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_debug
    - g_steal_pointer
    - fu_device_ensure_parent_guids
    - fu_device_has_parent_guid
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fwupd_guid_hash_string
    - fwupd_guid_is_valid
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_parent_guid(FuDevice *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1949,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1950,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1952
    functionName: fu_device_get_parent_physical_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_parent_physical_ids(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1968,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1970,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1971,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1976,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1981
    functionName: fu_device_has_parent_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_parent_physical_id(FuDevice *self, const gchar
      *physical_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1999,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2001,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2001,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2002,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2006,1
    - Dst: fu_device_has_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2009,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2011,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2012
    functionName: fu_device_add_parent_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_has_parent_physical_id
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_parent_physical_id(FuDevice *self, const gchar *physical_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2029,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2030,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2032
    functionName: fu_device_get_parent_backend_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_parent_backend_ids(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2048,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2050,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2051,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2056,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2061
    functionName: fu_device_has_parent_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_parent_backend_id(FuDevice *self, const gchar
      *backend_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2079,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2081,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2081,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2082,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2086,1
    - Dst: fu_device_has_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2089,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2091,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2092
    functionName: fu_device_add_parent_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_parent_backend_id
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_parent_backend_id(FuDevice *self, const gchar *backend_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2097,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2098,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2099,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2100,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2101,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2102,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2104,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2106,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - type
    - guid
    - error
    argTypes:
    - FuDevice*
    - GType
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2094
    functionDepth: 5
    functionLinenumber: 2094
    functionLinenumberEnd: 2109
    functionName: fu_device_add_child_by_type_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_ensure_id
    - g_object_new
    - GET_PRIVATE
    - g_autoptr
    - fu_device_probe
    - fu_device_convert_instance_ids
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_add_child_by_type_guid(FuDevice *self, GType type,
      const gchar *guid, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2114,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2114,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2117,1
    - Dst: fu_device_add_child_by_type_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2118,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2118,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2122,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2123,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2125,1
    - Dst: fu_device_add_child_by_type_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - str
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2111
    functionDepth: 6
    functionLinenumber: 2111
    functionLinenumberEnd: 2140
    functionName: fu_device_add_child_by_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - fu_device_add_child_by_type_guid
    - g_set_error_literal
    - g_strv_length
    - G_OBJECT_TYPE
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_add_child_by_kv(FuDevice *self, const gchar *str,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2145,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2147,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2150,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2160,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2161,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2167
    functionName: fu_device_set_quirk_inhibit_section
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_device_inhibit
    - g_strsplit
    - fu_device_uninhibit
    - g_set_error_literal
    - g_strv_length
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_set_quirk_inhibit_section(FuDevice *self, const
      gchar *value, GError **error)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2190,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2194,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2194,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2195,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2196,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2197,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2199,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2200,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2200,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2202,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2205,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2206,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2209,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2210,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2212,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2215,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2219,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2223,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2224,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2229,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2230,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2230,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2232,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2235,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2236,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2236,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2241,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2242,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2242,1
    - Dst: fu_device_add_issue
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2244,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2247,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2251,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2252,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2255,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2256,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2259,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2260,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2260,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2261,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2265,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2268,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2269,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2269,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2271,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2278,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2279,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2279,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2281,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2287,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2288,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2288,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2290,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2296,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2297,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2297,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2302,1
    - Dst: fu_device_set_proxy_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2303,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2306,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2307,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2309,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2312,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2313,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2315,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2318,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2319,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2324,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2325,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2330,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2331,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2333,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2336,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2337,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2339,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2342,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2343,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2345,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2348,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2349,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2351,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2354,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2355,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2355,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2358,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2359,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2359,1
    - Dst: fu_device_set_quirk_inhibit_section
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2361,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2366,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2368,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2369,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2373,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2384,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2386,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2387,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2391,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2402,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2404,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2405,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2409,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2420,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2421,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2421,1
    - Dst: fu_device_add_child_by_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2423,1
    - Dst: FuDeviceClass*::set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2431,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2434,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 222
    argCount: 5
    argNames:
    - self
    - key
    - value
    - source
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2183
    functionDepth: 7
    functionLinenumber: 2183
    functionLinenumberEnd: 2439
    functionName: fu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_auto
    - fu_device_set_battery_threshold
    - fu_device_set_firmware_size
    - fu_device_set_quirk_inhibit_section
    - FU_DEVICE_GET_CLASS
    - fu_device_get_vendor
    - fu_device_set_remove_delay
    - g_return_val_if_fail
    - fu_device_set_vendor
    - FU_IS_DEVICE
    - fu_device_set_version
    - fu_device_set_branch
    - g_debug
    - g_set_error
    - fwupd_version_format_from_string
    - fu_device_set_update_image
    - g_type_name
    - fu_device_set_custom_flags
    - fu_device_set_install_duration
    - fu_device_get_name
    - fu_device_get_icons
    - fu_device_add_child_by_kv
    - fu_device_add_issue
    - g_type_from_name
    - fu_device_set_summary
    - fu_device_set_proxy_guid
    - FuDeviceClass*::set_quirk_kv
    - fu_device_add_icon
    - fu_device_set_firmware_size_max
    - fu_device_set_update_message
    - fu_strtoull
    - fu_device_add_instance_id_full
    - fu_device_add_parent_guid
    - fu_device_set_version_format
    - fu_device_set_priority
    - g_strsplit
    - fu_device_set_acquiesce_delay
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - g_set_error_literal
    - GET_PRIVATE
    - fu_device_add_possible_plugin
    - g_strcmp0
    - fu_device_set_name
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_set_quirk_kv(FuDevice *self,\n\t\t       const
      gchar *key,\n\t\t       const gchar *value,\n\t\t       FuContextQuirkSource
      source,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2456
    functionName: fu_device_get_specialized_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: GType
    signature: GType fu_device_get_specialized_gtype(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2470,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2471,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2471,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2474
    functionName: fu_device_set_specialized_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_specialized_gtype(FuDevice *self, GType gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2486
    functionDepth: 0
    functionLinenumber: 2486
    functionLinenumberEnd: 2491
    functionName: fu_device_get_proxy_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: GType
    signature: GType fu_device_get_proxy_gtype(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2505,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2506,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2506,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2502
    functionDepth: 0
    functionLinenumber: 2502
    functionLinenumberEnd: 2509
    functionName: fu_device_set_proxy_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_proxy_gtype(FuDevice *self, GType gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2525,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2527
    functionName: fu_device_get_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GType
    signature: GType fu_device_get_firmware_gtype(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - firmware_gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2538
    functionDepth: 0
    functionLinenumber: 2538
    functionLinenumberEnd: 2543
    functionName: fu_device_set_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_firmware_gtype(FuDevice *self, GType firmware_gtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2552,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2553,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2554,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2555,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2545
    functionDepth: 8
    functionLinenumber: 2545
    functionLinenumberEnd: 2558
    functionName: fu_device_quirks_iter_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_quirk_kv
    - g_error_matches
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_device_quirks_iter_cb(FuContext *ctx,\n\t\t\t const gchar
      *key,\n\t\t\t const gchar *value,\n\t\t\t FuContextQuirkSource source,\n\t\t\t
      gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2563,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2565,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2565,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2566,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2569,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2570,1
    - Dst: fu_context_lookup_quirk_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2560
    functionDepth: 1
    functionLinenumber: 2560
    functionLinenumberEnd: 2576
    functionName: fu_device_add_guid_quirks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_context_lookup_quirk_by_id_iter
    - fu_device_to_string
    - g_critical
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_guid_quirks(FuDevice *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2590,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2591,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2587
    functionDepth: 0
    functionLinenumber: 2587
    functionLinenumberEnd: 2594
    functionName: fu_device_set_firmware_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_firmware_size(FuDevice *self, guint64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2608,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2609,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_min
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2605
    functionDepth: 0
    functionLinenumber: 2605
    functionLinenumberEnd: 2611
    functionName: fu_device_set_firmware_size_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_firmware_size_min(FuDevice *self, guint64 size_min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2625,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2626,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_max
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2622
    functionDepth: 0
    functionLinenumber: 2622
    functionLinenumberEnd: 2628
    functionName: fu_device_set_firmware_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_firmware_size_max(FuDevice *self, guint64 size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2644,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2646
    functionName: fu_device_get_firmware_size_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_device_get_firmware_size_min(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2661,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2662,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2664
    functionName: fu_device_get_firmware_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_device_get_firmware_size_max(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2680,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2676
    functionDepth: 0
    functionLinenumber: 2676
    functionLinenumberEnd: 2682
    functionName: fu_device_get_required_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_device_get_required_free(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2701,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2702,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2702,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2706,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - required_free
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2707
    functionName: fu_device_set_required_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_device_set_required_free(FuDevice *self, guint64 required_free)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2723,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2723,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2724,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2727,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2728,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2729,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2729,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2733,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2720
    functionDepth: 3
    functionLinenumber: 2720
    functionLinenumberEnd: 2734
    functionName: fu_device_has_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_has_guid
    - fwupd_guid_hash_string
    - FWUPD_DEVICE
    - g_return_val_if_fail
    - fwupd_guid_is_valid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_guid(FuDevice *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2739,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2740,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceInstanceIdItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2742
    functionName: fu_device_instance_id_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_instance_id_free(FuDeviceInstanceIdItem *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2747,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2751,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2752,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2758
    functionName: fu_device_get_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: FuDeviceInstanceIdItem
    signature: 'FuDeviceInstanceIdItem *

      fu_device_get_instance_id(FuDevice *self, const gchar *instance_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2780,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2782,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2782,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2783,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2786,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2789,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - self
    - instance_id
    - flags
    argTypes:
    - FuDevice*
    - gchar*
    - FuDeviceInstanceFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2777
    functionDepth: 0
    functionLinenumber: 2777
    functionLinenumberEnd: 2794
    functionName: fu_device_has_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_instance_id(FuDevice *self, const gchar *instance_id,
      FuDeviceInstanceFlag flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2812,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2815,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2815,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2816,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2820,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2821,1
    - Dst: fu_device_get_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2826,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2831,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2835,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2836,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2837,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2839,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2840,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2844,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2846,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2850,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2856,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2856,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2857,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2857,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - instance_id
    - flags
    argTypes:
    - FuDevice*
    - gchar*
    - FuDeviceInstanceFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2809
    functionDepth: 3
    functionLinenumber: 2809
    functionLinenumberEnd: 2859
    functionName: fu_device_add_instance_id_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_add_guid_quirks
    - fu_device_get_instance_id
    - g_debug
    - fwupd_device_add_instance_id
    - g_new0
    - FWUPD_DEVICE
    - fwupd_device_add_guid
    - fu_device_has_private_flag
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_new_with_free_func
    - fwupd_guid_hash_string
    - fwupd_guid_is_valid
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_id_full(FuDevice *self, const gchar *instance_id,
      FuDeviceInstanceFlag flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2873,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2873,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2874,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2870
    functionDepth: 4
    functionLinenumber: 2870
    functionLinenumberEnd: 2879
    functionName: fu_device_add_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 57
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_add_instance_id_full
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_id(FuDevice *self, const gchar *instance_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2894,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2895,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2895,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2897,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2897,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2900,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2902,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2902,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2905
    functionName: fu_device_get_counterpart_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_counterpart_guids(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2921,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2922,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2922,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2923,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2927
    functionName: fu_device_get_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_metadata(FuDevice *self, const gchar *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2943,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2946,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2946,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2947,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2951,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2940
    functionDepth: 0
    functionLinenumber: 2940
    functionLinenumberEnd: 2955
    functionName: fu_device_get_metadata_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_hash_table_lookup
    - g_return_val_if_fail
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_get_metadata_boolean(FuDevice *self, const gchar
      *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2971,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2974,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2976,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2976,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2977,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2981,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2984,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2968
    functionDepth: 1
    functionLinenumber: 2968
    functionLinenumberEnd: 2989
    functionName: fu_device_get_metadata_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_warning
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_lookup
    - g_return_val_if_fail
    - fu_strtoull
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_metadata_integer(FuDevice *self, const gchar *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3003,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3004,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3004,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3005,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 3000
    functionDepth: 0
    functionLinenumber: 3000
    functionLinenumberEnd: 3009
    functionName: fu_device_remove_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_hash_table_remove
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_metadata(FuDevice *self, const gchar *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3024,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3025,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3025,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3026,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3027,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3029,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3030,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3030,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3031
    functionName: fu_device_set_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - g_hash_table_new_full
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_set_metadata(FuDevice *self, const gchar *key, const
      gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3047,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3047,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3048,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3051
    functionName: fu_device_set_metadata_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_set_metadata
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_metadata_boolean(FuDevice *self, const gchar *key,
      gboolean value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3067,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3069,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3069,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3070,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3064
    functionDepth: 1
    functionLinenumber: 3064
    functionLinenumberEnd: 3073
    functionName: fu_device_set_metadata_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_set_metadata
    - g_strdup_printf
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_metadata_integer(FuDevice *self, const gchar *key,
      guint value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3079,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3080,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3082,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3083,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3084,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3086,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3087,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3088,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3092,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3093,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3094,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3095,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3096,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3097,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3097,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3076
    functionDepth: 1
    functionLinenumber: 3076
    functionLinenumberEnd: 3100
    functionName: fu_device_fixup_vendor_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_device_set_name
    - g_debug
    - g_str_has_prefix
    - strlen
    - fu_strstrip
    - FWUPD_DEVICE
    - fu_device_get_id
    - fu_device_get_vendor
    - g_strdup
    - g_utf8_strup
    - g_strcmp0
    - fu_device_get_name
    linkageType: ''
    returnType: void
    signature: void fu_device_fixup_vendor_name(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3118,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3121,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3121,1
    - Dst: fu_device_fixup_vendor_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3111
    functionDepth: 2
    functionLinenumber: 3111
    functionLinenumberEnd: 3123
    functionName: fu_device_set_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - fwupd_device_set_vendor
    - FWUPD_DEVICE
    - fu_device_fixup_vendor_name
    - fu_strstrip
    linkageType: ''
    returnType: void
    signature: void fu_device_set_vendor(FuDevice *self, const gchar *vendor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3130,1
    - Dst: g_string_new::g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3130,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3135,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3137,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3138,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3147,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3153,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3155,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3125
    functionDepth: 0
    functionLinenumber: 3125
    functionLinenumberEnd: 3156
    functionName: fu_device_sanitize_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_string_free
    - g_string_new::g_string_new
    - g_ascii_isprint
    - g_autoptr
    - g_ascii_isspace
    - len::len
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_sanitize_name(const gchar *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3172,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3172,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3173,1
    - Dst: fu_device_sanitize_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3176,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3178,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3181,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3181,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3185,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3186,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3187,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3189,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3193,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3193,1
    - Dst: fu_device_fixup_vendor_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3167
    functionDepth: 2
    functionLinenumber: 3167
    functionLinenumberEnd: 3195
    functionName: fu_device_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 30
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_set_name
    - g_debug
    - FWUPD_DEVICE
    - g_return_if_fail
    - fu_device_fixup_vendor_name
    - fu_device_get_id
    - fu_device_sanitize_name
    - g_strcmp0
    - fu_device_get_name
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_set_name(FuDevice *self, const gchar *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3215,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3218,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3218,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3218,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3220,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3220,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3221,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3224,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3225,1
    - Dst: g_compute_checksum_for_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3227,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3228,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3230,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3230,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3234,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3236,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3237,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3237,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3242,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3242,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3212
    functionDepth: 3
    functionLinenumber: 3212
    functionLinenumberEnd: 3245
    functionName: fu_device_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 52
    functionsReached:
    - FU_IS_DEVICE
    - g_debug
    - fu_device_get_children
    - fu_device_get_composite_id
    - fu_device_set_composite_id
    - g_compute_checksum_for_string
    - fwupd_device_get_id
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - fwupd_device_id_is_valid
    - fwupd_device_set_id
    - FWUPD_DEVICE
    - g_strcmp0
    - fwupd_device_set_parent_id
    linkageType: ''
    returnType: void
    signature: void fu_device_set_id(FuDevice *self, const gchar *id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3259,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3262,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3264,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3265,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3266,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3267,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3267,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3268,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3270,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3270,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3274,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3276,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3276,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3277,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3279,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3281,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3282,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - fmt
    argTypes:
    - FuDevice*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3256
    functionDepth: 1
    functionLinenumber: 3256
    functionLinenumberEnd: 3286
    functionName: fu_device_set_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 49
    functionsReached:
    - fu_device_set_version_lowest
    - fwupd_device_set_version_format
    - fu_device_set_version
    - g_debug
    - fu_device_get_version_format
    - FuDeviceClass*::convert_version
    - fu_device_get_version_lowest_raw
    - fwupd_version_format_to_string
    - FU_DEVICE_GET_CLASS
    - fu_device_get_id
    - FWUPD_DEVICE
    - fu_device_get_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_format(FuDevice *self, FwupdVersionFormat
      fmt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3301,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3303,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3303,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3306,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3308,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3308,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3309,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3310,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3312,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3317,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3317,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3319,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3325,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3325,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3326,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3327,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3328,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3329,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3332,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3297
    functionDepth: 3
    functionLinenumber: 3297
    functionLinenumberEnd: 3334
    functionName: fu_device_set_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 44
    functionsReached:
    - FU_IS_DEVICE
    - fu_version_ensure_semver
    - g_warning
    - g_debug
    - fu_device_get_version_format
    - fu_device_get_version
    - FWUPD_DEVICE
    - fwupd_device_set_version
    - fu_device_has_private_flag
    - g_return_if_fail
    - g_critical
    - g_strdup
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_version_verify_format
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version(FuDevice *self, const gchar *version)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3349,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3351,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3351,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3354,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3356,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3356,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3357,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3358,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3360,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3365,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3365,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3367,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3369,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3373,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3373,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3374,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3375,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3376,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3377,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3380,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3345
    functionDepth: 3
    functionLinenumber: 3345
    functionLinenumberEnd: 3382
    functionName: fu_device_set_version_lowest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fu_version_ensure_semver
    - g_warning
    - g_debug
    - fu_device_get_version_format
    - fwupd_device_set_version_lowest
    - FWUPD_DEVICE
    - fu_device_get_version_lowest
    - fu_device_has_private_flag
    - g_return_if_fail
    - g_critical
    - g_strdup
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_version_verify_format
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_lowest(FuDevice *self, const gchar *version)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3397,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3399,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3399,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3402,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3404,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3405,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3406,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3408,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3413,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3413,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3415,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3417,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3421,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3421,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3422,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3423,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3424,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3425,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3428,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3393
    functionDepth: 3
    functionLinenumber: 3393
    functionLinenumberEnd: 3430
    functionName: fu_device_set_version_bootloader
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - fu_version_ensure_semver
    - g_warning
    - g_debug
    - fu_device_get_version_format
    - fu_device_get_version_bootloader
    - fwupd_device_set_version_bootloader
    - FWUPD_DEVICE
    - fu_device_has_private_flag
    - g_return_if_fail
    - g_critical
    - g_strdup
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_version_verify_format
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_bootloader(FuDevice *self, const gchar *version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3444,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3445,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3445,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3447,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3447,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3449,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3441
    functionDepth: 4
    functionLinenumber: 3441
    functionLinenumberEnd: 3453
    functionName: fu_device_set_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_set_version
    - FuDeviceClass*::convert_version
    - FWUPD_DEVICE
    - g_return_if_fail
    - FU_DEVICE_GET_CLASS
    - fwupd_device_set_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_raw(FuDevice *self, guint64 version_raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3467,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3468,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3468,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3470,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3470,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3472,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3464
    functionDepth: 4
    functionLinenumber: 3464
    functionLinenumberEnd: 3476
    functionName: fu_device_set_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_set_version_lowest_raw
    - fu_device_set_version_lowest
    - FuDeviceClass*::convert_version
    - g_return_if_fail
    - FU_DEVICE_GET_CLASS
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_lowest_raw(FuDevice *self, guint64 version_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3482,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3482,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3483,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3485
      start: 3479
    functionDepth: 1
    functionLinenumber: 3479
    functionLinenumberEnd: 3485
    functionName: fu_device_is_updatable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_has_flag
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_is_updatable(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3490,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3491,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inhibit
    argTypes:
    - FuDeviceInhibit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3487
    functionDepth: 0
    functionLinenumber: 3487
    functionLinenumberEnd: 3493
    functionName: fu_device_inhibit_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_free(FuDeviceInhibit *inhibit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3498,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3500,1
    - Dst: g_signal_handler_block
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3509,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3509,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3510,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3510,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3514,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3515,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3516,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3522,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3525,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3526,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3528,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3529,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3530,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3532,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3536,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3536,1
    - Dst: g_signal_handler_unblock
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3495
    functionDepth: 1
    functionLinenumber: 3495
    functionLinenumberEnd: 3541
    functionName: fu_device_ensure_inhibits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_set_problems
    - g_hash_table_size
    - FWUPD_DEVICE
    - fu_device_set_update_error
    - g_ptr_array_new
    - g_signal_handler_block
    - fu_strjoin
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_remove_flag
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_get_values
    - g_ptr_array_add
    - g_signal_handler_unblock
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_inhibits(FuDevice *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3546,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3548,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3550,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3552,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3554,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3556,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3558,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3560,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3562,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3564,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3565,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3566,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3567,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3570,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3573,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3574,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3575,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3576,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3579,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3580,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3581,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3583,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3584,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3585,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - self
    - device_problem
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3543
    functionDepth: 1
    functionLinenumber: 3543
    functionLinenumberEnd: 3588
    functionName: fu_device_problem_to_inhibit_reason
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_battery_level
    - fu_context_get_battery_threshold
    - g_strdup_printf
    - fu_device_get_battery_threshold
    - GET_PRIVATE
    - g_strdup
    - fu_context_get_battery_level
    - fu_device_get_equivalent_id
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_problem_to_inhibit_reason(FuDevice *self, guint64 device_problem)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3596,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3599,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3599,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3603,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3611,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3614,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3619,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3621,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3623,1
    - Dst: fu_device_problem_to_inhibit_reason
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3625,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3627,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3630,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3633,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3634,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3636,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - self
    - problem
    - inhibit_id
    - reason
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3640
      start: 3590
    functionDepth: 3
    functionLinenumber: 3590
    functionLinenumberEnd: 3640
    functionName: fu_device_inhibit_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_problem_to_inhibit_reason
    - fu_device_get_children
    - fwupd_device_problem_to_string
    - fu_device_inhibit
    - g_new0
    - g_hash_table_new_full
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - fu_device_ensure_inhibits
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: "void fu_device_inhibit_full(FuDevice *self,\n\t\t       FwupdDeviceProblem
      problem,\n\t\t       const gchar *inhibit_id,\n\t\t       const gchar *reason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3659,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3659,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3660,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - inhibit_id
    - reason
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3656
    functionDepth: 4
    functionLinenumber: 3656
    functionLinenumberEnd: 3662
    functionName: fu_device_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_inhibit_full
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit(FuDevice *self, const gchar *inhibit_id, const
      gchar *reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3680,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3680,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3681,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - inhibit_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3675
    functionDepth: 0
    functionLinenumber: 3675
    functionLinenumberEnd: 3686
    functionName: fu_device_has_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - g_hash_table_contains
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_inhibit(FuDevice *self, const gchar *inhibit_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3704,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3704,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3705,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3706,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3701
    functionDepth: 1
    functionLinenumber: 3701
    functionLinenumberEnd: 3707
    functionName: fu_device_remove_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_uninhibit
    - fwupd_device_problem_to_string
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_problem(FuDevice *self, FwupdDeviceProblem problem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3723,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3723,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3724,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3725,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3720
    functionDepth: 1
    functionLinenumber: 3720
    functionLinenumberEnd: 3726
    functionName: fu_device_has_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - fu_device_has_inhibit
    - fwupd_device_problem_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_problem(FuDevice *self, FwupdDeviceProblem problem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3744,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3744,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3745,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3741
    functionDepth: 4
    functionLinenumber: 3741
    functionLinenumberEnd: 3747
    functionName: fu_device_add_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_inhibit_full
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_add_problem(FuDevice *self, FwupdDeviceProblem problem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3765,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3767,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3767,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3768,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3772,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3773,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3776,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3777,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3779,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - inhibit_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3783
      start: 3762
    functionDepth: 3
    functionLinenumber: 3762
    functionLinenumberEnd: 3783
    functionName: fu_device_uninhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_children
    - fu_device_uninhibit
    - g_hash_table_remove
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_device_ensure_inhibits
    linkageType: ''
    returnType: void
    signature: void fu_device_uninhibit(FuDevice *self, const gchar *inhibit_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3800,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3803,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3803,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3804,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3812,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3813,1
    - Dst: g_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3823,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3823,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3823,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3826
      start: 3797
    functionDepth: 4
    functionLinenumber: 3797
    functionLinenumberEnd: 3826
    functionName: fu_device_ensure_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - fu_device_get_logical_id
    - g_strjoin
    - fu_device_to_string
    - fu_device_get_physical_id
    - fu_device_set_id
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_ensure_id(FuDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3843,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3845
      start: 3839
    functionDepth: 0
    functionLinenumber: 3839
    functionLinenumberEnd: 3845
    functionName: fu_device_get_logical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 13
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_logical_id(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3860,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3861,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3861,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3864,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3869,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3871,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3877,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3878,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3880,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - logical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3857
    functionDepth: 1
    functionLinenumber: 3857
    functionLinenumberEnd: 3881
    functionName: fu_device_set_logical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - g_warning
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - fu_device_get_id
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_logical_id(FuDevice *self, const gchar *logical_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3899,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3903
      start: 3895
    functionDepth: 0
    functionLinenumber: 3895
    functionLinenumberEnd: 3903
    functionName: fu_device_get_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 18
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_backend_id(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3919,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3920,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3920,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3923,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3926,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3927,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3929,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3916
    functionDepth: 0
    functionLinenumber: 3916
    functionLinenumberEnd: 3930
    functionName: fu_device_set_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_backend_id(FuDevice *self, const gchar *backend_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3946,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3948
    functionName: fu_device_get_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_device_get_backend(FuDevice *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3962,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3964,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3964,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3965,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3965,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3973,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3973,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3977,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3977,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3979,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3979,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3983,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3983,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - backend
    argTypes:
    - FuDevice*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3959
    functionDepth: 1
    functionLinenumber: 3959
    functionLinenumberEnd: 3984
    functionName: fu_device_set_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - fu_backend_get_context
    - g_return_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    - fu_device_set_context
    - G_OBJECT
    - g_object_add_weak_pointer
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fu_device_set_backend(FuDevice *self, FuBackend *backend)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4005,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4008,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4011,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4011,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4012,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4016,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4024,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4024,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4025,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4025,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4025,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4027,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4031,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4031,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4038,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4041,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4041,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4044,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4047,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4047,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4049,1
    - Dst: fu_backend_get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4051,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4056,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4057,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4062,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4064,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4071,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4073,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4081,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4081,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4081,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4082,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4083,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4085,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4086,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4088,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4089,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4091,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4093,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4094,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4099,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4099,1
    - Dst: fu_backend_get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4102,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4105,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4106,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4109,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4111,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4112,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4112,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4118,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4118,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4119,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4120,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4120,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4121,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4122,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4124,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4126,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4127,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4129,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4134,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4135,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4136
      start: 4002
    functionDepth: 4
    functionLinenumber: 4002
    functionLinenumberEnd: 4136
    functionName: fu_device_get_backend_parent_with_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 11
    functionsReached:
    - fu_device_event_check_error
    - fu_version_compare
    - fu_device_event_get_str
    - g_object_new
    - fu_device_has_flag
    - fu_device_get_physical_id
    - g_propagate_error
    - fu_device_probe
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_context_has_flag
    - FU_IS_DEVICE
    - g_set_error
    - fu_device_event_set_str
    - g_debug
    - G_OBJECT_TYPE_NAME
    - fu_device_get_backend_id
    - fu_device_get_context
    - fu_device_load_event
    - fu_device_add_flag
    - fu_device_set_backend_id
    - fu_device_set_physical_id
    - g_type_from_name
    - fu_device_set_target
    - g_steal_pointer
    - fu_device_set_id
    - fu_backend_get_device_parent
    - g_autoptr
    - fu_device_event_set_error
    - fu_device_save_event
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_backend_parent_with_subsystem(FuDevice *self, const gchar *subsystem,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4156,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4157,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4159
      start: 4153
    functionDepth: 5
    functionLinenumber: 4153
    functionLinenumberEnd: 4159
    functionName: fu_device_get_backend_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - fu_device_get_backend_parent_with_subsystem
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_backend_parent(FuDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4174,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4175,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4177
      start: 4171
    functionDepth: 0
    functionLinenumber: 4171
    functionLinenumberEnd: 4177
    functionName: fu_device_get_update_request_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_update_request_id(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4191,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4192,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4192,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4195,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4198,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_request_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4188
    functionDepth: 0
    functionLinenumber: 4188
    functionLinenumberEnd: 4200
    functionName: fu_device_set_update_request_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_update_request_id(FuDevice *self, const gchar *update_request_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4216,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4218
      start: 4212
    functionDepth: 0
    functionLinenumber: 4212
    functionLinenumberEnd: 4218
    functionName: fu_device_get_update_message
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_update_message(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4232,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4233,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4233,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4236,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4239,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4240,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4241,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_message
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4242
      start: 4229
    functionDepth: 0
    functionLinenumber: 4229
    functionLinenumberEnd: 4242
    functionName: fu_device_set_update_message
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_update_message(FuDevice *self, const gchar *update_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4258,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4260
      start: 4254
    functionDepth: 0
    functionLinenumber: 4254
    functionLinenumberEnd: 4260
    functionName: fu_device_get_update_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_update_image(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4274,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4275,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4275,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4278,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4281,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4282,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4283,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_image
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4271
    functionDepth: 0
    functionLinenumber: 4271
    functionLinenumberEnd: 4284
    functionName: fu_device_set_update_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_update_image(FuDevice *self, const gchar *update_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4300,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4302
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4302
    functionName: fu_device_get_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_fwupd_version(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4318,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4319,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4319,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4320,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4323,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4326,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4328
    functionName: fu_device_set_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_flag
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_fwupd_version(FuDevice *self, const gchar *fwupd_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4344,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4345,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4347
    functionName: fu_device_get_proxy_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_proxy_guid(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4361,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4362,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4362,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4365,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4368,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - proxy_guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4370
    functionName: fu_device_set_proxy_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_proxy_guid(FuDevice *self, const gchar *proxy_guid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4391,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4392,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4392,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4396,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4401,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4403,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4409,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4410,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4412,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4388
    functionDepth: 1
    functionLinenumber: 4388
    functionLinenumberEnd: 4413
    functionName: fu_device_set_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - FU_IS_DEVICE
    - g_warning
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - G_OBJECT
    - fu_device_get_id
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_physical_id(FuDevice *self, const gchar *physical_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4431,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4432,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4428
    functionDepth: 0
    functionLinenumber: 4428
    functionLinenumberEnd: 4434
    functionName: fu_device_get_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 17
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_physical_id(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4449,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4449,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4453,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4445
    functionDepth: 4
    functionLinenumber: 4445
    functionLinenumberEnd: 4456
    functionName: fu_device_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 13
    functionsReached:
    - FWUPD_DEVICE
    - fu_device_uninhibit
    - fwupd_device_remove_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_flag(FuDevice *self, FwupdDeviceFlags flag)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4470,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4479,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4481,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4486,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4488,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4492,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4494,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4501,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4501,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4506,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4510,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4516,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4519,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4467
    functionDepth: 5
    functionLinenumber: 4467
    functionLinenumberEnd: 4522
    functionName: fu_device_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 75
    functionsReached:
    - G_OBJECT_TYPE_NAME
    - fwupd_device_add_flag
    - fu_device_inhibit
    - fu_device_has_flag
    - fu_device_remove_flag
    - GET_PRIVATE
    - g_critical
    - FWUPD_DEVICE
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_device_add_flag(FuDevice *self, FwupdDeviceFlags flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4539,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4539,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4540,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4544,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4545,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4546,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4553,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4555,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4555,1
    - Dst: fu_device_register_private_flag_safe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4534
    functionDepth: 2
    functionLinenumber: 4534
    functionLinenumberEnd: 4561
    functionName: fu_device_register_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_find_private_flag_registered
    - fu_device_register_private_flag_safe
    - g_return_if_fail
    - g_critical
    - fwupd_device_flag_from_string
    linkageType: ''
    returnType: void
    signature: void fu_device_register_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4569,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4572,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4573,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4575,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4578,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4580,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4587,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4589,1
    - Dst: fu_device_find_private_flag_registered
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4592,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - hint
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4563
    functionDepth: 6
    functionLinenumber: 4563
    functionLinenumberEnd: 4597
    functionName: fu_device_set_custom_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_find_private_flag_registered
    - g_str_has_prefix
    - fu_device_remove_private_flag
    - fu_device_add_private_flag
    - g_return_if_fail
    - fu_device_add_flag
    - fu_device_remove_flag
    - fwupd_device_flag_from_string
    linkageType: ''
    returnType: void
    signature: void fu_device_set_custom_flag(FuDevice *self, const gchar *hint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4612,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4614,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4614,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4615,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4618,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4619,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4623,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4623,1
    - Dst: fu_device_set_custom_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - custom_flags
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4609
    functionDepth: 7
    functionLinenumber: 4609
    functionLinenumberEnd: 4627
    functionName: fu_device_set_custom_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_auto
    - g_strsplit
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - fu_device_set_custom_flag
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_set_custom_flags(FuDevice *self, const gchar *custom_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4642,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4643,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4639
    functionDepth: 0
    functionLinenumber: 4639
    functionLinenumberEnd: 4645
    functionName: fu_device_get_custom_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_custom_flags(FuDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4661,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4662,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4658
    functionDepth: 0
    functionLinenumber: 4658
    functionLinenumberEnd: 4664
    functionName: fu_device_get_remove_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_remove_delay(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4683,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4684,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remove_delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4680
    functionDepth: 0
    functionLinenumber: 4680
    functionLinenumberEnd: 4686
    functionName: fu_device_set_remove_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_remove_delay(FuDevice *self, guint remove_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4702,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4703,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4699
    functionDepth: 0
    functionLinenumber: 4699
    functionLinenumberEnd: 4705
    functionName: fu_device_get_acquiesce_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_acquiesce_delay(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4724,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4725,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - acquiesce_delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4727
      start: 4721
    functionDepth: 0
    functionLinenumber: 4721
    functionLinenumberEnd: 4727
    functionName: fu_device_set_acquiesce_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_set_acquiesce_delay(FuDevice *self, guint acquiesce_delay)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4741,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4741,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4745,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4747,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4749,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4751,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - update_state
    argTypes:
    - FuDevice*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4752
      start: 4738
    functionDepth: 5
    functionLinenumber: 4738
    functionLinenumberEnd: 4752
    functionName: fu_device_set_update_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_remove_problem
    - fwupd_device_set_update_state
    - fu_device_set_update_error
    - g_return_if_fail
    - FWUPD_DEVICE
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_device_set_update_state(FuDevice *self, FwupdUpdateState update_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4757,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4758,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4758,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4759,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4754
    functionDepth: 5
    functionLinenumber: 4754
    functionLinenumberEnd: 4763
    functionName: fu_device_ensure_battery_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_device_remove_problem
    - fu_device_get_battery_level
    - fu_device_get_battery_threshold
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_battery_inhibit(FuDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4778,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4778,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4781,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4782,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4782,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4783,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4785,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4787,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4788
      start: 4775
    functionDepth: 3
    functionLinenumber: 4775
    functionLinenumberEnd: 4788
    functionName: fu_device_get_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_battery_level
    - fu_device_has_private_flag
    - fwupd_device_get_battery_level
    - fu_device_get_parent
    - FWUPD_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_battery_level(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4805,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4805,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4806,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4807,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4807,1
    - Dst: fu_device_ensure_battery_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4809
      start: 4802
    functionDepth: 6
    functionLinenumber: 4802
    functionLinenumberEnd: 4809
    functionName: fu_device_set_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_set_battery_level
    - fu_device_ensure_battery_inhibit
    - g_return_if_fail
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_battery_level(FuDevice *self, guint battery_level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4828,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4828,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4831,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4832,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4832,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4833,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4835,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4837,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4825
    functionDepth: 3
    functionLinenumber: 4825
    functionLinenumberEnd: 4838
    functionName: fu_device_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_battery_threshold
    - fu_device_has_private_flag
    - fwupd_device_get_battery_threshold
    - fu_device_get_parent
    - FWUPD_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fu_device_get_battery_threshold(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4855,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4855,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4856,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4857,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4857,1
    - Dst: fu_device_ensure_battery_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4859
      start: 4852
    functionDepth: 6
    functionLinenumber: 4852
    functionLinenumberEnd: 4859
    functionName: fu_device_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_ensure_battery_inhibit
    - fwupd_device_set_battery_threshold
    - g_return_if_fail
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_battery_threshold(FuDevice *self, guint battery_threshold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4877,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4878,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4878,1
    - Dst: fwupd_device_get_created
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4882,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4874
    functionDepth: 1
    functionLinenumber: 4874
    functionLinenumberEnd: 4883
    functionName: fu_device_get_created_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - GET_PRIVATE
    - fwupd_device_get_created
    - FWUPD_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_device_get_created_usec(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4899,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4900,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4900,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4901,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4904,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - created_usec
    argTypes:
    - FuDevice*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4905
      start: 4896
    functionDepth: 1
    functionLinenumber: 4896
    functionLinenumberEnd: 4905
    functionName: fu_device_set_created_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 13
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_set_created
    - g_return_if_fail
    - GET_PRIVATE
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_created_usec(FuDevice *self, gint64 created_usec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4923,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4924,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4924,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4928,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4929
      start: 4920
    functionDepth: 1
    functionLinenumber: 4920
    functionLinenumberEnd: 4929
    functionName: fu_device_get_modified_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - FWUPD_DEVICE
    - GET_PRIVATE
    - fwupd_device_get_modified
    - g_return_val_if_fail
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_device_get_modified_usec(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4945,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4941
    functionDepth: 0
    functionLinenumber: 4941
    functionLinenumberEnd: 4947
    functionName: fu_device_get_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 15
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_device_get_vid(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4961,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4962,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4962,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4966,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vid
    argTypes:
    - FuDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4967
      start: 4958
    functionDepth: 0
    functionLinenumber: 4958
    functionLinenumberEnd: 4967
    functionName: fu_device_set_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_device_set_vid(FuDevice *self, guint16 vid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4982,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4983,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4985
      start: 4979
    functionDepth: 0
    functionLinenumber: 4979
    functionLinenumberEnd: 4985
    functionName: fu_device_get_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 13
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_device_get_pid(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4999,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5000,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5000,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5004,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pid
    argTypes:
    - FuDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5005
      start: 4996
    functionDepth: 0
    functionLinenumber: 4996
    functionLinenumberEnd: 5005
    functionName: fu_device_set_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_device_set_pid(FuDevice *self, guint16 pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5021,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5022,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5022,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5023,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5026,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - modified_usec
    argTypes:
    - FuDevice*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5027
      start: 5018
    functionDepth: 1
    functionLinenumber: 5018
    functionLinenumberEnd: 5027
    functionName: fu_device_set_modified_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fwupd_device_set_modified
    - GET_PRIVATE
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_modified_usec(FuDevice *self, gint64 modified_usec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_instance_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5032,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5033,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5033,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5035,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - FuDeviceInstanceFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5029
    functionDepth: 0
    functionLinenumber: 5029
    functionLinenumberEnd: 5039
    functionName: fu_device_instance_flag_to_string_trunc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - strlen
    - g_strjoinv
    - g_strsplit
    - fu_device_instance_flag_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_instance_flag_to_string_trunc(FuDeviceInstanceFlag flags)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5044,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5047,1
    - Dst: fu_device_instance_flag_to_string_trunc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5048,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5049,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5052,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5053,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5055,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5058,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5059,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5060,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5061,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5062,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5063,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5064,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5065,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5066,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5067,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5068,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5069,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5070,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5071,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5073,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5073,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5075,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5075,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5077,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5080,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5082,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5083,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5084,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5086,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5087,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5089,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5091,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5091,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5094,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5095,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5099,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5100,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5104,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5107,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5111,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5113,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5114,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5117,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5118,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5124,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5125,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5127,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5132,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5132,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5136,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5137,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5141,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5143,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5146,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5147,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5150,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5150,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5154,1
    - Dst: fu_device_to_string_impl
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5155,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5041
    functionDepth: 3
    functionLinenumber: 5041
    functionLinenumberEnd: 5157
    functionName: fu_device_to_string_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_to_string_impl
    - FWUPD_CODEC
    - g_ptr_array_new
    - fwupd_codec_string_append_size
    - g_hash_table_get_values
    - g_hash_table_get_keys
    - fu_device_instance_flag_to_string_trunc
    - g_ptr_array_index
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - g_type_name
    - fu_strjoin
    - g_autoptr
    - fwupd_codec_string_append_hex
    - g_ptr_array_add
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - g_strdup_printf
    - GET_PRIVATE
    - fwupd_codec_add_string
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: void fu_device_to_string_impl(FuDevice *self, guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5162,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5162,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5163,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5164,1
    - Dst: g_type_class_peek
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5165,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5166,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5167,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5169,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5173
      start: 5159
    functionDepth: 0
    functionLinenumber: 5159
    functionLinenumberEnd: 5173
    functionName: fu_device_get_common_class_parents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_type_class_peek
    - g_steal_pointer
    - g_ptr_array_new
    - g_type_parent
    - g_autoptr
    - g_ptr_array_add
    - G_OBJECT_TYPE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_common_class_parents(FuDevice *self, FuDevice *donor)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5190,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5193,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5193,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5196,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5197,1
    - Dst: g_type_class_peek
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5198,1
    - Dst: FU_IS_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5199,1
    - Dst: g_list_prepend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5201,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5204,1
    - Dst: FuDeviceClass*::to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5207,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5213,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5215,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5185
    functionDepth: 3
    functionLinenumber: 5185
    functionLinenumberEnd: 5218
    functionName: fu_device_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_get_children
    - FU_IS_DEVICE_CLASS
    - g_type_class_peek
    - FU_DEVICE_CLASS
    - FWUPD_CODEC
    - g_list_prepend
    - FuDeviceClass*::to_string
    - g_type_parent
    - fu_device_add_string
    - g_ptr_array_index
    - fwupd_codec_add_string
    - g_autoptr
    - G_OBJECT_TYPE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_string(FuDevice *self, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5234,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5235,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5231
    functionDepth: 4
    functionLinenumber: 5231
    functionLinenumberEnd: 5237
    functionName: fu_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 18
    functionsReached:
    - g_string_free
    - fu_device_add_string
    - g_string_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_to_string(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5253,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5254,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5254,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5255,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5255,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5259,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5260,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5261,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5266,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5267,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - ctx
    argTypes:
    - FuDevice*
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5250
    functionDepth: 1
    functionLinenumber: 5250
    functionLinenumberEnd: 5268
    functionName: fu_device_set_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_set_object
    - g_critical
    - GET_PRIVATE
    - G_OBJECT
    - fu_device_get_id
    - fu_device_get_name
    linkageType: ''
    returnType: void
    signature: void fu_device_set_context(FuDevice *self, FuContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5284,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5280
    functionDepth: 0
    functionLinenumber: 5280
    functionLinenumberEnd: 5286
    functionName: fu_device_get_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 35
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_device_get_context(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5304,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5304,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5305,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5309,1
    - Dst: FuDeviceClass*::get_results
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5299
    functionDepth: 0
    functionLinenumber: 5299
    functionLinenumberEnd: 5318
    functionName: fu_device_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::get_results
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_get_results(FuDevice *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5341,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5345,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5345,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5346,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5347,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5347,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5348,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5352,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5360,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5361,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5361,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5362,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5363,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5369,1
    - Dst: fu_device_get_update_request_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5370,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5371,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5371,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5372,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5374,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5375,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5377,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5378,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5380,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5380,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5381,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5381,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5388
      start: 5334
    functionDepth: 3
    functionLinenumber: 5334
    functionLinenumberEnd: 5388
    functionName: fu_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_get_update_image
    - FU_IS_PROGRESS
    - fu_firmware_to_string
    - FuDeviceClass*::write_firmware
    - fwupd_request_add_flag
    - FU_DEVICE_GET_CLASS
    - fu_device_get_id
    - g_return_val_if_fail
    - fu_device_emit_request
    - FU_IS_DEVICE
    - FU_IS_FIRMWARE
    - fu_device_get_update_message
    - g_info
    - fwupd_request_new
    - fwupd_request_set_kind
    - fwupd_request_set_message
    - fu_device_get_update_request_id
    - g_autoptr
    - fwupd_request_set_image
    - g_set_object
    - g_set_error_literal
    - fwupd_request_set_id
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_write_firmware(FuDevice *self,\n\t\t\t FuFirmware
      *firmware,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5416,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5417,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5418,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5421,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5421,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5422,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5422,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5423,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5424,1
    - Dst: FuDeviceClass*::prepare_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5428,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5432,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5433,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5436,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5437,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5442,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5445,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5455,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - self
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5468
      start: 5409
    functionDepth: 3
    functionLinenumber: 5409
    functionLinenumberEnd: 5468
    functionName: fu_device_prepare_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - G_IS_INPUT_STREAM
    - fu_firmware_get_size
    - g_set_error
    - g_steal_pointer
    - FU_IS_PROGRESS
    - fu_firmware_parse_stream
    - g_object_new
    - GET_PRIVATE
    - FuDeviceClass*::prepare_firmware
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_device_prepare_firmware(FuDevice *self,\n\t\t\t   GInputStream
      *stream,\n\t\t\t   FuProgress *progress,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5494,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5495,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5498,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5498,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5499,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5499,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5500,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5503,1
    - Dst: FuDeviceClass*::read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5505,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5508,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5512,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5512,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5513,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5515,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5518
      start: 5488
    functionDepth: 4
    functionLinenumber: 5488
    functionLinenumberEnd: 5518
    functionName: fu_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_IS_PROGRESS
    - FuDeviceClass*::read_firmware
    - fu_device_dump_firmware
    - g_set_object
    - g_object_new
    - fu_firmware_new_from_bytes
    - GET_PRIVATE
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_device_read_firmware(FuDevice *self,\n\t\t\tFuProgress
      *progress,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5538,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5539,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5541,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5541,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5542,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5542,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5543,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5547,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5555,1
    - Dst: FuDeviceClass*::dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5535
    functionDepth: 0
    functionLinenumber: 5535
    functionLinenumberEnd: 5557
    functionName: fu_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - FuDeviceClass*::dump_firmware
    - g_set_object
    - g_set_error_literal
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_device_dump_firmware(FuDevice *self, FuProgress *progress, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5573,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5573,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5575
      start: 5570
    functionDepth: 2
    functionLinenumber: 5570
    functionLinenumberEnd: 5575
    functionName: fu_device_detach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_new
    - g_autoptr
    - fu_device_detach_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_detach(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5592,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5595,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5595,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5596,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5596,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5597,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5604,1
    - Dst: FuDeviceClass*::detach
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5606
      start: 5589
    functionDepth: 0
    functionLinenumber: 5589
    functionLinenumberEnd: 5606
    functionName: fu_device_detach_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::detach
    - FU_IS_PROGRESS
    - g_set_object
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_detach_full(FuDevice *self, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5622,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5622,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5619
    functionDepth: 2
    functionLinenumber: 5619
    functionLinenumberEnd: 5624
    functionName: fu_device_attach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_attach_full
    - fu_progress_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_attach(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5641,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5642,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5644,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5644,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5645,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5645,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5646,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5653,1
    - Dst: FuDeviceClass*::attach
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5655
      start: 5638
    functionDepth: 0
    functionLinenumber: 5638
    functionLinenumberEnd: 5655
    functionName: fu_device_attach_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - g_set_object
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - FuDeviceClass*::attach
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_attach_full(FuDevice *self, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5671,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5673,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5673,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5674,1
    - Dst: FuDeviceClass*::reload
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5682
      start: 5668
    functionDepth: 0
    functionLinenumber: 5668
    functionLinenumberEnd: 5682
    functionName: fu_device_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_val_if_fail
    - FuDeviceClass*::reload
    - FU_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_reload(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5701,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5702,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5704,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5704,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5705,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5705,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5706,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5713,1
    - Dst: FuDeviceClass*::prepare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5715
      start: 5698
    functionDepth: 0
    functionLinenumber: 5698
    functionLinenumberEnd: 5715
    functionName: fu_device_prepare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - g_set_object
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::prepare
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_prepare(FuDevice *self, FuProgress *progress, FwupdInstallFlags
      flags, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5734,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5737,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5738,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5738,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5739,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5746,1
    - Dst: FuDeviceClass*::cleanup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5748
      start: 5731
    functionDepth: 0
    functionLinenumber: 5731
    functionLinenumberEnd: 5748
    functionName: fu_device_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - g_set_object
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - FuDeviceClass*::cleanup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_cleanup(FuDevice *self, FuProgress *progress, FwupdInstallFlags
      flags, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5753,1
    - Dst: FuDeviceClass*::open
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5755
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5755
    functionName: fu_device_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FuDeviceClass*::open
    - FU_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_open_cb(FuDevice *self, gpointer user_data, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5760,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5761,1
    - Dst: g_atomic_int_inc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5764,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5769,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5770,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5775,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5776,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5782,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5783,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5789,1
    - Dst: FuDeviceClass*::open
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5793,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5794,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5801,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5802,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5807,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5808,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5813,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5815
      start: 5757
    functionDepth: 5
    functionLinenumber: 5757
    functionLinenumberEnd: 5815
    functionName: fu_device_open_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_device_add_private_flag
    - fu_device_setup
    - g_prefix_error
    - fu_device_ensure_id
    - fu_device_has_private_flag
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - fu_device_probe
    - g_atomic_int_inc
    - FuDeviceClass*::open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_open_internal(FuDevice *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5844,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5845,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5848,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5849,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5850,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5852,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5854,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5858,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5859,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5861,1
    - Dst: fu_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5867,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5869,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5870,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5872,1
    - Dst: fu_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5878,1
    - Dst: fu_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5841
    functionDepth: 6
    functionLinenumber: 5841
    functionLinenumberEnd: 5882
    functionName: fu_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_proxy
    - fu_device_add_private_flag
    - fu_device_setup
    - fu_device_ensure_id
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_device_open_internal
    - fu_device_probe
    - fu_device_get_parent
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_open(FuDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5887,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5888,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5892,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5898,1
    - Dst: FuDeviceClass*::close
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5903,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5884
    functionDepth: 3
    functionLinenumber: 5884
    functionLinenumberEnd: 5910
    functionName: fu_device_close_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_private_flag
    - g_set_error_literal
    - FuDeviceClass*::close
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_atomic_int_dec_and_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_close_internal(FuDevice *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5938,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5938,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5939,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5942,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5943,1
    - Dst: fu_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5948,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5952,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5953,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5955,1
    - Dst: fu_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5961,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5963,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5964,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5966,1
    - Dst: fu_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5978
      start: 5935
    functionDepth: 4
    functionLinenumber: 5935
    functionLinenumberEnd: 5978
    functionName: fu_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_proxy
    - fu_device_remove_private_flag
    - fu_device_close_internal
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_device_get_parent
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_close(FuDevice *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5996,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5997,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5999,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5999,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6000,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6007,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6008,1
    - Dst: FuDeviceClass*::probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6014,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6019,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6027
      start: 5993
    functionDepth: 3
    functionLinenumber: 5993
    functionLinenumberEnd: 6027
    functionName: fu_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 15
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_has_private_flag
    - g_set_error_literal
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - FuDeviceClass*::probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_probe(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6041,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6043,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6043,1
    - Dst: FuDeviceClass*::probe_complete
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6047
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6047
    functionName: fu_device_probe_complete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::probe_complete
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_probe_complete(FuDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6063,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6064,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6066,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6066,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6067,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6071,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6072,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6072,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6073,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6073,1
    - Dst: FuDeviceClass*::rescan
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6077,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6078,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6060
    functionDepth: 1
    functionLinenumber: 6060
    functionLinenumberEnd: 6085
    functionName: fu_device_rescan
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::rescan
    - fu_device_get_guids
    - g_ptr_array_set_size
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - fu_device_convert_instance_ids
    - fu_device_get_instance_ids
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_rescan(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6099,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6101,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6101,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6102,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6102,1
    - Dst: FuDeviceClass*::set_progress
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6108
      start: 6096
    functionDepth: 0
    functionLinenumber: 6096
    functionLinenumberEnd: 6108
    functionName: fu_device_set_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - g_return_if_fail
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::set_progress
    linkageType: ''
    returnType: void
    signature: void fu_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6127,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6129,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6129,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6132,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6138,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6142,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6146,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6146,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6147,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6147,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6154
      start: 6124
    functionDepth: 3
    functionLinenumber: 6124
    functionLinenumberEnd: 6154
    functionName: fu_device_convert_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_add_instance_id
    - fu_device_get_guids
    - fwupd_device_add_guid
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_ptr_array_index
    - GET_PRIVATE
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_convert_instance_ids(FuDevice *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6172,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6176,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6177,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6180,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6181,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6186,1
    - Dst: FuDeviceClass*::setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6195,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6200,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6201,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6206,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6208,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6209,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6214,1
    - Dst: FuDeviceClass*::ready
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6218,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6169
    functionDepth: 4
    functionLinenumber: 6169
    functionLinenumberEnd: 6224
    functionName: fu_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_get_children
    - fu_device_setup
    - FuDeviceClass*::ready
    - fu_device_has_private_flag
    - g_ptr_array_index
    - FuDeviceClass*::setup
    - g_set_error_literal
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - fu_device_probe
    - g_return_val_if_fail
    - fu_device_convert_instance_ids
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_setup(FuDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6242,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6243,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6245,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6246,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6247,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6251,1
    - Dst: FuDeviceClass*::activate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6257
      start: 6239
    functionDepth: 0
    functionLinenumber: 6239
    functionLinenumberEnd: 6257
    functionName: fu_device_activate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - FuDeviceClass*::activate
    - g_set_object
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_activate(FuDevice *self, FuProgress *progress, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6275,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6276,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6277,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6277,1
    - Dst: FuDeviceClass*::invalidate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6282
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6282
    functionName: fu_device_probe_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FuDeviceClass*::invalidate
    - GET_PRIVATE
    - FU_DEVICE_GET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_device_probe_invalidate(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6298,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6300,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6300,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6307,1
    - Dst: FuDeviceClass*::report_metadata_pre
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6308,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6310
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6310
    functionName: fu_device_report_metadata_pre
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_hash_table_new_full
    - FuDeviceClass*::report_metadata_pre
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_device_report_metadata_pre(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6325,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6328,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6328,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6335,1
    - Dst: FuDeviceClass*::report_metadata_post
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6336,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6338
      start: 6322
    functionDepth: 0
    functionLinenumber: 6322
    functionLinenumberEnd: 6338
    functionName: fu_device_report_metadata_post
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::report_metadata_post
    - g_steal_pointer
    - g_hash_table_new_full
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_device_report_metadata_post(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6352,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6354,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6354,1
    - Dst: FuDeviceClass*::add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6359
      start: 6349
    functionDepth: 0
    functionLinenumber: 6349
    functionLinenumberEnd: 6359
    functionName: fu_device_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::add_security_attrs
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_add_security_attrs(FuDevice *self, FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6378,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6380,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6380,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6381,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6382,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6387,1
    - Dst: FuDeviceClass*::bind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - subsystem
    - driver
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6396
      start: 6375
    functionDepth: 0
    functionLinenumber: 6375
    functionLinenumberEnd: 6396
    functionName: fu_device_bind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::bind_driver
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_bind_driver(FuDevice *self, const gchar *subsystem,
      const gchar *driver, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6416,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6418,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6418,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6419,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6423,1
    - Dst: FuDeviceClass*::unbind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6413
    functionDepth: 0
    functionLinenumber: 6413
    functionLinenumberEnd: 6432
    functionName: fu_device_unbind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - g_return_val_if_fail
    - FuDeviceClass*::unbind_driver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_unbind_driver(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6449,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6449,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6450,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6454
      start: 6445
    functionDepth: 0
    functionLinenumber: 6445
    functionLinenumberEnd: 6454
    functionName: fu_device_get_instance_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_instance_str(FuDevice *self, const gchar *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6471,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6471,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6472,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6476,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6477,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - prefix
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6478
      start: 6466
    functionDepth: 2
    functionLinenumber: 6466
    functionLinenumberEnd: 6478
    functionName: fu_device_build_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_add_vendor_id
    - g_strdup_printf
    - g_return_if_fail
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_build_vendor_id(FuDevice *self, const gchar *prefix,
      const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6495,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6495,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6496,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6500,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6501,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - prefix
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6490
    functionDepth: 2
    functionLinenumber: 6490
    functionLinenumberEnd: 6502
    functionName: fu_device_build_vendor_id_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 40
    functionsReached:
    - FU_IS_DEVICE
    - fwupd_device_add_vendor_id
    - g_strdup_printf
    - g_return_if_fail
    - FWUPD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_device_build_vendor_id_u16(FuDevice *self, const gchar *prefix,
      guint16 value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6507,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6512,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6514,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6518,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6522
      start: 6504
    functionDepth: 4
    functionLinenumber: 6504
    functionLinenumberEnd: 6522
    functionName: fu_device_incorporate_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_instance_ids(FuDevice *self, FuDevice *donor)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6537,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6538,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6540,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6540,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6541,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6541,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6545,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6547,1
    - Dst: fwupd_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6551,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6551,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6551,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6552,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6555,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6556,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6556,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6559,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6559,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6560,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6560,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6564,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6568,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6572,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6576,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6580,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6583,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6585,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6586,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6591,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6595,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6598,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6599,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6601,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6602,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6609,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6610,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6615,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6616,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6617,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6617,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6621,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6622,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6623,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6623,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6628,1
    - Dst: fu_device_get_common_class_parents
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6629,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6633,1
    - Dst: FuDeviceClass*::incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6636,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6643,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6647,1
    - Dst: fu_device_incorporate_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6650,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6654,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6660,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6661,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6668,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6669,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6670,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6671,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6678,1
    - Dst: fu_device_get_parent_physical_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6679,1
    - Dst: fu_device_get_parent_backend_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6680,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6686,1
    - Dst: g_ptr_array_find
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6687,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6690,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6695,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6697,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6698,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6699,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6699,1
    - Dst: fu_device_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6700,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6701,1
    - Dst: fu_device_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6701,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6703,1
    - Dst: fu_device_set_update_request_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6705,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6706,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6707,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6709,1
    - Dst: fu_device_set_proxy_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6712,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6714,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6717,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6718,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6723,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6724,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6729,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6730,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6736,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6737,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6738,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6739,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6745,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6746,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6747,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 168
    argCount: 3
    argNames:
    - self
    - donor
    - flag
    argTypes:
    - FuDevice*
    - FuDevice*
    - FuDeviceIncorporateFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6750
      start: 6534
    functionDepth: 8
    functionLinenumber: 6534
    functionLinenumberEnd: 6750
    functionName: fu_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 15
    functionsReached:
    - g_ptr_array_find
    - fu_device_add_event
    - fu_device_add_guid_quirks
    - fu_device_set_proxy
    - fu_device_get_instance_str
    - FuDeviceClass*::incorporate
    - fu_device_add_parent_physical_id
    - fu_device_set_remove_delay
    - fu_device_get_id
    - fu_device_get_vendor
    - fu_device_set_fwupd_version
    - fu_device_set_vendor
    - fu_device_incorporate_instance_ids
    - FU_IS_DEVICE
    - fu_device_add_parent_backend_id
    - fu_device_get_metadata
    - fu_device_set_equivalent_id
    - fu_device_add_private_flag
    - fu_device_set_vid
    - fu_device_get_update_state
    - fu_device_set_metadata
    - fu_device_get_fwupd_version
    - fu_device_set_update_image
    - fu_device_set_required_free
    - g_return_if_fail
    - g_ptr_array_index
    - fu_device_set_modified_usec
    - fu_device_set_specialized_gtype
    - fu_device_get_parent_backend_ids
    - g_hash_table_iter_init
    - fu_device_set_backend_id
    - g_hash_table_iter_next
    - fu_device_set_update_request_id
    - fu_device_get_equivalent_id
    - fu_device_set_custom_flags
    - fu_device_set_physical_id
    - fu_device_get_icons
    - fwupd_guid_hash_string
    - fu_device_set_update_state
    - fwupd_device_incorporate
    - fu_device_set_proxy_guid
    - fu_device_set_logical_id
    - fu_device_set_backend
    - fu_device_add_icon
    - g_autoptr
    - FWUPD_DEVICE
    - fu_device_set_update_message
    - fwupd_device_set_serial
    - fu_device_get_instance_ids
    - fu_device_add_parent_guid
    - fu_device_get_update_error
    - fu_device_set_pid
    - fu_device_set_acquiesce_delay
    - fu_device_set_update_error
    - fu_device_has_private_flag
    - fu_device_set_created_usec
    - GET_PRIVATE
    - fu_device_set_context
    - fu_device_add_possible_plugin
    - fu_device_get_common_class_parents
    - fu_device_add_instance_str
    - fu_device_get_parent_physical_ids
    - fu_device_get_vendor_ids
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate(FuDevice *self, FuDevice *donor, FuDeviceIncorporateFlags
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6766,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6768,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6768,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6769,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6769,1
    - Dst: FuDeviceClass*::replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6774
      start: 6763
    functionDepth: 0
    functionLinenumber: 6763
    functionLinenumberEnd: 6774
    functionName: fu_device_replace
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::replace
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_replace(FuDevice *self, FuDevice *donor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6789,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6789,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6790,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6790,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6791,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6792,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6792,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6793,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6793,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - self
    - donor
    - flag
    argTypes:
    - FuDevice*
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6796
      start: 6786
    functionDepth: 6
    functionLinenumber: 6786
    functionLinenumberEnd: 6796
    functionName: fu_device_incorporate_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fwupd_device_flag_to_string
    - g_debug
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_remove_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_flag(FuDevice *self, FuDevice *donor, FwupdDeviceFlags
      flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6811,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6811,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6812,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6812,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6813,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6815,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6816,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6819
      start: 6807
    functionDepth: 1
    functionLinenumber: 6807
    functionLinenumberEnd: 6819
    functionName: fu_device_incorporate_from_component
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - XB_IS_NODE
    - fu_device_set_update_image
    - g_return_if_fail
    - xb_node_query_text
    - fu_device_set_update_message
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_from_component(FuDevice *self, XbNode *component)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6827,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6829,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6832
      start: 6821
    functionDepth: 3
    functionLinenumber: 6821
    functionLinenumberEnd: 6832
    functionName: fu_device_ensure_from_component_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_device_remove_private_flag
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_name(FuDevice *self, XbNode *component)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6840,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6842,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6834
    functionDepth: 3
    functionLinenumber: 6834
    functionLinenumberEnd: 6845
    functionName: fu_device_ensure_from_component_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_device_set_vendor
    - fu_device_remove_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_vendor(FuDevice *self, XbNode
      *component)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6853,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6854,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6858,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6860,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6861,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6862,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6863,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6865,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6869
      start: 6847
    functionDepth: 6
    functionLinenumber: 6847
    functionLinenumberEnd: 6869
    functionName: fu_device_ensure_from_component_signed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_remove_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - g_strcmp0
    - xb_node_query_text
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_signed(FuDevice *self, XbNode
      *component)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6877,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6879,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6882
      start: 6871
    functionDepth: 3
    functionLinenumber: 6871
    functionLinenumberEnd: 6882
    functionName: fu_device_ensure_from_component_icon
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_device_remove_private_flag
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_icon(FuDevice *self, XbNode *component)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6888,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6890,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6890,1
    - Dst: fu_device_set_custom_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6892,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6895
      start: 6884
    functionDepth: 7
    functionLinenumber: 6884
    functionLinenumberEnd: 6895
    functionName: fu_device_ensure_from_component_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_device_remove_private_flag
    - g_strsplit
    - fu_device_set_custom_flag
    - xb_node_query_text
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_flags(FuDevice *self, XbNode *component)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6900,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6902,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6904,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6906,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6908,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6910,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6912,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6914,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6916,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6918,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6920,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6924,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6926,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6928,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6930,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6932,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6934,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6936,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6938,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6940,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6942,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6944,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6946,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 1
    argNames:
    - cat
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6949
      start: 6897
    functionDepth: 0
    functionLinenumber: 6897
    functionLinenumberEnd: 6949
    functionName: fu_device_category_to_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_category_to_name(const gchar *cat)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6955,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6958,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6962,1
    - Dst: fu_device_category_to_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6963,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6963,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6968,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6969,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6973,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6973,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6976,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6977,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6977,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6983,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6983,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6984,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6988
      start: 6951
    functionDepth: 3
    functionLinenumber: 6951
    functionLinenumberEnd: 6988
    functionName: fu_device_ensure_from_component_name_category
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_get_text
    - fu_device_remove_private_flag
    - fu_device_add_private_flag
    - fu_device_get_id
    - xb_node_query
    - g_ptr_array_index
    - g_autoptr
    - fu_device_category_to_name
    - g_strcmp0
    - fu_device_get_plugin
    - g_info
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_name_category(FuDevice *self,
      XbNode *component)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6999
      start: 6990
    functionDepth: 0
    functionLinenumber: 6990
    functionLinenumberEnd: 6999
    functionName: _g_ptr_array_reverse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _g_ptr_array_reverse(GPtrArray *array)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7005,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7008,1
    - Dst: _g_ptr_array_reverse
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7011,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7013,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7014,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7014,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7021,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7022,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7023,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7025,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7025,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7026,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7028,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7031,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7031,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7032,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7034,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7036,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7036,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7038,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7043,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7044
      start: 7001
    functionDepth: 4
    functionLinenumber: 7001
    functionLinenumberEnd: 7044
    functionName: fu_device_ensure_from_component_verfmt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_lowest
    - fu_device_set_version_format
    - fu_device_set_version
    - _g_ptr_array_reverse
    - xb_node_get_text
    - fu_device_get_version_format
    - fu_device_remove_private_flag
    - fu_device_get_version_lowest_raw
    - fwupd_version_format_from_string
    - fu_device_get_version_bootloader_raw
    - xb_node_query
    - g_ptr_array_index
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_version_from_uint32
    - fu_device_get_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component_verfmt(FuDevice *self, XbNode
      *component)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7058,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7058,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7059,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7059,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7062,1
    - Dst: fu_device_ensure_from_component_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7063,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7064,1
    - Dst: fu_device_ensure_from_component_name_category
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7065,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7066,1
    - Dst: fu_device_ensure_from_component_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7067,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7068,1
    - Dst: fu_device_ensure_from_component_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7069,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7070,1
    - Dst: fu_device_ensure_from_component_signed
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7071,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7072,1
    - Dst: fu_device_ensure_from_component_verfmt
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7073,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7074,1
    - Dst: fu_device_ensure_from_component_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7076
      start: 7055
    functionDepth: 8
    functionLinenumber: 7055
    functionLinenumberEnd: 7076
    functionName: fu_device_ensure_from_component
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_ensure_from_component_icon
    - fu_device_ensure_from_component_vendor
    - XB_IS_NODE
    - fu_device_ensure_from_component_signed
    - fu_device_has_private_flag
    - g_return_if_fail
    - fu_device_ensure_from_component_name_category
    - fu_device_ensure_from_component_flags
    - fu_device_ensure_from_component_name
    - fu_device_ensure_from_component_verfmt
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_component(FuDevice *self, XbNode *component)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7090,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7090,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7091,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7091,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7094,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7096,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7100,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7101,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7107,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7109,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7111,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7113,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7115,1
    - Dst: fu_device_has_checksum
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7116,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7116,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7126,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7127,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7129,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7130,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - self
    - rel
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7133
      start: 7087
    functionDepth: 4
    functionLinenumber: 7087
    functionLinenumberEnd: 7133
    functionName: fu_device_ensure_from_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_set_version
    - xb_node_query_text_as_uint
    - xb_node_get_text
    - fu_device_remove_private_flag
    - xb_node_get_attr
    - XB_IS_NODE
    - fu_device_set_required_free
    - fu_device_has_private_flag
    - g_return_if_fail
    - xb_node_query
    - g_ptr_array_index
    - g_autoptr
    - fu_device_get_checksums
    - fu_device_has_checksum
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_release(FuDevice *self, XbNode *rel)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7153,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7154,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7154,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7155,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7156,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7160,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7161,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7162,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7167,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7168,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7169,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7172,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7173,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7174,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7179,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7180,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7181,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7187,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7188,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7194,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7195,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7201,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7202,1
    - Dst: fu_progress_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7210,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7211,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7219,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7220,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7221,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7222,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7227,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7227,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7230,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7231,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7231,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7232,1
    - Dst: fwupd_request_get_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7232,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7237,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7239,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7240,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7242,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7245,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7246,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 4
    argNames:
    - self
    - request
    - progress
    - error
    argTypes:
    - FuDevice*
    - FwupdRequest*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7249
      start: 7148
    functionDepth: 2
    functionLinenumber: 7148
    functionLinenumberEnd: 7249
    functionName: fu_device_emit_request
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_status
    - FU_IS_PROGRESS
    - fu_device_has_flag
    - fu_device_get_id
    - fu_device_get_plugin
    - g_return_val_if_fail
    - fwupd_request_set_device_id
    - FU_IS_DEVICE
    - g_set_error
    - g_debug
    - fu_device_set_update_image
    - fu_device_has_request_flag
    - FWUPD_IS_REQUEST
    - g_info
    - fwupd_request_get_kind
    - g_signal_emit
    - fwupd_request_get_id
    - fu_progress_has_flag
    - fwupd_request_get_message
    - fu_device_set_update_message
    - fwupd_request_has_flag
    - fwupd_request_get_image
    - g_set_error_literal
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_emit_request(FuDevice *self, FwupdRequest *request,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7254,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7257,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7258,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7259,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7260,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7262,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7263,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7264,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7265,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7272
      start: 7251
    functionDepth: 5
    functionLinenumber: 7251
    functionLinenumberEnd: 7272
    functionName: fu_device_flags_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_has_flag
    - fu_device_remove_flag
    - GET_PRIVATE
    - fu_device_ensure_inhibits
    linkageType: ''
    returnType: void
    signature: void fu_device_flags_notify_cb(FuDevice *self, GParamSpec *pspec, gpointer
      user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7277,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7281
      start: 7274
    functionDepth: 0
    functionLinenumber: 7274
    functionLinenumberEnd: 7281
    functionName: fu_device_ensure_instance_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_instance_hash(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7296,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7297,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7297,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7298,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7299,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7300,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7300,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7301
      start: 7293
    functionDepth: 1
    functionLinenumber: 7293
    functionLinenumberEnd: 7301
    functionName: fu_device_add_instance_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_str(FuDevice *self, const gchar *key, const
      gchar *value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7321
      start: 7303
    functionDepth: 0
    functionLinenumber: 7303
    functionLinenumberEnd: 7321
    functionName: fu_device_strsafe_instance_id_is_valid_char
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ascii_isprint
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_strsafe_instance_id_is_valid_char(gchar c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7327,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7327,1
    - Dst: fu_device_strsafe_instance_id_is_valid_char
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7337,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7339,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7343,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7350,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7357,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7358
      start: 7324
    functionDepth: 1
    functionLinenumber: 7324
    functionLinenumberEnd: 7358
    functionName: fu_device_strsafe_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - fu_device_strsafe_instance_id_is_valid_char
    - g_string_append_c
    - g_string_truncate
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_strsafe_instance_id(const gchar *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7374,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7375,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7376,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7377,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7378,1
    - Dst: fu_device_strsafe_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7380
      start: 7370
    functionDepth: 2
    functionLinenumber: 7370
    functionLinenumberEnd: 7380
    functionName: fu_device_add_instance_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_return_if_fail
    - fu_device_strsafe_instance_id
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_strsafe(FuDevice *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7395,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7396,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7396,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7397,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7398,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7399,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7400,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7402
      start: 7392
    functionDepth: 1
    functionLinenumber: 7392
    functionLinenumberEnd: 7402
    functionName: fu_device_add_instance_strup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_utf8_strup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_strup(FuDevice *self, const gchar *key,
      const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7417,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7418,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7418,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7419,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7420,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7421,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7421,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7422
      start: 7414
    functionDepth: 1
    functionLinenumber: 7414
    functionLinenumberEnd: 7422
    functionName: fu_device_add_instance_u4
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_strdup_printf
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_u4(FuDevice *self, const gchar *key, guint8
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7437,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7438,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7438,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7439,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7440,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7441,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7441,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7442
      start: 7434
    functionDepth: 1
    functionLinenumber: 7434
    functionLinenumberEnd: 7442
    functionName: fu_device_add_instance_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_strdup_printf
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_u8(FuDevice *self, const gchar *key, guint8
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7457,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7458,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7458,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7459,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7460,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7461,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7461,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7462
      start: 7454
    functionDepth: 1
    functionLinenumber: 7454
    functionLinenumberEnd: 7462
    functionName: fu_device_add_instance_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_strdup_printf
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_u16(FuDevice *self, const gchar *key, guint16
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7477,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7478,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7478,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7479,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7480,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7481,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7481,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7482
      start: 7474
    functionDepth: 1
    functionLinenumber: 7474
    functionLinenumberEnd: 7482
    functionName: fu_device_add_instance_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_hash_table_insert
    - fu_device_ensure_instance_hash
    - g_strdup_printf
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_u32(FuDevice *self, const gchar *key, guint32
      value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7508,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7509,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7512,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7512,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7514,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7515,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7517,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7519,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7523,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7525,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7527,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7529,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7537,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7538,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7540,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7547,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - self
    - error
    - subsystem
    argTypes:
    - FuDevice*
    - GError**
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7549
      start: 7505
    functionDepth: 5
    functionLinenumber: 7505
    functionLinenumberEnd: 7549
    functionName: fu_device_build_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - g_string_append_printf
    - g_string_new
    - va_end
    - fu_device_get_instance_str
    - fu_device_add_instance_id
    - GET_PRIVATE
    - va_start
    - g_autoptr
    - fu_device_get_parent
    - g_return_val_if_fail
    - g_string_append
    - va_arg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_build_instance_id(FuDevice *self, GError **error,
      const gchar *subsystem, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7573,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7576,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7576,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7578,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7579,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7582,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7588,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7590,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7594,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7596,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7604,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7605,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7607,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7614,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - self
    - flags
    - error
    - subsystem
    argTypes:
    - FuDevice*
    - FuDeviceInstanceFlag
    - GError**
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7566
    functionDepth: 4
    functionLinenumber: 7566
    functionLinenumberEnd: 7616
    functionName: fu_device_build_instance_id_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 17
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - g_string_append_printf
    - fu_device_add_instance_id_full
    - g_string_new
    - va_end
    - g_set_error_literal
    - GET_PRIVATE
    - va_start
    - g_autoptr
    - g_hash_table_lookup
    - g_return_val_if_fail
    - g_string_append
    - va_arg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_build_instance_id_full(FuDevice *self,\n\t\t\t\t
      FuDeviceInstanceFlag flags,\n\t\t\t\t GError **error,\n\t\t\t\t const gchar
      *subsystem,\n\t\t\t\t ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7632,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7633,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7635,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7635,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7636,1
    - Dst: fu_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7638,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7639,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7639,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7639,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7640,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7640,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7643,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7644,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7646,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7648,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7649,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7655
      start: 7629
    functionDepth: 3
    functionLinenumber: 7629
    functionLinenumberEnd: 7655
    functionName: fu_device_security_attr_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - fu_security_attr_new
    - fu_device_get_instance_private
    - g_steal_pointer
    - fu_device_get_plugin
    - fu_device_get_guids
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fwupd_security_attr_set_plugin
    - FU_DEVICE
    - fwupd_security_attr_add_guids
    - g_autoptr
    - fu_device_get_parent
    - fwupd_security_attr_add_guid
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_device_security_attr_new(FuDevice *self, const gchar *appstream_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7660,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7664
      start: 7657
    functionDepth: 0
    functionLinenumber: 7657
    functionLinenumberEnd: 7664
    functionName: fu_device_ensure_events
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_events(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7678,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7680,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7680,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7681,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7681,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7685,1
    - Dst: fu_device_ensure_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7689,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7690,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - event
    argTypes:
    - FuDevice*
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7691
      start: 7675
    functionDepth: 1
    functionLinenumber: 7675
    functionLinenumberEnd: 7691
    functionName: fu_device_add_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - FU_IS_DEVICE
    - g_object_ref
    - fu_device_add_event
    - g_return_if_fail
    - fu_device_ensure_events
    - GET_PRIVATE
    - FU_IS_DEVICE_EVENT
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_device_add_event(FuDevice *self, FuDeviceEvent *event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7707,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7710,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7711,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7715,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7718,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7719,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7722
      start: 7704
    functionDepth: 3
    functionLinenumber: 7704
    functionLinenumberEnd: 7722
    functionName: fu_device_save_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 31
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_add_event
    - g_debug
    - fu_device_save_event
    - GET_PRIVATE
    - g_autoptr
    - fu_device_event_new
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDeviceEvent
    signature: 'FuDeviceEvent *

      fu_device_save_event(FuDevice *self, const gchar *id)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7739,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7742,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7742,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7743,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7744,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7748,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7752,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7758,1
    - Dst: fu_device_event_build_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7763,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7765,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7766,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7766,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7774,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7775,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7775,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7776,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7789
      start: 7736
    functionDepth: 1
    functionLinenumber: 7736
    functionLinenumberEnd: 7789
    functionName: fu_device_load_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 31
    functionsReached:
    - FU_IS_DEVICE
    - g_set_error
    - g_debug
    - fu_device_load_event
    - g_set_error_literal
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    - fu_device_event_get_id
    - fu_device_event_build_id
    linkageType: ''
    returnType: FuDeviceEvent
    signature: 'FuDeviceEvent *

      fu_device_load_event(FuDevice *self, const gchar *id, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7807,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7809,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7809,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7813,1
    - Dst: fu_device_ensure_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7817
      start: 7804
    functionDepth: 1
    functionLinenumber: 7804
    functionLinenumberEnd: 7817
    functionName: fu_device_get_events
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_ensure_events
    - GET_PRIVATE
    - fu_device_get_events
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_events(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7831,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7833,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7833,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7837,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7845
      start: 7828
    functionDepth: 1
    functionLinenumber: 7828
    functionLinenumberEnd: 7845
    functionName: fu_device_clear_events
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_clear_events
    - g_return_if_fail
    - g_ptr_array_set_size
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_clear_events(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7861,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7863,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7863,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7864,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7864,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7866,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - target
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7868
      start: 7858
    functionDepth: 9
    functionLinenumber: 7858
    functionLinenumberEnd: 7868
    functionName: fu_device_set_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - fu_device_incorporate
    - g_return_if_fail
    - g_set_object
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_target(FuDevice *self, FuDevice *target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7874,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7876,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7877,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7878,1
    - Dst: g_date_time_new_from_unix_utc_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7879,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7879,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7881,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7881,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7882,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7884,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7885,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7886,1
    - Dst: FuDeviceClass*::add_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7892
      start: 7871
    functionDepth: 2
    functionLinenumber: 7871
    functionLinenumberEnd: 7892
    functionName: fu_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FuDeviceClass*::add_json
    - g_date_time_new_from_unix_utc
    - fu_device_get_created_usec
    - g_date_time_format_iso8601
    - json_builder_set_member_name
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_date_time_new_from_unix_utc_usec
    - json_builder_add_string_value
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: void
    signature: void fu_device_add_json(FuDevice *self, JsonBuilder *builder, FwupdCodecFlags
      flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7899,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7901,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7903,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7903,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7904,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7906,1
    - Dst: g_date_time_to_unix_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7906,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7909,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7909,1
    - Dst: FuDeviceClass*::from_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7922
      start: 7895
    functionDepth: 2
    functionLinenumber: 7895
    functionLinenumberEnd: 7922
    functionName: fu_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_date_time_new_from_iso8601
    - g_date_time_to_unix_usec
    - fu_device_set_created_usec
    - json_object_get_string_member_with_default
    - FuDeviceClass*::from_json
    - g_autoptr
    - FU_DEVICE_GET_CLASS
    - g_date_time_to_unix
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_from_json(FuDevice *self, JsonObject *json_object,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7927,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7928,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7929,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7930,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7932
      start: 7924
    functionDepth: 0
    functionLinenumber: 7924
    functionLinenumberEnd: 7932
    functionName: fu_device_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - GET_PRIVATE
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_device_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7937,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7938,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7958,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7959,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7961,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7977,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7978,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7980,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7996,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7997,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7999,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8014,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8019,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8028,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8033,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8042,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8047,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8056,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8061,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8069,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8074,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8083,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8088,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8097,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8102,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8111,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8116,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8125,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8130,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8139,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8144,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8153,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8160,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8169,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8176,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8185,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8192,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8201,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 7934
    functionDepth: 0
    functionLinenumber: 7934
    functionLinenumberEnd: 8209
    functionName: fu_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - FU_DEVICE_CLASS
    - g_object_class_install_property
    - g_param_spec_uint
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    - G_STRUCT_OFFSET
    linkageType: ''
    returnType: void
    signature: void fu_device_class_init(FuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8214,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8216,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8218,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8218,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8222
      start: 8211
    functionDepth: 0
    functionLinenumber: 8211
    functionLinenumberEnd: 8222
    functionName: fu_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    - FWUPD_DEVICE
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_device_init(FuDevice *self)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8227,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8228,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8231,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8234,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8235,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8236,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8238,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8238,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8243,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8243,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8245,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8247,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8249,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8251,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8253,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8255,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8257,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8259,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8261,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8263,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8265,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8267,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8268,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8269,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8270,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8271,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8272,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8273,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8274,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8275,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8276,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8277,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8278,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8280,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8281
      start: 8224
    functionDepth: 3
    functionLinenumber: 8224
    functionLinenumberEnd: 8281
    functionName: fu_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - g_hash_table_unref
    - fu_device_has_private_flag
    - G_OBJECT_CLASS
    - FU_DEVICE
    - GET_PRIVATE
    - g_free
    - G_OBJECT
    - g_signal_handler_disconnect
    - g_source_remove
    - g_object_remove_weak_pointer
    linkageType: ''
    returnType: void
    signature: void fu_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8295
      start: 8290
    functionDepth: 0
    functionLinenumber: 8290
    functionLinenumberEnd: 8295
    functionName: fu_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 93
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_new(FuContext *ctx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:44,1
    - Dst: __get_cpuid_count
      Src: /src/fwupd/libfwupdplugin/fu-common.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - leaf
    - eax
    - ebx
    - ecx
    - edx
    - error
    argTypes:
    - guint32
    - guint32*
    - guint32*
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: fu_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - __get_cpuid_count
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpuid(guint32 leaf, guint32 *eax, guint32 *ebx, guint32
      *ecx, guint32 *edx, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-common.c:78,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-common.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common.c:80,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-common.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:82,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-common.c:84,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common.c:87,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common.c:87,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common.c:89,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common.c:92,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-common.c:94,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-common.c:95,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-common.c:96,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: fu_cpu_get_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 2
    functionsReached:
    - g_hash_table_insert
    - g_file_get_contents
    - g_auto
    - fu_strsplit
    - fu_strstrip
    - g_steal_pointer
    - g_build_filename
    - g_hash_table_new_full
    - g_strsplit
    - g_strdup
    - g_autoptr
    - fu_path_from_kind
    - g_return_val_if_fail
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_cpu_get_attrs(GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-common.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: fu_cpu_get_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 0
    functionsReached:
    - fu_cpuid
    linkageType: ''
    returnType: FuCpuVendor
    signature: FuCpuVendor fu_cpu_get_vendor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_get_memory_size_impl
      Src: /src/fwupd/libfwupdplugin/fu-common.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: fu_common_get_memory_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 1
    functionsReached:
    - fu_common_get_memory_size_impl
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_common_get_memory_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_get_kernel_cmdline_impl
      Src: /src/fwupd/libfwupdplugin/fu-common.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: fu_common_get_kernel_cmdline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 1
    functionsReached:
    - fu_common_get_kernel_cmdline_impl
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_get_olson_timezone_id_impl
      Src: /src/fwupd/libfwupdplugin/fu-common.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: fu_common_get_olson_timezone_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 1
    functionsReached:
    - fu_common_get_olson_timezone_id_impl
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id(GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - value
    - alignment
    argTypes:
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 220
    functionName: fu_common_align_up
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gsize
    signature: gsize fu_common_align_up(gsize value, guint8 alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - power_state
    argTypes:
    - FuPowerState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: fu_power_state_is_ac
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_power_state_is_ac(FuPowerState power_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-common.c:256,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-common.c:262,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/libfwupdplugin/fu-common.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - perror
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: fu_error_convert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 12
    functionsReached:
    - g_quark_to_string
    - g_critical
    - fwupd_error_convert
    linkageType: ''
    returnType: void
    signature: void fu_error_convert(GError **perror)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-common.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: fu_xmlb_builder_insert_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 23
    functionsReached:
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: void
    signature: void fu_xmlb_builder_insert_kv(XbBuilderNode *bn, const gchar *key,
      const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-common.c:306,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-common.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: fu_xmlb_builder_insert_kx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 22
    functionsReached:
    - g_strdup_printf
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: void
    signature: void fu_xmlb_builder_insert_kx(XbBuilderNode *bn, const gchar *key,
      guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-common.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: fu_xmlb_builder_insert_kb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 4
    functionsReached:
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: void
    signature: void fu_xmlb_builder_insert_kb(XbBuilderNode *bn, const gchar *key,
      gboolean value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/fwupd/libfwupdplugin/fu-common.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: fu_snap_is_in_snap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_snap_is_in_snap(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:32,1
    - Dst: fu_kenv_get_string
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:33,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:35,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: fu_hwids_kenv_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c
    functionUses: 0
    functionsReached:
    - fu_hwids_add_value
    - fu_kenv_get_string
    - g_debug
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_kenv_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: fu_test_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-test-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_device_init(FuTestDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: fu_test_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-test-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_device_class_init(FuTestDeviceClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:34,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:37,1
    - Dst: fu_udev_device_get_devpath
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:39,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:39,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:42,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:44,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:44,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:45,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:45,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:46,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:53,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:63,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 9
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: fu_block_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_incorporate
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_build_instance_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_probe
    - fu_udev_device_get_devpath
    - fu_device_build_instance_id_full
    - fu_device_set_physical_id
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_block_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fu_block_device_ioctl_buf_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_block_device_ioctl_buf_cb(FuIoctl *self, gpointer ptr,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: fu_block_device_ioctl_cdb_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_block_device_ioctl_cdb_cb(FuIoctl *self, gpointer ptr,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: fu_block_device_ioctl_sense_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_block_device_ioctl_sense_cb(FuIoctl *self,\n\t\t\t       gpointer
      ptr,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:130,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:130,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:130,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:132,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:135,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:136,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:137,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:138,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:153,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - cdb
    - cdbsz
    - error
    argTypes:
    - FuBlockDevice*
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 173
    functionName: fu_block_device_sg_io_cmd_none
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_block_device_sg_io_cmd_none(FuBlockDevice *self, const
      guint8 *cdb, guint8 cdbsz, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:207,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:207,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:207,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:209,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:212,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:213,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:214,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:215,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:216,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:221,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:231,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:243,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - cdb
    - cdbsz
    - buf
    - bufsz
    - error
    argTypes:
    - FuBlockDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 254
    functionName: fu_block_device_sg_io_cmd_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_block_device_sg_io_cmd_read(FuBlockDevice *self,\n\t\t\t
      \      const guint8 *cdb,\n\t\t\t       gsize cdbsz,\n\t\t\t       guint8 *buf,\n\t\t\t
      \      gsize bufsz,\n\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:288,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:288,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:288,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:290,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:293,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:294,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:295,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:296,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:297,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:312,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:324,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - cdb
    - cdbsz
    - buf
    - bufsz
    - error
    argTypes:
    - FuBlockDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 335
    functionName: fu_block_device_sg_io_cmd_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_block_device_sg_io_cmd_write(FuBlockDevice *self,\n\t\t\t\tconst
      guint8 *cdb,\n\t\t\t\tgsize cdbsz,\n\t\t\t\tconst guint8 *buf,\n\t\t\t\tgsize
      bufsz,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: fu_block_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_block_device_init(FuBlockDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlockDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: fu_block_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_block_device_class_init(FuBlockDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 1197
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:51,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:52,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:53,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:54,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:55,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: fu_hid_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_bool
    - GET_PRIVATE
    - FU_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:62,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:63,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:66,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: fu_hid_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:77,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:80,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:80,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: fu_hid_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_interface
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    - FU_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:103,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:106,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:106,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:107,1
    - Dst: fu_usb_device_get_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:109,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:109,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:114,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:114,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:115,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:116,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:117,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 99
    functionDepth: 9
    functionLinenumber: 99
    functionLinenumberEnd: 126
    functionName: fu_hid_device_parse_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_bytes
    - g_steal_pointer
    - FU_HID_DEVICE
    - g_strdup_printf
    - fu_usb_device_get_hid_descriptors
    - g_ptr_array_index
    - fu_hid_descriptor_new
    - g_autoptr
    - FU_USB_DEVICE
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_firmware_parse_bytes
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_hid_device_parse_descriptors(FuHidDevice *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:132,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:132,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:134,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:135,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:137,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:140,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:142,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:147,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - self
    - iface
    - error
    argTypes:
    - FuHidDevice*
    - FuUsbInterface*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: fu_hid_device_autodetect_eps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_set_error_literal
    - fu_usb_interface_get_endpoints
    - GET_PRIVATE
    - fu_usb_endpoint_get_direction
    - g_autoptr
    - fu_usb_endpoint_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_autodetect_eps(FuHidDevice *self, FuUsbInterface
      *iface, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:159,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:162,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:166,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:168,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:168,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:173,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:175,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:177,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:177,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 187
    functionName: fu_hid_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_DEVICE_CLASS
    - FU_HID_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_get_vendor
    - fu_device_get_name
    - fu_device_set_vendor
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:192,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:193,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:197,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:201,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:206,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:207,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:207,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:211,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:212,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:213,1
    - Dst: fu_hid_device_autodetect_eps
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:216,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:223,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:234,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:234,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 189
    functionDepth: 8
    functionLinenumber: 189
    functionLinenumberEnd: 241
    functionName: fu_hid_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - FU_DEVICE_CLASS
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - fu_hid_device_autodetect_eps
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_usb_device_get_spec
    - g_autoptr
    - fu_usb_device_get_interfaces
    - fu_usb_device_claim_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_open(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:246,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:249,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:252,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:252,1
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:258,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:258,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:262,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:263,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:264,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:266,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:267,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 275
    functionName: fu_hid_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - FU_HID_DEVICE
    - g_error_matches
    - FU_DEVICE_CLASS
    - fu_usb_device_release_interface
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_usb_device_get_spec
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:293,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:294,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - interface_number
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: fu_hid_device_set_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 1
    functionsReached:
    - FU_HID_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_set_interface(FuHidDevice *self, guint8 interface_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:313,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: fu_hid_device_get_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_HID_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_hid_device_get_interface(FuHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:332,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:333,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ep_addr_in
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: fu_hid_device_set_ep_addr_in
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_set_ep_addr_in(FuHidDevice *self, guint8 ep_addr_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:352,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: fu_hid_device_get_ep_addr_in
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_HID_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_hid_device_get_ep_addr_in(FuHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:371,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:372,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ep_addr_out
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: fu_hid_device_set_ep_addr_out
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_set_ep_addr_out(FuHidDevice *self, guint8 ep_addr_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:391,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: fu_hid_device_get_ep_addr_out
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_HID_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_hid_device_get_ep_addr_out(FuHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:407,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:408,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuHidDevice*
    - FuHidDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: fu_hid_device_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_add_flag(FuHidDevice *self, FuHidDeviceFlags flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:423,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:429,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:430,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:432,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:438,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:438,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:446,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:457,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:460,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:461,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:461,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:474,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuHidDevice*
    - FuHidDeviceRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 488
    functionName: fu_hid_device_set_report_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - g_set_error_literal
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_set_report_internal(FuHidDevice *self, FuHidDeviceRetryHelper
      *helper, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:493,1
    - Dst: fu_hid_device_set_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: fu_hid_device_set_report_internal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report_internal
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_set_report_internal_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:526,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:526,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:527,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:528,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:529,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:540,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:540,1
    - Dst: fu_hid_device_set_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - self
    - value
    - buf
    - bufsz
    - timeout
    - flags
    - error
    argTypes:
    - FuHidDevice*
    - guint8
    - guint8*
    - gsize
    - guint
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 549
    functionName: fu_hid_device_set_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_HID_DEVICE
    - fu_hid_device_set_report_internal
    - FU_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_device_set_report(FuHidDevice *self,\n\t\t\t guint8
      value,\n\t\t\t guint8 *buf,\n\t\t\t gsize bufsz,\n\t\t\t guint timeout,\n\t\t\t
      FuHidDeviceFlags flags,\n\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:554,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:561,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:567,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:567,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:576,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:577,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:586,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:589,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:590,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:590,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:603,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:606,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuHidDevice*
    - FuHidDeviceRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 618
    functionName: fu_hid_device_get_report_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - g_set_error_literal
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_get_report_internal(FuHidDevice *self, FuHidDeviceRetryHelper
      *helper, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:623,1
    - Dst: fu_hid_device_get_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: fu_hid_device_get_report_internal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report_internal
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hid_device_get_report_internal_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:654,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:656,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:657,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:658,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:659,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:670,1
    - Dst: fu_hid_device_get_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - self
    - value
    - buf
    - bufsz
    - timeout
    - flags
    - error
    argTypes:
    - FuHidDevice*
    - guint8
    - guint8*
    - gsize
    - guint
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 679
    functionName: fu_hid_device_get_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_HID_DEVICE
    - fu_hid_device_get_report_internal
    - FU_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hid_device_get_report(FuHidDevice *self,\n\t\t\t guint8
      value,\n\t\t\t guint8 *buf,\n\t\t\t gsize bufsz,\n\t\t\t guint timeout,\n\t\t\t
      FuHidDeviceFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: fu_hid_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_init(FuHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:691,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:692,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:709,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 717
    functionName: fu_hid_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hid_device_class_init(FuHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1214
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:83,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:87,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:88,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:89,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:92,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:93,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:94,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: fu_context_get_fdt_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_new_for_path
    - g_build_filename
    - g_file_test
    - fu_path_from_kind
    linkageType: ''
    returnType: GFile
    signature: 'GFile *

      fu_context_get_fdt_file(GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:124,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:126,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:131,1
    - Dst: fu_fdt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:132,1
    - Dst: fu_context_get_fdt_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:132,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:135,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:139,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:142,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: fu_context_get_fdt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - FU_IS_CONTEXT
    - g_prefix_error
    - GET_PRIVATE
    - fu_fdt_firmware_new
    - g_autoptr
    - g_return_val_if_fail
    - fu_firmware_parse_file
    - fu_context_get_fdt_file
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_context_get_fdt(FuContext *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:163,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: fu_context_get_efivars
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 15
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_context_get_efivars(FuContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:185,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:186,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:189,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:192,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:196,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - count
    - error
    argTypes:
    - FuContext*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 207
    functionName: fu_context_efivars_check_free_space
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_efivars_space_free
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_format_size
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_efivars_check_free_space(FuContext *self, gsize
      count, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:223,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: fu_context_get_smbios
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuSmbios
    signature: 'FuSmbios *

      fu_context_get_smbios(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:240,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:241,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: fu_context_get_hwids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuHwids
    signature: 'FuHwids *

      fu_context_get_hwids(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:259,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: fu_context_get_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuConfig
    signature: 'FuConfig *

      fu_context_get_config(FuContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:287,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:288,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:288,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:289,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:290,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - type
    - length
    - offset
    - error
    argTypes:
    - FuContext*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: fu_context_get_smbios_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_critical
    - fu_smbios_get_string
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_context_get_smbios_string(FuContext *self,\n\t\t\t     guint8
      type,\n\t\t\t     guint8 length,\n\t\t\t     guint8 offset,\n\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:314,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:314,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:317,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:318,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:319,1
    - Dst: fu_smbios_get_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - type
    - length
    - error
    argTypes:
    - FuContext*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: fu_context_get_smbios_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - g_set_error_literal
    - GET_PRIVATE
    - g_critical
    - fu_smbios_get_data
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_smbios_data(FuContext *self, guint8 type, guint8 length, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:350,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:350,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:351,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:352,1
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - type
    - length
    - offset
    - error
    argTypes:
    - FuContext*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 356
    functionName: fu_context_get_smbios_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - fu_smbios_get_integer
    - GET_PRIVATE
    - g_critical
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: guint
    signature: "guint fu_context_get_smbios_integer(FuContext *self,\n\t\t\t      guint8
      type,\n\t\t\t      guint8 length,\n\t\t\t      guint8 offset,\n\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:370,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:371,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:371,1
    - Dst: fu_bios_settings_setup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: fu_context_reload_bios_settings
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    - fu_bios_settings_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_reload_bios_settings(FuContext *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:389,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:389,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: fu_context_get_bios_settings
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 8
    functionsReached:
    - FU_IS_CONTEXT
    - g_object_ref
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuBiosSettings
    signature: 'FuBiosSettings *

      fu_context_get_bios_settings(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:407,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:408,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:408,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:409,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: fu_context_get_bios_setting
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    - fu_bios_settings_get_attr
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fu_context_get_bios_setting(FuContext *self, const gchar *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:426,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:428,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:428,1
    - Dst: fu_bios_settings_get_pending_reboot
      Src: /src/fwupd/libfwupdplugin/fu-context.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: fu_context_get_bios_setting_pending_reboot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    - fu_bios_settings_get_pending_reboot
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_get_bios_setting_pending_reboot(FuContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:447,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: fu_context_get_chassis_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuSmbiosChassisKind
    signature: FuSmbiosChassisKind fu_context_get_chassis_kind(FuContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:463,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:464,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - chassis_kind
    argTypes:
    - FuContext*
    - FuSmbiosChassisKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: fu_context_set_chassis_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_context_set_chassis_kind(FuContext *self, FuSmbiosChassisKind
      chassis_kind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:482,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:483,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:483,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:484,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:485,1
    - Dst: fu_hwids_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-context.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: fu_context_has_hwid_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_critical
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_hwids_has_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_has_hwid_guid(FuContext *self, const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:505,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:506,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:506,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:507,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:508,1
    - Dst: fu_hwids_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-context.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 512
    functionName: fu_context_get_hwid_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_critical
    - fu_hwids_get_guids
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_hwid_guids(FuContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:529,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:530,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:530,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:531,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:532,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:533,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/libfwupdplugin/fu-context.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: fu_context_get_hwid_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - FU_IS_CONTEXT
    - fu_hwids_get_value
    - GET_PRIVATE
    - g_critical
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_get_hwid_value(FuContext *self, const gchar *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:555,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:557,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:557,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:558,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:559,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:561,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:562,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:563,1
    - Dst: fu_hwids_get_replace_values
      Src: /src/fwupd/libfwupdplugin/fu-context.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: fu_context_get_hwid_replace_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - fu_hwids_get_replace_values
    - FU_IS_CONTEXT
    - g_set_error_literal
    - GET_PRIVATE
    - g_critical
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_get_hwid_replace_value(FuContext *self, const gchar *keys, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:582,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:584,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:584,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:585,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:586,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:590,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:590,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 591
    functionName: fu_context_add_runtime_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_hash_table_insert
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_context_add_runtime_version(FuContext *self, const gchar *component_id,
      const gchar *version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:607,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:609,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:610,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component_id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: fu_context_get_runtime_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_get_runtime_version(FuContext *self, const gchar *component_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:630,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:631,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: fu_context_get_runtime_versions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_context_get_runtime_versions(FuContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:648,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:650,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:650,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:651,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:652,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:656,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:656,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 657
    functionName: fu_context_add_compile_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_context_add_compile_version(FuContext *self, const gchar *component_id,
      const gchar *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:672,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:673,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 675
    functionName: fu_context_get_compile_versions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_context_get_compile_versions(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 683
    functionName: fu_context_udev_plugin_names_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_context_udev_plugin_names_sort_cb(gconstpointer a, gconstpointer
      b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:700,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:702,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:704,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:704,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:705,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:708,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-context.c:709,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context.c:710,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:713,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:717,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:718,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:721,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:721,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-context.c:722,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:728,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:730,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:730,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:731,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:732,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:733,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:735,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - subsystem
    - plugin_name
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 738
    functionName: fu_context_add_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 5
    functionsReached:
    - g_hash_table_insert
    - g_info
    - g_auto
    - g_ptr_array_sort
    - g_steal_pointer
    - FU_IS_CONTEXT
    - g_strsplit
    - g_return_if_fail
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - g_strv_length
    - GET_PRIVATE
    - g_strcmp0
    - g_strdup
    - g_hash_table_lookup
    - g_ptr_array_add
    - fu_context_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_context_add_udev_subsystem(FuContext *self, const gchar *subsystem,
      const gchar *plugin_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:757,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:759,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:760,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:760,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:762,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:762,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:763,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:766,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-context.c:767,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:768,1
    - Dst: g_ptr_array_extend
      Src: /src/fwupd/libfwupdplugin/fu-context.c:770,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:777,1
    - Dst: g_ptr_array_extend
      Src: /src/fwupd/libfwupdplugin/fu-context.c:779,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:783,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 793
    functionName: fu_context_get_plugin_names_for_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_auto
    - g_steal_pointer
    - FU_IS_CONTEXT
    - g_strsplit
    - g_hash_table_lookup
    - g_strv_length
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_extend
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_context_get_plugin_names_for_udev_subsystem(FuContext
      *self,\n\t\t\t\t\t       const gchar *subsystem,\n\t\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:809,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-context.c:809,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:810,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:810,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:812,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:812,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:816,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:816,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 819
    functionName: fu_context_get_udev_subsystems
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_steal_pointer
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_udev_subsystems(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:837,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:838,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:838,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:839,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:840,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-context.c:841,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:842,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:842,1
    - Dst: GSIZE_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-context.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - id
    - gtype
    argTypes:
    - FuContext*
    - gchar*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 843
    functionName: fu_context_add_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_hash_table_insert
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - GSIZE_TO_POINTER
    - g_type_ensure
    linkageType: ''
    returnType: void
    signature: void fu_context_add_firmware_gtype(FuContext *self, const gchar *id,
      GType gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:859,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:860,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:860,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:861,1
    - Dst: GPOINTER_TO_SIZE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:862,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: fu_context_get_firmware_gtype_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - FU_IS_CONTEXT
    - GPOINTER_TO_SIZE
    - GET_PRIVATE
    - g_hash_table_lookup
    - g_return_val_if_fail
    linkageType: ''
    returnType: GType
    signature: GType fu_context_get_firmware_gtype_by_id(FuContext *self, const gchar
      *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 871
    functionName: fu_context_gtypes_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_context_gtypes_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:886,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:887,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:888,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-context.c:888,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:890,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:890,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:894,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:894,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-context.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 898
    functionName: fu_context_get_firmware_gtype_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - g_ptr_array_sort
    - FU_IS_CONTEXT
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - g_hash_table_get_keys
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_firmware_gtype_ids(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:913,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:914,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:915,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-context.c:915,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:917,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:917,1
    - Dst: GPOINTER_TO_SIZE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:920,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-context.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 924
    functionName: fu_context_get_firmware_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_array_new
    - GPOINTER_TO_SIZE
    - g_array_append_val
    - GET_PRIVATE
    - g_autoptr
    - g_hash_table_get_values
    - g_return_val_if_fail
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_context_get_firmware_gtypes(FuContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:941,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:942,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:942,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:943,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-context.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 947
    functionName: fu_context_add_quirk_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - fu_quirks_add_possible_key
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_context_add_quirk_key(FuContext *self, const gchar *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:964,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:966,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:966,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:967,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:968,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - guid
    - key
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 4
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: fu_context_lookup_quirk_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    - fu_quirks_lookup_by_id
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_lookup_quirk_by_id(FuContext *self, const gchar *guid, const gchar
      *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuContextQuirkLookupHelper*::iter_cb
      Src: /src/fwupd/libfwupdplugin/fu-context.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 989
    functionName: fu_context_lookup_quirk_by_id_iter_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FuContextQuirkLookupHelper*::iter_cb
    linkageType: ''
    returnType: void
    signature: "void fu_context_lookup_quirk_by_id_iter_cb(FuQuirks *self,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      FuContextQuirkSource
      source,\n\t\t\t\t      gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1012,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1018,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1018,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1020,1
    - Dst: fu_quirks_lookup_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - self
    - guid
    - key
    - iter_cb
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextLookupIter
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1005
    functionDepth: 4
    functionLinenumber: 1005
    functionLinenumberEnd: 1026
    functionName: fu_context_lookup_quirk_by_id_iter
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - fu_quirks_lookup_by_id_iter
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_context_lookup_quirk_by_id_iter(FuContext *self,\n\t\t\t\t
      \  const gchar *guid,\n\t\t\t\t   const gchar *key,\n\t\t\t\t   FuContextLookupIter
      iter_cb,\n\t\t\t\t   gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1039,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1039,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1041
    functionName: fu_context_security_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - g_signal_emit
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_context_security_changed(FuContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1054,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1054,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: fu_context_housekeeping
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_signal_emit
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_context_housekeeping(FuContext *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1063,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1064,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1065,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1067,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1067,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1069,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1071,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1076,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1077,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1077,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1078,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1078,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1079,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1079,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1081,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1081,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1085,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1085,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1086,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1086,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1090
    functionName: fu_context_detect_full_disk_encryption
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_variant_get_string
    - FU_IS_CONTEXT
    - g_dbus_proxy_get_cached_property
    - g_return_if_fail
    - fu_common_get_block_devices
    - g_ptr_array_index
    - GET_PRIVATE
    - g_autoptr
    - g_strcmp0
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_detect_full_disk_encryption(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1099,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1101,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1101,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1103,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1105
    functionName: fu_context_hwid_quirk_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_hash_table_add
    - g_strsplit
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: "void fu_context_hwid_quirk_cb(FuContext *self,\n\t\t\t const gchar
      *key,\n\t\t\t const gchar *value,\n\t\t\t FuContextQuirkSource source,\n\t\t\t
      gpointer user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1142,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1143,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1146,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1147,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1148,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1149,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1150,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1151,1
    - Dst: fu_config_load
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1160,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1161,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1162,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1169,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1170,1
    - Dst: fu_hwids_setup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1172,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1173,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1174,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1177,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1179,1
    - Dst: fu_context_lookup_quirk_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1180,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1186,1
    - Dst: fu_context_detect_full_disk_encryption
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1188,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1189,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1191,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1192,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1193,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuContext*
    - FuProgress*
    - FuContextHwidFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1120
    functionDepth: 9
    functionLinenumber: 1120
    functionLinenumberEnd: 1198
    functionName: fu_context_load_hwinfo
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - fu_context_add_udev_subsystem
    - fu_hwids_setup
    - g_debug
    - FU_IS_CONTEXT
    - fu_progress_add_step
    - fu_context_lookup_quirk_by_id_iter
    - g_ptr_array_index
    - fu_progress_set_id
    - g_info
    - fu_context_reload_bios_settings
    - fu_progress_step_done
    - func
    - g_autoptr
    - fu_context_get_hwid_guids
    - g_warning
    - fu_context_add_flag
    - GET_PRIVATE
    - fu_config_load
    - fu_context_detect_full_disk_encryption
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_context_load_hwinfo(FuContext *self,\n\t\t       FuProgress
      *progress,\n\t\t       FuContextHwidFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1215,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1216,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1218
    functionName: fu_context_has_hwid_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - g_hash_table_lookup
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_has_hwid_flag(FuContext *self, const gchar *flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1238,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1238,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1239,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1242,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuContext*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1232
    functionDepth: 5
    functionLinenumber: 1232
    functionLinenumberEnd: 1247
    functionName: fu_context_load_quirks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 8
    functionsReached:
    - g_warning
    - FU_IS_CONTEXT
    - fu_quirks_load
    - GET_PRIVATE
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_load_quirks(FuContext *self, FuQuirksLoadFlags
      flags, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1263,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1265
    functionName: fu_context_get_power_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuPowerState
    signature: FuPowerState fu_context_get_power_state(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1279,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1280,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1280,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1284,1
    - Dst: fu_power_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1284,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1285,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - power_state
    argTypes:
    - FuContext*
    - FuPowerState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1286
    functionName: fu_context_set_power_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - fu_power_state_to_string
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_set_power_state(FuContext *self, FuPowerState power_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1302,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1304
    functionName: fu_context_get_lid_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuLidState
    signature: FuLidState fu_context_get_lid_state(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1318,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1319,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1319,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1323,1
    - Dst: fu_lid_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1323,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1324,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - lid_state
    argTypes:
    - FuContext*
    - FuLidState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1325
    functionName: fu_context_set_lid_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - fu_lid_state_to_string
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_set_lid_state(FuContext *self, FuLidState lid_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1340,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1341,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1343
    functionName: fu_context_get_display_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDisplayState
    signature: FuDisplayState fu_context_get_display_state(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1357,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1358,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1358,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1362,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1362,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1363,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - display_state
    argTypes:
    - FuContext*
    - FuDisplayState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1364
    functionName: fu_context_set_display_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - fu_display_state_to_string
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_set_display_state(FuContext *self, FuDisplayState display_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1379,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1380,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1382
    functionName: fu_context_get_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_context_get_battery_level(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1396,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1397,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1397,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1398,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1402,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1403,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FuContext*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1404
    functionName: fu_context_set_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_set_battery_level(FuContext *self, guint battery_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1419,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1420,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1422
    functionName: fu_context_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_context_get_battery_threshold(FuContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1436,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1437,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1437,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1438,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1442,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1443,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FuContext*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1444
    functionName: fu_context_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_context_set_battery_threshold(FuContext *self, guint battery_threshold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1458,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1459,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1459,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1463,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1464
    functionName: fu_context_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_context_add_flag(FuContext *context, FuContextFlags flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1478,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1479,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1479,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1483,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1484
    functionName: fu_context_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_context_remove_flag(FuContext *context, FuContextFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1501,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1503
    functionName: fu_context_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 53
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_has_flag(FuContext *context, FuContextFlags flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1517,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1519,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1519,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1520,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1520,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1525,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1525,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1525,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1526,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1526,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1532,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - volume
    argTypes:
    - FuContext*
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1533
    functionName: fu_context_add_esp_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - g_debug
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_ptr_array_index
    - fu_volume_get_id
    - GET_PRIVATE
    - g_strcmp0
    - g_ptr_array_add
    - FU_IS_VOLUME
    linkageType: ''
    returnType: void
    signature: void fu_context_add_esp_volume(FuContext *self, FuVolume *volume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1545,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1546,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1546,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1547,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1548,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - location
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1550
    functionName: fu_context_set_esp_location
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_context_set_esp_location(FuContext *self, const gchar *location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1564,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1566
    functionName: fu_context_get_esp_location
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_get_esp_location(FuContext *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1584,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1588,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1589,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1591,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1591,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1592,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1596,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1599,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1601,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1601,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1602,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1603,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1604,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1605,1
    - Dst: fu_volume_new_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1609,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1611,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1614,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1615,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1616,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1618,1
    - Dst: fu_volume_new_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1623,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1625,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1628,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1629,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1630,1
    - Dst: fu_volume_is_internal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1632,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1634,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1640,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1643,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1646,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1654,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1655
    functionName: fu_context_get_esp_volumes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_ptr_array_ref
    - g_debug
    - g_getenv
    - fu_context_add_esp_volume
    - fu_volume_get_id_type
    - FU_IS_CONTEXT
    - fu_volume_new_by_kind
    - fu_volume_is_internal
    - fu_volume_new_from_mount_path
    - g_ptr_array_index
    - fu_common_get_block_devices
    - GET_PRIVATE
    - g_set_error_literal
    - g_autoptr
    - fu_volume_set_partition_uuid
    - fu_volume_set_partition_kind
    - g_return_val_if_fail
    - g_strcmp0
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_esp_volumes(FuContext *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1660,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1667,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1668,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1670,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - esp
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1671
    functionName: fu_context_is_esp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_volume_get_mount_point
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_is_esp(FuVolume *esp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1678,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1679,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1683,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1689,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1693,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1694,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1695,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1698,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1700,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1702,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1708,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1709,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - esp
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1673
    functionDepth: 3
    functionLinenumber: 1673
    functionLinenumberEnd: 1716
    functionName: fu_context_is_esp_linux
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - g_path_get_basename
    - g_strjoinv
    - g_utf8_strdown
    - g_ptr_array_index
    - g_set_error_literal
    - fu_volume_get_mount_point
    - g_str_has_suffix
    - g_autoptr
    - g_info
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_is_esp_linux(FuVolume *esp, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1722,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1722,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1723,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1729
    functionName: fu_context_sort_esp_score_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup
    - GPOINTER_TO_UINT
    linkageType: ''
    returnType: gint
    signature: gint fu_context_sort_esp_score_cb(gconstpointer a, gconstpointer b,
      gpointer user_data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1747,1
    - Dst: fu_context_get_esp_location
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1748,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1751,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1757,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1766,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1766,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1767,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1767,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1772,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1773,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1776,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1778,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1784,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1785,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1786,1
    - Dst: fu_context_is_esp
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1793,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1794,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1794,1
    - Dst: fu_volume_get_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1799,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1802,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1803,1
    - Dst: fu_context_is_esp_linux
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1807,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1808,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1812,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1812,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1815,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1816,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1823,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1825,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1826,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1826,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1827,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1827,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1829,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1833,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1834,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1837,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1843,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1845,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1846,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1857,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1857,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1743
    functionDepth: 4
    functionLinenumber: 1743
    functionLinenumberEnd: 1858
    functionName: fu_context_get_default_esp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - fu_context_is_esp_linux
    - g_string_new
    - GPOINTER_TO_UINT
    - g_hash_table_lookup
    - fu_context_is_esp
    - g_string_append_printf
    - g_set_error
    - g_hash_table_size
    - g_debug
    - g_object_ref
    - fu_context_get_esp_location
    - g_hash_table_new
    - fu_context_get_esp_volumes
    - g_ptr_array_index
    - fu_volume_get_id
    - fu_volume_get_size
    - g_ptr_array_sort_with_data
    - fu_volume_get_partition_kind
    - g_autoptr
    - g_warning
    - fu_volume_locker
    - g_set_error_literal
    - fu_volume_get_mount_point
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_context_get_default_esp(FuContext *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1877,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1879,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1879,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1880,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1881,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1883,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1887,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1888,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1889,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1891,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1893,1
    - Dst: fu_efi_hard_drive_device_path_compare
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1896,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1898,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1902,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - dp
    - error
    argTypes:
    - FuContext*
    - FuEfiHardDriveDevicePath*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1872
    functionDepth: 4
    functionLinenumber: 1872
    functionLinenumberEnd: 1904
    functionName: fu_context_get_esp_volume_by_hard_drive_device_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_set_error
    - fu_efi_hard_drive_device_path_new_from_volume
    - g_debug
    - FU_IS_CONTEXT
    - fu_context_get_esp_volumes
    - g_ptr_array_index
    - fu_efi_hard_drive_device_path_compare
    - g_autoptr
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVolume
    signature: "FuVolume *\nfu_context_get_esp_volume_by_hard_drive_device_path(FuContext
      *self,\n\t\t\t\t\t\t    FuEfiHardDriveDevicePath *dp,\n\t\t\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1909,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1909,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1910,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1910,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1911,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1912,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1913,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1906
    functionDepth: 4
    functionLinenumber: 1906
    functionLinenumberEnd: 1917
    functionName: fu_context_esp_load_pe_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_file_new_for_path
    - g_prefix_error
    - fu_pefile_firmware_new
    - g_autoptr
    - fu_firmware_set_filename
    - fu_firmware_parse_file
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_context_esp_load_pe_file(const gchar *filename, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1923,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1926,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1929,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1932,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1935,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - app_name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1941
    functionName: fu_context_build_uefi_basename_for_arch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_build_uefi_basename_for_arch(const gchar *app_name)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1950,1
    - Dst: fu_context_build_uefi_basename_for_arch
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1954,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1955,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1956,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1957,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1958,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1959,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1963,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1963,1
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1968,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1969,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1969,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1976,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1977,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1977,1
    - Dst: fu_context_get_esp_volume_by_hard_drive_device_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1984,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1988,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1994,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1997,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2002,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2003,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2004,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2006,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2007,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2010,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2012,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2013,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2014,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2016,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2016,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2020,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2020,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2020,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2021,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2021,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2027,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2028,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2029,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2030,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2030,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2034,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2036,1
    - Dst: fu_context_build_uefi_basename_for_arch
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2039,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2040,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2042,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2045,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2047,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2048,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2049,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2051,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2051,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2055,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2055,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2055,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2056,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2056,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2062,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2063,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2063,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2064,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2065,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2067,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2068,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2071,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2073,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2074,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2075,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2077,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2077,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2081,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2081,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2081,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2082,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2082,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 98
    argCount: 5
    argNames:
    - self
    - entry
    - files
    - flags
    - error
    argTypes:
    - FuContext*
    - FuEfiLoadOption*
    - GPtrArray*
    - FuContextEspFileFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 1943
    functionDepth: 5
    functionLinenumber: 1943
    functionLinenumberEnd: 2088
    functionName: fu_context_get_esp_files_for_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_efi_load_option_get_metadata
    - FU_FIRMWARE
    - g_propagate_error
    - fu_efi_file_path_device_path_get_name
    - fu_context_build_uefi_basename_for_arch
    - g_debug
    - fu_context_get_esp_volume_by_hard_drive_device_path
    - g_string_replace
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - g_str_has_suffix
    - g_steal_pointer
    - g_error_matches
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - g_build_filename
    - fu_firmware_get_idx
    - g_autoptr
    - g_ptr_array_add
    - fu_volume_locker
    - g_set_error_literal
    - fu_volume_get_mount_point
    - GET_PRIVATE
    - fu_context_esp_load_pe_file
    - fu_firmware_set_idx
    - fu_firmware_get_image_by_gtype
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_context_get_esp_files_for_entry(FuContext *self,\n\t\t\t\t
      \  FuEfiLoadOption *entry,\n\t\t\t\t   GPtrArray *files,\n\t\t\t\t   FuContextEspFileFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2107,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2109,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2110,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2117,1
    - Dst: fu_context_get_esp_files_for_entry
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2118,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2119,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2120,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2121,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2122,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2122,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuContext*
    - FuContextEspFileFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2102
    functionDepth: 6
    functionLinenumber: 2102
    functionLinenumberEnd: 2133
    functionName: fu_context_get_esp_files
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_debug
    - fu_context_get_esp_files_for_entry
    - g_error_matches
    - FU_IS_CONTEXT
    - g_steal_pointer
    - fu_efivars_get_boot_entries
    - FU_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - fu_firmware_get_id
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_esp_files(FuContext *self, FuContextEspFileFlags flags, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2148,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2149,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2151
    functionName: fu_context_get_backends
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 5
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_backends(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2167,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2168,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2168,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2169,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2169,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2170,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - backend
    argTypes:
    - FuContext*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2171
    functionName: fu_context_add_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - FU_IS_CONTEXT
    - g_return_if_fail
    - FU_IS_BACKEND
    - GET_PRIVATE
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_context_add_backend(FuContext *self, FuBackend *backend)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2190,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2192,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2195,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2196,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2196,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2197,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2201
    functionName: fu_context_get_backend_by_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - fu_backend_get_name
    - g_object_ref
    - g_set_error
    - FU_IS_CONTEXT
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_context_get_backend_by_name(FuContext *self, const gchar *name, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2207,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2209,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2210,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2213,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2214,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2218
    functionName: fu_context_has_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - fu_backend_get_name
    - FU_IS_CONTEXT
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_has_backend(FuContext *self, const gchar *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2224,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2225,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2226,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2221
    functionDepth: 0
    functionLinenumber: 2221
    functionLinenumberEnd: 2227
    functionName: fu_context_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_val_if_fail
    - G_OBJECT
    - g_object_get_data
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_context_get_data(FuContext *self, const gchar *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2233,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2233,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2234,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2235,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - data
    argTypes:
    - FuContext*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2236
    functionName: fu_context_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_object_set_data
    - G_OBJECT
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_context_set_data(FuContext *self, const gchar *key, gpointer
      data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2241,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2242,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2245,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2248,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2251,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2254,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2257,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2260,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2238
    functionDepth: 0
    functionLinenumber: 2238
    functionLinenumberEnd: 2266
    functionName: fu_context_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_CONTEXT
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint
    - GET_PRIVATE
    - g_value_set_uint64
    linkageType: ''
    returnType: void
    signature: void fu_context_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2271,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2272,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2275,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2275,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2278,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2278,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2281,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2281,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2284,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2284,1
    - Dst: fu_context_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2287,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2287,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2290,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2268
    functionDepth: 1
    functionLinenumber: 2268
    functionLinenumberEnd: 2296
    functionName: fu_context_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_context_set_lid_state
    - fu_context_set_battery_threshold
    - fu_context_set_battery_level
    - FU_CONTEXT
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    - g_value_get_uint64
    - fu_context_set_power_state
    - fu_context_set_display_state
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2301,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2302,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2303,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2305
    functionName: fu_context_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - GET_PRIVATE
    - FU_CONTEXT
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_context_dispose(GObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2310,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2311,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2314,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2316,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2317,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2318,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2319,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2320,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2321,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2322,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2323,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2324,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2325,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2326,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2327,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2328,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2329,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2332
    functionName: fu_context_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - FU_CONTEXT
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_context_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2337,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2351,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2358,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2367,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2374,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2383,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2390,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2399,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2406,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2415,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2422,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2431,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2438,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2450,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2451,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2453,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2468,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2469,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuContextClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2479
    functionName: fu_context_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_param_spec_uint64
    - g_object_class_install_property
    - g_param_spec_uint
    - g_signal_new
    - G_TYPE_FROM_CLASS
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    linkageType: ''
    returnType: void
    signature: void fu_context_class_init(FuContextClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2484,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2488,1
    - Dst: fu_hwids_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2489,1
    - Dst: fu_config_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2490,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2491,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2491,1
    - Dst: fu_dummy_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2491,1
    - Dst: fu_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2492,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2493,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2494,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2498,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2499,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2500,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2501,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2502,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2503,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2505
    functionName: fu_context_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_quirks_new
    - fu_bios_settings_new
    - fu_smbios_new
    - fu_efivars_new
    - g_hash_table_new_full
    - fu_dummy_efivars_new
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    - g_strcmp0
    - g_getenv
    - fu_hwids_new
    - fu_config_new
    linkageType: ''
    returnType: void
    signature: void fu_context_init(FuContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2519,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2516
    functionDepth: 0
    functionLinenumber: 2516
    functionLinenumberEnd: 2520
    functionName: fu_context_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 42
    functionsReached:
    - FU_CONTEXT
    - g_object_new
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_context_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fu_hwids_get_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 4
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_get_value(FuHwids *self, const gchar *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: fu_hwids_has_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_has_guid(FuHwids *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: fu_hwids_get_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_hwids_get_guids(FuHwids *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:124,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:124,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: fu_hwids_get_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HWIDS
    - g_ptr_array_add
    - g_ptr_array_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_hwids_get_keys(FuHwids *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_utf8_to_utf16
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:142,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:151,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 157
    functionName: fu_hwids_get_guid_for_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - GUINT16_TO_LE
    - g_utf8_to_utf16
    - fwupd_guid_hash_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_get_guid_for_str(const gchar *str, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:175,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:176,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: fu_hwids_get_replace_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FU_IS_HWIDS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_get_replace_keys(FuHwids *self, const gchar *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:197,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:197,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:198,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:199,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:200,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:200,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuHwids*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: fu_hwids_add_chid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - FU_IS_HWIDS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_hwids_add_chid(FuHwids *self, const gchar *key, const gchar
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fu_hwids_sort_keys_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_hwids_sort_keys_cb(gconstpointer a, gconstpointer b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:226,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:228,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:228,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:230,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:231,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:232,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:232,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:233,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 236
    functionName: fu_hwids_get_chid_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_sort
    - g_steal_pointer
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_strdup
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    - FU_IS_HWIDS
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_hwids_get_chid_keys(FuHwids *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:253,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:253,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:254,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:257,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:259,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:259,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:259,1
    - Dst: g_str_to_ascii
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:263,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:264,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:265,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:266,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:267,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:268,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:270,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuHwids*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: fu_hwids_add_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 7
    functionsReached:
    - g_hash_table_insert
    - g_strdelimit
    - g_steal_pointer
    - g_strchomp
    - g_return_if_fail
    - g_str_to_ascii
    - g_strdup
    - g_hash_table_contains
    - FU_IS_HWIDS
    linkageType: ''
    returnType: void
    signature: void fu_hwids_add_value(FuHwids *self, const gchar *key, const gchar
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:290,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:292,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:294,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:297,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:300,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:304,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:311,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:314,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuHwids*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 316
    functionName: fu_hwids_get_replace_values
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - g_set_error
    - g_auto
    - g_string_new
    - g_strsplit
    - fu_hwids_get_replace_keys
    - g_string_truncate
    - g_strdup
    - g_autoptr
    - g_hash_table_lookup
    - g_return_val_if_fail
    - FU_IS_HWIDS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_get_replace_values(FuHwids *self, const gchar *keys, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:335,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:335,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:337,1
    - Dst: fu_hwids_get_replace_values
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:339,1
    - Dst: fu_hwids_get_guid_for_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuHwids*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 343
    functionName: fu_hwids_get_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_hwids_get_replace_values
    - FU_IS_HWIDS
    - fu_hwids_get_guid_for_str
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hwids_get_guid(FuHwids *self, const gchar *keys, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:357,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:357,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:358,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:359,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:359,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:359,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:360,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: fu_hwids_add_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - GUINT_TO_POINTER
    - g_return_if_fail
    - g_strdup
    - g_ptr_array_add
    - FU_IS_HWIDS
    linkageType: ''
    returnType: void
    signature: void fu_hwids_add_guid(FuHwids *self, const gchar *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:377,1
    - Dst: fu_hwids_get_chid_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:377,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:379,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:379,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:384,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:386,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:389,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:391,1
    - Dst: fu_hwids_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 398
    functionName: fu_hwids_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - fu_hwids_add_guid
    - g_debug
    - fu_hwids_get_chid_keys
    - g_ptr_array_index
    - g_autoptr
    - fu_hwids_get_guid
    - g_return_val_if_fail
    - FU_IS_HWIDS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_setup(FuHwids *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:404,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:404,1
    - Dst: FU_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:405,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:407,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:408,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:409,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:410,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:411,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: fu_hwids_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_HWIDS
    - g_hash_table_unref
    - g_return_if_fail
    - G_OBJECT_CLASS
    - FU_IS_HWIDS
    linkageType: ''
    returnType: void
    signature: void fu_hwids_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHwidsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: fu_hwids_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hwids_class_init(FuHwidsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:426,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:427,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:428,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:429,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:430,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:433,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:437,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:441,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:445,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:449,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:450,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:451,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:454,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:455,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:458,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:459,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:462,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:463,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:464,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:467,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:470,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:473,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 475
    functionName: fu_hwids_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - fu_hwids_add_chid
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_hwids_init(FuHwids *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:488,1
    - Dst: FU_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: fu_hwids_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - FU_HWIDS
    - g_object_new
    linkageType: ''
    returnType: FuHwids
    signature: 'FuHwids *

      fu_hwids_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:46,1
    - Dst: fu_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:47,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:51,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:58,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:59,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:63,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 78
    functionName: fu_ifd_bios_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - g_debug
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_efi_volume_new
    - g_autoptr
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifd_bios_parse(FuFirmware *firmware,\n\t\t  GInputStream
      *stream,\n\t\t  FuFirmwareParseFlags flags,\n\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:83,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:83,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:84,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdBios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: fu_ifd_bios_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_set_alignment
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ifd_bios_init(FuIfdBios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdBiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: fu_ifd_bios_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ifd_bios_class_init(FuIfdBiosClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:104,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: fu_ifd_bios_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifd_bios_new(void)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:30,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:32,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:36,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:38,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:42,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:44,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:46,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:48,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:50,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:52,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:60,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:62,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:64,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:66,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 69
    functionName: fu_efi_guid_to_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-common.c
    functionUses: 4
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_efi_guid_to_name(const gchar *guid)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:95,1
    - Dst: fu_efi_section_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:96,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:102,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:105,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:110,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:118,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:125,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:126,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:130,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 135
    functionName: fu_efi_parse_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-common.c
    functionUses: 3
    functionsReached:
    - fu_firmware_get_size
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_partial_input_stream_new
    - g_autoptr
    - fu_common_align_up
    - fu_input_stream_size
    - fu_efi_section_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_parse_sections(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      gsize offset,\n\t\t      FuFirmwareParseFlags flags,\n\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 1282
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:48,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: fu_mei_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_MEI_DEVICE
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:59,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:60,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:62,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - uuid
    argTypes:
    - FuMeiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: fu_mei_device_set_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_set_uuid(FuMeiDevice *self, const gchar *uuid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:71,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:73,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:76,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMeiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: fu_mei_device_pci_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_backend_parent_with_subsystem
    - FU_DEVICE
    - g_autoptr
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_pci_probe(FuMeiDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:95,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:98,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:102,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:108,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:108,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:109,1
    - Dst: fu_udev_device_list_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:112,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:116,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:117,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMeiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: fu_mei_device_interfaces_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_get_backend_id
    - g_str_has_prefix
    - strlen
    - fu_udev_device_list_sysfs
    - g_path_get_basename
    - fu_device_get_backend_parent
    - g_ptr_array_index
    - g_set_error_literal
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_interfaces_probe(FuMeiDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:131,1
    - Dst: fu_mei_device_pci_probe
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:134,1
    - Dst: fu_mei_device_interfaces_probe
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:138,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:142,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:148,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 128
    functionDepth: 10
    functionLinenumber: 128
    functionLinenumberEnd: 164
    functionName: fu_mei_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_pci_probe
    - fu_device_build_instance_id_full
    - FU_MEI_DEVICE
    - fu_mei_device_interfaces_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:170,1
    - Dst: fu_udev_device_read_sysfs_bytes
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:173,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:173,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:176,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:177,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:178,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:183,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - attr
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: fu_mei_device_get_multiline_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - fu_udev_device_read_sysfs_bytes
    - g_strv_length
    - FU_UDEV_DEVICE
    - g_strdup
    - fu_strsplit_bytes
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mei_device_get_multiline_attr(FuMeiDevice *self, const gchar *attr, guint
      idx, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:206,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:207,1
    - Dst: fu_mei_device_get_multiline_attr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fu_mei_device_get_fw_ver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - fu_mei_device_get_multiline_attr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mei_device_get_fw_ver(FuMeiDevice *self, guint idx, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:226,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:227,1
    - Dst: fu_mei_device_get_multiline_attr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: fu_mei_device_get_fw_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - fu_mei_device_get_multiline_attr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mei_device_get_fw_status(FuMeiDevice *self, guint idx, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:244,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:245,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: fu_mei_device_get_max_msg_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_mei_device_get_max_msg_length(FuMeiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:263,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: fu_mei_device_get_protocol_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_mei_device_get_protocol_version(FuMeiDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:291,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:291,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:291,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:293,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:295,1
    - Dst: fu_mei_device_set_uuid
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:298,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:301,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:303,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:304,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:317,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - uuid
    - req_protocol_version
    - error
    argTypes:
    - FuMeiDevice*
    - gchar*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 336
    functionName: fu_mei_device_connect
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - fu_mei_device_set_uuid
    - g_debug
    - memcpy
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - fu_ioctl_execute
    - fwupd_guid_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mei_device_connect(FuMeiDevice *self,\n\t\t      const
      gchar *uuid,\n\t\t      guint8 req_protocol_version,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:361,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:361,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:363,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:364,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - self
    - buf
    - bufsz
    - bytes_read
    - timeout_ms
    - error
    argTypes:
    - FuMeiDevice*
    - guint8*
    - gsize
    - gsize*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 371
    functionName: fu_mei_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mei_device_read(FuMeiDevice *self,\n\t\t   guint8 *buf,\n\t\t
      \  gsize bufsz,\n\t\t   gsize *bytes_read,\n\t\t   guint timeout_ms,\n\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:394,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:394,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:395,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:396,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:397,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - timeout_ms
    - error
    argTypes:
    - FuMeiDevice*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: fu_mei_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MEI_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mei_device_write(FuMeiDevice *self,\n\t\t    const guint8
      *buf,\n\t\t    gsize bufsz,\n\t\t    guint timeout_ms,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:408,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:409,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:410,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:410,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:412,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:412,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:413,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: fu_mei_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - FU_IS_MEI_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:423,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:424,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:424,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:425,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 6
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: fu_mei_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_init(FuMeiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:431,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:432,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:433,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: fu_mei_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:440,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMeiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: fu_mei_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_class_init(FuMeiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RP_PICO_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:25,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_rp_pico_device_to_string
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_RP_PICO_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RP_PICO_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:33,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:35,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:35,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:48,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:50,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:52,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:53,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: fu_rp_pico_device_detach
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_usb_device_control_transfer
    - FU_RP_PICO_DEVICE
    - fu_device_add_flag
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rp_pico_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RP_PICO_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:68,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:70,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:70,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:77,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: fu_rp_pico_device_probe
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_device_add_interface
    - FU_RP_PICO_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_get_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rp_pico_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:85,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:86,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:87,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:88,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:89,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:90,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: fu_rp_pico_device_set_progress
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:97,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:98,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:99,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:100,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:101,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:102,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:103,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:105,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRpPicoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: fu_rp_pico_device_init
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_device_init(FuRpPicoDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRpPicoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: fu_rp_pico_device_class_init
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_device_class_init(FuRpPicoDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRpPicoPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_rp_pico_plugin_init
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_plugin_init(FuRpPicoPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_rp_pico_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRpPicoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_rp_pico_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_plugin_class_init(FuRpPicoPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_telink_dfu_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_TELINK_DFU_HID_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:45,1
    - Dst: fu_struct_telink_dfu_hid_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:46,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:46,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_ota_cmd
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:64,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_ota_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:66,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:75,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:77,1
    - Dst: fu_struct_telink_dfu_hid_pkt_set_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:78,1
    - Dst: fu_struct_telink_dfu_hid_pkt_set_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:79,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuTelinkDfuCmd
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: fu_telink_dfu_hid_device_create_packet
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_telink_dfu_hid_pkt_payload_set_ota_cmd
    - g_steal_pointer
    - fu_struct_telink_dfu_hid_pkt_payload_new
    - fu_struct_telink_dfu_hid_pkt_payload_set_ota_data
    - fu_crc16
    - g_autoptr
    - fu_struct_telink_dfu_hid_pkt_set_payload
    - fu_struct_telink_dfu_hid_pkt_payload_set_crc
    - fu_struct_telink_dfu_hid_pkt_new
    - fu_struct_telink_dfu_hid_pkt_set_ota_data_len
    linkageType: ''
    returnType: FuStructTelinkDfuHidPkt
    signature: "FuStructTelinkDfuHidPkt *\nfu_telink_dfu_hid_device_create_packet(FuTelinkDfuCmd
      cmd,\n\t\t\t\t       const guint8 *buf,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:94,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:97,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:99,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: fu_telink_dfu_hid_device_write
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_memcpy_safe
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_hid_device_write(FuTelinkDfuHidDevice *self,\n\t\t\t
      \      const guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:115,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:116,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:119,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:120,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:120,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:123,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:126,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:129,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:130,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:131,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:137,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:138,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:145,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:146,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:147,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_2
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:152,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_3
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:157,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_2
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:163,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_3
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:168,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:179,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:186,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:188,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:192,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:195,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:197,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 108
    functionDepth: 6
    functionLinenumber: 108
    functionLinenumberEnd: 206
    functionName: fu_telink_dfu_hid_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - fu_struct_telink_dfu_hid_pkt_payload_new
    - fu_progress_set_steps
    - fu_telink_dfu_hid_device_write
    - g_set_error
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_2
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_progress_step_done
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_telink_dfu_hid_device_create_packet
    - FU_DEVICE
    - fu_struct_telink_dfu_hid_long_pkt_new
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_3
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_hid_device_write_blocks(FuTelinkDfuHidDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:211,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:214,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:219,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:221,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:222,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:223,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:225,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:226,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:230,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:236,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 243
    functionName: fu_telink_dfu_hid_device_ota_start
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - fu_telink_dfu_hid_device_create_packet
    - FU_DEVICE
    - g_autoptr
    - fu_struct_telink_dfu_hid_long_pkt_new
    - fu_struct_telink_dfu_hid_pkt_get_ota_data_len
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_telink_dfu_hid_device_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_hid_device_ota_start(FuTelinkDfuHidDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:249,1
    - Dst: fu_struct_telink_dfu_end_check_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:250,1
    - Dst: fu_struct_telink_dfu_end_check_set_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:253,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:254,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:255,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:257,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:258,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:265,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:267,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:268,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:269,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:270,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:271,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:275,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:281,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - number_chunks
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 288
    functionName: fu_telink_dfu_hid_device_ota_stop
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_struct_telink_dfu_end_check_set_pkt_index
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - fu_struct_telink_dfu_end_check_set_inverted_pkt_index
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - fu_telink_dfu_hid_device_create_packet
    - FU_DEVICE
    - fu_struct_telink_dfu_end_check_new
    - g_autoptr
    - fu_struct_telink_dfu_hid_long_pkt_new
    - fu_struct_telink_dfu_hid_pkt_payload_set_crc
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_telink_dfu_hid_device_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_hid_device_ota_stop(FuTelinkDfuHidDevice *self,
      guint number_chunks, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:296,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:299,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:300,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:301,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:302,1
    - Dst: fu_telink_dfu_hid_device_ota_start
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:305,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:307,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:310,1
    - Dst: fu_telink_dfu_hid_device_write_blocks
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:314,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:316,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:319,1
    - Dst: fu_telink_dfu_hid_device_ota_stop
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:322,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:322,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:324,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 329
    functionName: fu_telink_dfu_hid_device_write_blob
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_telink_dfu_hid_device_ota_start
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_progress_get_child
    - fu_chunk_array_length
    - fu_progress_add_step
    - fu_device_add_flag
    - FU_DEVICE
    - fu_progress_set_id
    - fu_telink_dfu_hid_device_ota_stop
    - g_autoptr
    - fu_telink_dfu_hid_device_write_blocks
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_hid_device_write_blob(FuTelinkDfuHidDevice
      *self,\n\t\t\t\t    GBytes *blob,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:341,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:344,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:347,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:350,1
    - Dst: fu_telink_dfu_hid_device_write_blob
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 331
    functionDepth: 8
    functionLinenumber: 331
    functionLinenumberEnd: 354
    functionName: fu_telink_dfu_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_telink_dfu_hid_device_write_blob
    - fu_firmware_get_stream
    - fu_archive_lookup_by_fn
    - g_autoptr
    - FU_TELINK_DFU_HID_DEVICE
    - fu_archive_new_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_hid_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:359,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:360,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:361,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:362,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:363,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: fu_telink_dfu_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_hid_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:373,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:374,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:379,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:380,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:381,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 395
    functionName: fu_telink_dfu_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - g_set_error_literal
    - FU_TELINK_DFU_HID_DEVICE
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_hid_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:400,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:402,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:403,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:404,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:405,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:405,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:406,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:407,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: fu_telink_dfu_hid_device_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_hid_device_init(FuTelinkDfuHidDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:414,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:415,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:417,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:419,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:423,1
    - Dst: fu_hid_device_set_ep_addr_in
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:424,1
    - Dst: fu_hid_device_set_ep_addr_out
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:425,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 8
    functionLinenumber: 411
    functionLinenumberEnd: 432
    functionName: fu_telink_dfu_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_interface
    - fu_hid_device_set_ep_addr_out
    - FU_DEVICE_CLASS
    - FU_HID_DEVICE
    - FU_DEVICE
    - g_autoptr
    - FU_USB_DEVICE
    - FU_TELINK_DFU_HID_DEVICE
    - fu_hid_device_set_ep_addr_in
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: fu_telink_dfu_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_hid_device_class_init(FuTelinkDfuHidDeviceClass
      *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c:28,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c:31,1
    - Dst: sscanf
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c:37,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c:40,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c:45,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - version
    - ver_format
    argTypes:
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 49
    functionName: fu_telink_dfu_parse_image_version
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c
    functionUses: 0
    functionsReached:
    - sscanf
    - g_warning
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_telink_dfu_parse_image_version(const gchar *version, FwupdVersionFormat
      ver_format)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:42,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:43,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:47,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:53,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:54,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:59,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:74,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:81,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:82,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:88,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:93,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:94,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:96,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:98,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:99,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:100,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:101,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:102,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:104,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:107,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:113,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:115,1
    - Dst: fu_telink_dfu_parse_image_version
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:116,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:117,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 6
    argNames:
    - self
    - archive
    - obj
    - i
    - flags
    - error
    argTypes:
    - FuTelinkDfuArchive*
    - FuArchive*
    - JsonObject*
    - guint
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 121
    functionName: fu_telink_dfu_archive_load_file
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_archive_lookup_by_fn
    - g_debug
    - fu_firmware_set_addr
    - json_object_get_string_member
    - fu_telink_dfu_parse_image_version
    - fu_firmware_add_image
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_firmware_new
    - json_object_get_int_member
    - fu_firmware_set_id
    - g_strdup_printf
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_firmware_set_idx
    - json_object_has_member
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_archive_load_file(FuTelinkDfuArchive *self,\n\t\t\t\tFuArchive
      *archive,\n\t\t\t\tJsonObject *obj,\n\t\t\t\tguint i,\n\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_ARCHIVE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:137,1
    - Dst: json_parser_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:137,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:140,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:145,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:148,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:149,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:152,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:155,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:157,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:163,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:164,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:165,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:175,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:181,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:186,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:194,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:201,1
    - Dst: fu_telink_dfu_archive_load_file
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:202,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 208
    functionName: fu_telink_dfu_archive_parse
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - json_parser_load_from_data
    - g_prefix_error
    - json_parser_get_root
    - fu_archive_lookup_by_fn
    - json_array_get_object_element
    - g_debug
    - json_parser_new
    - json_object_get_array_member
    - FU_TELINK_DFU_ARCHIVE
    - fu_telink_dfu_archive_load_file
    - JSON_NODE_HOLDS_OBJECT
    - g_autoptr
    - json_node_get_object
    - fu_archive_new_stream
    - json_object_get_int_member
    - g_bytes_get_data
    - g_bytes_get_size
    - g_set_error_literal
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_archive_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuArchive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: fu_telink_dfu_archive_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_archive_init(FuTelinkDfuArchive *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuArchiveClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: fu_telink_dfu_archive_class_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_archive_class_init(FuTelinkDfuArchiveClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:30,1
    - Dst: fu_struct_telink_dfu_ble_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:30,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_preamble
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:31,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:33,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:36,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:38,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - preamble
    - buf
    - bufsz
    - error
    argTypes:
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: fu_telink_dfu_ble_device_create_packet
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_telink_dfu_ble_pkt_set_crc
    - g_steal_pointer
    - fu_struct_telink_dfu_ble_pkt_set_payload
    - fu_crc16
    - fu_struct_telink_dfu_ble_pkt_set_preamble
    - g_autoptr
    - fu_struct_telink_dfu_ble_pkt_new
    linkageType: ''
    returnType: FuStructTelinkDfuBlePkt
    signature: "FuStructTelinkDfuBlePkt *\nfu_telink_dfu_ble_device_create_packet(guint16
      preamble,\n\t\t\t\t       const guint8 *buf,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:49,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:50,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:50,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:53,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:56,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:59,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:60,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:61,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:65,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:65,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:70,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:73,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 79
    functionName: fu_telink_dfu_ble_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - FU_DEVICE
    - fu_device_sleep
    - fu_progress_set_id
    - fu_bluez_device_write
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - FU_BLUEZ_DEVICE
    - fu_progress_set_steps
    - fu_telink_dfu_ble_device_create_packet
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_ble_device_write_blocks(FuTelinkDfuBleDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:84,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:87,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:90,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:90,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: fu_telink_dfu_ble_device_ota_start
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_telink_dfu_ble_device_create_packet
    - FU_DEVICE
    - fu_bluez_device_write
    - g_autoptr
    - FU_BLUEZ_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_ble_device_ota_start(FuTelinkDfuBleDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:104,1
    - Dst: fu_struct_telink_dfu_end_check_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:105,1
    - Dst: fu_struct_telink_dfu_end_check_set_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:109,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:110,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:111,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:117,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:117,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - number_chunks
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: fu_telink_dfu_ble_device_ota_stop
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_telink_dfu_end_check_set_pkt_index
    - fu_struct_telink_dfu_end_check_set_inverted_pkt_index
    - FU_DEVICE
    - fu_device_sleep
    - fu_struct_telink_dfu_end_check_new
    - g_autoptr
    - fu_bluez_device_write
    - FU_BLUEZ_DEVICE
    - fu_telink_dfu_ble_device_create_packet
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_ble_device_ota_stop(FuTelinkDfuBleDevice *self,
      guint number_chunks, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:135,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:139,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:140,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:141,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:144,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:150,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:150,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:155,1
    - Dst: fu_telink_dfu_ble_device_ota_start
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:158,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:160,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:163,1
    - Dst: fu_telink_dfu_ble_device_write_blocks
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:167,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:169,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:172,1
    - Dst: fu_telink_dfu_ble_device_ota_stop
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:175,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:175,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:177,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 182
    functionName: fu_telink_dfu_ble_device_write_blob
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_telink_dfu_ble_device_write_blocks
    - fu_progress_get_child
    - fu_chunk_array_length
    - fu_telink_dfu_ble_device_ota_start
    - fu_telink_dfu_ble_device_ota_stop
    - fu_progress_add_step
    - FU_DEVICE
    - fu_device_sleep
    - fu_progress_set_id
    - fu_bluez_device_write
    - g_autoptr
    - fu_device_add_flag
    - FU_BLUEZ_DEVICE
    - fu_telink_dfu_ble_device_create_packet
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_ble_device_write_blob(FuTelinkDfuBleDevice
      *self,\n\t\t\t\t    GBytes *blob,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_BLE_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:194,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:197,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:200,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:203,1
    - Dst: fu_telink_dfu_ble_device_write_blob
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: fu_telink_dfu_ble_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - FU_TELINK_DFU_BLE_DEVICE
    - fu_archive_lookup_by_fn
    - g_autoptr
    - fu_telink_dfu_ble_device_write_blob
    - fu_archive_new_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_ble_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:212,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:213,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:214,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:215,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:216,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: fu_telink_dfu_ble_device_set_progress
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_ble_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:223,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:224,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:225,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:226,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:227,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:228,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:229,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: fu_telink_dfu_ble_device_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_ble_device_init(FuTelinkDfuBleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: fu_telink_dfu_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_ble_device_class_init(FuTelinkDfuBleDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:23,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_telink_dfu_plugin_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_plugin_init(FuTelinkDfuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:29,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:33,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:34,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: fu_telink_dfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_telink_dfu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_plugin_class_init(FuTelinkDfuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:20,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:21,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:28,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:31,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:34,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:38,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:41,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_bnr_dp_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - fu_bnr_dp_firmware_new
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:49,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:50,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:53,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBnrDpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_bnr_dp_plugin_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_plugin_init(FuBnrDpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:28,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: fu_bnr_dp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_bnr_dp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_plugin_class_init(FuBnrDpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - init
    - buf
    - bufsz
    argTypes:
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: fu_bnr_dp_device_xor_checksum
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_bnr_dp_device_xor_checksum(guint8 init, const guint8 *buf,
      gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:53,1
    - Dst: fu_struct_bnr_dp_aux_request_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:54,1
    - Dst: fu_struct_bnr_dp_aux_command_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:54,1
    - Dst: fu_struct_bnr_dp_aux_command_set_module_number
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:56,1
    - Dst: fu_struct_bnr_dp_aux_command_set_opcode
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:57,1
    - Dst: fu_struct_bnr_dp_aux_request_set_command
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:59,1
    - Dst: fu_struct_bnr_dp_aux_request_set_data_len
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:61,1
    - Dst: fu_struct_bnr_dp_aux_request_set_offset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:62,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - opcode
    - module_number
    - offset
    - data_len
    - error
    argTypes:
    - FuBnrDpOpcodes
    - FuBnrDpModuleNumber
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: fu_bnr_dp_device_build_request
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_aux_request_set_command
    - g_steal_pointer
    - fu_struct_bnr_dp_aux_request_new
    - fu_struct_bnr_dp_aux_request_set_offset
    - fu_struct_bnr_dp_aux_request_set_data_len
    - g_autoptr
    - fu_struct_bnr_dp_aux_command_new
    - fu_struct_bnr_dp_aux_command_set_module_number
    - fu_struct_bnr_dp_aux_command_set_opcode
    linkageType: ''
    returnType: FuStructBnrDpAuxRequest
    signature: "FuStructBnrDpAuxRequest *\nfu_bnr_dp_device_build_request(FuBnrDpOpcodes
      opcode,\n\t\t\t       FuBnrDpModuleNumber module_number,\n\t\t\t       guint16
      offset,\n\t\t\t       guint16 data_len,\n\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_bnr_dp_aux_status_get_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:75,1
    - Dst: fu_bnr_dp_aux_error_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st_status
    - error
    argTypes:
    - FuStructBnrDpAuxStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: fu_bnr_dp_device_eval_result
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_bnr_dp_aux_status_get_error
    - fu_bnr_dp_aux_error_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_eval_result(const FuStructBnrDpAuxStatus
      *st_status, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_bnr_dp_aux_status_get_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st_status
    - error
    argTypes:
    - FuStructBnrDpAuxStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: fu_bnr_dp_device_is_done
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_struct_bnr_dp_aux_status_get_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_is_done(const FuStructBnrDpAuxStatus *st_status,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:108,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:108,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_set_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:111,1
    - Dst: fu_bnr_dp_device_xor_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:116,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:120,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:120,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:126,1
    - Dst: fu_bnr_dp_device_xor_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:130,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_set_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:132,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:135,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - self
    - st_request
    - buf
    - bufsz
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuStructBnrDpAuxRequest*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 141
    functionName: fu_bnr_dp_device_write_request
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_bnr_dp_device_xor_checksum
    - fu_struct_bnr_dp_aux_tx_header_set_checksum
    - fu_struct_bnr_dp_aux_tx_header_set_request
    - fu_dpaux_device_write
    - fu_struct_bnr_dp_aux_tx_header_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_device_write_request(FuBnrDpDevice *self,\n\t\t\t
      \      const FuStructBnrDpAuxRequest *st_request,\n\t\t\t       const guint8
      *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:152,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:155,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:155,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:163,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_response
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:167,1
    - Dst: fu_bnr_dp_device_xor_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:171,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:176,1
    - Dst: fu_struct_bnr_dp_aux_response_get_data_len
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:176,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:178,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:178,1
    - Dst: fu_bnr_dp_device_xor_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:187,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:191,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuBnrDpDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: fu_bnr_dp_device_read_response
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dpaux_device_read
    - fu_struct_bnr_dp_aux_rx_header_get_checksum
    - fu_struct_bnr_dp_aux_rx_header_parse
    - FU_DPAUX_DEVICE
    - fu_bnr_dp_device_xor_checksum
    - fu_struct_bnr_dp_aux_response_get_data_len
    - g_autoptr
    - fu_struct_bnr_dp_aux_rx_header_get_response
    - g_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_read_response(FuBnrDpDevice *self, GByteArray
      *data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:209,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:212,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:212,1
    - Dst: fu_struct_bnr_dp_aux_status_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:220,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBnrDpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: fu_bnr_dp_device_read_status
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_aux_status_parse
    - fu_dpaux_device_read
    - g_steal_pointer
    - FU_DPAUX_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuStructBnrDpAuxStatus
    signature: 'FuStructBnrDpAuxStatus *

      fu_bnr_dp_device_read_status(FuBnrDpDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:230,1
    - Dst: fu_bnr_dp_device_read_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:232,1
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:232,1
    - Dst: fu_bnr_dp_device_eval_result
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:236,1
    - Dst: fu_bnr_dp_device_is_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: fu_bnr_dp_device_poll_status_cb
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_eval_result
    - fu_bnr_dp_device_read_status
    - FU_BNR_DP_DEVICE
    - fu_bnr_dp_device_is_done
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_poll_status_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:245,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBnrDpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: fu_bnr_dp_device_poll_status
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_poll_status(FuBnrDpDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:269,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:269,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:271,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:274,1
    - Dst: fu_bnr_dp_device_poll_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:278,1
    - Dst: fu_bnr_dp_opcodes_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:280,1
    - Dst: fu_bnr_dp_module_number_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:281,1
    - Dst: fu_bnr_dp_device_read_response
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:285,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - self
    - opcode
    - module_number
    - offset
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpOpcodes
    - FuBnrDpModuleNumber
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 290
    functionName: fu_bnr_dp_device_exec_cmd
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_read_response
    - fu_bnr_dp_module_number_to_string
    - fu_bnr_dp_device_poll_status
    - g_steal_pointer
    - g_prefix_error
    - fu_bnr_dp_device_write_request
    - g_autoptr
    - fu_bnr_dp_opcodes_to_string
    - g_byte_array_new
    - fu_bnr_dp_device_build_request
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_bnr_dp_device_exec_cmd(FuBnrDpDevice *self,\n\t\t\t
      \ FuBnrDpOpcodes opcode,\n\t\t\t  FuBnrDpModuleNumber module_number,\n\t\t\t
      \ guint16 offset,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:303,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:303,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:306,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:307,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:309,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:313,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:315,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:318,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:320,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - self
    - opcode
    - module_number
    - offset
    - size
    - progress
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpOpcodes
    - FuBnrDpModuleNumber
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 324
    functionName: fu_bnr_dp_device_read_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_byte_array_sized_new
    - g_steal_pointer
    - g_byte_array_append
    - fu_progress_set_id
    - g_autoptr
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_bnr_dp_device_exec_cmd
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_bnr_dp_device_read_data(FuBnrDpDevice *self,\n\t\t\t
      \  FuBnrDpOpcodes opcode,\n\t\t\t   FuBnrDpModuleNumber module_number,\n\t\t\t
      \  gsize offset,\n\t\t\t   gsize size,\n\t\t\t   FuProgress *progress,\n\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - bufsz
    - cur_offset
    argTypes:
    - guint8*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 346
    functionName: fu_bnr_dp_device_can_skip_chunk
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_can_skip_chunk(const guint8 *buf, gsize bufsz,
      gsize cur_offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:363,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:364,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:366,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:372,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:376,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:377,1
    - Dst: fu_bnr_dp_device_can_skip_chunk
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:382,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:383,1
    - Dst: fu_struct_bnr_dp_aux_request_set_offset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:387,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:388,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:393,1
    - Dst: fu_bnr_dp_device_poll_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:398,1
    - Dst: fu_bnr_dp_opcodes_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:400,1
    - Dst: fu_bnr_dp_module_number_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 8
    argNames:
    - self
    - opcode
    - module_number
    - offset
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpOpcodes
    - FuBnrDpModuleNumber
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 410
    functionName: fu_bnr_dp_device_write_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_bnr_dp_device_poll_status
    - fu_bnr_dp_module_number_to_string
    - fu_struct_bnr_dp_aux_request_set_offset
    - g_prefix_error
    - fu_bnr_dp_device_can_skip_chunk
    - fu_progress_set_id
    - fu_bnr_dp_device_write_request
    - g_autoptr
    - g_return_val_if_fail
    - fu_bnr_dp_opcodes_to_string
    - fu_progress_set_steps
    - fu_bnr_dp_device_build_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_device_write_data(FuBnrDpDevice *self,\n\t\t\t
      \   FuBnrDpOpcodes opcode,\n\t\t\t    FuBnrDpModuleNumber module_number,\n\t\t\t
      \   gsize offset,\n\t\t\t    const guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t
      \   FuProgress *progress,\n\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:417,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:419,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:425,1
    - Dst: fu_struct_bnr_dp_factory_data_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: fu_bnr_dp_device_factory_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_bnr_dp_device_exec_cmd
    - fu_struct_bnr_dp_factory_data_parse
    - g_autoptr
    linkageType: ''
    returnType: FuStructBnrDpPayloadHeader
    signature: "FuStructBnrDpPayloadHeader *\nfu_bnr_dp_device_factory_data(FuBnrDpDevice
      *self,\n\t\t\t      FuBnrDpModuleNumber module_number,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:436,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:438,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:444,1
    - Dst: fu_struct_bnr_dp_payload_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: fu_bnr_dp_device_fw_header
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_payload_header_parse
    - g_prefix_error_literal
    - fu_bnr_dp_device_exec_cmd
    - g_autoptr
    linkageType: ''
    returnType: FuStructBnrDpPayloadHeader
    signature: 'FuStructBnrDpPayloadHeader *

      fu_bnr_dp_device_fw_header(FuBnrDpDevice *self, FuBnrDpModuleNumber module_number,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:455,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:457,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:463,1
    - Dst: fu_struct_bnr_dp_info_flags_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 468
    functionName: fu_bnr_dp_device_info_flags
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_info_flags_parse
    - g_prefix_error_literal
    - fu_bnr_dp_device_exec_cmd
    - g_autoptr
    linkageType: ''
    returnType: FuStructBnrDpInfoFlags
    signature: 'FuStructBnrDpInfoFlags *

      fu_bnr_dp_device_info_flags(FuBnrDpDevice *self, FuBnrDpModuleNumber module_number,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:473,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:475,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: fu_bnr_dp_device_reset
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_write_request
    - fu_bnr_dp_device_build_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_reset(FuBnrDpDevice *self, FuBnrDpModuleNumber
      module_number, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:489,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:497,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:500,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:504,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:504,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:505,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:512,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:516,1
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:521,1
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:523,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:524,1
    - Dst: fu_struct_bnr_dp_factory_data_get_identification
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:526,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:529,1
    - Dst: fu_struct_bnr_dp_factory_data_get_serial
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:531,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:534,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:536,1
    - Dst: fu_bnr_dp_effective_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:536,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:537,1
    - Dst: fu_bnr_dp_effective_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:539,1
    - Dst: fu_struct_bnr_dp_factory_data_get_hw_rev
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:541,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:544,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:546,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:546,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:546,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:547,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:548,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 486
    functionDepth: 6
    functionLinenumber: 486
    functionLinenumberEnd: 556
    functionName: fu_bnr_dp_device_setup
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_factory_data_get_serial
    - fu_bnr_dp_device_fw_header
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - FU_DPAUX_DEVICE
    - fu_device_add_instance_u32
    - fu_bnr_dp_device_factory_data
    - fu_struct_bnr_dp_factory_data_get_hw_rev
    - fu_struct_bnr_dp_factory_data_get_identification
    - fu_bnr_dp_effective_product_num
    - g_autoptr
    - fu_device_set_serial
    - fu_bnr_dp_effective_compat_id
    - fu_dpaux_device_get_dpcd_ieee_oui
    - fu_bnr_dp_version_from_header
    - fu_bnr_dp_version_to_string
    - g_strdup_printf
    - FU_BNR_DP_DEVICE
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:565,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:568,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:569,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:572,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:575,1
    - Dst: fu_struct_bnr_dp_payload_header_get_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:579,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:586,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:598,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:606,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:609,1
    - Dst: fu_bnr_dp_firmware_parse_from_device
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:612,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:612,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 558
    functionDepth: 5
    functionLinenumber: 558
    functionLinenumberEnd: 620
    functionName: fu_bnr_dp_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_BNR_DP_FIRMWARE
    - fu_bnr_dp_device_factory_data
    - g_steal_pointer
    - fu_struct_bnr_dp_payload_header_get_flags
    - fu_bnr_dp_firmware_new
    - fu_crc16
    - FU_BNR_DP_DEVICE
    - fu_bnr_dp_device_read_data
    - g_autoptr
    - g_bytes_new
    - fu_bnr_dp_firmware_parse_from_device
    - fu_bnr_dp_device_fw_header
    - fu_firmware_set_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bnr_dp_device_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:625,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:626,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:628,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 638
    functionName: fu_bnr_dp_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - FU_BNR_DP_DEVICE
    - fu_bnr_dp_device_read_data
    - g_bytes_new
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bnr_dp_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:647,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:648,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:652,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:653,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:656,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:660,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:663,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:665,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:667,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:673,1
    - Dst: fu_bnr_dp_firmware_patch_boot_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:676,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:677,1
    - Dst: fu_struct_bnr_dp_payload_header_get_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:678,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:680,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:686,1
    - Dst: fu_struct_bnr_dp_payload_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:689,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:689,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:690,1
    - Dst: fu_bnr_dp_firmware_check
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:695,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:695,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 704
    functionName: fu_bnr_dp_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_bnr_dp_device_factory_data
    - g_steal_pointer
    - fu_struct_bnr_dp_payload_header_parse
    - g_prefix_error_literal
    - fu_bnr_dp_firmware_new
    - g_bytes_get_size
    - fu_firmware_parse_stream
    - FU_BNR_DP_DEVICE
    - fu_bnr_dp_firmware_patch_boot_counter
    - g_autoptr
    - fu_device_locker_new
    - FU_BNR_DP_FIRMWARE
    - fu_bnr_dp_firmware_check
    - fu_struct_bnr_dp_payload_header_get_counter
    - fu_bnr_dp_device_fw_header
    - fu_firmware_set_bytes
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bnr_dp_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:713,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:716,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:718,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:719,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:722,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:723,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:724,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:725,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:728,1
    - Dst: fu_bnr_dp_device_info_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:733,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:735,1
    - Dst: fu_bnr_dp_device_write_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:742,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:746,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:747,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:748,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:750,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:753,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:756,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:761,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:764,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:767,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:767,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:768,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:775,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:778,1
    - Dst: fu_bnr_dp_device_reset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:781,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:782,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:787,1
    - Dst: fu_bnr_dp_device_info_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:790,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:792,1
    - Dst: fu_struct_bnr_dp_info_flags_get_inner
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:797,1
    - Dst: fu_struct_bnr_dp_info_flags_get_inner
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:799,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:802,1
    - Dst: fu_bnr_dp_boot_area_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:807,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:811,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 813
    functionName: fu_bnr_dp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - g_prefix_error
    - fu_bnr_dp_device_read_data
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_bnr_dp_device_write_data
    - fu_memcmp_safe
    - fu_struct_bnr_dp_info_flags_get_inner
    - fu_bnr_dp_device_reset
    - fu_progress_step_done
    - fu_bnr_dp_boot_area_to_string
    - fu_firmware_get_bytes_with_patches
    - fu_bnr_dp_device_info_flags
    - g_autoptr
    - g_bytes_get_data
    - g_bytes_get_size
    - FU_BNR_DP_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: fu_bnr_dp_device_convert_version
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_version_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bnr_dp_device_convert_version(FuDevice *self, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:824,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:825,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:826,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:827,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:828,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: fu_bnr_dp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:835,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:835,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:836,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:836,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:837,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:837,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:838,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:838,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:839,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:839,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:840,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:841,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:842,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:843,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:844,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBnrDpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 832
    functionDepth: 6
    functionLinenumber: 832
    functionLinenumberEnd: 845
    functionName: fu_bnr_dp_device_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_retry_add_recovery
    - fu_device_add_icon
    - fu_device_set_firmware_size_max
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_device_init(FuBnrDpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 859
    functionName: fu_bnr_dp_device_class_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_device_class_init(FuBnrDpDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: fu_bnr_dp_version_to_string
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bnr_dp_version_to_string(guint64 version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_bnr_dp_payload_header_get_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:29,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st_header
    - version
    - error
    argTypes:
    - FuStructBnrDpPayloadHeader*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: fu_bnr_dp_version_from_header
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_bnr_dp_payload_header_get_version
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_version_from_header(const FuStructBnrDpPayloadHeader
      *st_header,\n\t\t\t      guint64 *version,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_bnr_dp_factory_data_get_parent_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:37,1
    - Dst: fu_struct_bnr_dp_factory_data_get_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - st_factory_data
    argTypes:
    - FuStructBnrDpFactoryData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: fu_bnr_dp_effective_product_num
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_bnr_dp_factory_data_get_product_num
    - fu_struct_bnr_dp_factory_data_get_parent_product_num
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_bnr_dp_effective_product_num(const FuStructBnrDpFactoryData
      *st_factory_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_bnr_dp_factory_data_get_parent_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:47,1
    - Dst: fu_struct_bnr_dp_factory_data_get_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - st_factory_data
    argTypes:
    - FuStructBnrDpFactoryData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: fu_bnr_dp_effective_compat_id
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_bnr_dp_factory_data_get_parent_compat_id
    - fu_struct_bnr_dp_factory_data_get_compat_id
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_bnr_dp_effective_compat_id(const FuStructBnrDpFactoryData
      *st_factory_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:36,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:38,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:39,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:40,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:41,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:42,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:43,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:44,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: fu_bnr_dp_firmware_export
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BNR_DP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: fu_bnr_dp_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_version_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bnr_dp_firmware_convert_version(FuFirmware *self, guint64 version_raw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:61,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - root
    - attribute
    - value
    - error
    argTypes:
    - XbNode*
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: fu_bnr_dp_firmware_attribute_parse_u64
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_get_attr_as_uint
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_attribute_parse_u64(XbNode *root,\n\t\t\t\t
      \      const gchar *attribute,\n\t\t\t\t       guint64 *value,\n\t\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:81,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - root
    - attribute
    - error
    argTypes:
    - XbNode*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: fu_bnr_dp_firmware_attribute_parse_string
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strdup
    - xb_node_get_attr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bnr_dp_firmware_attribute_parse_string(XbNode *root, const gchar *attribute,
      GError **error)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:98,1
    - Dst: xb_silo_get_root
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:100,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:101,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:102,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_u64
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:109,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_u64
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:112,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:114,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:120,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:128,1
    - Dst: strlen
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:143,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_u64
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:152,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_u64
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:154,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:157,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:160,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:164,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:169,1
    - Dst: fu_bnr_dp_firmware_attribute_parse_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:170,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - self
    - silo
    - error
    argTypes:
    - FuBnrDpFirmware*
    - XbSilo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 174
    functionName: fu_bnr_dp_firmware_header_parse
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - strlen
    - fu_bnr_dp_firmware_attribute_parse_u64
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_bnr_dp_firmware_attribute_parse_string
    - fu_firmware_set_version_raw
    - xb_node_get_element
    - g_autoptr
    - g_strcmp0
    - xb_silo_get_root
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_firmware_header_parse(FuBnrDpFirmware *self, XbSilo
      *silo, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - csum
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: fu_bnr_dp_firmware_checksum_finish
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_bnr_dp_firmware_checksum_finish(guint16 csum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_compute_sum16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:185,1
    - Dst: fu_bnr_dp_firmware_checksum_finish
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stream
    - csum
    - error
    argTypes:
    - GInputStream*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: fu_bnr_dp_firmware_stream_checksum
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_firmware_checksum_finish
    - fu_input_stream_compute_sum16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_firmware_stream_checksum(GInputStream *stream, guint16
      *csum, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bnr_dp_firmware_checksum_finish
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:194,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: fu_bnr_dp_firmware_buf_checksum
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_bnr_dp_firmware_checksum_finish
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_bnr_dp_firmware_buf_checksum(const guint8 *buf, gsize bufsz)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:206,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:208,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:212,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:226,1
    - Dst: fu_bnr_dp_firmware_stream_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:237,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:240,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:251,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:254,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:263,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:263,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - self
    - stream
    - payload_offset
    - error
    argTypes:
    - FuBnrDpFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 268
    functionName: fu_bnr_dp_firmware_payload_parse
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_stream
    - fu_bnr_dp_firmware_stream_checksum
    - FU_FIRMWARE
    - g_autoptr
    - fu_input_stream_size
    - fu_input_stream_compute_crc16
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_payload_parse(FuBnrDpFirmware *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize payload_offset,\n\t\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:281,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:282,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:283,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:285,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:289,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:297,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:300,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:304,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:307,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:308,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:310,1
    - Dst: fu_bnr_dp_firmware_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:313,1
    - Dst: fu_bnr_dp_firmware_payload_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: fu_bnr_dp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fwupd_error_convert
    - xb_builder_compile
    - xb_builder_new
    - xb_builder_import_source
    - fu_bnr_dp_firmware_header_parse
    - fu_input_stream_read_u8
    - fu_bnr_dp_firmware_payload_parse
    - xb_builder_source_new
    - g_autoptr
    - fu_input_stream_find
    - FU_BNR_DP_FIRMWARE
    - xb_builder_source_load_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:331,1
    - Dst: g_date_time_new_now_local
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:331,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:333,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:333,1
    - Dst: fu_bnr_dp_effective_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:337,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:338,1
    - Dst: fu_bnr_dp_effective_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:340,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:341,1
    - Dst: fu_bnr_dp_firmware_buf_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:343,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:343,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:343,1
    - Dst: fu_struct_bnr_dp_factory_data_get_identification
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:344,1
    - Dst: g_date_time_format
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:345,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:346,1
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:348,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:350,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - self
    - st_factory_data
    - st_fw_header
    - error
    argTypes:
    - FuBnrDpFirmware*
    - FuStructBnrDpFactoryData*
    - FuStructBnrDpPayloadHeader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 353
    functionName: fu_bnr_dp_firmware_parse_from_device
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 1
    functionsReached:
    - g_date_time_format
    - fu_firmware_get_bytes_with_patches
    - g_date_time_new_now_local
    - g_bytes_get_size
    - fu_struct_bnr_dp_factory_data_get_identification
    - fu_bnr_dp_version_from_header
    - fu_bnr_dp_effective_product_num
    - FU_FIRMWARE
    - g_strdup
    - g_autoptr
    - fu_firmware_set_version_raw
    - fu_bnr_dp_firmware_buf_checksum
    - g_bytes_get_data
    - fu_bnr_dp_effective_compat_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_parse_from_device(FuBnrDpFirmware *self,\n\t\t\t\t
      \    const FuStructBnrDpFactoryData *st_factory_data,\n\t\t\t\t     const FuStructBnrDpPayloadHeader
      *st_fw_header,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:360,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:362,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:364,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:366,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:366,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:367,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:368,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:370,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:371,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:373,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:397,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:403,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:408,1
    - Dst: strlen
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:408,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:411,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 418
    functionName: fu_bnr_dp_firmware_write
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_export
    - strlen
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_version_raw
    - g_strdup_printf
    - g_set_error_literal
    - g_autoptr
    - xb_builder_node_insert
    - g_byte_array_append
    - FU_BNR_DP_FIRMWARE
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bnr_dp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:429,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:434,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:441,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:441,1
    - Dst: fu_struct_bnr_dp_payload_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:442,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:442,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:443,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:450,1
    - Dst: fu_struct_bnr_dp_payload_header_get_crc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:453,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:454,1
    - Dst: fu_struct_bnr_dp_payload_header_get_crc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:459,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:465,1
    - Dst: fu_struct_bnr_dp_payload_header_set_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:466,1
    - Dst: fu_struct_bnr_dp_payload_header_set_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:469,1
    - Dst: fu_struct_bnr_dp_payload_header_get_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:471,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:475,1
    - Dst: fu_struct_bnr_dp_payload_header_set_crc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:479,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:481,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:482,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - self
    - active_boot_counter
    - error
    argTypes:
    - FuBnrDpFirmware*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 485
    functionName: fu_bnr_dp_firmware_patch_boot_counter
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 1
    functionsReached:
    - fu_struct_bnr_dp_payload_header_set_counter
    - g_set_error
    - fu_firmware_add_patch
    - fu_struct_bnr_dp_payload_header_parse
    - fu_struct_bnr_dp_payload_header_get_crc
    - g_bytes_get_size
    - fu_crc16
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_struct_bnr_dp_payload_header_set_flags
    - fu_struct_bnr_dp_payload_header_set_crc
    - g_autoptr
    - g_bytes_new
    - fu_struct_bnr_dp_payload_header_get_flags
    - g_info
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_patch_boot_counter(FuBnrDpFirmware *self,\n\t\t\t\t
      \     guint32 active_boot_counter,\n\t\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:503,1
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:505,1
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:507,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:508,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:508,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:510,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:515,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:515,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:519,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:521,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:521,1
    - Dst: fu_bnr_dp_effective_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:529,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:531,1
    - Dst: fu_bnr_dp_effective_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:542,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:544,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - self
    - st_factory_data
    - st_active_header
    - st_fw_header
    - flags
    - error
    argTypes:
    - FuBnrDpFirmware*
    - FuStructBnrDpFactoryData*
    - FuStructBnrDpPayloadHeader*
    - FuStructBnrDpPayloadHeader*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 555
    functionName: fu_bnr_dp_firmware_check
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 1
    functionsReached:
    - g_warning
    - g_set_error
    - fu_bnr_dp_version_from_header
    - fu_bnr_dp_version_to_string
    - fu_firmware_get_version
    - fu_firmware_get_version_raw
    - FU_FIRMWARE
    - fu_bnr_dp_effective_product_num
    - fu_bnr_dp_effective_compat_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bnr_dp_firmware_check(FuBnrDpFirmware *self,\n\t\t\t const
      FuStructBnrDpFactoryData *st_factory_data,\n\t\t\t const FuStructBnrDpPayloadHeader
      *st_active_header,\n\t\t\t const FuStructBnrDpPayloadHeader *st_fw_header,\n\t\t\t
      FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBnrDpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: fu_bnr_dp_firmware_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_firmware_init(FuBnrDpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:565,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:567,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:568,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:569,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:570,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: fu_bnr_dp_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BNR_DP_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:578,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: fu_bnr_dp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bnr_dp_firmware_class_init(FuBnrDpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:592,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: fu_bnr_dp_firmware_new
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bnr_dp_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:16,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:18,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:20,1
    - Dst: g_free
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuHuddlyUsbHLinkMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: fu_huddly_usb_hlink_msg_free
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_hlink_msg_free(FuHuddlyUsbHLinkMsg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:27,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:27,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:29,1
    - Dst: fu_struct_h_link_header_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:31,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:32,1
    - Dst: fu_struct_h_link_header_set_msg_name_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:33,1
    - Dst: strlen
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:33,1
    - Dst: fu_struct_h_link_header_set_payload_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:35,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:36,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - msg_name
    - payload
    argTypes:
    - gchar*
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: fu_huddly_usb_hlink_msg_new
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_steal_pointer
    - g_new0
    - fu_struct_h_link_header_new
    - fu_struct_h_link_header_set_msg_name_size
    - fu_struct_h_link_header_set_payload_size
    - g_strdup
    - g_autoptr
    - g_byte_array_ref
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuHuddlyUsbHLinkMsg
    signature: 'FuHuddlyUsbHLinkMsg *

      fu_huddly_usb_hlink_msg_new(const gchar *msg_name, GByteArray *payload)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:45,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:45,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:47,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:48,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:50,1
    - Dst: strlen
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:50,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - msg_name
    - payload
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: fu_huddly_usb_hlink_msg_new_string
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_byte_array_append
    - fu_huddly_usb_hlink_msg_new
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: FuHuddlyUsbHLinkMsg
    signature: 'FuHuddlyUsbHLinkMsg *

      fu_huddly_usb_hlink_msg_new_string(const gchar *msg_name, const gchar *payload)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:57,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:60,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:62,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:63,1
    - Dst: strlen
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:63,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:65,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - msg
    - error
    argTypes:
    - FuHuddlyUsbHLinkMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: fu_huddly_usb_hlink_msg_write
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_steal_pointer
    - g_byte_array_append
    - g_autoptr
    - g_return_val_if_fail
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_huddly_usb_hlink_msg_write(FuHuddlyUsbHLinkMsg *msg, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:75,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:75,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:77,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:78,1
    - Dst: fu_struct_h_link_header_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:80,1
    - Dst: fu_struct_h_link_header_get_msg_name_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:87,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:93,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:94,1
    - Dst: fu_struct_h_link_header_get_payload_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:106,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:107,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:108,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:109,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - bufsz
    - error
    argTypes:
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 122
    functionName: fu_huddly_usb_hlink_msg_parse
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_h_link_header_parse
    - fu_struct_h_link_header_get_payload_size
    - g_byte_array_sized_new
    - g_steal_pointer
    - g_new0
    - fu_memcpy_safe
    - fu_struct_h_link_header_get_msg_name_size
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_byte_array_set_size
    linkageType: ''
    returnType: FuHuddlyUsbHLinkMsg
    signature: 'FuHuddlyUsbHLinkMsg *

      fu_huddly_usb_hlink_msg_parse(const guint8 *buf, gsize bufsz, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHuddlyUsbPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_huddly_usb_plugin_init
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_plugin_init(FuHuddlyUsbPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c:26,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_huddly_usb_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHuddlyUsbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_huddly_usb_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_plugin_class_init(FuHuddlyUsbPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:36,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - product_state
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_huddly_usb_device_set_state
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_set_state(FuHuddlyUsbDevice *self, const
      gchar *product_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:43,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:45,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:45,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:47,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:51,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:53,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:53,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:55,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:56,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:58,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 73
    functionName: fu_huddly_usb_device_find_interface
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - fu_usb_interface_get_endpoints
    - fu_usb_endpoint_get_direction
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_address
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_find_interface(FuHuddlyUsbDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:85,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:91,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:91,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - self
    - src
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: fu_huddly_usb_device_bulk_write
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_usb_device_bulk_transfer
    - fu_progress_set_id
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_bulk_write(FuHuddlyUsbDevice *self,\n\t\t\t\tGByteArray
      *src,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:114,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - received_length
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GByteArray*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: fu_huddly_usb_device_bulk_read
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_bulk_read(FuHuddlyUsbDevice *self,\n\t\t\t
      \      GByteArray *buf,\n\t\t\t       gsize *received_length,\n\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:127,1
    - Dst: fu_huddly_usb_hlink_msg_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:128,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - msg
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - FuHuddlyUsbHLinkMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: fu_huddly_usb_device_hlink_send
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_bulk_write
    - g_autoptr
    - fu_huddly_usb_hlink_msg_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_hlink_send(FuHuddlyUsbDevice *self, FuHuddlyUsbHLinkMsg
      *msg, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:138,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:139,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:141,1
    - Dst: fu_huddly_usb_device_bulk_read
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:143,1
    - Dst: fu_huddly_usb_hlink_msg_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:146,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: fu_huddly_usb_device_hlink_receive
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_hlink_msg_parse
    - g_steal_pointer
    - g_prefix_error
    - g_autoptr
    - fu_byte_array_set_size
    - g_byte_array_new
    - fu_huddly_usb_device_bulk_read
    linkageType: ''
    returnType: FuHuddlyUsbHLinkMsg
    signature: 'FuHuddlyUsbHLinkMsg *

      fu_huddly_usb_device_hlink_receive(FuHuddlyUsbDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:159,1
    - Dst: fu_huddly_usb_hlink_msg_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:160,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:161,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - subscription
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: fu_huddly_usb_device_hlink_subscribe
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_hlink_msg_new_string
    - g_debug
    - fu_huddly_usb_device_hlink_send
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_hlink_subscribe(FuHuddlyUsbDevice *self,\n\t\t\t\t
      \    const gchar *subscription,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:170,1
    - Dst: fu_huddly_usb_hlink_msg_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:171,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:172,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - subscription
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: fu_huddly_usb_device_hlink_unsubscribe
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_hlink_msg_new_string
    - g_debug
    - fu_huddly_usb_device_hlink_send
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_hlink_unsubscribe(FuHuddlyUsbDevice
      *self,\n\t\t\t\t       const gchar *subscription,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:180,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:180,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:181,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: fu_huddly_usb_device_send_reset
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_huddly_usb_device_bulk_write
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_send_reset(FuHuddlyUsbDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:193,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:194,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:194,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:197,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:198,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:201,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:205,1
    - Dst: fu_huddly_usb_device_bulk_read
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:206,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:207,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: fu_huddly_usb_device_salute
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_bulk_write
    - g_debug
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_huddly_usb_device_bulk_read
    - g_autoptr
    - fu_strsafe
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_salute(FuHuddlyUsbDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:223,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:225,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:226,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:229,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:231,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:234,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:236,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:239,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:240,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:245,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:247,1
    - Dst: g_regex_split_simple
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:250,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:251,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:254,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:259,1
    - Dst: fu_huddly_usb_device_set_state
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:262,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 264
    functionName: fu_huddly_usb_device_ensure_product_info
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_regex_split_simple
    - fu_msgpack_item_get_string
    - fu_device_set_version
    - g_auto
    - g_debug
    - fu_msgpack_parse
    - fu_huddly_usb_device_set_state
    - g_prefix_error
    - fu_huddly_usb_device_hlink_send
    - fu_huddly_usb_device_hlink_subscribe
    - fu_huddly_usb_hlink_msg_new
    - fu_msgpack_map_lookup
    - FU_DEVICE
    - g_autoptr
    - fu_huddly_usb_device_hlink_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_ensure_product_info(FuHuddlyUsbDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:269,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:269,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 6
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: fu_huddly_usb_device_reboot
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_hlink_send
    - g_autoptr
    - fu_huddly_usb_hlink_msg_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_reboot(FuHuddlyUsbDevice *self, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:285,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:287,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:290,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:290,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:291,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:291,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:292,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:292,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:293,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:293,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:294,1
    - Dst: fu_msgpack_item_new_binary_stream
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:294,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:295,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:296,1
    - Dst: fu_huddly_usb_hlink_msg_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:297,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:301,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:303,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:307,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:311,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:314,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:319,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:320,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:322,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:330,1
    - Dst: fu_huddly_usb_device_hlink_unsubscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 5
    argNames:
    - self
    - filename
    - stream
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 339
    functionName: fu_huddly_usb_device_hcp_write_file
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_get_string
    - g_set_error
    - fu_msgpack_item_new_binary_stream
    - fu_huddly_usb_device_bulk_write
    - fu_msgpack_parse
    - fu_msgpack_write
    - fu_huddly_usb_device_hlink_subscribe
    - fu_msgpack_item_new_string
    - fu_huddly_usb_hlink_msg_new
    - fu_msgpack_item_get_integer
    - fu_msgpack_map_lookup
    - fu_huddly_usb_device_hlink_unsubscribe
    - g_autoptr
    - fu_msgpack_item_new_map
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_huddly_usb_device_hlink_receive
    - fu_huddly_usb_hlink_msg_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_hcp_write_file(FuHuddlyUsbDevice *self,\n\t\t\t\t
      \   const gchar *filename,\n\t\t\t\t    GInputStream *stream,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:351,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:353,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:356,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:359,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:362,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:363,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:366,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:369,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:371,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:375,1
    - Dst: fu_msgpack_item_get_boolean
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:378,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:381,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 392
    functionName: fu_huddly_usb_device_hpk_done_cb
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_get_string
    - g_set_error
    - fu_msgpack_parse
    - g_debug
    - g_prefix_error
    - fu_msgpack_item_get_boolean
    - fu_msgpack_item_get_integer
    - fu_msgpack_map_lookup
    - g_autoptr
    - FU_HUDDLY_USB_DEVICE
    - g_strcmp0
    - fu_huddly_usb_device_hlink_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_hpk_done_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:398,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:399,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:401,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:401,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:402,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:402,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:403,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:403,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:405,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:407,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:410,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:413,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:416,1
    - Dst: fu_huddly_usb_device_hlink_unsubscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 394
    functionDepth: 7
    functionLinenumber: 394
    functionLinenumberEnd: 425
    functionName: fu_huddly_usb_device_hpk_run
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_huddly_usb_device_hlink_send
    - fu_msgpack_write
    - fu_huddly_usb_device_hlink_subscribe
    - fu_msgpack_item_new_string
    - fu_huddly_usb_hlink_msg_new
    - FU_DEVICE
    - fu_huddly_usb_device_hlink_unsubscribe
    - g_autoptr
    - fu_msgpack_item_new_map
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_hpk_run(FuHuddlyUsbDevice *self, const
      gchar *filename, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:430,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:431,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:432,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: fu_huddly_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_HUDDLY_USB_DEVICE
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:439,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:440,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:441,1
    - Dst: fu_huddly_usb_device_hcp_write_file
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:444,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:447,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:451,1
    - Dst: fu_huddly_usb_device_hpk_run
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:455,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 436
    functionDepth: 8
    functionLinenumber: 436
    functionLinenumberEnd: 461
    functionName: fu_huddly_usb_device_verify
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_huddly_usb_device_hpk_run
    - fu_huddly_usb_device_hcp_write_file
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_verify(FuHuddlyUsbDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:466,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:468,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:469,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:474,1
    - Dst: fu_huddly_usb_device_verify
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:475,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:478,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:480,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 492
    functionName: fu_huddly_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_huddly_usb_device_ensure_product_info
    - fu_huddly_usb_device_verify
    - g_prefix_error
    - FU_HUDDLY_USB_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:497,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:500,1
    - Dst: fu_huddly_usb_device_find_interface
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 9
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: fu_huddly_usb_device_probe
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_HUDDLY_USB_DEVICE
    - fu_huddly_usb_device_find_interface
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_probe(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:509,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:512,1
    - Dst: fu_huddly_usb_device_send_reset
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:516,1
    - Dst: fu_huddly_usb_device_send_reset
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:518,1
    - Dst: fu_huddly_usb_device_salute
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:520,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 527
    functionName: fu_huddly_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_ensure_product_info
    - FU_DEVICE_CLASS
    - fu_huddly_usb_device_send_reset
    - fu_huddly_usb_device_salute
    - FU_HUDDLY_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:535,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: fu_huddly_usb_device_cleanup
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_HUDDLY_USB_DEVICE
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_cleanup(FuDevice *device,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:550,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:553,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:554,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:555,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:556,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:559,1
    - Dst: fu_huddly_usb_device_hcp_write_file
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:564,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:567,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:571,1
    - Dst: fu_huddly_usb_device_hpk_run
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:574,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:576,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:582,1
    - Dst: fu_huddly_usb_device_reboot
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:587,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:589,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 543
    functionDepth: 8
    functionLinenumber: 543
    functionLinenumberEnd: 595
    functionName: fu_huddly_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_huddly_usb_device_hpk_run
    - fu_huddly_usb_device_hcp_write_file
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_huddly_usb_device_reboot
    - fu_progress_set_id
    - FU_DEVICE
    - FU_HUDDLY_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_huddly_usb_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:601,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:602,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:604,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 606
    functionName: fu_huddly_usb_device_set_progress
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:611,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:612,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:613,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:614,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:614,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:615,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:615,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:616,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:616,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:617,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHuddlyUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: fu_huddly_usb_device_init
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_init(FuHuddlyUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:624,1
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:625,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: fu_huddly_usb_device_replace
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - FU_HUDDLY_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:632,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:634,1
    - Dst: g_free
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:635,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 637
    functionName: fu_huddly_usb_device_finalize
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_HUDDLY_USB_DEVICE
    - g_free
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:642,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHuddlyUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 653
    functionName: fu_huddly_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_huddly_usb_device_class_init(FuHuddlyUsbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:24,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_fresco_pd_device_to_string
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_FRESCO_PD_DEVICE
    - fwupd_codec_string_append_int
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:37,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:38,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:41,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:42,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:55,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:56,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 71
    functionName: fu_fresco_pd_device_transfer_read
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fresco_pd_device_transfer_read(FuFrescoPdDevice *self,\n\t\t\t\t
      \ guint16 offset,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  guint16 bufsz,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:82,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:83,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:86,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:87,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:87,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 115
    functionName: fu_fresco_pd_device_transfer_write
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fresco_pd_device_transfer_write(FuFrescoPdDevice *self,\n\t\t\t\t
      \  guint16 offset,\n\t\t\t\t   guint8 *buf,\n\t\t\t\t   guint16 bufsz,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_fresco_pd_device_transfer_read
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - offset
    - buf
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: fu_fresco_pd_device_read_byte
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_transfer_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_read_byte(FuFrescoPdDevice *self, guint16
      offset, guint8 *buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_fresco_pd_device_transfer_write
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - offset
    - buf
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: fu_fresco_pd_device_write_byte
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_transfer_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_write_byte(FuFrescoPdDevice *self, guint16
      offset, guint8 buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:133,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - offset
    - val
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: fu_fresco_pd_device_set_byte
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_read_byte
    - fu_fresco_pd_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_set_byte(FuFrescoPdDevice *self, guint16
      offset, guint8 val, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:144,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - offset
    - val
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: fu_fresco_pd_device_and_byte
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_read_byte
    - fu_fresco_pd_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_and_byte(FuFrescoPdDevice *self, guint16
      offset, guint8 val, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:154,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - offset
    - val
    - error
    argTypes:
    - FuFrescoPdDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: fu_fresco_pd_device_or_byte
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_read_byte
    - fu_fresco_pd_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_or_byte(FuFrescoPdDevice *self, guint16
      offset, guint8 val, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:163,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:168,1
    - Dst: fu_fresco_pd_device_transfer_read
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:174,1
    - Dst: fu_fresco_pd_version_from_buf
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:178,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:179,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:185,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 187
    functionName: fu_fresco_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_transfer_read
    - FU_FRESCO_PD_DEVICE
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_fresco_pd_version_from_buf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:198,1
    - Dst: fu_fresco_pd_firmware_new
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:198,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:201,1
    - Dst: fu_fresco_pd_firmware_get_customer_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:203,1
    - Dst: FU_FRESCO_PD_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:203,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:205,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: fu_fresco_pd_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_FRESCO_PD_DEVICE
    - g_set_error
    - g_steal_pointer
    - fu_fresco_pd_firmware_get_customer_id
    - FU_FRESCO_PD_FIRMWARE
    - fu_fresco_pd_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_fresco_pd_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:218,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:220,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:221,1
    - Dst: fu_fresco_pd_device_or_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:224,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:226,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:229,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFrescoPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: fu_fresco_pd_device_panther_reset_device
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_fresco_pd_device_or_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_panther_reset_device(FuFrescoPdDevice
      *self, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:250,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:253,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:254,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:255,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:256,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:257,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:258,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:259,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:262,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:265,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:281,1
    - Dst: fu_fresco_pd_device_and_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:283,1
    - Dst: fu_fresco_pd_device_and_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:286,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:287,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:290,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:291,1
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:298,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:302,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:313,1
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:317,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:322,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:325,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:330,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:333,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:335,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:340,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:340,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:344,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:350,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:352,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:357,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:362,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:368,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:370,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:375,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:377,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:382,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:387,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:393,1
    - Dst: fu_fresco_pd_device_panther_reset_device
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:396,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:398,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 95
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 237
    functionDepth: 7
    functionLinenumber: 237
    functionLinenumberEnd: 402
    functionName: fu_fresco_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - FU_FRESCO_PD_DEVICE
    - fu_fresco_pd_device_read_byte
    - g_debug
    - fu_progress_step_done
    - fu_fresco_pd_device_set_byte
    - fu_progress_get_child
    - g_prefix_error
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_memcpy_safe
    - fu_progress_set_id
    - g_autoptr
    - fu_fresco_pd_device_and_byte
    - fu_fresco_pd_device_panther_reset_device
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_fresco_pd_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fresco_pd_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:407,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:408,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:409,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:410,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:411,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:412,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: fu_fresco_pd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:419,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:420,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:421,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:422,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:423,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:424,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:425,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: fu_fresco_pd_device_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_device_init(FuFrescoPdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: fu_fresco_pd_device_class_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_device_class_init(FuFrescoPdDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-common.c:16,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-common.c:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ver
    argTypes:
    - guint8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: fu_fresco_pd_version_from_buf
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-common.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_fresco_pd_version_from_buf(const guint8 ver[4])'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_fresco_pd_plugin_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_plugin_init(FuFrescoPdPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_fresco_pd_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_fresco_pd_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_plugin_class_init(FuFrescoPdPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_fresco_pd_firmware_get_customer_id
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_fresco_pd_firmware_get_customer_id(FuFrescoPdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:29,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: fu_fresco_pd_firmware_export
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_FRESCO_PD_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:39,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:44,1
    - Dst: fu_fresco_pd_version_from_buf
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:57,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: fu_fresco_pd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_version_from_buf
    - fu_firmware_set_version
    - fu_input_stream_read_safe
    - FU_FRESCO_PD_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fresco_pd_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:65,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: fu_fresco_pd_firmware_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_firmware_init(FuFrescoPdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_fresco_pd_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_firmware_class_init(FuFrescoPdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:79,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: fu_fresco_pd_firmware_new
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_fresco_pd_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/corsair/fu-corsair-common.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_corsair_version_from_uint32
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-common.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_corsair_version_from_uint32(guint32 value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_corsair_plugin_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_corsair_plugin_init(FuCorsairPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:28,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:32,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: fu_corsair_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_corsair_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_corsair_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_plugin_class_init(FuCorsairPluginClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:49,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:56,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:59,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:62,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:62,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:64,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:71,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:72,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:75,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:82,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:83,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:84,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:85,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:86,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:87,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:88,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:90,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:91,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:92,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:93,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:97,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:104,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:104,1
    - Dst: fu_corsair_bp_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:106,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:106,1
    - Dst: fu_corsair_bp_set_cmd_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:107,1
    - Dst: fu_corsair_bp_set_endpoints
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 111
    functionName: fu_corsair_device_probe
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_bp_new
    - FU_DEVICE_CLASS
    - fu_usb_device_add_interface
    - fu_device_has_private_flag
    - fu_corsair_bp_set_cmd_size
    - FU_CORSAIR_DEVICE
    - g_set_error_literal
    - g_ptr_array_index
    - fu_usb_interface_get_endpoints
    - fu_usb_endpoint_get_direction
    - g_autoptr
    - FU_USB_DEVICE
    - fu_usb_endpoint_get_address
    - fu_corsair_bp_set_endpoints
    - fu_usb_device_get_interfaces
    - fu_usb_endpoint_get_maximum_packet_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:119,1
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:125,1
    - Dst: fu_corsair_bp_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:134,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:134,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:136,1
    - Dst: fu_corsair_device_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:139,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:140,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:141,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:142,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:144,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:146,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - device
    - subdevice_added
    - error
    argTypes:
    - FuDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 113
    functionDepth: 9
    functionLinenumber: 113
    functionLinenumberEnd: 153
    functionName: fu_corsair_device_poll_subdevice
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_add_child
    - fu_corsair_bp_new
    - fu_device_add_private_flag
    - fu_device_setup
    - g_prefix_error
    - fu_device_add_instance_id
    - fu_corsair_bp_get_property
    - fu_device_set_logical_id
    - FU_CORSAIR_DEVICE
    - FU_DEVICE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_device_probe
    - fu_corsair_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_poll_subdevice(FuDevice *device, gboolean
      *subdevice_added, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:158,1
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:161,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:167,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:169,1
    - Dst: fu_corsair_version_from_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: fu_corsair_device_get_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_version_from_uint32
    - fu_corsair_bp_get_property
    - fu_device_has_private_flag
    - FU_CORSAIR_DEVICE
    - fu_device_has_flag
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_corsair_device_get_version(FuDevice *device, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:190,1
    - Dst: fu_corsair_version_from_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairBp*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: fu_corsair_device_get_bootloader_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_version_from_uint32
    - fu_corsair_bp_get_property
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_corsair_device_get_bootloader_version(FuCorsairBp *self, GError **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:206,1
    - Dst: fu_corsair_bp_flush_input_reports
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:208,1
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:210,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:213,1
    - Dst: fu_corsair_device_get_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:217,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:220,1
    - Dst: fu_corsair_device_get_bootloader_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:222,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:224,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:227,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:229,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:230,1
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:231,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:235,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:238,1
    - Dst: fu_corsair_bp_set_legacy_attach
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:240,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:242,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:244,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:250,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:255,1
    - Dst: fu_corsair_device_poll_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:256,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:257,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 199
    functionDepth: 10
    functionLinenumber: 199
    functionLinenumberEnd: 266
    functionName: fu_corsair_device_setup
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_version
    - fu_corsair_device_get_version
    - fu_device_set_battery_level
    - fu_corsair_bp_set_legacy_attach
    - fu_device_set_poll_interval
    - g_prefix_error
    - fu_corsair_bp_flush_input_reports
    - fu_corsair_bp_get_property
    - fu_corsair_device_get_bootloader_version
    - fu_device_set_version_bootloader
    - FU_CORSAIR_DEVICE
    - fu_device_add_flag
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_autoptr
    - fu_corsair_device_poll_subdevice
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:271,1
    - Dst: fu_corsair_device_setup
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 11
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: fu_corsair_device_reload
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_setup
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_reload(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:283,1
    - Dst: fu_corsair_bp_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:285,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: fu_corsair_device_is_subdevice_connected_cb
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_prefix_error
    - fu_corsair_bp_get_property
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_is_subdevice_connected_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:303,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:306,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:311,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 324
    functionName: fu_corsair_device_reconnect_subdevice
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    - fu_device_sleep
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_reconnect_subdevice(FuDevice *device, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:329,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:332,1
    - Dst: fu_device_attach
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:342,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:343,1
    - Dst: fu_device_detach
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:347,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:347,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:348,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:353,1
    - Dst: fu_corsair_device_reconnect_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:354,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:355,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:359,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:361,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - device
    - mode
    - error
    argTypes:
    - FuDevice*
    - FuCorsairDeviceMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 368
    functionName: fu_corsair_device_ensure_mode
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_attach
    - g_prefix_error
    - fu_device_detach
    - fu_device_has_private_flag
    - FU_CORSAIR_DEVICE
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_add_flag
    - fu_corsair_device_reconnect_subdevice
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_ensure_mode(FuDevice *device, FuCorsairDeviceMode
      mode, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_ensure_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 7
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: fu_corsair_device_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_ensure_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_ensure_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 7
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: fu_corsair_device_detach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_ensure_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:389,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:392,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:393,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:395,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:400,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:404,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:406,1
    - Dst: fu_corsair_bp_activate_firmware
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:407,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:408,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:411,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 382
    functionDepth: 6
    functionLinenumber: 382
    functionLinenumberEnd: 417
    functionName: fu_corsair_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_device_write_firmware
    - g_prefix_error
    - fu_progress_add_step
    - fu_device_has_private_flag
    - fu_corsair_bp_activate_firmware
    - FU_CORSAIR_DEVICE
    - FU_DEVICE
    - fu_device_add_flag
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:422,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:423,1
    - Dst: fu_corsair_device_kind_to_string
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:426,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: fu_corsair_device_to_string
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_string
    - FU_CORSAIR_DEVICE
    - FU_DEVICE
    - fu_corsair_device_kind_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:434,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:435,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:438,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 440
    functionName: fu_corsair_device_set_progress
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:448,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:451,1
    - Dst: fu_corsair_device_kind_from_string
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:452,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:456,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:462,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:464,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:470,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:476,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:477,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 486
    functionName: fu_corsair_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_CORSAIR_DEVICE
    - g_set_error_literal
    - g_strdup
    - fu_corsair_device_kind_from_string
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_set_quirk_kv(FuDevice *device,\n\t\t\t
      \      const gchar *key,\n\t\t\t       const gchar *value,\n\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:492,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:494,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:496,1
    - Dst: fu_corsair_device_poll_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:500,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 488
    functionDepth: 10
    functionLinenumber: 488
    functionLinenumberEnd: 514
    functionName: fu_corsair_device_poll
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - g_autoptr
    - fu_device_locker_new
    - fu_corsair_device_poll_subdevice
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_poll(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:519,1
    - Dst: g_free
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:521,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:523,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: fu_corsair_device_finalize
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_free
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:531,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 546
    functionName: fu_corsair_device_class_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_class_init(FuCorsairDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:551,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:556,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:556,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:557,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:557,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:558,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:558,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:561,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:561,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:562,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:564,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:566,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:566,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuCorsairDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 6
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: fu_corsair_device_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - FU_CORSAIR_DEVICE
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_init(FuCorsairDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:575,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:577,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:577,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:579,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - parent
    - bp
    argTypes:
    - FuCorsairDevice*
    - FuCorsairBp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 570
    functionDepth: 9
    functionLinenumber: 570
    functionLinenumberEnd: 582
    functionName: fu_corsair_device_new
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - g_object_ref
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    linkageType: ''
    returnType: FuCorsairDevice
    signature: 'FuCorsairDevice *

      fu_corsair_device_new(FuCorsairDevice *parent, FuCorsairBp *bp)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:63,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:65,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:65,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:78,1
    - Dst: memset
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:89,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:91,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:104,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - self
    - data
    - timeout
    - need_reply
    - error
    argTypes:
    - FuCorsairBp*
    - guint8*
    - guint
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 124
    functionName: fu_corsair_bp_command
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_prefix_error
    - FU_USB_DEVICE
    - memset
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_bp_command(FuCorsairBp *self,\n\t\t      guint8
      *data,\n\t\t      guint timeout,\n\t\t      gboolean need_reply,\n\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:140,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:141,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairBp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: fu_corsair_bp_flush_input_reports
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 1
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_debug
    - g_malloc0
    - g_autoptr
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_flush_input_reports(FuCorsairBp *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:162,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:166,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:172,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:175,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:178,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:179,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:181,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:183,1
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:186,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - chunk
    - firmware_size
    - error
    argTypes:
    - FuCorsairBp*
    - FuChunk*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 191
    functionName: fu_corsair_bp_write_first_chunk
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_memcpy_safe
    - fu_chunk_get_data
    - fu_corsair_bp_command
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_bp_write_first_chunk(FuCorsairBp *self,\n\t\t\t\tFuChunk
      *chunk,\n\t\t\t\tguint32 firmware_size,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:197,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:200,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:201,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:203,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:205,1
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:208,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - chunk
    - error
    argTypes:
    - FuCorsairBp*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: fu_corsair_bp_write_chunk
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_memcpy_safe
    - fu_chunk_get_data
    - fu_corsair_bp_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_write_chunk(FuCorsairBp *self, FuChunk *chunk,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:218,1
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:219,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:221,1
    - Dst: FU_IS_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:221,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:222,1
    - Dst: FU_IS_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: fu_corsair_bp_incorporate
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_BP
    - FU_IS_CORSAIR_BP
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_incorporate(FuDevice *self, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairBp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: fu_corsair_bp_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_init(FuCorsairBp *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:246,1
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:250,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - property
    - value
    - error
    argTypes:
    - FuCorsairBp*
    - FuCorsairBpProperty
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 256
    functionName: fu_corsair_bp_get_property
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 5
    functionsReached:
    - fu_memwrite_uint16
    - fu_memread_uint32
    - fu_corsair_bp_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_bp_get_property(FuCorsairBp *self,\n\t\t\t   FuCorsairBpProperty
      property,\n\t\t\t   guint32 *value,\n\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:265,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuCorsairBp*
    - FuCorsairDeviceMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: fu_corsair_bp_set_mode
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_corsair_bp_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_set_mode(FuCorsairBp *self, FuCorsairDeviceMode
      mode, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:281,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:282,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:282,1
    - Dst: fu_corsair_bp_write_first_chunk
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:288,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:291,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:294,1
    - Dst: fu_corsair_bp_write_chunk
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:297,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:298,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - self
    - first_chunk
    - chunks
    - progress
    - firmware_size
    - error
    argTypes:
    - FuCorsairBp*
    - FuChunk*
    - FuChunkArray*
    - FuProgress*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 305
    functionName: fu_corsair_bp_write_firmware_chunks
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - fu_corsair_bp_write_first_chunk
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_corsair_bp_write_chunk
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_bp_write_firmware_chunks(FuCorsairBp *self,\n\t\t\t\t
      \   FuChunk *first_chunk,\n\t\t\t\t    FuChunkArray *chunks,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    guint32 firmware_size,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:311,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairBp*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: fu_corsair_bp_commit_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_corsair_bp_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_commit_firmware(FuCorsairBp *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:330,1
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:331,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:336,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:339,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:347,1
    - Dst: fu_chunk_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:354,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:354,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:356,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:358,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:362,1
    - Dst: fu_corsair_bp_write_firmware_chunks
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:367,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:371,1
    - Dst: fu_corsair_bp_commit_firmware
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 318
    functionDepth: 6
    functionLinenumber: 318
    functionLinenumberEnd: 379
    functionName: fu_corsair_bp_write_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - fu_corsair_bp_commit_firmware
    - fu_bytes_get_data_safe
    - g_set_error
    - fu_chunk_array_new_from_bytes
    - FU_CORSAIR_BP
    - g_prefix_error
    - g_bytes_get_size
    - fu_chunk_new
    - g_autoptr
    - fu_corsair_bp_write_firmware_chunks
    - fu_bytes_new_offset
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_bp_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:384,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:387,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:389,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:392,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:393,1
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuCorsairBp*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: fu_corsair_bp_activate_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 1
    functionsReached:
    - g_prefix_error
    - fu_memwrite_uint32
    - g_autoptr
    - fu_corsair_bp_command
    - fu_firmware_get_bytes
    - fu_crc32_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_activate_firmware(FuCorsairBp *self, FuFirmware
      *firmware, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:402,1
    - Dst: fu_corsair_bp_command
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:405,1
    - Dst: fu_corsair_bp_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: fu_corsair_bp_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_BP
    - fu_corsair_bp_set_mode
    - fu_corsair_bp_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:413,1
    - Dst: fu_corsair_bp_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: fu_corsair_bp_detach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_BP
    - fu_corsair_bp_set_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_bp_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_BP
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:420,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:421,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: fu_corsair_bp_to_string
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_BP
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairBpClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: fu_corsair_bp_class_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_class_init(FuCorsairBpClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:440,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-bp.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - usb_device
    - is_subdevice
    argTypes:
    - FuUsbDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 9
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: fu_corsair_bp_new
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 2
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuCorsairBp
    signature: 'FuCorsairBp *

      fu_corsair_bp_new(FuUsbDevice *usb_device, gboolean is_subdevice)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - write_size
    - read_size
    argTypes:
    - FuCorsairBp*
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: fu_corsair_bp_set_cmd_size
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_set_cmd_size(FuCorsairBp *self, guint16 write_size,
      guint16 read_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - epin
    - epout
    argTypes:
    - FuCorsairBp*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: fu_corsair_bp_set_endpoints
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_set_endpoints(FuCorsairBp *self, guint8 epin, guint8
      epout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - is_legacy_attach
    argTypes:
    - FuCorsairBp*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: fu_corsair_bp_set_legacy_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_corsair_bp_set_legacy_attach(FuCorsairBp *self, gboolean is_legacy_attach)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_intel_cvs_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_plugin_init(FuIntelCvsPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:31,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:33,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: fu_intel_cvs_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_intel_cvs_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_plugin_class_init(FuIntelCvsPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:25,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:26,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: fu_intel_cvs_firmware_export
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_CVS_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_intel_cvs_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: fu_intel_cvs_firmware_validate
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_intel_cvs_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_cvs_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       gsize offset,\n\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:50,1
    - Dst: fu_struct_intel_cvs_firmware_hdr_parse_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:53,1
    - Dst: fu_sum32w
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:60,1
    - Dst: fu_struct_intel_cvs_firmware_hdr_get_vid_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:69,1
    - Dst: fu_struct_intel_cvs_id_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:70,1
    - Dst: fu_struct_intel_cvs_id_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:71,1
    - Dst: fu_struct_intel_cvs_firmware_hdr_get_fw_version
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:74,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:75,1
    - Dst: fu_struct_intel_cvs_fw_get_major
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:76,1
    - Dst: fu_struct_intel_cvs_fw_get_minor
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:77,1
    - Dst: fu_struct_intel_cvs_fw_get_hotfix
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:78,1
    - Dst: fu_struct_intel_cvs_fw_get_build
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:79,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 82
    functionName: fu_intel_cvs_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_intel_cvs_fw_get_hotfix
    - fu_struct_intel_cvs_firmware_hdr_parse_stream
    - FU_INTEL_CVS_FIRMWARE
    - fu_struct_intel_cvs_id_get_vid
    - g_strdup_printf
    - fu_firmware_set_version
    - fu_struct_intel_cvs_firmware_hdr_get_vid_pid
    - fu_struct_intel_cvs_id_get_pid
    - fu_struct_intel_cvs_fw_get_minor
    - g_autoptr
    - fu_struct_intel_cvs_fw_get_build
    - fu_struct_intel_cvs_fw_get_major
    - fu_struct_intel_cvs_firmware_hdr_get_fw_version
    - fu_sum32w
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_cvs_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:87,1
    - Dst: FU_IS_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: fu_intel_cvs_firmware_get_vid
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_INTEL_CVS_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_intel_cvs_firmware_get_vid(FuIntelCvsFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:94,1
    - Dst: FU_IS_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: fu_intel_cvs_firmware_get_pid
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_INTEL_CVS_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_intel_cvs_firmware_get_pid(FuIntelCvsFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:101,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:102,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:103,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: fu_intel_cvs_firmware_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_firmware_init(FuIntelCvsFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: fu_intel_cvs_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_firmware_class_init(FuIntelCvsFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:118,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: fu_intel_cvs_firmware_new
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_intel_cvs_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:26,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_intel_cvs_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:37,1
    - Dst: fu_udev_device_read_sysfs_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:40,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:40,1
    - Dst: fu_struct_intel_cvs_probe_parse_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:47,1
    - Dst: fu_struct_intel_cvs_probe_get_dev_capabilities
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:52,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:54,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:57,1
    - Dst: fu_struct_intel_cvs_probe_get_major
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:58,1
    - Dst: fu_struct_intel_cvs_probe_get_minor
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:59,1
    - Dst: fu_struct_intel_cvs_probe_get_hotfix
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:60,1
    - Dst: fu_struct_intel_cvs_probe_get_build
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:61,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:62,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:65,1
    - Dst: fu_struct_intel_cvs_probe_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:65,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:66,1
    - Dst: fu_struct_intel_cvs_probe_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:66,1
    - Dst: fu_struct_intel_cvs_probe_get_opid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:67,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:68,1
    - Dst: fu_struct_intel_cvs_probe_get_opid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:70,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:71,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 82
    functionName: fu_intel_cvs_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_intel_cvs_probe_get_minor
    - fu_struct_intel_cvs_probe_get_build
    - fu_struct_intel_cvs_probe_get_hotfix
    - fu_device_set_version
    - fu_udev_device_read_sysfs_bytes
    - fu_struct_intel_cvs_probe_get_major
    - fu_device_set_vid
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_add_instance_u32
    - fu_struct_intel_cvs_probe_get_dev_capabilities
    - fu_struct_intel_cvs_probe_get_pid
    - fu_struct_intel_cvs_probe_get_vid
    - fu_struct_intel_cvs_probe_get_opid
    - g_autoptr
    - fu_device_set_pid
    - g_strdup_printf
    - fu_device_build_instance_id
    - fu_struct_intel_cvs_probe_parse_bytes
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_cvs_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:87,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:87,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:90,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: fu_intel_cvs_device_vid_notify_cb
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_build_vendor_id_u16
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_vid_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:96,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: fu_intel_cvs_device_pid_notify_cb
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_pid_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:107,1
    - Dst: fu_intel_cvs_firmware_new
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:107,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:110,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:112,1
    - Dst: fu_intel_cvs_firmware_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:113,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:113,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:114,1
    - Dst: fu_intel_cvs_firmware_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:115,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:116,1
    - Dst: fu_intel_cvs_firmware_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:120,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:120,1
    - Dst: fu_intel_cvs_firmware_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:121,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:121,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:122,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 127
    functionName: fu_intel_cvs_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - g_steal_pointer
    - fu_device_get_vid
    - FU_INTEL_CVS_FIRMWARE
    - fu_intel_cvs_firmware_get_pid
    - fu_firmware_parse_stream
    - FU_DEVICE
    - g_autoptr
    - fu_intel_cvs_firmware_new
    - fu_intel_cvs_firmware_get_vid
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_intel_cvs_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:134,1
    - Dst: fu_udev_device_read_sysfs_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:137,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:137,1
    - Dst: fu_struct_intel_cvs_status_parse_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:144,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:147,1
    - Dst: fu_struct_intel_cvs_status_get_num_packets_sent
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:148,1
    - Dst: fu_struct_intel_cvs_status_get_total_packets
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:149,1
    - Dst: fu_struct_intel_cvs_status_get_fw_dl_finished
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:151,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 163
    functionName: fu_intel_cvs_device_check_status_cb
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_set_status
    - fu_udev_device_read_sysfs_bytes
    - fu_struct_intel_cvs_status_parse_bytes
    - fu_struct_intel_cvs_status_get_num_packets_sent
    - FU_PROGRESS
    - fu_struct_intel_cvs_status_get_total_packets
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_struct_intel_cvs_status_get_fw_dl_finished
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_cvs_device_check_status_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:174,1
    - Dst: fu_struct_intel_cvs_write_new
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:176,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:179,1
    - Dst: fu_io_channel_virtual_new
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:184,1
    - Dst: fu_io_channel_write_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:187,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:192,1
    - Dst: fu_io_channel_seek
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:195,1
    - Dst: fu_struct_intel_cvs_write_set_max_download_time
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:199,1
    - Dst: fu_struct_intel_cvs_write_set_max_flash_time
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:200,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:200,1
    - Dst: fu_struct_intel_cvs_write_set_max_fwupd_retry_count
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:201,1
    - Dst: fu_struct_intel_cvs_write_set_fw_bin_fd
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:202,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:202,1
    - Dst: fu_udev_device_write_sysfs_byte_array
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:203,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:203,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:211,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:217,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:218,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:220,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 227
    functionName: fu_intel_cvs_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_firmware_get_stream
    - g_prefix_error
    - g_propagate_error
    - fu_struct_intel_cvs_write_set_max_fwupd_retry_count
    - g_debug
    - fu_io_channel_seek
    - fu_io_channel_write_stream
    - FU_UDEV_DEVICE
    - fu_device_get_remove_delay
    - fu_struct_intel_cvs_write_set_max_flash_time
    - fu_io_channel_unix_get_fd
    - g_error_matches
    - g_steal_pointer
    - fu_struct_intel_cvs_write_set_fw_bin_fd
    - g_autoptr
    - fu_struct_intel_cvs_write_set_max_download_time
    - fu_udev_device_write_sysfs_byte_array
    - fu_struct_intel_cvs_write_new
    - fu_io_channel_virtual_new
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_cvs_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:235,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:238,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:240,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:245,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:247,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: fu_intel_cvs_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_cvs_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:264,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:265,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:266,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:267,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:268,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:269,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: fu_intel_cvs_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:278,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:279,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:280,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:281,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:281,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:282,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:283,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:284,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:285,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:286,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:287,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:288,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:289,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:290,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:291,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:292,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:293,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:295,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:297,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 301
    functionName: fu_intel_cvs_device_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_add_protocol
    - G_CALLBACK
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - g_signal_connect
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_init(FuIntelCvsDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: fu_intel_cvs_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_class_init(FuIntelCvsDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGIND_PLUGIN
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:25,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_logind_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_LOGIND_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_logind_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGIND_PLUGIN
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:32,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:35,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:45,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:48,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:50,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: fu_logind_plugin_startup
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_LOGIND_PLUGIN
    - g_prefix_error
    - g_dbus_proxy_get_name
    - g_dbus_proxy_get_name_owner
    - g_dbus_proxy_new_for_bus_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logind_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGIND_PLUGIN
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:66,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:76,1
    - Dst: g_dbus_proxy_call_with_unix_fd_list_sync
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:81,1
    - Dst: g_variant_new
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:84,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:92,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:97,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:98,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:101,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 104
    functionName: fu_logind_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_unix_fd_list_get
    - g_debug
    - FU_LOGIND_PLUGIN
    - g_autoptr
    - g_unix_fd_list_get_length
    - g_dbus_proxy_call_with_unix_fd_list_sync
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logind_plugin_composite_prepare(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGIND_PLUGIN
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:109,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:112,1
    - Dst: g_close
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: fu_logind_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_close
    - g_debug
    - FU_LOGIND_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logind_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogindPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: fu_logind_plugin_init
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logind_plugin_init(FuLogindPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGIND_PLUGIN
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:128,1
    - Dst: g_close
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:130,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:132,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: fu_logind_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_close
    - g_object_unref
    - FU_LOGIND_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logind_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:139,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogindPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: fu_logind_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logind_plugin_class_init(FuLogindPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:46,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:47,1
    - Dst: fu_context_security_changed
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: fu_linux_tainted_plugin_changed_cb
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - fu_context_security_changed
    linkageType: ''
    returnType: void
    signature: "void fu_linux_tainted_plugin_changed_cb(GFileMonitor *monitor,\n\t\t\t\t
      \  GFile *file,\n\t\t\t\t   GFile *other_file,\n\t\t\t\t   GFileMonitorEvent
      event_type,\n\t\t\t\t   gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_TAINTED_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:54,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:58,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:59,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:60,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:61,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:64,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:64,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: fu_linux_tainted_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - G_FILE_MONITOR
    - FU_LINUX_TAINTED_PLUGIN
    - g_file_new_for_path
    - g_build_filename
    - g_file_monitor
    - fu_path_from_kind
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_tainted_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_TAINTED_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:80,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:83,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:84,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:85,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:86,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:89,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:90,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:95,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:96,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:97,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:98,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:103,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:104,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:105,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:106,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:119,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:120,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 126
    functionName: fu_linux_tainted_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_plugin_has_flag
    - fwupd_security_attr_add_flag
    - FU_LINUX_TAINTED_PLUGIN
    - g_file_get_path
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - g_file_load_contents
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - g_strndup
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_linux_tainted_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxTaintedPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: fu_linux_tainted_plugin_init
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_tainted_plugin_init(FuLinuxTaintedPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_TAINTED_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:136,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:138,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:140,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:141,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: fu_linux_tainted_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_file_monitor_cancel
    - G_OBJECT_CLASS
    - FU_LINUX_TAINTED_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_linux_tainted_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:149,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxTaintedPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: fu_linux_tainted_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_tainted_plugin_class_init(FuLinuxTaintedPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:65,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:68,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:68,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:81,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 89
    functionName: fu_genesys_scaler_device_enter_serial_debug_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_serial_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:94,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:97,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:97,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: fu_genesys_scaler_device_exit_serial_debug_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_exit_serial_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:121,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:125,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:138,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:142,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 161
    functionName: fu_genesys_scaler_device_enter_single_step_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_single_step_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:166,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:169,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:169,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: fu_genesys_scaler_device_exit_single_step_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_exit_single_step_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:193,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:196,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: fu_genesys_scaler_device_enter_debug_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:220,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:224,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 244
    functionName: fu_genesys_scaler_device_mst_i2c_bus_ctrl
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_ctrl(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:249,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:253,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 273
    functionName: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:278,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:282,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:307,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:323,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:323,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:336,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:343,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:343,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:356,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:364,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:379,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:379,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:392,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:406,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:406,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:419,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:426,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:439,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:447,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:459,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:459,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:472,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - self
    - disable
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 482
    functionName: fu_genesys_scaler_device_disable_wp
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_disable_wp(FuGenesysScalerDevice
      *self, gboolean disable, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:487,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:496,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:496,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:509,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:519,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:519,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:532,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:543,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:556,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:556,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:569,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 583
    functionName: fu_genesys_scaler_device_pause_r2_cpu
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_pause_r2_cpu(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:589,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:592,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:592,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 611
    functionName: fu_genesys_scaler_device_set_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_set_isp_mode(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:623,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:623,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 635
    functionName: fu_genesys_scaler_device_enter_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_isp_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:640,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:643,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:643,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 662
    functionName: fu_genesys_scaler_device_exit_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_exit_isp_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:667,1
    - Dst: fu_genesys_scaler_device_enter_serial_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:674,1
    - Dst: fu_genesys_scaler_device_enter_single_step_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:677,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:680,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:681,1
    - Dst: fu_genesys_scaler_device_enter_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:684,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_ctrl
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:687,1
    - Dst: fu_genesys_scaler_device_disable_wp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:690,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:693,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:694,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_ctrl
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:697,1
    - Dst: fu_genesys_scaler_device_pause_r2_cpu
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:700,1
    - Dst: fu_genesys_scaler_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:704,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 709
    functionName: fu_genesys_scaler_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_enter_debug_mode
    - fu_genesys_scaler_device_pause_r2_cpu
    - fu_device_has_private_flag
    - fu_genesys_scaler_device_enter_serial_debug_mode
    - FU_GENESYS_SCALER_DEVICE
    - fu_genesys_scaler_device_enter_isp_mode
    - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
    - fu_genesys_scaler_device_enter_single_step_mode
    - fu_genesys_scaler_device_mst_i2c_bus_ctrl
    - fu_genesys_scaler_device_disable_wp
    - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:714,1
    - Dst: fu_genesys_scaler_device_exit_single_step_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:716,1
    - Dst: fu_genesys_scaler_device_exit_serial_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:719,1
    - Dst: fu_genesys_scaler_device_exit_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: fu_genesys_scaler_device_attach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_exit_single_step_mode
    - FU_GENESYS_SCALER_DEVICE
    - fu_genesys_scaler_device_exit_isp_mode
    - fu_genesys_scaler_device_exit_serial_debug_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:732,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:732,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:734,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:734,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:747,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - level
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 754
    functionName: fu_genesys_scaler_device_get_level
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_get_level(FuGenesysScalerDevice *self,
      guint8 *level, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:762,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:764,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:764,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:777,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 785
    functionName: fu_genesys_scaler_device_get_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_get_version(FuGenesysScalerDevice
      *self,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     guint bufsz,\n\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:793,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:793,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:795,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:797,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:799,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:801,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:801,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:807,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:808,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:809,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:814,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 823
    functionName: fu_genesys_scaler_device_get_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - fu_usb_device_control_transfer
    - g_ptr_array_index
    - FU_DEVICE
    - g_autoptr
    - fu_device_get_parent
    - FU_USB_DEVICE
    - fu_chunk_get_address
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_get_public_key(FuGenesysScalerDevice
      *self,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tguint bufsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:833,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:833,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:847,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:849,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:852,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:852,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:865,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:869,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:869,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:882,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:886,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:887,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:888,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:890,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:892,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:892,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:899,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:900,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:905,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:907,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:910,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:913,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:913,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 825
    functionDepth: 4
    functionLinenumber: 825
    functionLinenumberEnd: 932
    functionName: fu_genesys_scaler_device_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_get_parent
    - FU_USB_DEVICE
    - fu_chunk_get_address
    - fu_progress_set_steps
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_read_flash(FuGenesysScalerDevice
      *self,\n\t\t\t\t    guint addr,\n\t\t\t\t    guint8 *buf,\n\t\t\t\t    guint
      bufsz,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:939,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:940,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:940,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:944,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:944,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:957,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dev
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 934
    functionDepth: 3
    functionLinenumber: 934
    functionLinenumberEnd: 971
    functionName: fu_genesys_scaler_device_wait_flash_control_register_cb
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_GENESYS_SCALER_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_wait_flash_control_register_cb(FuDevice
      *dev,\n\t\t\t\t\t\t\tgpointer user_data,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:976,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:985,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:988,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:988,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1001,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1005,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1005,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 1024
    functionName: fu_genesys_scaler_device_flash_control_write_enable
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_flash_control_write_enable(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1031,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1031,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1041,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1047,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1047,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1060,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1064,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1064,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1083
    functionName: fu_genesys_scaler_device_flash_control_write_status
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_flash_control_write_status(FuGenesysScalerDevice
      *self,\n\t\t\t\t\t\t    guint8 status,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1090,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1090,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1106,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1112,1
    - Dst: fu_genesys_scaler_device_flash_control_write_enable
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1118,1
    - Dst: fu_genesys_scaler_device_flash_control_write_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1121,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1131,1
    - Dst: fu_genesys_scaler_device_flash_control_write_enable
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1135,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1138,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1138,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1151,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1157,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1157,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1170,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1183,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1085
    functionDepth: 4
    functionLinenumber: 1085
    functionLinenumberEnd: 1189
    functionName: fu_genesys_scaler_device_flash_control_sector_erase
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_genesys_scaler_device_flash_control_write_enable
    - g_prefix_error
    - fu_genesys_scaler_device_flash_control_write_status
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_flash_control_sector_erase(FuGenesysScalerDevice
      *self,\n\t\t\t\t\t\t    guint addr,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1198,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1200,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1201,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1202,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1204,1
    - Dst: fu_genesys_scaler_device_flash_control_sector_erase
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1206,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1207,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1209,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1211,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - addr
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1191
    functionDepth: 5
    functionLinenumber: 1191
    functionLinenumberEnd: 1219
    functionName: fu_genesys_scaler_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_prefix_error
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_genesys_scaler_device_flash_control_sector_erase
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_erase_flash(FuGenesysScalerDevice
      *self,\n\t\t\t\t     guint addr,\n\t\t\t\t     guint bufsz,\n\t\t\t\t     FuProgress
      *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1242,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1245,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1251,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1255,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1256,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1265,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1276,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1277,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1278,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1280,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1286,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1286,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1293,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1294,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1299,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1302,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1305,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1309,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1221
    functionDepth: 4
    functionLinenumber: 1221
    functionLinenumberEnd: 1320
    functionName: fu_genesys_scaler_device_flash_control_page_program
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_retry
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_memcpy_safe
    - fu_chunk_array_mutable_new
    - g_malloc0
    - fu_usb_device_control_transfer
    - g_ptr_array_index
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_get_parent
    - FU_USB_DEVICE
    - fu_chunk_get_address
    - fu_progress_set_steps
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_flash_control_page_program(FuGenesysScalerDevice
      *self,\n\t\t\t\t\t\t    guint addr,\n\t\t\t\t\t\t    const guint8 *buf,\n\t\t\t\t\t\t
      \   guint bufsz,\n\t\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1330,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1332,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1333,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1334,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1336,1
    - Dst: fu_genesys_scaler_device_flash_control_page_program
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1338,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1340,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1341,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1342,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1343,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1322
    functionDepth: 5
    functionLinenumber: 1322
    functionLinenumberEnd: 1351
    functionName: fu_genesys_scaler_device_write_sector
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_genesys_scaler_device_flash_control_page_program
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_write_sector(FuGenesysScalerDevice
      *self,\n\t\t\t\t      guint addr,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t
      \     guint bufsz,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1361,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1363,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1364,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1365,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1367,1
    - Dst: fu_genesys_scaler_device_write_sector
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1369,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1370,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1371,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1372,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1373,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1353
    functionDepth: 6
    functionLinenumber: 1353
    functionLinenumberEnd: 1381
    functionName: fu_genesys_scaler_device_write_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_genesys_scaler_device_write_sector
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_write_flash(FuGenesysScalerDevice
      *self,\n\t\t\t\t     guint addr,\n\t\t\t\t     const guint8 *buf,\n\t\t\t\t
      \    guint bufsz,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1392
    functionName: fu_genesys_scaler_device_calculate_checksum
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_genesys_scaler_device_calculate_checksum(const guint8 *buf,
      gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1401,1
    - Dst: fu_genesys_scaler_device_calculate_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1405,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1407,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1407,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1420,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1424,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1426,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1439,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1394
    functionDepth: 3
    functionLinenumber: 1394
    functionLinenumberEnd: 1447
    functionName: fu_genesys_scaler_device_get_ddcci_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_calculate_checksum
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_get_ddcci_data(FuGenesysScalerDevice
      *self,\n\t\t\t\t\tguint8 cmd,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tguint bufsz,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_scaler_device_get_ddcci_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1457,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1471,1
    - Dst: fu_genesys_scaler_device_calculate_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1481,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1482,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - ver
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - FuGenesysScalerFirmwarePacketVersion*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 1504
    functionName: fu_genesys_scaler_device_get_firmware_packet_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint8_safe
    - fu_genesys_scaler_device_get_ddcci_data
    - fu_genesys_scaler_device_calculate_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_get_firmware_packet_version(FuGenesysScalerDevice
      *self,\n\t\t\t\t\t\t     FuGenesysScalerFirmwarePacketVersion *ver,\n\t\t\t\t\t\t
      \    GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1509,1
    - Dst: fu_genesys_scaler_device_get_level
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1516,1
    - Dst: fu_genesys_scaler_device_get_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1519,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1524,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1525,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1530,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1536,1
    - Dst: fu_genesys_scaler_device_get_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1540,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1543,1
    - Dst: fu_genesys_scaler_device_get_firmware_packet_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1546,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1549,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1550,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1551,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1552,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1555,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1556,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1557,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1558,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1560,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1569,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1506
    functionDepth: 6
    functionLinenumber: 1506
    functionLinenumberEnd: 1580
    functionName: fu_genesys_scaler_device_probe
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_get_firmware_packet_version
    - fu_genesys_scaler_device_get_level
    - fwupd_guid_hash_data
    - fu_device_set_version
    - fu_device_set_version_format
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - fu_genesys_scaler_device_get_public_key
    - FU_GENESYS_SCALER_DEVICE
    - g_set_error_literal
    - fu_device_add_flag
    - memcmp
    - fu_memstrsafe
    - fu_device_add_instance_str
    - fu_device_add_instance_strup
    - fu_dump_raw
    - fu_genesys_scaler_device_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_probe(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1585,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1586,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1592,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1593,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1593,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1594,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1597,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1600,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1604,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1607,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1607,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1582
    functionDepth: 5
    functionLinenumber: 1582
    functionLinenumberEnd: 1620
    functionName: fu_genesys_scaler_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_cfi_device_get_page_size
    - fu_device_setup
    - g_strdup_printf
    - fu_device_get_context
    - fu_device_has_flag
    - FU_GENESYS_SCALER_DEVICE
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_cfi_device_new
    - fu_cfi_device_get_sector_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1625,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1626,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1628,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1631,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1632,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1633,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1636,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1642,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1644,1
    - Dst: fu_genesys_scaler_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1645,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1649,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1652,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1655,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1622
    functionDepth: 5
    functionLinenumber: 1622
    functionLinenumberEnd: 1656
    functionName: fu_genesys_scaler_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - g_steal_pointer
    - g_bytes_new_take
    - fu_progress_add_step
    - fu_cfi_device_get_size
    - g_malloc0
    - fu_genesys_scaler_device_read_flash
    - FU_GENESYS_SCALER_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_genesys_scaler_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1665,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1666,1
    - Dst: fu_genesys_scaler_firmware_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1666,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1667,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1668,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1671,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1676,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1679,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1681,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1682,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1683,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1683,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1687,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1695,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1698,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1698,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1699,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1703,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1704,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1658
    functionDepth: 5
    functionLinenumber: 1658
    functionLinenumberEnd: 1710
    functionName: fu_genesys_scaler_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_bytes_get_size
    - fu_genesys_scaler_firmware_new
    - fu_firmware_parse_stream
    - FU_GENESYS_SCALER_DEVICE
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - memcmp
    - g_autoptr
    - fu_device_get_firmware_size_max
    - fu_dump_raw
    - g_bytes_get_data
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_genesys_scaler_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1719,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1724,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1725,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1729,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1730,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1732,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1735,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1738,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1741,1
    - Dst: fu_genesys_scaler_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1745,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1748,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1751,1
    - Dst: fu_genesys_scaler_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1753,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1757,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1760,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1762,1
    - Dst: fu_genesys_scaler_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1763,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1767,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1770,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1712
    functionDepth: 7
    functionLinenumber: 1712
    functionLinenumberEnd: 1776
    functionName: fu_genesys_scaler_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - fu_progress_add_step
    - g_malloc0
    - fu_genesys_scaler_device_read_flash
    - fu_device_has_flag
    - FU_GENESYS_SCALER_DEVICE
    - fu_progress_set_id
    - fu_memcmp_safe
    - g_autoptr
    - fu_genesys_scaler_device_erase_flash
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_genesys_scaler_device_write_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1781,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1782,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1783,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1784,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1785,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1778
    functionDepth: 3
    functionLinenumber: 1778
    functionLinenumberEnd: 1787
    functionName: fu_genesys_scaler_device_set_progress
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1792,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1795,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1796,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1798,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1799,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1807,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1809,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1811,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1819,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1821,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1823,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1824,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1825,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1826,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1827,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1828,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1829,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1830,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1789
    functionDepth: 3
    functionLinenumber: 1789
    functionLinenumberEnd: 1832
    functionName: fu_genesys_scaler_device_to_string
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_memcpy_safe
    - FU_GENESYS_SCALER_DEVICE
    - g_autoptr
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1840,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1843,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1844,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1851,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1852,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1859,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1860,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1867,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1868,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1875,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1876,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1885,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1890
    functionName: fu_genesys_scaler_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - FU_GENESYS_SCALER_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1895,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1895,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1896,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1896,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1897,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1898,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1898,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1899,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1900,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1901,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1902,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1903,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1904,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1905,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1905,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysScalerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1892
    functionDepth: 6
    functionLinenumber: 1892
    functionLinenumberEnd: 1911
    functionName: fu_genesys_scaler_device_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_register_private_flag
    - fu_device_set_install_duration
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_device_init(FuGenesysScalerDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1916,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1918,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1920
    functionName: fu_genesys_scaler_device_finalize
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_SCALER_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1925,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysScalerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1938
    functionName: fu_genesys_scaler_device_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_device_class_init(FuGenesysScalerDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1946
    functionName: fu_genesys_scaler_device_new
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuGenesysScalerDevice
    signature: 'FuGenesysScalerDevice *

      fu_genesys_scaler_device_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:139,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:141,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:142,1
    - Dst: FU_IS_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:142,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:145,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:146,1
    - Dst: FU_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - channel
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: fu_genesys_usbhub_device_set_hid_channel
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_GENESYS_HUBHID_DEVICE
    - FU_GENESYS_USBHUB_DEVICE
    - g_return_if_fail
    - fu_device_get_physical_id
    - FU_DEVICE
    - FU_IS_GENESYS_HUBHID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_set_hid_channel(FuDevice *device, FuDevice
      *channel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_hubhid_device_send_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:171,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:183,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 14
    argNames:
    - self
    - progress
    - direction
    - request_type
    - recipient
    - request
    - value
    - idx
    - data
    - length
    - actual_length
    - timeout
    - cancellable
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuProgress*
    - FuUsbDirection
    - FuUsbRequestType
    - FuUsbRecipient
    - guint8
    - guint16
    - guint16
    - guint8*
    - gsize
    - gsize*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 197
    functionName: fu_genesys_usbhub_device_ctrl_transfer
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_hubhid_device_send_report
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_ctrl_transfer(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       FuUsbDirection
      direction,\n\t\t\t\t       FuUsbRequestType request_type,\n\t\t\t\t       FuUsbRecipient
      recipient,\n\t\t\t\t       guint8 request,\n\t\t\t\t       guint16 value,\n\t\t\t\t
      \      guint16 idx,\n\t\t\t\t       guint8 *data,\n\t\t\t\t       gsize length,\n\t\t\t\t
      \      gsize *actual_length,\n\t\t\t\t       guint timeout,\n\t\t\t\t       GCancellable
      *cancellable,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:203,1
    - Dst: fu_genesys_scaler_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:203,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: fu_genesys_usbhub_device_mstar_scaler_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_context
    - FU_DEVICE
    - g_autoptr
    - fu_genesys_scaler_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_mstar_scaler_setup(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:219,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:221,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:227,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:228,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:231,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:235,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:237,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:244,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:245,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:246,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:247,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:252,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:254,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: fu_genesys_usbhub_device_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_chunk_get_data_out
    - fu_progress_step_done
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_page
    - g_autoptr
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_read_flash(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t    guint start_addr,\n\t\t\t\t    guint8 *buf,\n\t\t\t\t    guint
      bufsz,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:275,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:276,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:276,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:288,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:289,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:291,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:296,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:297,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:299,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:301,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:303,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:308,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:309,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:311,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:316,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:318,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:321,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:327,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:329,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:331,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - self
    - start_addr
    - code_size
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 339
    functionName: fu_genesys_usbhub_device_compare_flash_blank
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - fu_chunk_get_page
    - g_autoptr
    - fu_memcmp_safe
    - fu_chunk_array_new
    - fu_chunk_get_address
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_compare_flash_blank(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t     guint start_addr,\n\t\t\t\t\t     guint code_size,\n\t\t\t\t\t
      \    FuProgress *progress,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:350,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:350,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:352,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:355,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:356,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:357,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:359,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:361,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:363,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:368,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:369,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:371,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:376,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:378,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:381,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:384,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:385,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:387,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:389,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:391,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 399
    functionName: fu_genesys_usbhub_device_compare_flash_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - fu_chunk_get_page
    - g_autoptr
    - fu_memcmp_safe
    - fu_chunk_array_new
    - fu_chunk_get_data
    - fu_chunk_get_address
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_compare_flash_data(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t    guint start_addr,\n\t\t\t\t\t    const guint8 *buf,\n\t\t\t\t\t
      \   guint bufsz,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:404,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 424
    functionName: fu_genesys_usbhub_device_reset
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_reset(FuGenesysUsbhubDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:437,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:440,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:443,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:457,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:462,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:464,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:467,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:467,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:471,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:472,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:476,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:476,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:477,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:481,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:482,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:482,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:484,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:488,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 490
    functionName: fu_genesys_usbhub_device_cfi_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_debug
    - g_steal_pointer
    - fu_device_setup
    - g_prefix_error
    - g_strdup_printf
    - fu_device_get_context
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_get_name
    - g_autoptr
    - fu_dump_raw
    - fu_cfi_device_new
    - G_N_ELEMENTS
    linkageType: ''
    returnType: FuCfiDevice
    signature: 'FuCfiDevice *

      fu_genesys_usbhub_device_cfi_setup(FuGenesysUsbhubDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:497,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:515,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 530
    functionName: fu_genesys_usbhub_device_wait_flash_status_register_cb
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - FU_GENESYS_USBHUB_DEVICE
    - g_set_error_literal
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_wait_flash_status_register_cb(FuDevice
      *device,\n\t\t\t\t\t\t       gpointer user_data,\n\t\t\t\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:537,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:551,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:562,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuGenesysIspMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 532
    functionDepth: 4
    functionLinenumber: 532
    functionLinenumberEnd: 574
    functionName: fu_genesys_usbhub_device_set_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_device_retry
    - g_prefix_error
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_set_isp_mode(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t      FuGenesysIspMode mode,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:585,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:599,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:605,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:619,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - self
    - offset_start
    - offset_end
    - data_check
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 634
    functionName: fu_genesys_usbhub_device_authentication_request
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_authentication_request(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\tguint8 offset_start,\n\t\t\t\t\t\tguint8 offset_end,\n\t\t\t\t\t\tguint8
      data_check,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:639,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:639,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:647,1
    - Dst: g_random_int_range
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:658,1
    - Dst: g_random_int_range
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:660,1
    - Dst: fu_genesys_usbhub_device_authentication_request
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:665,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 636
    functionDepth: 5
    functionLinenumber: 636
    functionLinenumberEnd: 676
    functionName: fu_genesys_usbhub_device_authenticate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_random_int_range
    - fu_usb_device_get_release
    - fu_genesys_usbhub_device_authentication_request
    - g_prefix_error
    - g_set_error_literal
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_authenticate(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_authenticate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:682,1
    - Dst: fu_genesys_usbhub_device_set_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 690
    functionName: fu_genesys_usbhub_device_enter_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_authenticate
    - fu_genesys_usbhub_device_set_isp_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_enter_isp_mode(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:699,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:702,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:706,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:715,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - desc_bytes
    - dst
    - dst_size
    - error
    argTypes:
    - GBytes*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 725
    functionName: fu_genesys_usbhub_device_get_descriptor_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - memset
    - g_set_error_literal
    - memcmp
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_descriptor_data(GBytes *desc_bytes,\n\t\t\t\t\t
      \    guint8 *dst,\n\t\t\t\t\t     guint dst_size,\n\t\t\t\t\t     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:737,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:740,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:747,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:765,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:772,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - self
    - fw_type
    - bank_num
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuGenesysFwType
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 727
    functionDepth: 5
    functionLinenumber: 727
    functionLinenumberEnd: 782
    functionName: fu_genesys_usbhub_device_check_fw_signature
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_genesys_usbhub_device_read_flash
    - g_set_error_literal
    - memcmp
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_check_fw_signature(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t    FuGenesysFwType fw_type,\n\t\t\t\t\t    int bank_num,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:793,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:794,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:798,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:802,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:808,1
    - Dst: fu_genesys_usbhub_device_check_fw_signature
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:816,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:826,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:833,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - fw_type
    - bank_num
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuGenesysFwType
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 785
    functionDepth: 6
    functionLinenumber: 785
    functionLinenumberEnd: 840
    functionName: fu_genesys_usbhub_device_get_fw_bank_code_size
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_genesys_usbhub_device_read_flash
    - g_prefix_error
    - g_set_error_literal
    - g_return_val_if_fail
    - fu_genesys_usbhub_device_check_fw_signature
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_fw_bank_code_size(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t       FuGenesysFwType fw_type,\n\t\t\t\t\t       int bank_num,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:851,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:852,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:853,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:856,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:857,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:861,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:865,1
    - Dst: fu_genesys_usbhub_device_get_fw_bank_code_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:870,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:874,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:875,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:884,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:885,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:894,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:894,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:895,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:896,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:897,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:898,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:906,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:906,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:907,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:912,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - self
    - fw_type
    - bank_num
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuGenesysFwType
    - int
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 843
    functionDepth: 7
    functionLinenumber: 843
    functionLinenumberEnd: 922
    functionName: fu_genesys_usbhub_device_get_fw_bank_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_memread_uint16_safe
    - g_steal_pointer
    - g_bytes_new_take
    - fu_genesys_usbhub_device_read_flash
    - g_bytes_get_size
    - g_prefix_error
    - g_malloc0
    - fu_genesys_usbhub_device_get_fw_bank_code_size
    - g_autoptr
    - fu_genesys_usbhub_firmware_verify_checksum
    - g_memory_input_stream_new_from_bytes
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_fw_bank_version(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t     FuGenesysFwType fw_type,\n\t\t\t\t\t     int bank_num,\n\t\t\t\t\t
      \    FuProgress *progress,\n\t\t\t\t\t     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:932,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:936,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:944,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:945,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:952,1
    - Dst: fu_struct_genesys_fw_ecdsa_public_key_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:959,1
    - Dst: fu_struct_genesys_fw_ecdsa_public_key_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:962,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:963,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:965,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:972,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:975,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:976,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:977,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:984,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:985,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:987,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:988,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:990,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:999,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1002,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 3
    argNames:
    - self
    - bank_num
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 925
    functionDepth: 5
    functionLinenumber: 925
    functionLinenumberEnd: 1006
    functionName: fu_genesys_usbhub_device_get_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_fw_codesign_info_ecdsa_validate
    - fwupd_guid_hash_data
    - g_prefix_error
    - fu_genesys_usbhub_device_read_flash
    - fu_struct_genesys_fw_ecdsa_public_key_validate
    - fu_struct_genesys_fw_ecdsa_public_key_parse
    - g_malloc0
    - fu_struct_genesys_fw_rsa_public_key_text_validate
    - g_byte_array_append
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_key
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_add_instance_strup
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse
    - g_byte_array_ref
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_struct_genesys_fw_rsa_public_key_text_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_get_public_key(FuGenesysUsbhubDevice
      *self, int bank_num, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_digit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: fu_genesys_usbhub_device_tsdigit_value
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_ascii_digit_value
    linkageType: ''
    returnType: gint
    signature: gint fu_genesys_usbhub_device_tsdigit_value(gchar c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1023,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1024,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1025,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1029,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1029,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1035,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1036,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1043,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1043,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1047,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1047,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1050,1
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1055,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1061
    functionName: fu_genesys_usbhub_device_validate_token
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strv_contains
    - g_steal_pointer
    - g_error_matches
    - g_bytes_get_size
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - fu_bytes_new_offset
    - fu_usb_device_get_string_descriptor_bytes_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_validate_token(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_ts_static_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1071,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1073,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1077,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1080,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1081,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1087,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1089,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1091,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1094,1
    - Dst: fu_struct_genesys_ts_static_get_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1106,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 88
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1177
    functionName: fu_genesys_usbhub_device_get_info_from_static_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_genesys_ts_static_get_mask_project_ic_type
    - fu_struct_genesys_ts_static_parse
    - g_prefix_error
    - fu_struct_genesys_ts_static_get_tool_string_version
    - FU_DEVICE
    - memcmp
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_info_from_static_ts(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t const guint8 *buf,\n\t\t\t\t\t\t gsize bufsz,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1198,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1210,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1212,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1216,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1217,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1218,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1219,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1221,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1232,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1236,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1238,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1240,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1243,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_hub_fw_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1245,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1251,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1255,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1257,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1259,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1262,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1270,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1272,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1276,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1277,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1278,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1280,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_hub_fw_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1285,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1294,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1295,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1308,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1309,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 79
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1313
    functionName: fu_genesys_usbhub_device_get_info_from_dynamic_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_dynamic_gl3523_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl359030_get_hs_port_number
    - g_prefix_error
    - fu_genesys_usbhub_device_tsdigit_value
    - fu_struct_genesys_ts_dynamic_gl3525_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl3523_parse
    - fu_struct_genesys_ts_dynamic_gl3590_parse
    - g_set_error
    - fu_struct_genesys_ts_dynamic_gl3523_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl3525_get_bonding
    - fu_struct_genesys_ts_dynamic_gl3590_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl3590_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl3523_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl3525_parse
    - fu_struct_genesys_ts_dynamic_gl3523_get_bonding
    - fu_struct_genesys_ts_dynamic_gl359030_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl3590_get_bonding
    - fu_struct_genesys_ts_dynamic_gl3525_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl359030_get_hub_fw_status
    - fu_struct_genesys_ts_dynamic_gl359030_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl359030_parse
    - fu_struct_genesys_ts_dynamic_gl359030_get_bonding
    - fu_device_add_instance_u8
    - FU_DEVICE
    - fu_struct_genesys_ts_dynamic_gl3525_get_hub_fw_status
    - fu_struct_genesys_ts_dynamic_gl3590_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl3525_get_ss_port_number
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_info_from_dynamic_ts(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t  const guint8 *buf,\n\t\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_ts_vendor_support_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1321,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1323,1
    - Dst: fu_struct_genesys_ts_vendor_support_get_codesign_check
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1340
    functionName: fu_genesys_usbhub_device_get_info_from_vendor_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_struct_genesys_ts_vendor_support_parse
    - fu_struct_genesys_ts_vendor_support_get_codesign_check
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_info_from_vendor_ts(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t const guint8 *buf,\n\t\t\t\t\t\t gsize bufsz,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_ts_brand_project_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1350,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1352,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1357,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1364
    functionName: fu_genesys_usbhub_device_get_info_from_project_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fwupd_guid_hash_data
    - fu_struct_genesys_ts_brand_project_parse
    - g_prefix_error
    - FU_DEVICE
    - fu_device_add_instance_strup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_get_info_from_project_ts(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t  const guint8 *buf,\n\t\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1369,1
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1366
    functionDepth: 7
    functionLinenumber: 1366
    functionLinenumberEnd: 1370
    functionName: fu_genesys_usbhub_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_enter_isp_mode
    - FU_GENESYS_USBHUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1375,1
    - Dst: fu_genesys_usbhub_device_reset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1376,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1380,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1372
    functionDepth: 6
    functionLinenumber: 1372
    functionLinenumberEnd: 1386
    functionName: fu_genesys_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_reset
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1391,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1393,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1397,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1399,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1402,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1408,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1410,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1411,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1415,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1418,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1421,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1388
    functionDepth: 5
    functionLinenumber: 1388
    functionLinenumberEnd: 1422
    functionName: fu_genesys_usbhub_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - g_steal_pointer
    - g_bytes_new_take
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_read_flash
    - fu_progress_add_step
    - fu_cfi_device_get_size
    - g_malloc0
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_genesys_usbhub_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1427,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1427,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1428,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1434,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1434,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1435,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1441,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1441,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1450
    functionName: fu_genesys_usbhub_device_probe
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_usb_device_get_class
    - FU_USB_DEVICE
    - fu_usb_device_get_spec
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1455,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1458,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1452
    functionDepth: 7
    functionLinenumber: 1452
    functionLinenumberEnd: 1468
    functionName: fu_genesys_usbhub_device_open
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_DEVICE
    - FU_DEVICE
    - FU_DEVICE_CLASS
    - fu_device_open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_open(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1473,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1476,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1470
    functionDepth: 5
    functionLinenumber: 1470
    functionLinenumberEnd: 1486
    functionName: fu_genesys_usbhub_device_close
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_DEVICE
    - FU_DEVICE
    - fu_device_close
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_close(FuDevice *device, GError **error)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1491,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1499,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1503,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1504,1
    - Dst: fu_genesys_usbhub_device_validate_token
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1509,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1517,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1517,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1529,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1533,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1533,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1539,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1544,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1545,1
    - Dst: fu_genesys_usbhub_device_get_info_from_static_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1548,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1553,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1553,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1559,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1565,1
    - Dst: fu_genesys_usbhub_device_get_info_from_dynamic_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1568,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1572,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1572,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1578,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1581,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1582,1
    - Dst: fu_struct_genesys_ts_firmware_info_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1585,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1587,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1593,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1593,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1594,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1600,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1604,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1605,1
    - Dst: fu_genesys_usbhub_device_get_info_from_vendor_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1609,1
    - Dst: fu_struct_genesys_ts_vendor_support_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1612,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1617,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1617,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1618,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1624,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1628,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1629,1
    - Dst: fu_genesys_usbhub_device_get_info_from_project_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1633,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1637,1
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1641,1
    - Dst: fu_genesys_usbhub_device_cfi_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1644,1
    - Dst: fu_cfi_device_get_block_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1647,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1650,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1655,1
    - Dst: MIN
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1657,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1657,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1670,1
    - Dst: fu_genesys_usbhub_device_get_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1678,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1684,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1684,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1687,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1690,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1691,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1694,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1696,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1698,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1709,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1710,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1713,1
    - Dst: fu_genesys_usbhub_device_mstar_scaler_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1714,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 130
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1488
    functionDepth: 7
    functionLinenumber: 1488
    functionLinenumberEnd: 1719
    functionName: fu_genesys_usbhub_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_get_info_from_vendor_ts
    - g_prefix_error
    - fu_genesys_usbhub_device_get_descriptor_data
    - fu_cfi_device_get_size
    - fu_genesys_usbhub_device_mstar_scaler_setup
    - fu_genesys_usbhub_device_validate_token
    - fu_genesys_usbhub_device_get_public_key
    - fu_usb_device_get_string_descriptor_bytes_full
    - fwupd_guid_hash_data
    - fu_genesys_usbhub_device_get_info_from_project_ts
    - FU_DEVICE_CLASS
    - fu_struct_genesys_ts_firmware_info_parse
    - fu_cfi_device_get_block_size
    - MIN
    - fu_device_add_instance_strup
    - FU_USB_DEVICE
    - fu_genesys_usbhub_device_get_info_from_static_ts
    - fwupd_device_get_vendor
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_enter_isp_mode
    - fu_genesys_usbhub_device_get_info_from_dynamic_ts
    - g_autoptr
    - fu_usb_device_get_spec
    - fu_device_set_firmware_size_max
    - FWUPD_DEVICE
    - fu_genesys_usbhub_device_cfi_setup
    - fu_cfi_device_get_sector_size
    - g_malloc0
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_struct_genesys_ts_vendor_support_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1724,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1725,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1730,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1733,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1734,1
    - Dst: fu_genesys_vs_codesign_check_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1737,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1740,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1721
    functionDepth: 3
    functionLinenumber: 1721
    functionLinenumberEnd: 1746
    functionName: fu_genesys_usbhub_device_codesign_to_string
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_vs_codesign_check_to_string
    - fu_device_get_firmware_size_max
    - fwupd_codec_string_append_hex
    - fu_genesys_fw_codesign_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_codesign_to_string(FuDevice *device,
      guint idt, GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1751,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1752,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1757,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1760,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1762,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1763,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1764,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1765,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1766,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1768,1
    - Dst: fu_genesys_fw_status_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1771,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1772,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1773,1
    - Dst: fu_genesys_usbhub_device_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1782,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1786,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1789,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1790,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1794,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1800,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1806,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1810,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1814,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1823,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1827,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1831,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1748
    functionDepth: 4
    functionLinenumber: 1748
    functionLinenumberEnd: 1837
    functionName: fu_genesys_usbhub_device_to_string
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_fw_status_to_string
    - FU_GENESYS_USBHUB_DEVICE
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_bool
    - fu_genesys_fw_type_to_string
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fwupd_codec_string_append_hex
    - fu_device_get_name
    - fu_genesys_usbhub_device_codesign_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1852,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1853,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1854,1
    - Dst: g_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1854,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1862,1
    - Dst: g_array_append_val
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1871,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1877,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1878,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1880,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1881,1
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1885,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1887,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1891,1
    - Dst: fu_genesys_usbhub_device_get_fw_bank_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1899,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1902,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1904,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1906,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1909,1
    - Dst: fu_genesys_usbhub_device_get_fw_bank_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1911,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1914,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1916,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1918,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1921,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1846
    functionDepth: 8
    functionLinenumber: 1846
    functionLinenumberEnd: 1941
    functionName: fu_genesys_usbhub_device_prepare
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_get_fw_bank_version
    - fu_progress_step_done
    - fu_progress_get_child
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_enter_isp_mode
    - g_array_new
    - g_array_append_val
    - fu_progress_add_step
    - g_prefix_error
    - fu_device_has_flag
    - fu_device_get_firmware_size_max
    - fu_progress_set_id
    - g_autoptr
    - g_array_index
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_prepare(FuDevice *device,\n\t\t\t\t
      FuProgress *progress,\n\t\t\t\t FwupdInstallFlags flags,\n\t\t\t\t GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1949,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1950,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1952,1
    - Dst: FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1952,1
    - Dst: fu_genesys_usbhub_codesign_firmware_get_codesign
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1955,1
    - Dst: FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1956,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1958,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1962,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1967,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1969,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1971,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1985,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1987,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1989,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1992,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_get_text_n
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1997,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_get_text_n
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1998,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1999,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2007,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_get_text_e
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2011,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_get_text_e
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2012,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2013,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2021,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2032,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2034,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2036,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2040,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2042,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2048,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2056,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2057,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2068,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2072,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 1943
    functionDepth: 2
    functionLinenumber: 1943
    functionLinenumberEnd: 2078
    functionName: fu_genesys_usbhub_device_compare_fw_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - g_prefix_error
    - FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - g_return_val_if_fail
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
    - fu_genesys_fw_codesign_to_string
    - fu_genesys_fw_type_to_string
    - FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - g_set_error
    - fu_struct_genesys_fw_codesign_info_rsa_get_text_n
    - fu_memcmp_safe
    - fu_dump_raw
    - fu_struct_genesys_fw_rsa_public_key_text_get_text_e
    - fu_genesys_usbhub_codesign_firmware_get_codesign
    - fu_struct_genesys_fw_codesign_info_rsa_get_text_e
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_key
    - g_autoptr
    - fu_struct_genesys_fw_rsa_public_key_text_get_text_n
    - g_set_error_literal
    - fu_struct_genesys_fw_codesign_info_rsa_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_compare_fw_public_key(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2085,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2089,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2093,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2097,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2104,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2108,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2111,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2113,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2117,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2126,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2133,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2138,1
    - Dst: fu_genesys_usbhub_device_adjust_fw_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2145
    functionName: fu_genesys_usbhub_device_adjust_fw_addr
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - fu_genesys_usbhub_device_adjust_fw_addr
    - fu_firmware_set_addr
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_firmware_get_idx
    - g_autoptr
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_adjust_fw_addr(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\tFuFirmware *firmware,\n\t\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2155,1
    - Dst: fu_genesys_usbhub_firmware_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2155,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2166,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2175,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2177,1
    - Dst: fu_genesys_usbhub_device_compare_fw_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2181,1
    - Dst: fu_genesys_usbhub_device_adjust_fw_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2186,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2147
    functionDepth: 3
    functionLinenumber: 2147
    functionLinenumberEnd: 2191
    functionName: fu_genesys_usbhub_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_adjust_fw_addr
    - g_steal_pointer
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_firmware_new
    - g_prefix_error
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_autoptr
    - fu_genesys_usbhub_device_compare_fw_public_key
    - fu_firmware_get_image_by_idx
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_genesys_usbhub_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2201,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2203,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2208,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2209,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2211,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2212,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2213,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2216,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2230,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2238,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2243,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - self
    - start_addr
    - len
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2193
    functionDepth: 4
    functionLinenumber: 2193
    functionLinenumberEnd: 2251
    functionName: fu_genesys_usbhub_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_device_retry
    - fu_progress_step_done
    - g_prefix_error
    - g_ptr_array_index
    - FU_DEVICE
    - fu_progress_set_id
    - fu_chunk_get_page
    - g_autoptr
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_erase_flash(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t     guint start_addr,\n\t\t\t\t     guint len,\n\t\t\t\t     FuProgress
      *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2262,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2265,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2266,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2267,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2270,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2270,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2272,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2272,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2272,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2274,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2276,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2281,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2289,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2291,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2292,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2297,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2302,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2253
    functionDepth: 4
    functionLinenumber: 2253
    functionLinenumberEnd: 2310
    functionName: fu_genesys_usbhub_device_write_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_progress_get_child
    - fu_device_retry
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_prefix_error
    - g_byte_array_new
    - g_ptr_array_index
    - FU_DEVICE
    - fu_progress_set_id
    - fu_chunk_get_page
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - g_byte_array_append
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_write_flash(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t     guint start_addr,\n\t\t\t\t     const guint8 *buf,\n\t\t\t\t
      \    guint bufsz,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2333,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2343,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2348,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2357,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2359,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2369,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2379,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2380,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2380,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2386,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2387,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2388,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2389,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2390,1
    - Dst: fu_genesys_usbhub_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2393,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2396,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2399,1
    - Dst: fu_genesys_usbhub_device_compare_flash_blank
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2402,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2405,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2408,1
    - Dst: fu_genesys_usbhub_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2411,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2415,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2418,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2421,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2425,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2428,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2322
    functionDepth: 5
    functionLinenumber: 2322
    functionLinenumberEnd: 2432
    functionName: fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_get_child
    - fu_memdup_safe
    - fu_progress_step_done
    - fu_genesys_usbhub_device_compare_flash_data
    - fu_genesys_usbhub_device_erase_flash
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_progress_add_step
    - g_malloc0
    - fu_genesys_usbhub_device_compare_flash_blank
    - g_set_error_literal
    - fu_progress_set_id
    - fu_genesys_usbhub_device_write_flash
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2444,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2447,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2450,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2452,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2460,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2475,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2475,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2485,1
    - Dst: fu_genesys_usbhub_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2489,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2492,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2495,1
    - Dst: fu_genesys_usbhub_device_compare_flash_blank
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2498,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2501,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2504,1
    - Dst: fu_genesys_usbhub_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2507,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2514,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2518,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2522,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2434
    functionDepth: 5
    functionLinenumber: 2434
    functionLinenumberEnd: 2530
    functionName: fu_genesys_usbhub_device_update_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_genesys_usbhub_device_compare_flash_data
    - fu_genesys_usbhub_device_erase_flash
    - fu_firmware_get_id
    - fu_progress_add_step
    - fu_genesys_usbhub_device_compare_flash_blank
    - fu_firmware_get_addr
    - fu_firmware_get_idx
    - fu_progress_set_id
    - g_autoptr
    - fu_genesys_usbhub_device_write_flash
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_update_firmware(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2535,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2532
    functionDepth: 4
    functionLinenumber: 2532
    functionLinenumberEnd: 2555
    functionName: fu_genesys_usbhub_device_setup_hw_module
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_setup_hw_module(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - size_to_hash
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2557
    functionDepth: 4
    functionLinenumber: 2557
    functionLinenumberEnd: 2584
    functionName: fu_genesys_usbhub_device_send_hash_data_length
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_send_hash_data_length(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t       gsize size_to_hash,\n\t\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_hash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2595,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2597,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2601,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2603,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2607,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - st_codesign
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2586
    functionDepth: 4
    functionLinenumber: 2586
    functionLinenumberEnd: 2627
    functionName: fu_genesys_usbhub_device_send_hash_digest
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_hash
    - g_prefix_error
    - fu_memdup_safe
    - fu_genesys_usbhub_device_ctrl_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_send_hash_digest(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t  GByteArray *st_codesign,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2634,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2648,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2629
    functionDepth: 4
    functionLinenumber: 2629
    functionLinenumberEnd: 2663
    functionName: fu_genesys_usbhub_device_check_hash_digest_verification
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_set_error
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_check_hash_digest_verification(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2670,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key_addr
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2665
    functionDepth: 4
    functionLinenumber: 2665
    functionLinenumberEnd: 2690
    functionName: fu_genesys_usbhub_device_toggle_hw_read_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_toggle_hw_read_key(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t    guint16 key_addr,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_signature
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2701,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2703,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2707,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2709,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2713,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - st_codesign
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2692
    functionDepth: 4
    functionLinenumber: 2692
    functionLinenumberEnd: 2733
    functionName: fu_genesys_usbhub_device_send_signature
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    - fu_memdup_safe
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_signature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_send_signature(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\tGByteArray *st_codesign,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2740,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2754,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2735
    functionDepth: 4
    functionLinenumber: 2735
    functionLinenumberEnd: 2769
    functionName: fu_genesys_usbhub_device_check_signature_verification
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_set_error
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_check_signature_verification(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2779,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2780,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2783,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2786,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2771
    functionDepth: 5
    functionLinenumber: 2771
    functionLinenumberEnd: 2798
    functionName: fu_genesys_usbhub_device_compare_firmware_flash_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_compare_flash_data
    - fu_firmware_get_addr
    - g_autoptr
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_compare_firmware_flash_data(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\t     FuFirmware *firmware,\n\t\t\t\t\t\t     FuProgress
      *progress,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2810,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2811,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2812,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2813,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2813,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2816,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2819,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2822,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2827,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2828,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2829,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2832,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2834,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2835,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2836,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2839,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2841,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2842,1
    - Dst: fu_genesys_usbhub_device_setup_hw_module
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2845,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2847,1
    - Dst: fu_genesys_usbhub_device_compare_firmware_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2850,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2852,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2855,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2856,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2859,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2860,1
    - Dst: fu_genesys_usbhub_device_compare_firmware_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2861,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2864,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2867,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2868,1
    - Dst: fu_genesys_usbhub_device_send_hash_data_length
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2873,1
    - Dst: fu_genesys_usbhub_device_send_hash_digest
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2875,1
    - Dst: fu_genesys_usbhub_device_check_hash_digest_verification
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2877,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2879,1
    - Dst: fu_genesys_usbhub_device_toggle_hw_read_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2882,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2883,1
    - Dst: fu_genesys_usbhub_device_send_signature
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2888,1
    - Dst: fu_genesys_usbhub_device_check_signature_verification
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2890,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2892,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2803
    functionDepth: 6
    functionLinenumber: 2803
    functionLinenumberEnd: 2896
    functionName: fu_genesys_usbhub_device_examine_fw_codesign_hw
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_genesys_usbhub_device_compare_firmware_flash_data
    - fu_genesys_usbhub_device_send_hash_digest
    - fu_firmware_get_addr
    - fu_firmware_get_images
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_id
    - fu_progress_get_child
    - fu_genesys_usbhub_device_check_hash_digest_verification
    - fu_genesys_usbhub_device_check_signature_verification
    - fu_genesys_usbhub_device_setup_hw_module
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_genesys_usbhub_device_toggle_hw_read_key
    - fu_progress_step_done
    - fu_genesys_usbhub_device_send_signature
    - fu_firmware_get_idx
    - g_autoptr
    - fu_genesys_usbhub_device_send_hash_data_length
    - fu_firmware_get_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_examine_fw_codesign_hw(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t\tFuFirmware *firmware,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2905,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2906,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2906,1
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2909,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2913,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2915,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2921,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2924,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2926,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2927,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2930,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2933,1
    - Dst: fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2941,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2943,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2946,1
    - Dst: fu_genesys_usbhub_device_update_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2950,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2952,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2955,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2959,1
    - Dst: fu_genesys_usbhub_device_update_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2960,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2962,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2965,1
    - Dst: fu_genesys_usbhub_device_examine_fw_codesign_hw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2970,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2973,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2975,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2978,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2898
    functionDepth: 7
    functionLinenumber: 2898
    functionLinenumberEnd: 2983
    functionName: fu_genesys_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_genesys_usbhub_device_update_firmware
    - fu_genesys_usbhub_device_enter_isp_mode
    - FU_GENESYS_USBHUB_DEVICE
    - fu_progress_add_step
    - fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
    - fu_genesys_usbhub_device_examine_fw_codesign_hw
    - g_prefix_error
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2988,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2990,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2992,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2993,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2994,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2995,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2996,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2998,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2999,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3000,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3001,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2985
    functionDepth: 3
    functionLinenumber: 2985
    functionLinenumberEnd: 3004
    functionName: fu_genesys_usbhub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_DEVICE
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3012,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3015,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3016,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3023,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3024,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3031,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3032,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3039,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3040,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3049,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3006
    functionDepth: 1
    functionLinenumber: 3006
    functionLinenumberEnd: 3054
    functionName: fu_genesys_usbhub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - FU_GENESYS_USBHUB_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3059,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3059,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3060,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3060,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3061,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3061,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3062,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3062,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3063,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3063,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3064,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3064,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3065,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3065,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3066,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3066,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3067,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3067,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3068,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3056
    functionDepth: 6
    functionLinenumber: 3056
    functionLinenumberEnd: 3083
    functionName: fu_genesys_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_init(FuGenesysUsbhubDevice *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3088,1
    - Dst: fu_struct_genesys_ts_static_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3090,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3092,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3094,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3096,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3098,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3100,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3102,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3104,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3106,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 3085
    functionDepth: 0
    functionLinenumber: 3085
    functionLinenumberEnd: 3108
    functionName: fu_genesys_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_static_unref
    - FU_GENESYS_USBHUB_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    - g_byte_array_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3113,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3110
    functionDepth: 0
    functionLinenumber: 3110
    functionLinenumberEnd: 3129
    functionName: fu_genesys_usbhub_device_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_class_init(FuGenesysUsbhubDeviceClass
      *klass)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:33,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:44,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:50,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:57,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:68,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:75,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:86,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:93,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuGenesysUsbhubFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 112
    functionName: fu_genesys_usbhub_firmware_get_chip
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - memcmp
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_firmware_get_chip(FuGenesysUsbhubFirmware
      *self,\n\t\t\t\t    GInputStream *stream,\n\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:120,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:123,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:126,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:137,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:142,1
    - Dst: fu_input_stream_compute_sum16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:145,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 158
    functionName: fu_genesys_usbhub_firmware_verify_checksum
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - g_prefix_error
    - g_set_error_literal
    - fu_input_stream_compute_sum16
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_firmware_verify_checksum(GInputStream *stream,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:164,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:165,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - stream
    - size
    - error
    argTypes:
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: fu_genesys_usbhub_firmware_calculate_size
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - g_prefix_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_firmware_calculate_size(GInputStream *stream,
      gsize *size, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:184,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:186,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:189,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:189,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:195,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: fu_genesys_usbhub_firmware_ensure_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_prefix_error
    - g_bytes_get_size
    - fu_firmware_set_version_raw
    - g_autoptr
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_firmware_ensure_version(FuFirmware *firmware,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: fu_genesys_usbhub_firmware_validate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    gsize offset,\n\t\t\t\t    GError **error)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:224,1
    - Dst: fu_genesys_usbhub_firmware_get_chip
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:227,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:228,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:231,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:231,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:232,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:233,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:248,1
    - Dst: fu_struct_genesys_ts_static_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:264,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:273,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:282,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:291,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:294,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:299,1
    - Dst: fu_genesys_usbhub_firmware_ensure_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:304,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:312,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:322,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:325,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:326,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:327,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 332
    functionName: fu_genesys_usbhub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_firmware_set_alignment
    - fu_input_stream_read_u8
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_genesys_fw_type_to_string
    - fu_firmware_set_offset
    - fu_firmware_new_from_gtypes
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_add_image
    - g_autoptr
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_genesys_usbhub_firmware_get_chip
    - fu_partial_input_stream_new
    - fu_firmware_get_size
    - fu_firmware_set_id
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_firmware_set_idx
    - fu_struct_genesys_ts_static_parse_stream
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:338,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:338,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:343,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:346,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:358,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:370,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:379,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:380,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 390
    functionName: fu_genesys_usbhub_firmware_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_sum16
    - fu_memcpy_safe
    - fu_memwrite_uint16_safe
    - FU_GENESYS_USBHUB_FIRMWARE
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_genesys_usbhub_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:397,1
    - Dst: fu_struct_genesys_ts_static_get_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:400,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:402,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_hardware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:404,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:406,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:408,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:410,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_hardware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:412,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:414,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:416,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:418,1
    - Dst: fu_genesys_ts_version_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:420,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:421,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:424,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:425,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:426,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:427,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:430,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:431,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 434
    functionName: fu_genesys_usbhub_firmware_export
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_static_get_running_project_firmware
    - fu_struct_genesys_ts_static_get_mask_project_firmware
    - fu_struct_genesys_ts_static_get_mask_project_ic_type
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_struct_genesys_ts_static_get_tool_string_version
    - fu_genesys_ts_version_to_string
    - fu_struct_genesys_ts_static_get_mask_project_hardware
    - fu_struct_genesys_ts_static_get_running_project_hardware
    - fu_struct_genesys_ts_static_get_running_project_ic_type
    - fu_struct_genesys_ts_static_get_mask_project_code
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_genesys_usbhub_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:439,1
    - Dst: fu_struct_genesys_ts_static_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:443,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:445,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:447,1
    - Dst: fu_struct_genesys_ts_static_set_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:453,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:457,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:459,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:461,1
    - Dst: fu_struct_genesys_ts_static_set_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:469,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:476,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:478,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:480,1
    - Dst: fu_struct_genesys_ts_static_set_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 496
    functionName: fu_genesys_usbhub_firmware_build
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_genesys_ts_static_set_mask_project_code
    - strlen
    - fu_struct_genesys_ts_static_new
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_struct_genesys_ts_static_set_mask_project_ic_type
    - g_set_error_literal
    - xb_node_query_text
    - fu_struct_genesys_ts_static_set_tool_string_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:501,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: fu_genesys_usbhub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint16_hex
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_genesys_usbhub_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:507,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:507,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:508,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: fu_genesys_usbhub_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_firmware_init(FuGenesysUsbhubFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:514,1
    - Dst: fu_struct_genesys_ts_static_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:516,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: fu_genesys_usbhub_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_static_unref
    - G_OBJECT_CLASS
    - FU_GENESYS_USBHUB_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:523,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: fu_genesys_usbhub_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_firmware_class_init(FuGenesysUsbhubFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:537,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: fu_genesys_usbhub_firmware_new
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_genesys_usbhub_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:24,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: fu_genesys_plugin_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_genesys_plugin_init(FuGenesysPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:30,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:32,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:33,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:34,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:35,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:36,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:37,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:40,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:41,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: fu_genesys_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_genesys_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:48,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:50,1
    - Dst: FU_IS_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:53,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: fu_genesys_plugin_get_device_by_physical_id
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - FU_IS_GENESYS_USBHUB_DEVICE
    - g_ptr_array_index
    - fu_device_get_physical_id
    - g_strcmp0
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_genesys_plugin_get_device_by_physical_id(FuPlugin *self, const gchar *physical_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:63,1
    - Dst: FU_IS_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:66,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:69,1
    - Dst: fu_genesys_plugin_get_device_by_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:72,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:73,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:75,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:76,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:77,1
    - Dst: fu_genesys_usbhub_device_set_hid_channel
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:79,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: fu_genesys_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_child
    - fu_genesys_usbhub_device_set_hid_channel
    - fu_device_get_backend_parent
    - fu_plugin_device_remove
    - fu_device_get_physical_id
    - g_autoptr
    - FU_IS_GENESYS_HUBHID_DEVICE
    - fu_genesys_plugin_get_device_by_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_genesys_plugin_device_added(FuPlugin *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: fu_genesys_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_plugin_class_init(FuGenesysPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_pd_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: fu_genesys_usbhub_pd_firmware_validate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_pd_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_pd_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       gsize offset,\n\t\t\t\t       GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:36,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:38,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:38,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:39,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:40,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:43,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:44,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:47,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:50,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:56,1
    - Dst: fu_genesys_usbhub_firmware_ensure_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:62,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: fu_genesys_usbhub_pd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_firmware_set_alignment
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_set_idx
    - g_autoptr
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_partial_input_stream_new
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_pd_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: fu_genesys_usbhub_pd_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_pd_firmware_init(FuGenesysUsbhubPdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_genesys_usbhub_pd_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_pd_firmware_class_init(FuGenesysUsbhubPdFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_dev_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: fu_genesys_usbhub_dev_firmware_validate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_dev_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_dev_firmware_validate(FuFirmware *firmware,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tgsize offset,\n\t\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:36,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:38,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:38,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:39,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:40,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:43,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:44,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:47,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:50,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:56,1
    - Dst: fu_genesys_usbhub_firmware_ensure_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:62,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: fu_genesys_usbhub_dev_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_firmware_set_alignment
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_set_idx
    - g_autoptr
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_partial_input_stream_new
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_dev_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubDevFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: fu_genesys_usbhub_dev_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_dev_firmware_init(FuGenesysUsbhubDevFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubDevFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_genesys_usbhub_dev_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_dev_firmware_class_init(FuGenesysUsbhubDevFirmwareClass
      *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:27,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:30,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:32,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:35,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:41,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:49,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:53,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:54,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:55,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:61,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:64,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:66,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:67,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:70,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:71,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:72,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 77
    functionName: fu_genesys_scaler_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_GENESYS_SCALER_FIRMWARE
    - fu_firmware_parse_stream
    - fu_firmware_new_from_bytes
    - g_set_error_literal
    - fu_dump_raw
    - memcmp
    - g_autoptr
    - fu_partial_input_stream_new
    - g_bytes_new
    - fu_input_stream_size
    - fu_firmware_new
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:84,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:88,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:89,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:91,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: fu_genesys_scaler_firmware_export
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FU_GENESYS_SCALER_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_genesys_scaler_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:98,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:102,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:104,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:108,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:110,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:115,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:117,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:121,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: fu_genesys_scaler_firmware_build
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_GENESYS_SCALER_FIRMWARE
    - fu_memcpy_safe
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:136,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:137,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:140,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:143,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: fu_genesys_scaler_firmware_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - FU_GENESYS_SCALER_FIRMWARE
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_genesys_scaler_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysScalerFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: fu_genesys_scaler_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_firmware_init(FuGenesysScalerFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysScalerFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: fu_genesys_scaler_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_scaler_firmware_class_init(FuGenesysScalerFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:170,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: fu_genesys_scaler_firmware_new
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_genesys_scaler_firmware_new(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:57,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:59,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:61,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:64,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:75,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:85,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:90,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:92,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:93,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:96,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:98,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:99,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:107,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:109,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:112,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:112,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:113,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:118,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:120,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:122,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - self
    - setup
    - data
    - datasz
    - progress
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - FuGenesysUsbSetup*
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 131
    functionName: fu_genesys_hubhid_device_command_read
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_prefix_error
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_hid_device_get_report
    - fu_chunk_get_data_out
    - g_ptr_array_index
    - fu_progress_set_id
    - memset
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_byte_array_new
    - g_warning
    - fu_chunk_get_data_sz
    - fu_hid_device_set_report
    - fu_memcpy_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_hubhid_device_command_read(FuGenesysHubhidDevice
      *self,\n\t\t\t\t      FuGenesysUsbSetup *setup,\n\t\t\t\t      guint8 *data,\n\t\t\t\t
      \     gsize datasz,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - data_length
    argTypes:
    - FuGenesysHubhidDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: fu_genesys_hubhid_device_can_pack_report
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_hubhid_device_can_pack_report(FuGenesysHubhidDevice
      *self, guint16 data_length)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:155,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:157,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:159,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:162,1
    - Dst: fu_genesys_hubhid_device_can_pack_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:173,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:175,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:183,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:204,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:205,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:207,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:211,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:213,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:214,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:217,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:218,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:220,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:222,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:224,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:227,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:235,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:237,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:241,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:246,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:253,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 6
    argNames:
    - self
    - setup
    - data
    - datasz
    - progress
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - FuGenesysUsbSetup*
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 259
    functionName: fu_genesys_hubhid_device_command_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_prefix_error
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_hid_device_get_report
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_data
    - memset
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_hid_device_set_report
    - fu_genesys_hubhid_device_can_pack_report
    - fu_memcpy_safe
    - fu_chunk_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_hubhid_device_command_write(FuGenesysHubhidDevice
      *self,\n\t\t\t\t       FuGenesysUsbSetup *setup,\n\t\t\t\t       const guint8
      *data,\n\t\t\t\t       gsize datasz,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:274,1
    - Dst: fu_genesys_hubhid_device_command_read
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:287,1
    - Dst: fu_genesys_hubhid_device_command_write
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 11
    argNames:
    - self
    - progress
    - direction
    - request_type
    - recipient
    - request
    - value
    - idx
    - data
    - datasz
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - FuProgress*
    - FuUsbDirection
    - FuUsbRequestType
    - FuUsbRecipient
    - guint8
    - guint16
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 261
    functionDepth: 6
    functionLinenumber: 261
    functionLinenumberEnd: 301
    functionName: fu_genesys_hubhid_device_send_report
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 1
    functionsReached:
    - g_new0
    - fu_genesys_hubhid_device_command_read
    - fu_genesys_hubhid_device_command_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_hubhid_device_send_report(FuGenesysHubhidDevice
      *self,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuUsbDirection direction,\n\t\t\t\t
      \    FuUsbRequestType request_type,\n\t\t\t\t     FuUsbRecipient recipient,\n\t\t\t\t
      \    guint8 request,\n\t\t\t\t     guint16 value,\n\t\t\t\t     guint16 idx,\n\t\t\t\t
      \    guint8 *data,\n\t\t\t\t     gsize datasz,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:307,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:307,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:308,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:310,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:324,1
    - Dst: fu_genesys_hubhid_device_command_read
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:326,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:333,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 303
    functionDepth: 6
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: fu_genesys_hubhid_device_validate_token
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - g_new0
    - fu_genesys_hubhid_device_command_read
    - g_prefix_error
    - fu_memcmp_safe
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_hubhid_device_validate_token(FuGenesysHubhidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:352,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:352,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: fu_genesys_hubhid_device_probe
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_usb_device_get_class
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_hubhid_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:367,1
    - Dst: fu_genesys_hubhid_device_validate_token
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:370,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:374,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 364
    functionDepth: 7
    functionLinenumber: 364
    functionLinenumberEnd: 381
    functionName: fu_genesys_hubhid_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_hubhid_device_validate_token
    - g_prefix_error
    - FU_DEVICE_CLASS
    - FU_GENESYS_HUBHID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_hubhid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysHubhidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: fu_genesys_hubhid_device_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_genesys_hubhid_device_init(FuGenesysHubhidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysHubhidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: fu_genesys_hubhid_device_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_hubhid_device_class_init(FuGenesysHubhidDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:25,1
    - Dst: FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubCodesignFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_genesys_usbhub_codesign_firmware_get_codesign
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
    linkageType: ''
    returnType: gint
    signature: gint fu_genesys_usbhub_codesign_firmware_get_codesign(FuGenesysUsbhubCodesignFirmware
      *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: fu_genesys_usbhub_codesign_firmware_validate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_codesign_firmware_validate(FuFirmware *firmware,\n\t\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t\t     gsize offset,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:56,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:60,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:64,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:65,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:76,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:84,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:84,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:85,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 89
    functionName: fu_genesys_usbhub_codesign_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_firmware_set_size
    - g_prefix_error
    - fu_struct_genesys_fw_codesign_info_ecdsa_validate_stream
    - fu_struct_genesys_fw_codesign_info_rsa_validate_stream
    - FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - fu_firmware_set_idx
    - fu_input_stream_size
    - fu_genesys_fw_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_codesign_firmware_parse(FuFirmware *firmware,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:96,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:97,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: fu_genesys_usbhub_codesign_firmware_export
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - fu_genesys_fw_codesign_to_string
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_genesys_usbhub_codesign_firmware_export(FuFirmware *firmware,\n\t\t\t\t\t
      \  FuFirmwareExportFlags flags,\n\t\t\t\t\t   XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubCodesignFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: fu_genesys_usbhub_codesign_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_codesign_firmware_init(FuGenesysUsbhubCodesignFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubCodesignFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: fu_genesys_usbhub_codesign_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_codesign_firmware_class_init(FuGenesysUsbhubCodesignFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeUsbhubPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_parade_usbhub_plugin_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_plugin_init(FuParadeUsbhubPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: fu_parade_usbhub_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_parade_usbhub_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_plugin_class_init(FuParadeUsbhubPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:50,1
    - Dst: fu_parade_usbhub_chip_to_string
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: fu_parade_usbhub_device_to_string
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - fwupd_codec_string_append_hex
    - fu_parade_usbhub_chip_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:60,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: fu_parade_usbhub_device_mmio_read_u8
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_read_u8(FuParadeUsbhubDevice
      *self,\n\t\t\t\t     guint16 address,\n\t\t\t\t     guint8 *data,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - self
    - address
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: fu_parade_usbhub_device_mmio_read
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_read(FuParadeUsbhubDevice *self,\n\t\t\t\t
      \ guint16 address,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:96,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - address
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: fu_parade_usbhub_device_mmio_write_raw
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_write_raw(FuParadeUsbhubDevice
      *self,\n\t\t\t\t       guint16 address,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t
      \      gsize bufsz,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - self
    - address
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: fu_parade_usbhub_device_mmio_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_write(FuParadeUsbhubDevice *self,\n\t\t\t\t
      \  guint16 address,\n\t\t\t\t   guint8 *buf,\n\t\t\t\t   gsize bufsz,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: fu_parade_usbhub_device_mmio_write_u8
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_write_u8(FuParadeUsbhubDevice
      *self,\n\t\t\t\t      guint16 address,\n\t\t\t\t      guint8 data,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:145,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: fu_parade_usbhub_device_mmio_write_u16
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_write_u16(FuParadeUsbhubDevice
      *self,\n\t\t\t\t       guint16 address,\n\t\t\t\t       guint16 data,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:156,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: fu_parade_usbhub_device_mmio_write_u24
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint24
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_write_u24(FuParadeUsbhubDevice
      *self,\n\t\t\t\t       guint16 address,\n\t\t\t\t       guint32 data,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:167,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:169,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - address
    - bit_offset
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: fu_parade_usbhub_device_mmio_set_bit
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - FU_BIT_SET
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_set_bit(FuParadeUsbhubDevice
      *self,\n\t\t\t\t     guint16 address,\n\t\t\t\t     gsize bit_offset,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:180,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:182,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - address
    - bit_offset
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: fu_parade_usbhub_device_mmio_clear_bit
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - FU_BIT_CLEAR
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_mmio_clear_bit(FuParadeUsbhubDevice
      *self,\n\t\t\t\t       guint16 address,\n\t\t\t\t       gsize bit_offset,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:189,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: fu_parade_usbhub_device_spi_rom_wait_done_cb
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_set_error_literal
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_rom_wait_done_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: fu_parade_usbhub_device_spi_rom_wait_done
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_rom_wait_done(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:223,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:228,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:238,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:242,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:243,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:252,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:259,1
    - Dst: fu_parade_usbhub_device_mmio_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - self
    - spi_command
    - spi_address
    - spi_command_size
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - guint32
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 268
    functionName: fu_parade_usbhub_device_spi_read_dma_dbi
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_memwrite_uint24
    - fu_parade_usbhub_device_mmio_read
    - fu_parade_usbhub_device_spi_rom_wait_done
    - g_return_val_if_fail
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_read_dma_dbi(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t guint8 spi_command,\n\t\t\t\t\t guint32 spi_address,\n\t\t\t\t\t
      gsize spi_command_size,\n\t\t\t\t\t guint8 *buf,\n\t\t\t\t\t gsize bufsz,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:282,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:284,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:289,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:297,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:298,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:306,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:313,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:318,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:323,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:330,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:336,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:343,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 7
    argNames:
    - self
    - spi_command
    - spi_address
    - spi_command_size
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - guint32
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 349
    functionName: fu_parade_usbhub_device_spi_write_dma_dbi
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_memwrite_uint24
    - fu_parade_usbhub_device_spi_rom_wait_done
    - g_return_val_if_fail
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_write_dma_dbi(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t  guint8 spi_command,\n\t\t\t\t\t  guint32 spi_address,\n\t\t\t\t\t
      \ gsize spi_command_size,\n\t\t\t\t\t  guint8 *buf,\n\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:360,1
    - Dst: fu_parade_usbhub_device_spi_read_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:364,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:374,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:380,1
    - Dst: fu_parade_usbhub_device_spi_read_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:381,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:383,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:385,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - self
    - spi_command
    - spi_address
    - spi_command_size
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - guint32
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 393
    functionName: fu_parade_usbhub_device_spi_data_read
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_parade_usbhub_device_spi_read_dma_dbi
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_data_read(FuParadeUsbhubDevice
      *self,\n\t\t\t\t      guint8 spi_command,\n\t\t\t\t      guint32 spi_address,\n\t\t\t\t
      \     gsize spi_command_size,\n\t\t\t\t      guint8 *buf,\n\t\t\t\t      gsize
      bufsz,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:404,1
    - Dst: fu_parade_usbhub_device_spi_write_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:408,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:418,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:424,1
    - Dst: fu_parade_usbhub_device_spi_write_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:425,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:427,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:429,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - self
    - spi_command
    - spi_address
    - spi_command_size
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - guint32
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 395
    functionDepth: 7
    functionLinenumber: 395
    functionLinenumberEnd: 437
    functionName: fu_parade_usbhub_device_spi_data_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - g_autoptr
    - fu_parade_usbhub_device_spi_write_dma_dbi
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_data_write(FuParadeUsbhubDevice
      *self,\n\t\t\t\t       guint8 spi_command,\n\t\t\t\t       guint32 spi_address,\n\t\t\t\t
      \      gsize spi_command_size,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t       gsize
      bufsz,\n\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:445,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:450,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:457,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:463,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 470
    functionName: fu_parade_usbhub_device_spi_data_write_ex
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_parade_usbhub_device_mmio_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_data_write_ex(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t  guint8 *buf,\n\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_spi_data_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - spi_command
    - spi_address
    - spi_command_size
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - guint32
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 8
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: fu_parade_usbhub_device_spi_write_command
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_data_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_write_command(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t  guint8 spi_command,\n\t\t\t\t\t  guint32 spi_address,\n\t\t\t\t\t
      \ gsize spi_command_size,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_set_bit
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 488
    functionDepth: 7
    functionLinenumber: 488
    functionLinenumberEnd: 495
    functionName: fu_parade_usbhub_device_enable_spi_master
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_set_bit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_enable_spi_master(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_clear_bit
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 7
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: fu_parade_usbhub_device_disable_spi_master
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_clear_bit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_disable_spi_master(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:509,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:513,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:518,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 533
    functionName: fu_parade_usbhub_device_spi_wait_status_cb
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_data_read
    - FU_PARADE_USBHUB_DEVICE
    - g_set_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_wait_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: fu_parade_usbhub_device_spi_wait_status
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_wait_status(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_set_bit
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:550,1
    - Dst: fu_parade_usbhub_device_mmio_set_bit
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 546
    functionDepth: 7
    functionLinenumber: 546
    functionLinenumberEnd: 560
    functionName: fu_parade_usbhub_device_acquire_spi_master
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_set_bit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_acquire_spi_master(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:573,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:578,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:587,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:587,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:587,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:590,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:591,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:592,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:595,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:600,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:604,1
    - Dst: fu_parade_usbhub_device_spi_data_write_ex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:611,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:613,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:617,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:626,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 562
    functionDepth: 9
    functionLinenumber: 562
    functionLinenumberEnd: 637
    functionName: fu_parade_usbhub_device_spi_rom_chip_unprotect
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_CLEAR
    - FU_BIT_CLEAR
    - g_set_error
    - fu_parade_usbhub_device_spi_wait_status
    - fu_parade_usbhub_device_spi_write_command
    - fu_parade_usbhub_device_spi_data_write_ex
    - fu_parade_usbhub_device_spi_data_read
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_rom_chip_unprotect(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:649,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:659,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:664,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:668,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:673,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - spi_address
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 639
    functionDepth: 9
    functionLinenumber: 639
    functionLinenumberEnd: 682
    functionName: fu_parade_usbhub_device_spi_rom_erase_sector
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_write_command
    - g_set_error
    - fu_parade_usbhub_device_spi_wait_status
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_rom_erase_sector(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t     guint32 spi_address,\n\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:690,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:692,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:697,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:698,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:700,1
    - Dst: fu_parade_usbhub_device_spi_rom_erase_sector
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:701,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:702,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 684
    functionDepth: 10
    functionLinenumber: 684
    functionLinenumberEnd: 710
    functionName: fu_parade_usbhub_device_spi_rom_erase
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_rom_erase_sector
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_rom_erase(FuParadeUsbhubDevice
      *self,\n\t\t\t\t      gsize bufsz,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:718,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - index_of_sram_page
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 712
    functionDepth: 6
    functionLinenumber: 712
    functionLinenumberEnd: 729
    functionName: fu_parade_usbhub_device_sram_set_page
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_sram_set_page(FuParadeUsbhubDevice
      *self,\n\t\t\t\t      guint8 index_of_sram_page,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:739,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:741,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:747,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:750,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:751,1
    - Dst: fu_parade_usbhub_device_sram_set_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:752,1
    - Dst: fu_parade_usbhub_device_mmio_write_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:757,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:758,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:759,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - self
    - sram_address
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 731
    functionDepth: 7
    functionLinenumber: 731
    functionLinenumberEnd: 767
    functionName: fu_parade_usbhub_device_sram_page_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_parade_usbhub_device_sram_set_page
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_chunk_get_page
    - g_autoptr
    - fu_chunk_get_address
    - fu_parade_usbhub_device_mmio_write_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_sram_page_write(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\tguint32 sram_address,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tgsize
      bufsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write_u24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:776,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:781,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:786,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - self
    - sram_address
    - spi_address
    - dma_size
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint32
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 769
    functionDepth: 6
    functionLinenumber: 769
    functionLinenumberEnd: 797
    functionName: fu_parade_usbhub_device_spi_rom_write_trigger
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_mmio_write_u24
    - fu_parade_usbhub_device_mmio_write_u16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_rom_write_trigger(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t      guint16 sram_address,\n\t\t\t\t\t      guint32 spi_address,\n\t\t\t\t\t
      \     gsize dma_size,\n\t\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:805,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:808,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:815,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:820,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:821,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:823,1
    - Dst: fu_parade_usbhub_device_sram_page_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:824,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:826,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:827,1
    - Dst: fu_parade_usbhub_device_spi_rom_write_trigger
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:830,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:833,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:834,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:837,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:839,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 799
    functionDepth: 8
    functionLinenumber: 799
    functionLinenumberEnd: 847
    functionName: fu_parade_usbhub_device_spi_rom_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_parade_usbhub_device_sram_page_write
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_chunk_array_mutable_new
    - fu_parade_usbhub_device_spi_rom_write_trigger
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_rom_write(FuParadeUsbhubDevice
      *self,\n\t\t\t\t      GByteArray *blob,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:860,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:865,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:873,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:873,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:873,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:876,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:877,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:878,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:881,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:886,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:890,1
    - Dst: fu_parade_usbhub_device_spi_data_write_ex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:897,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:901,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:903,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:912,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 849
    functionDepth: 9
    functionLinenumber: 849
    functionLinenumberEnd: 923
    functionName: fu_parade_usbhub_device_spi_rom_chip_protect
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_CLEAR
    - FU_BIT_CLEAR
    - g_set_error
    - FU_BIT_SET
    - fu_parade_usbhub_device_spi_wait_status
    - fu_parade_usbhub_device_spi_write_command
    - fu_parade_usbhub_device_spi_data_write_ex
    - FU_BIT_IS_SET
    - fu_parade_usbhub_device_spi_data_read
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_spi_rom_chip_protect(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_write_u24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:931,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:936,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:941,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - self
    - spi_address
    - size
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint32
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 925
    functionDepth: 6
    functionLinenumber: 925
    functionLinenumberEnd: 949
    functionName: fu_parade_usbhub_device_calculate_checksum
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_parade_usbhub_device_mmio_write_u24
    - fu_parade_usbhub_device_mmio_write_u16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_calculate_checksum(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t   guint32 spi_address,\n\t\t\t\t\t   gsize size,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:958,1
    - Dst: fu_parade_usbhub_device_acquire_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:961,1
    - Dst: fu_parade_usbhub_device_enable_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:963,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:967,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:973,1
    - Dst: fu_parade_usbhub_device_calculate_checksum
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:974,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:975,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:976,1
    - Dst: fu_parade_usbhub_device_mmio_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:982,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - self
    - size
    - checksum
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 951
    functionDepth: 8
    functionLinenumber: 951
    functionLinenumberEnd: 992
    functionName: fu_parade_usbhub_device_spi_rom_checksum
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_memread_uint32
    - g_ptr_array_index
    - fu_parade_usbhub_device_calculate_checksum
    - fu_parade_usbhub_device_mmio_read
    - fu_chunk_array_new
    - g_autoptr
    - fu_parade_usbhub_device_acquire_spi_master
    - fu_parade_usbhub_device_enable_spi_master
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_spi_rom_checksum(FuParadeUsbhubDevice
      *self,\n\t\t\t\t\t gsize size,\n\t\t\t\t\t guint32 *checksum,\n\t\t\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:998,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 994
    functionDepth: 6
    functionLinenumber: 994
    functionLinenumberEnd: 1009
    functionName: fu_parade_usbhub_device_set_ufp_disconnect_flag
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_mmio_read_u8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_set_ufp_disconnect_flag(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1016,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1021,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1026,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1031,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1036,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1036,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1011
    functionDepth: 5
    functionLinenumber: 1011
    functionLinenumberEnd: 1040
    functionName: fu_parade_usbhub_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_parade_usbhub_device_mmio_read_u8
    - fu_memread_uint32
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_ensure_version(FuParadeUsbhubDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1045,1
    - Dst: fu_parade_usbhub_device_acquire_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1047,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1048,1
    - Dst: fu_parade_usbhub_device_enable_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1051,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1052,1
    - Dst: fu_parade_usbhub_device_spi_rom_chip_unprotect
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1055,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1042
    functionDepth: 10
    functionLinenumber: 1042
    functionLinenumberEnd: 1062
    functionName: fu_parade_usbhub_device_detach
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_prefix_error
    - fu_parade_usbhub_device_spi_rom_chip_unprotect
    - fu_parade_usbhub_device_acquire_spi_master
    - fu_parade_usbhub_device_enable_spi_master
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1067,1
    - Dst: fu_parade_usbhub_device_spi_rom_chip_protect
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1069,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1070,1
    - Dst: fu_parade_usbhub_device_disable_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1073,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1064
    functionDepth: 10
    functionLinenumber: 1064
    functionLinenumberEnd: 1080
    functionName: fu_parade_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_prefix_error
    - fu_parade_usbhub_device_disable_spi_master
    - fu_parade_usbhub_device_spi_rom_chip_protect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1085,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1088,1
    - Dst: fu_parade_usbhub_device_ensure_version
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1092,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1082
    functionDepth: 6
    functionLinenumber: 1082
    functionLinenumberEnd: 1099
    functionName: fu_parade_usbhub_device_setup
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_prefix_error
    - fu_parade_usbhub_device_ensure_version
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_usbhub_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1107,1
    - Dst: fu_parade_usbhub_device_set_ufp_disconnect_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1101
    functionDepth: 7
    functionLinenumber: 1101
    functionLinenumberEnd: 1118
    functionName: fu_parade_usbhub_device_prepare
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_prefix_error
    - fu_parade_usbhub_device_set_ufp_disconnect_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_prepare(FuDevice *device,\n\t\t\t\tFuProgress
      *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1126,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1126,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1128,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1129,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1130,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1131,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1120
    functionDepth: 6
    functionLinenumber: 1120
    functionLinenumberEnd: 1135
    functionName: fu_parade_usbhub_device_cleanup
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_cleanup(FuDevice *device,\n\t\t\t\tFuProgress
      *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1144,1
    - Dst: fu_parade_usbhub_firmware_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1144,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1148
    functionName: fu_parade_usbhub_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_parade_usbhub_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_parade_usbhub_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1157,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1159,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1164,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1165,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1166,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1167,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1170,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1175,1
    - Dst: fu_parade_usbhub_device_spi_rom_erase
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1184,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1186,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1189,1
    - Dst: fu_parade_usbhub_device_spi_rom_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1190,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1192,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1195,1
    - Dst: fu_parade_usbhub_device_spi_rom_checksum
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1198,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1199,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1202,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1204,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1150
    functionDepth: 11
    functionLinenumber: 1150
    functionLinenumberEnd: 1216
    functionName: fu_parade_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - g_set_error
    - fu_parade_usbhub_device_spi_rom_write
    - g_prefix_error
    - fu_progress_add_step
    - fu_input_stream_read_byte_array
    - fu_progress_set_id
    - fu_parade_usbhub_device_spi_rom_checksum
    - g_autoptr
    - fu_crc32
    - fu_parade_usbhub_device_spi_rom_erase
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1223,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1224,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1225,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1227
    functionName: fu_parade_usbhub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1232,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1233
    functionName: fu_parade_usbhub_device_convert_version
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_parade_usbhub_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1241,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1243,1
    - Dst: fu_parade_usbhub_chip_from_string
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1244,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1247,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1255
    functionName: fu_parade_usbhub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_PARADE_USBHUB_DEVICE
    - fu_parade_usbhub_chip_from_string
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1261,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1262,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1263,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1264,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1265,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1266,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1267,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1267,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1268,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1269,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1270,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1257
    functionDepth: 6
    functionLinenumber: 1257
    functionLinenumberEnd: 1271
    functionName: fu_parade_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_request_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_set_remove_delay
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_init(FuParadeUsbhubDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1276,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1278,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1279
    functionName: fu_parade_usbhub_device_constructed
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - fu_cfi_device_new
    - FU_DEVICE
    - fu_device_get_context
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_constructed(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1284,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1287,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1290
    functionName: fu_parade_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1295,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1310
    functionName: fu_parade_usbhub_device_class_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_class_init(FuParadeUsbhubDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_parade_usbhub_hdr_validate_stream
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: fu_parade_usbhub_firmware_validate
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_parade_usbhub_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   gsize offset,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:40,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:50,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: fu_parade_usbhub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u32
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_usbhub_firmware_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:61,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: fu_parade_usbhub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_parade_usbhub_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: fu_parade_usbhub_firmware_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_firmware_init(FuParadeUsbhubFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: fu_parade_usbhub_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_firmware_class_init(FuParadeUsbhubFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:82,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: fu_parade_usbhub_firmware_new
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_parade_usbhub_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:28,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:30,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: fu_android_boot_device_to_string
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_ANDROID_BOOT_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:41,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:44,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:48,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:53,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:53,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:57,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:57,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:60,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:65,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:71,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:77,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:77,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 83
    functionName: fu_android_boot_device_probe
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_physical_id
    - FU_DEVICE_CLASS
    - fu_device_set_firmware_size_max
    - fu_strtoull
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_strdup
    - g_autoptr
    - fu_device_set_serial
    - FU_ANDROID_BOOT_DEVICE
    - g_hash_table_lookup
    - fu_kernel_get_cmdline
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_android_boot_device_probe(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:88,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:92,1
    - Dst: fu_block_partition_get_fs_label
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:96,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:96,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:98,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:103,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:116,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:116,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:117,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:123,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:125,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:125,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:126,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:127,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:130,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:132,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:133,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 146
    functionName: fu_android_boot_device_setup
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_DEVICE_CLASS
    - fu_block_partition_get_fs_label
    - fu_device_build_instance_id
    - fu_device_has_flag
    - g_set_error_literal
    - g_str_has_suffix
    - fu_block_partition_get_fs_uuid
    - fu_device_add_instance_strsafe
    - FU_ANDROID_BOOT_DEVICE
    - FU_BLOCK_PARTITION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_android_boot_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:151,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:154,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:155,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:156,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: fu_android_boot_device_open
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_error_matches
    - g_steal_pointer
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_android_boot_device_open(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:175,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:176,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:176,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:179,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:179,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:180,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:186,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:189,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:192,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:192,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:193,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:194,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:197,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:199,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: fu_android_boot_device_write
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_udev_device_seek
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_udev_device_pwrite
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_android_boot_device_write(FuAndroidBootDevice *self,\n\t\t\t
      \    FuChunkArray *chunks,\n\t\t\t     FuProgress *progress,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:211,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:212,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:214,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:214,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:214,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:216,1
    - Dst: fu_android_boot_device_write
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: fu_android_boot_device_erase
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - g_steal_pointer
    - g_bytes_new_take
    - g_malloc0
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_android_boot_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_android_boot_device_erase(FuAndroidBootDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:229,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:230,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:230,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:237,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:240,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:244,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:244,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:245,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:245,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:246,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:250,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:252,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:255,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:256,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:256,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:258,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:260,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 267
    functionName: fu_android_boot_device_verify
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_bytes_new_static
    - g_prefix_error
    - fu_bytes_compare
    - g_malloc0
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_address
    - fu_udev_device_pread
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_android_boot_device_verify(FuAndroidBootDevice *self,\n\t\t\t
      \     FuChunkArray *chunks,\n\t\t\t      FuProgress *progress,\n\t\t\t      GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:278,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:281,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:284,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:292,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:293,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:294,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:295,1
    - Dst: fu_android_boot_device_erase
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:298,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:298,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:300,1
    - Dst: fu_android_boot_device_write
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:302,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:302,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:304,1
    - Dst: fu_android_boot_device_verify
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:306,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:306,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 311
    functionName: fu_android_boot_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_add_step
    - fu_android_boot_device_erase
    - fu_progress_set_id
    - g_autoptr
    - FU_ANDROID_BOOT_DEVICE
    - fu_android_boot_device_write
    - fu_android_boot_device_verify
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_android_boot_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:319,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:323,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:326,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:330,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:332,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:336,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:339,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 351
    functionName: fu_android_boot_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_hash_table_lookup
    - g_set_error_literal
    - g_autoptr
    - FU_ANDROID_BOOT_DEVICE
    - g_strcmp0
    - fu_kernel_get_cmdline
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_android_boot_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \   const gchar *key,\n\t\t\t\t    const gchar *value,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANDROID_BOOT_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:356,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:357,1
    - Dst: g_free
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: fu_android_boot_device_finalize
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_ANDROID_BOOT_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:364,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:365,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:366,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:367,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:368,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:369,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:370,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:371,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:371,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:372,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:372,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:373,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:373,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:374,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:381,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAndroidBootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: fu_android_boot_device_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_device_init(FuAndroidBootDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:388,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAndroidBootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 398
    functionName: fu_android_boot_device_class_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_device_class_init(FuAndroidBootDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAndroidBootPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_android_boot_plugin_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_plugin_init(FuAndroidBootPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c:26,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c:27,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_android_boot_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAndroidBootPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_android_boot_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_android_boot_plugin_class_init(FuAndroidBootPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:31,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_fastboot_device_to_string
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:39,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:42,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:42,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:45,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:45,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 8
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: fu_fastboot_device_probe
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fu_usb_interface_get_number
    - fu_usb_device_add_interface
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_get_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:52,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:58,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:59,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:62,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:62,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:72,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:75,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - device
    - buf
    - buflen
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 87
    functionName: fu_fastboot_device_write
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - g_set_error
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_write(FuDevice *device, const guint8 *buf,
      gsize buflen, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:94,1
    - Dst: fu_fastboot_device_write
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - str
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: fu_fastboot_device_writestr
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_write
    - g_set_error
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_writestr(FuDevice *device, const gchar
      *str, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:128,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:130,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:130,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:139,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:142,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:143,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:147,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:153,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:162,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:164,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:165,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:166,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:169,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:174,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:174,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:176,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:181,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:182,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:199,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - device
    - str
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - gchar**
    - FuProgress*
    - FuFastbootDeviceReadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 201
    functionName: fu_fastboot_device_read
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_FASTBOOT_DEVICE
    - g_set_error
    - g_debug
    - g_propagate_prefixed_error
    - g_strndup
    - g_steal_pointer
    - g_error_matches
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - memcmp
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_strcmp0
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_read(FuDevice *device,\n\t\t\tgchar **str,\n\t\t\tFuProgress
      *progress,\n\t\t\tFuFastbootDeviceReadFlags flags,\n\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:207,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:207,1
    - Dst: fu_fastboot_device_writestr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:208,1
    - Dst: fu_fastboot_device_read
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:210,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - key
    - str
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: fu_fastboot_device_getvar
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_read
    - fu_progress_new
    - g_prefix_error
    - g_strdup_printf
    - g_autoptr
    - fu_fastboot_device_writestr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_getvar(FuDevice *device, const gchar *key,
      gchar **str, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_fastboot_device_writestr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:228,1
    - Dst: fu_fastboot_device_read
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - device
    - cmd
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - FuProgress*
    - FuFastbootDeviceReadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: fu_fastboot_device_cmd
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_writestr
    - fu_fastboot_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_cmd(FuDevice *device,\n\t\t       const
      gchar *cmd,\n\t\t       FuProgress *progress,\n\t\t       FuFastbootDeviceReadFlags
      flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:241,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - partition
    - progress
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: fu_fastboot_device_flash
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_fastboot_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_flash(FuDevice *device,\n\t\t\t const
      gchar *partition,\n\t\t\t FuProgress *progress,\n\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:252,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:253,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:255,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:258,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:266,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:267,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:271,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:272,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:272,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:274,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:277,1
    - Dst: fu_fastboot_device_write
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:280,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:281,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:282,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:285,1
    - Dst: fu_fastboot_device_read
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - device
    - fw
    - progress
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 294
    functionName: fu_fastboot_device_download
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_FASTBOOT_DEVICE
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_step_done
    - fu_fastboot_device_read
    - g_bytes_get_size
    - g_strdup_printf
    - fu_progress_set_steps
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_fastboot_device_write
    - fu_chunk_get_data
    - fu_fastboot_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_download(FuDevice *device, GBytes *fw,
      FuProgress *progress, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:299,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:306,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:310,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:313,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:314,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:318,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:321,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:322,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:326,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:329,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:332,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:335,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:337,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 342
    functionName: fu_fastboot_device_setup
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fu_device_set_version_format
    - FU_DEVICE_CLASS
    - g_strdup_printf
    - fu_device_set_version_bootloader
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_serial
    - fu_device_set_name
    - fu_fastboot_device_getvar
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:356,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:361,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:366,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:369,1
    - Dst: fu_fastboot_device_download
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:373,1
    - Dst: fu_fastboot_device_flash
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - device
    - firmware
    - part
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - XbNode*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 376
    functionName: fu_fastboot_device_write_qfil_part
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - fu_firmware_get_image_by_id_bytes
    - fu_fastboot_device_flash
    - xb_node_query_text
    - fu_fastboot_device_download
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_qfil_part(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   XbNode *part,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:385,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:388,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:389,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:397,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:398,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:403,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:404,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:413,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:416,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:427,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:428,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:429,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:434,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:435,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:444,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:452,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:454,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:455,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:467,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:468,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:477,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:487,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:492,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:493,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:494,1
    - Dst: fu_fastboot_device_download
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:506,1
    - Dst: fu_fastboot_device_flash
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:508,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:512,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:512,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:513,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:513,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:514,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:515,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:523,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - device
    - firmware
    - part
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - XbNode*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 378
    functionDepth: 7
    functionLinenumber: 378
    functionLinenumberEnd: 525
    functionName: fu_fastboot_device_write_motorola_part
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_get_attr
    - g_strdup_printf
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    - g_compute_checksum_for_bytes
    - xb_node_export
    - fu_fastboot_device_flash
    - g_strcmp0
    - fu_fastboot_device_download
    - fu_fastboot_device_cmd
    - fu_fastboot_device_getvar
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_motorola_part(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       XbNode *part,\n\t\t\t\t       FuProgress
      *progress,\n\t\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:534,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:535,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:535,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:536,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:537,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:540,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:543,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:544,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:547,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:548,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:550,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:555,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:557,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:560,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:561,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:563,1
    - Dst: fu_fastboot_device_write_motorola_part
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:564,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:567,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - device
    - firmware
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 527
    functionDepth: 8
    functionLinenumber: 527
    functionLinenumberEnd: 575
    functionName: fu_fastboot_device_write_motorola
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fwupd_error_convert
    - xb_builder_compile
    - xb_builder_new
    - xb_builder_import_source
    - g_ptr_array_index
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_set_id
    - xb_builder_source_new
    - g_autoptr
    - xb_silo_query
    - fu_fastboot_device_write_motorola_part
    - xb_builder_source_load_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_motorola(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:584,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:585,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:585,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:586,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:586,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:587,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:590,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:593,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:594,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:597,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:598,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:600,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:605,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:607,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:610,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:611,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:613,1
    - Dst: fu_fastboot_device_write_qfil_part
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:614,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:617,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - device
    - firmware
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 577
    functionDepth: 8
    functionLinenumber: 577
    functionLinenumberEnd: 625
    functionName: fu_fastboot_device_write_qfil
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_fastboot_device_write_qfil_part
    - fwupd_error_convert
    - xb_builder_compile
    - xb_builder_new
    - xb_builder_import_source
    - g_ptr_array_index
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_set_id
    - xb_builder_source_new
    - g_autoptr
    - xb_silo_query
    - xb_builder_source_load_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_qfil(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:634,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:637,1
    - Dst: fu_fastboot_device_write_qfil
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:639,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:640,1
    - Dst: fu_fastboot_device_write_motorola
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:642,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 627
    functionDepth: 9
    functionLinenumber: 627
    functionLinenumberEnd: 650
    functionName: fu_fastboot_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_id
    - fu_fastboot_device_write_motorola
    - g_set_error_literal
    - g_autoptr
    - fu_fastboot_device_write_qfil
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:658,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:662,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:663,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:668,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:669,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 681
    functionName: fu_fastboot_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:686,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 694
    functionName: fu_fastboot_device_attach
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_fastboot_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:699,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:700,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:701,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 705
    functionName: fu_fastboot_device_set_progress
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:714,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:715,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:716,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:717,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:717,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:718,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:719,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:720,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:720,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:721,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFastbootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 707
    functionDepth: 6
    functionLinenumber: 707
    functionLinenumberEnd: 722
    functionName: fu_fastboot_device_init
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    - fu_usb_device_set_claim_retry_count
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_device_init(FuFastbootDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFastbootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 735
    functionName: fu_fastboot_device_class_init
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_device_class_init(FuFastbootDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFastbootPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_fastboot_plugin_init
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_plugin_init(FuFastbootPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:26,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:27,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: fu_fastboot_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFastbootPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_fastboot_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fastboot_plugin_class_init(FuFastbootPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANALOGIX_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:24,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:25,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: fu_analogix_device_to_string
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_ANALOGIX_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_analogix_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:41,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:42,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:45,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:50,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:50,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:63,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - self
    - reqcode
    - val0code
    - index
    - buf
    - bufsz
    - error
    argTypes:
    - FuAnalogixDevice*
    - AnxBbRqtCode
    - guint16
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 76
    functionName: fu_analogix_device_send
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_send(FuAnalogixDevice *self,\n\t\t\tAnxBbRqtCode
      reqcode,\n\t\t\tguint16 val0code,\n\t\t\tguint16 index,\n\t\t\tconst guint8
      *buf,\n\t\t\tgsize bufsz,\n\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:89,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:90,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:93,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:93,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - self
    - reqcode
    - val0code
    - index
    - buf
    - bufsz
    - error
    argTypes:
    - FuAnalogixDevice*
    - AnxBbRqtCode
    - guint16
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: fu_analogix_device_receive
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_receive(FuAnalogixDevice *self,\n\t\t\t
      \  AnxBbRqtCode reqcode,\n\t\t\t   guint16 val0code,\n\t\t\t   guint16 index,\n\t\t\t
      \  guint8 *buf,\n\t\t\t   gsize bufsz,\n\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:128,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:136,1
    - Dst: fu_analogix_update_status_to_string
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:137,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuAnalogixDevice*
    - FuAnalogixUpdateStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: fu_analogix_device_get_update_status
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_analogix_device_receive
    - FU_DEVICE
    - g_set_error_literal
    - fu_analogix_update_status_to_string
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_get_update_status(FuAnalogixDevice *self,\n\t\t\t\t
      \    FuAnalogixUpdateStatus *status,\n\t\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANALOGIX_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:157,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:163,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:167,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:169,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:171,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:174,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:182,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:190,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:193,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 196
    functionName: fu_analogix_device_setup
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - g_strdup_printf
    - fu_analogix_device_receive
    - FU_DEVICE
    - FU_ANALOGIX_DEVICE
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_analogix_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANALOGIX_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:202,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:204,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:204,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:208,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:209,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:210,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:211,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:212,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:212,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: fu_analogix_device_find_interface
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_interface_get_subclass
    - fu_usb_device_add_interface
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - FU_ANALOGIX_DEVICE
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_analogix_device_find_interface(FuUsbDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_analogix_device_find_interface
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:224,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 9
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: fu_analogix_device_probe
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_analogix_device_find_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_analogix_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:241,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:242,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:242,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:245,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:248,1
    - Dst: fu_analogix_device_send
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:251,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:255,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:256,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:258,1
    - Dst: fu_analogix_device_get_update_status
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:261,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:262,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - self
    - chunks
    - req_val
    - progress
    - error
    argTypes:
    - FuAnalogixDevice*
    - FuChunkArray*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: fu_analogix_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_analogix_device_get_update_status
    - fu_analogix_device_send
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_write_chunks(FuAnalogixDevice *self,\n\t\t\t\tFuChunkArray
      *chunks,\n\t\t\t\tguint16 req_val,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:283,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:286,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:287,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:288,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:291,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:296,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:298,1
    - Dst: fu_analogix_device_send
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:299,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:306,1
    - Dst: fu_analogix_device_get_update_status
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:309,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:311,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:314,1
    - Dst: fu_analogix_device_write_chunks
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:321,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:324,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - self
    - image
    - req_val
    - progress
    - error
    argTypes:
    - FuAnalogixDevice*
    - FuFirmware*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 331
    functionName: fu_analogix_device_write_image
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_progress_step_done
    - fu_progress_get_child
    - g_prefix_error
    - fu_progress_add_step
    - fu_analogix_device_send
    - fu_analogix_device_get_update_status
    - fu_analogix_device_write_chunks
    - fu_memwrite_uint32
    - fu_progress_set_id
    - g_autoptr
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_write_image(FuAnalogixDevice *self,\n\t\t\t
      \      FuFirmware *image,\n\t\t\t       guint16 req_val,\n\t\t\t       FuProgress
      *progress,\n\t\t\t       GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_ANALOGIX_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:345,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:348,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:349,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:350,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:351,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:354,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:356,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:358,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:360,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:362,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:364,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:371,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:373,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:377,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:379,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:383,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:385,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:389,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:391,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:397,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:400,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:402,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:405,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:410,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:413,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:415,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:418,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:423,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:428,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:431,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:436,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:439,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:441,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:444,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 333
    functionDepth: 7
    functionLinenumber: 333
    functionLinenumberEnd: 449
    functionName: fu_analogix_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - g_prefix_error
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_set_id
    - g_autoptr
    - FU_ANALOGIX_DEVICE
    - fu_analogix_device_write_image
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:454,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:454,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:457,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:458,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:459,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:460,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 451
    functionDepth: 6
    functionLinenumber: 451
    functionLinenumberEnd: 466
    functionName: fu_analogix_device_attach
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_analogix_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:471,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:472,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:474,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:475,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: fu_analogix_device_set_progress
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_analogix_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:482,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:483,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:484,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:485,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:486,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:487,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:488,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAnalogixDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 490
    functionName: fu_analogix_device_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_analogix_device_init(FuAnalogixDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 502
    functionName: fu_analogix_device_class_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_analogix_device_class_init(FuAnalogixDeviceClass *klass)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:35,1
    - Dst: FuFirmwareClass*::parse
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:38,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:40,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:45,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:46,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:47,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:49,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:51,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:56,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:57,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:58,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:59,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:62,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:63,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:69,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:76,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:81,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:83,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:83,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:84,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:85,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:86,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:91,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:93,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:93,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:94,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:95,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:96,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:99,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:99,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:100,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:101,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 107
    functionName: fu_analogix_firmware_parse
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FuFirmwareClass*::parse
    - fu_firmware_get_bytes_with_patches
    - g_bytes_get_size
    - fu_memread_uint8_safe
    - fu_firmware_new_from_bytes
    - fu_firmware_set_addr
    - FU_FIRMWARE_CLASS
    - fu_firmware_set_version_raw
    - g_autoptr
    - g_bytes_ref
    - fu_bytes_is_empty
    - fu_bytes_new_offset
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16_hex
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:112,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: fu_analogix_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint16_hex
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_analogix_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ihex_firmware_set_padding_value
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:118,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:118,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:119,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAnalogixFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: fu_analogix_firmware_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_IHEX_FIRMWARE
    - fu_ihex_firmware_set_padding_value
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_analogix_firmware_init(FuAnalogixFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: fu_analogix_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_analogix_firmware_class_init(FuAnalogixFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAnalogixPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_analogix_plugin_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_analogix_plugin_init(FuAnalogixPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_analogix_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_analogix_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_analogix_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_analogix_plugin_class_init(FuAnalogixPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:18,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmdlen
    argTypes:
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: fu_synaprom_reply_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c
    functionUses: 0
    functionsReached:
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaprom_reply_new(gsize cmdlen)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:54,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:57,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:63,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c:66,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 69
    functionName: fu_synaprom_error_from_status
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_error_from_status(guint16 status, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:34,1
    - Dst: FU_SYNAPROM_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:40,1
    - Dst: fu_struct_synaprom_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:43,1
    - Dst: fu_struct_synaprom_cmd_iota_find_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:44,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:44,1
    - Dst: fu_struct_synaprom_cmd_iota_find_set_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:47,1
    - Dst: fu_struct_synaprom_cmd_iota_find_set_flags
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:48,1
    - Dst: fu_struct_synaprom_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:49,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:50,1
    - Dst: fu_synaprom_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:52,1
    - Dst: fu_synaprom_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:54,1
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:63,1
    - Dst: fu_struct_synaprom_reply_iota_find_hdr_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:70,1
    - Dst: fu_struct_synaprom_reply_iota_find_hdr_get_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:73,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:75,1
    - Dst: fu_struct_synaprom_reply_iota_find_hdr_get_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:79,1
    - Dst: fu_struct_synaprom_iota_config_version_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:82,1
    - Dst: fu_struct_synaprom_iota_config_version_get_config_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:88,1
    - Dst: fu_struct_synaprom_iota_config_version_get_config_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:89,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:92,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:93,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:96,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:97,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:98,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:103,1
    - Dst: fu_struct_synaprom_iota_config_version_get_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:103,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:104,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 107
    functionName: fu_synaprom_config_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_synaprom_device_cmd_send
    - FU_SYNAPROM_CONFIG
    - g_set_error
    - fu_device_set_version
    - fu_struct_synaprom_request_new
    - fu_struct_synaprom_reply_iota_find_hdr_parse
    - fu_struct_synaprom_reply_iota_find_hdr_get_itype
    - fu_synaprom_reply_new
    - fu_struct_synaprom_iota_config_version_get_config_id1
    - fu_struct_synaprom_request_set_cmd
    - fu_device_get_parent
    - fu_struct_synaprom_iota_config_version_parse
    - fu_device_set_version_lowest
    - FU_SYNAPROM_DEVICE
    - fu_struct_synaprom_iota_config_version_get_config_id2
    - fu_struct_synaprom_cmd_iota_find_set_flags
    - g_autoptr
    - fu_struct_synaprom_cmd_iota_find_new
    - fu_progress_new
    - fu_struct_synaprom_cmd_iota_find_set_itype
    - fu_struct_synaprom_iota_config_version_get_version
    - g_strdup_printf
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_config_setup(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:116,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:120,1
    - Dst: fu_synaprom_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:121,1
    - Dst: fu_synaprom_device_get_product_type
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:123,1
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:123,1
    - Dst: fu_synaprom_firmware_set_signature_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:125,1
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:125,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:131,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:135,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:138,1
    - Dst: fu_struct_synaprom_cfg_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:141,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:143,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:146,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:148,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:153,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:158,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:163,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:164,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:166,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:168,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:173,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:178,1
    - Dst: fu_struct_synaprom_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:179,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 188
    functionName: fu_synaprom_config_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_synaprom_firmware_set_signature_size
    - g_prefix_error
    - FU_SYNAPROM_CONFIG
    - fu_struct_synaprom_cfg_hdr_get_product
    - g_set_error
    - fu_struct_synaprom_cfg_hdr_get_id2
    - fu_device_get_parent
    - FU_SYNAPROM_DEVICE
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_struct_synaprom_cfg_hdr_parse_stream
    - fu_synaprom_device_get_product_type
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_synaprom_firmware_new
    - g_warning
    - fu_struct_synaprom_cfg_hdr_get_id1
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaprom_config_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:198,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:201,1
    - Dst: fu_synaprom_device_write_fw
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:206,1
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: fu_synaprom_config_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPROM_DEVICE
    - fu_firmware_get_image_by_id_bytes
    - fu_synaprom_device_write_fw
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_config_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:212,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:213,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:214,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:215,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:216,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:217,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:218,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:219,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:220,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 6
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: fu_synaprom_config_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_config_init(FuSynapromConfig *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:227,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:228,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:233,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:234,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:235,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:236,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: fu_synaprom_config_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_device_add_instance_id
    - g_strdup_printf
    - G_OBJECT_CLASS
    - FU_DEVICE
    - fu_device_get_parent
    - FU_SYNAPROM_CONFIG
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_config_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:245,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: fu_synaprom_config_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_device_attach_full
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_config_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:252,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: fu_synaprom_config_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - fu_device_detach_full
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_config_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:259,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapromConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: fu_synaprom_config_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_config_class_init(FuSynapromConfigClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:274,1
    - Dst: FU_SYNAPROM_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuSynapromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: fu_synaprom_config_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPROM_CONFIG
    - g_object_new
    linkageType: ''
    returnType: FuSynapromConfig
    signature: 'FuSynapromConfig *

      fu_synaprom_config_new(FuSynapromDevice *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:31,1
    - Dst: FU_IS_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_synaprom_firmware_get_product_id
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaprom_firmware_get_product_id(FuSynapromFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:38,1
    - Dst: FU_IS_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - signature_size
    argTypes:
    - FuSynapromFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: fu_synaprom_firmware_set_signature_size
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_firmware_set_signature_size(FuSynapromFirmware
      *self, guint32 signature_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: fu_synaprom_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:56,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:75,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:78,1
    - Dst: fu_struct_synaprom_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:81,1
    - Dst: fu_struct_synaprom_hdr_get_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:84,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:86,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:97,1
    - Dst: fu_struct_synaprom_hdr_get_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:106,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:114,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:117,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:119,1
    - Dst: fu_synaprom_firmware_tag_to_string
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:121,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:123,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:124,1
    - Dst: fu_synaprom_firmware_tag_to_string
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:124,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:131,1
    - Dst: fu_struct_synaprom_mfw_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:132,1
    - Dst: fu_struct_synaprom_mfw_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:135,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:136,1
    - Dst: fu_struct_synaprom_mfw_hdr_get_vmajor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:137,1
    - Dst: fu_struct_synaprom_mfw_hdr_get_vminor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:138,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 146
    functionName: fu_synaprom_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaprom_mfw_hdr_get_vminor
    - fu_struct_synaprom_hdr_get_bufsz
    - fu_struct_synaprom_mfw_hdr_get_vmajor
    - fu_firmware_get_image_by_idx
    - g_set_error
    - g_debug
    - fu_firmware_add_image_full
    - fu_struct_synaprom_mfw_hdr_parse_stream
    - fu_struct_synaprom_hdr_get_tag
    - fu_struct_synaprom_hdr_parse_stream
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_struct_synaprom_mfw_hdr_get_product
    - fu_firmware_set_id
    - fu_synaprom_firmware_tag_to_string
    - g_strdup_printf
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_firmware_set_idx
    - fu_input_stream_size
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:152,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:153,1
    - Dst: fu_struct_synaprom_hdr_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:154,1
    - Dst: fu_struct_synaprom_mfw_hdr_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:155,1
    - Dst: fu_struct_synaprom_hdr_set_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:158,1
    - Dst: fu_struct_synaprom_hdr_set_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:159,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:160,1
    - Dst: fu_struct_synaprom_mfw_hdr_set_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:161,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:162,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:165,1
    - Dst: fu_struct_synaprom_hdr_set_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:168,1
    - Dst: fu_struct_synaprom_hdr_set_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:169,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:169,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:170,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:171,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: fu_synaprom_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaprom_hdr_new
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_firmware_get_bytes_with_patches
    - g_bytes_get_size
    - fu_struct_synaprom_mfw_hdr_new
    - fu_struct_synaprom_mfw_hdr_set_product
    - g_autoptr
    - fu_struct_synaprom_hdr_set_bufsz
    - fu_struct_synaprom_hdr_set_tag
    - g_byte_array_append
    - g_byte_array_new
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaprom_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:182,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 192
    functionName: fu_synaprom_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:197,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:197,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:198,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: fu_synaprom_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_firmware_init(FuSynapromFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapromFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: fu_synaprom_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_firmware_class_init(FuSynapromFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:215,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: fu_synaprom_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaprom_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_synaprom_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_plugin_init(FuSynapromPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:28,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_synaprom_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:35,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:36,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:37,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: fu_synaprom_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:44,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapromPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: fu_synaprom_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_plugin_class_init(FuSynapromPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:20,1
    - Dst: fu_synaprom_device_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:27,1
    - Dst: fu_synaprom_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:28,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:28,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:30,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:31,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:32,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:37,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:40,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:41,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:49,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:52,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:53,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:54,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:55,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:60,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:61,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:62,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:63,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:64,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:65,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:66,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:67,1
    - Dst: fu_synaprom_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:70,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:71,1
    - Dst: fu_synaprom_device_prepare_firmware
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:77,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:78,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:80,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:81,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:82,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:83,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: fu_test_synaprom_firmware_func
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - g_assert_null
    - fu_synaprom_device_new
    - g_assert_cmpint
    - fu_synaprom_device_prepare_firmware
    - g_assert_nonnull
    - g_autoptr
    - g_file_test
    - fu_firmware_parse_bytes
    - fu_synaprom_firmware_new
    - fu_synaprom_device_set_version
    - g_bytes_get_data
    - fu_progress_new
    - g_test_build_filename
    - g_assert_no_error
    - fu_firmware_get_image_by_id_bytes
    - FU_DEVICE
    - g_memory_input_stream_new_from_bytes
    - fu_bytes_get_contents
    linkageType: ''
    returnType: void
    signature: void fu_test_synaprom_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:97,1
    - Dst: fu_synaprom_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:98,1
    - Dst: fu_synaprom_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:99,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:103,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:105,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:106,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:109,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:111,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:112,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:115,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:116,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:119,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:120,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 122
    functionName: fu_synaprom_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_synaprom_firmware_new
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:127,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:128,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:129,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:130,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:131,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:51,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:52,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:53,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:54,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:56,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:62,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:62,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:74,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:82,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:84,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:84,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:92,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:95,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:105,1
    - Dst: fu_struct_synaprom_reply_generic_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:107,1
    - Dst: fu_synaprom_error_from_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:110,1
    - Dst: fu_struct_synaprom_reply_generic_get_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 6
    argNames:
    - self
    - request
    - reply
    - progress
    - timeout_ms
    - error
    argTypes:
    - FuSynapromDevice*
    - GByteArray*
    - GByteArray*
    - FuProgress*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 117
    functionName: fu_synaprom_device_cmd_send
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - fu_struct_synaprom_reply_generic_parse
    - g_prefix_error
    - fu_synaprom_error_from_status
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_dump_full
    - fu_usb_device_bulk_transfer
    - fu_struct_synaprom_reply_generic_get_status
    - fu_progress_set_id
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_device_cmd_send(FuSynapromDevice *self,\n\t\t\t
      \   GByteArray *request,\n\t\t\t    GByteArray *reply,\n\t\t\t    FuProgress
      *progress,\n\t\t\t    guint timeout_ms,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: fu_synaprom_device_get_product_type
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaprom_device_get_product_type(FuSynapromDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:137,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:142,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - vmajor
    - vminor
    - buildnum
    argTypes:
    - FuSynapromDevice*
    - guint8
    - guint8
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: fu_synaprom_device_set_version
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached:
    - fu_device_set_version
    - FU_DEVICE
    - g_debug
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: "void fu_synaprom_device_set_version(FuSynapromDevice *self,\n\t\t\t
      \      guint8 vmajor,\n\t\t\t       guint8 vminor,\n\t\t\t       guint32 buildnum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:154,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - serial_number
    argTypes:
    - FuSynapromDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: fu_synaprom_device_set_serial_number
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_serial
    - FU_DEVICE
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_device_set_serial_number(FuSynapromDevice *self, guint64
      serial_number)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:165,1
    - Dst: fu_struct_synaprom_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:167,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:167,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:170,1
    - Dst: fu_struct_synaprom_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:174,1
    - Dst: fu_synaprom_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:175,1
    - Dst: fu_synaprom_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:176,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:177,1
    - Dst: fu_struct_synaprom_reply_get_version_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:180,1
    - Dst: fu_synaprom_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:183,1
    - Dst: fu_struct_synaprom_reply_get_version_get_vmajor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:184,1
    - Dst: fu_struct_synaprom_reply_get_version_get_vminor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:185,1
    - Dst: fu_struct_synaprom_reply_get_version_get_buildnum
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:186,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:189,1
    - Dst: fu_struct_synaprom_reply_get_version_get_serial_number
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:190,1
    - Dst: fu_synaprom_device_set_serial_number
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:192,1
    - Dst: fu_struct_synaprom_reply_get_version_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:195,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:197,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:202,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:204,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:219,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:220,1
    - Dst: fu_struct_synaprom_reply_get_version_get_security1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:223,1
    - Dst: fu_synaprom_config_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:223,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:224,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 229
    functionName: fu_synaprom_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_prefix_error
    - fu_device_has_flag
    - fu_struct_synaprom_reply_get_version_get_serial_number
    - fu_struct_synaprom_reply_get_version_get_buildnum
    - fu_synaprom_device_cmd_send
    - fu_struct_synaprom_reply_get_version_get_security1
    - g_set_error
    - fu_struct_synaprom_request_new
    - FU_DEVICE_CLASS
    - fu_synaprom_reply_new
    - fu_struct_synaprom_reply_get_version_get_vmajor
    - fu_struct_synaprom_request_set_cmd
    - fu_device_remove_flag
    - fu_device_add_flag
    - FU_SYNAPROM_DEVICE
    - fu_device_get_children
    - fu_synaprom_config_new
    - fu_struct_synaprom_reply_get_version_parse
    - g_autoptr
    - fu_struct_synaprom_reply_get_version_get_product
    - fu_synaprom_device_set_version
    - fu_progress_new
    - memcpy
    - fu_struct_synaprom_reply_get_version_get_vminor
    - FU_DEVICE
    - fu_synaprom_device_set_serial_number
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:239,1
    - Dst: fu_synaprom_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:239,1
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:240,1
    - Dst: fu_synaprom_firmware_set_signature_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:243,1
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:243,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:249,1
    - Dst: fu_synaprom_firmware_get_product_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:251,1
    - Dst: FU_SYNAPROM_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:251,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:261,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 275
    functionName: fu_synaprom_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached:
    - fu_synaprom_firmware_get_product_id
    - g_warning
    - g_set_error
    - FU_SYNAPROM_DEVICE
    - g_steal_pointer
    - fu_synaprom_firmware_set_signature_size
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_synaprom_firmware_new
    - FU_SYNAPROM_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaprom_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:284,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:285,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:288,1
    - Dst: fu_struct_synaprom_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:289,1
    - Dst: fu_struct_synaprom_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:292,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:293,1
    - Dst: fu_synaprom_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:294,1
    - Dst: fu_synaprom_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:295,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:298,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuSynapromDevice*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 307
    functionName: fu_synaprom_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_struct_synaprom_request_new
    - fu_synaprom_device_cmd_send
    - fu_progress_step_done
    - fu_synaprom_reply_new
    - g_ptr_array_index
    - fu_struct_synaprom_request_set_cmd
    - fu_progress_set_id
    - g_autoptr
    - g_byte_array_append
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_device_write_chunks(FuSynapromDevice *self,\n\t\t\t\tGPtrArray
      *chunks,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:318,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:321,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:322,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:323,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:326,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:331,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:331,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:334,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:339,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:340,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:352,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:353,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:353,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:355,1
    - Dst: fu_synaprom_device_write_chunks
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:358,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:358,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapromDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 309
    functionDepth: 6
    functionLinenumber: 309
    functionLinenumberEnd: 364
    functionName: fu_synaprom_device_write_fw
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - g_steal_pointer
    - fu_memread_uint32_safe
    - fu_progress_add_step
    - g_byte_array_new
    - g_malloc0
    - fu_memcpy_safe
    - fu_synaprom_device_write_chunks
    - fu_progress_set_id
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_byte_array_append
    - g_ptr_array_add
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_device_write_fw(FuSynapromDevice *self,\n\t\t\t
      \   GBytes *fw,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:374,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:377,1
    - Dst: fu_synaprom_device_write_fw
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 366
    functionDepth: 7
    functionLinenumber: 366
    functionLinenumberEnd: 382
    functionName: fu_synaprom_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_synaprom_device_write_fw
    - fu_firmware_get_image_by_id_bytes
    - FU_SYNAPROM_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaprom_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:392,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:393,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:397,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:397,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:413,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:421,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:421,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:422,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 427
    functionName: fu_synaprom_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_device_has_flag
    - fu_device_remove_flag
    - FU_USB_DEVICE
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:437,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:441,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:441,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:456,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:464,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:465,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:465,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:466,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 471
    functionName: fu_synaprom_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_USB_DEVICE
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaprom_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:476,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 482
    functionName: fu_synaprom_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:487,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:488,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:489,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:490,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:490,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:491,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:492,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:493,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:494,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:495,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:496,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:496,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:497,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:497,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:498,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 6
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: fu_synaprom_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_USB_DEVICE
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_device_init(FuSynapromDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 512
    functionName: fu_synaprom_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaprom_device_class_init(FuSynapromDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:518,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:521,1
    - Dst: FU_SYNAPROM_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 514
    functionDepth: 9
    functionLinenumber: 514
    functionLinenumberEnd: 525
    functionName: fu_synaprom_device_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - FU_SYNAPROM_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuSynapromDevice
    signature: 'FuSynapromDevice *

      fu_synaprom_device_new(FuUsbDevice *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:27,1
    - Dst: FU_IS_FOCALFP_FIRMWARE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalfpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_focalfp_firmware_get_checksum
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FOCALFP_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_focalfp_firmware_get_checksum(FuFocalfpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_FIRMWARE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:34,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:35,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: fu_focalfp_firmware_export
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_FOCALFP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: fu_focalfp_firmware_compute_checksum_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_firmware_compute_checksum_cb(const guint8 *buf,\n\t\t\t\t\tgsize
      bufsz,\n\t\t\t\t\tgpointer user_data,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_FIRMWARE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:61,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:72,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 90
    functionName: fu_focalfp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - fu_input_stream_chunkify
    - FU_FOCALFP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_firmware_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalfpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: fu_focalfp_firmware_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_firmware_init(FuFocalfpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalfpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: fu_focalfp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_firmware_class_init(FuFocalfpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalfpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_focalfp_plugin_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_plugin_init(FuFocalfpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_focalfp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalfpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_focalfp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_plugin_class_init(FuFocalfpPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:46,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:46,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:47,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:51,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:51,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:56,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: fu_focalfp_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_udev_device_get_subsystem
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: fu_focalfp_hid_device_generate_checksum
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_focalfp_hid_device_generate_checksum(const guint8 *buf, gsize
      bufsz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:91,1
    - Dst: fu_focalfp_hid_device_generate_checksum
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:93,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:94,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:94,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:106,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:106,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: fu_focalfp_hid_device_io
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - fu_focalfp_hid_device_generate_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_io(FuFocalfpHidDevice *self,\n\t\t\t
      guint8 *wbuf,\n\t\t\t gsize wbufsz,\n\t\t\t guint8 *rbuf,\n\t\t\t gsize rbufsz,\n\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:129,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:139,1
    - Dst: fu_focalfp_hid_device_generate_checksum
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - bufsz
    - cmd
    - error
    argTypes:
    - guint8*
    - gsize
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: fu_focalfp_hid_device_check_cmd_crc
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint8_safe
    - fu_focalfp_hid_device_generate_checksum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_check_cmd_crc(const guint8 *buf, gsize
      bufsz, guint8 cmd, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:159,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:163,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 173
    functionName: fu_focalfp_hid_device_read_reg_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_read_reg_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:184,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - reg_address
    - val
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 194
    functionName: fu_focalfp_hid_device_read_reg
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_read_reg(FuFocalfpHidDevice *self,\n\t\t\t
      \      guint8 reg_address,\n\t\t\t       guint8 *val, /* out */\n\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:203,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:204,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: fu_focalfp_hid_device_enter_upgrade_mode
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_enter_upgrade_mode(FuFocalfpHidDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:219,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 232
    functionName: fu_focalfp_hid_device_check_current_state
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_check_current_state(FuFocalfpHidDevice
      *self, guint8 *val, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:239,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:243,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: fu_focalfp_hid_device_wait_for_upgrade_ready_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_wait_for_upgrade_ready_cb(FuDevice
      *device,\n\t\t\t\t\t\tgpointer user_data,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:259,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - retries
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: fu_focalfp_hid_device_wait_for_upgrade_ready
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_wait_for_upgrade_ready(FuFocalfpHidDevice
      *self,\n\t\t\t\t\t     guint retries,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:270,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:275,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:279,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: fu_focalfp_hid_device_read_update_id_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_read_update_id_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - us_ic_id
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: fu_focalfp_hid_device_read_update_id
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_read_update_id(FuFocalfpHidDevice *self,
      guint16 *us_ic_id, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:309,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: fu_focalfp_hid_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_erase_flash(FuFocalfpHidDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:319,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:322,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: fu_focalfp_hid_device_send_data_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_send_data_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:341,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:349,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:351,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:354,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - packet_type
    - buf
    - bufsz
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint8
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 360
    functionName: fu_focalfp_hid_device_send_data
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_retry_full
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_send_data(FuFocalfpHidDevice *self,\n\t\t\t\tguint8
      packet_type,\n\t\t\t\tconst guint8 *buf,\n\t\t\t\tguint8 bufsz,\n\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:369,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:373,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 363
    functionDepth: 5
    functionLinenumber: 363
    functionLinenumberEnd: 378
    functionName: fu_focalfp_hid_device_checksum_upgrade
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_checksum_upgrade(FuFocalfpHidDevice
      *self, guint32 *val, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:383,1
    - Dst: fu_focalfp_hid_device_read_reg
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:387,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:388,1
    - Dst: fu_focalfp_hid_device_read_reg
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:392,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:395,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 380
    functionDepth: 6
    functionLinenumber: 380
    functionLinenumberEnd: 399
    functionName: fu_focalfp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - g_prefix_error
    - fu_focalfp_hid_device_read_reg
    - fu_device_set_version_raw
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:408,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:409,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:409,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:411,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:415,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:420,1
    - Dst: fu_focalfp_hid_device_send_data
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:423,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:425,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:428,1
    - Dst: fu_focalfp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:431,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:432,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuFocalfpHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 440
    functionName: fu_focalfp_hid_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_focalfp_hid_device_wait_for_upgrade_ready
    - fu_focalfp_hid_device_send_data
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_write_chunks(FuFocalfpHidDevice *self,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:454,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:457,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:458,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:459,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:460,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:461,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:462,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:465,1
    - Dst: fu_focalfp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:470,1
    - Dst: fu_focalfp_hid_device_read_update_id
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:472,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:475,1
    - Dst: fu_focalfp_hid_device_erase_flash
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:483,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:485,1
    - Dst: fu_focalfp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:486,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:488,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:491,1
    - Dst: fu_focalfp_hid_device_write_chunks
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:498,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:500,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:503,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:506,1
    - Dst: fu_focalfp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:507,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:509,1
    - Dst: fu_focalfp_hid_device_checksum_upgrade
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:512,1
    - Dst: fu_focalfp_firmware_get_checksum
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:514,1
    - Dst: FU_FOCALFP_FIRMWARE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:514,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:515,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:516,1
    - Dst: fu_focalfp_firmware_get_checksum
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:521,1
    - Dst: FU_FOCALFP_FIRMWARE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:521,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:524,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 442
    functionDepth: 7
    functionLinenumber: 442
    functionLinenumberEnd: 528
    functionName: fu_focalfp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - FU_FOCALFP_HID_DEVICE
    - fu_firmware_get_stream
    - g_set_error
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_focalfp_firmware_get_checksum
    - FU_FOCALFP_FIRMWARE
    - fu_focalfp_hid_device_wait_for_upgrade_ready
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_focalfp_hid_device_erase_flash
    - fu_progress_set_id
    - fu_focalfp_hid_device_checksum_upgrade
    - g_autoptr
    - fu_focalfp_hid_device_write_chunks
    - fu_focalfp_hid_device_read_update_id
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focalfp_hid_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:534,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:537,1
    - Dst: fu_focalfp_hid_device_read_reg
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:538,1
    - Dst: fu_focalfp_hid_device_read_reg
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:540,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:542,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:544,1
    - Dst: fu_focalfp_hid_device_setup
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 531
    functionDepth: 7
    functionLinenumber: 531
    functionLinenumberEnd: 556
    functionName: fu_focalfp_hid_device_reload
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_FOCALFP_HID_DEVICE
    - g_debug
    - fu_focalfp_hid_device_read_reg
    - fu_focalfp_hid_device_setup
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_reload(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:561,1
    - Dst: fu_focalfp_hid_device_enter_upgrade_mode
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:565,1
    - Dst: fu_focalfp_hid_device_check_current_state
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:570,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 586
    functionName: fu_focalfp_hid_device_detach_cb
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - g_set_error
    - g_prefix_error
    - fu_focalfp_hid_device_check_current_state
    - fu_focalfp_hid_device_enter_upgrade_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_detach_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:592,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:597,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:598,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:601,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:604,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 589
    functionDepth: 5
    functionLinenumber: 589
    functionLinenumberEnd: 615
    functionName: fu_focalfp_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_device_retry_full
    - g_prefix_error
    - fu_focalfp_hid_device_io
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCALFP_HID_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:621,1
    - Dst: fu_focalfp_hid_device_io
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:625,1
    - Dst: fu_focalfp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:629,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 635
    functionName: fu_focalfp_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCALFP_HID_DEVICE
    - fu_focalfp_hid_device_check_cmd_crc
    - fu_focalfp_hid_device_io
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focalfp_hid_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:640,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:641,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:642,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:643,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:644,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:645,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 647
    functionName: fu_focalfp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_hid_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:652,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: fu_focalfp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_focalfp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:658,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:658,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:659,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:660,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:660,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:661,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:661,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:662,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:663,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:664,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:665,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:665,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:666,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:666,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:667,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:667,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:668,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:668,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:669,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalfpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 670
    functionName: fu_focalfp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_set_firmware_gtype
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_hid_device_init(FuFocalfpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalfpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 684
    functionName: fu_focalfp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focalfp_hid_device_class_init(FuFocalfpHidDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:21,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:22,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:23,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:24,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:25,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:26,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:27,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:28,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:29,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:30,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:31,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:32,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:33,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:34,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:35,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:36,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:37,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:38,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:39,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:40,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:42,1
    - Dst: fu_plugin_device_register
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:43,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:44,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:45,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:52,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:56,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:58,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:59,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:60,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:61,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:62,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:63,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:64,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:65,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:66,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:67,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:68,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:69,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:70,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:71,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:73,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:74,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:75,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:76,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:77,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:78,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:79,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:80,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:81,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:82,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:83,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:84,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:85,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 64
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 90
    functionName: fu_test_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_vendor
    - fu_device_set_version
    - fu_device_get_metadata
    - g_set_error
    - fu_device_add_private_flag
    - fu_plugin_device_register
    - fu_device_add_flag
    - fu_device_set_physical_id
    - fu_device_set_version_lowest
    - fu_plugin_device_add
    - fu_device_set_summary
    - fu_device_add_instance_id
    - fu_device_set_logical_id
    - fu_device_set_version_bootloader
    - fu_device_set_id
    - g_autoptr
    - fu_device_add_icon
    - fu_device_set_version_format
    - fu_device_add_parent_guid
    - fu_plugin_get_context
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_new
    - fu_device_set_name
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:108,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 116
    functionName: fu_test_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_modify_config(FuPlugin *plugin, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: fu_test_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_registered(FuPlugin *plugin, FuDevice *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:131,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:131,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:132,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:133,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:138,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:138,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:139,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:140,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:145,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:145,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:146,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:147,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:152,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FuPluginVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 158
    functionName: fu_test_plugin_verify
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strcmp0
    - fu_device_get_version
    - fu_device_add_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_test_plugin_verify(FuPlugin *plugin,\n\t\t      FuDevice
      *device,\n\t\t      FuProgress *progress,\n\t\t      FuPluginVerifyFlags flags,\n\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:166,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:167,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:171,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:172,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - blob_fw
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: fu_test_plugin_get_version
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_autoptr
    - fu_version_from_uint32
    - fu_strsafe
    - g_bytes_get_data
    - fu_strtoull
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_test_plugin_get_version(GBytes *blob_fw)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:197,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:204,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:205,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:207,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:213,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:218,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:219,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:225,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:225,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:227,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:228,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:229,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:230,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:233,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:235,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:237,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:243,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:247,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:250,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:251,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:259,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:264,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:265,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:267,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:268,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:270,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:276,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:281,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:282,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:286,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:287,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:288,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:288,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:289,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:292,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:292,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:293,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:299,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:300,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:301,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:305,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:307,1
    - Dst: fu_test_plugin_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:310,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:311,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:313,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:316,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:318,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:324,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:325,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:326,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:327,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:331,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:332,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:333,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:334,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:338,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:340,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 343
    functionName: fu_test_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_device_set_metadata_boolean
    - g_prefix_error
    - fu_test_plugin_get_version
    - fwupd_request_add_flag
    - fu_device_set_metadata_integer
    - fu_device_emit_request
    - fu_progress_set_percentage_full
    - fu_device_set_version
    - fu_device_get_logical_id
    - fu_device_add_private_flag
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_set_kind
    - fu_device_get_metadata_integer
    - fwupd_request_set_message
    - g_autoptr
    - fu_plugin_get_config_value
    - fu_strtoull
    - fu_firmware_get_bytes
    - fu_device_set_version_format
    - fu_plugin_get_config_value_boolean
    - g_set_error_literal
    - fwupd_request_set_id
    - g_strcmp0
    - fu_device_get_metadata_boolean
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_test_plugin_write_firmware(FuPlugin *plugin,\n\t\t\t      FuDevice
      *device,\n\t\t\t      FuFirmware *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t
      \     FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:348,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - plugin
    - device
    - process
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: fu_test_plugin_activate
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_activate(FuPlugin *plugin, FuDevice *device,
      FuProgress *process, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: fu_test_plugin_get_results
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_update_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_get_results(FuPlugin *plugin, FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:363,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:365,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: fu_test_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_device_set_metadata
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_composite_prepare(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:377,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: fu_test_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_device_set_metadata
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:387,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 391
    functionName: fu_test_plugin_attach
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata_integer
    - fu_device_set_metadata_integer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_plugin_attach(FuPlugin *plugin, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:396,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: fu_test_plugin_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_init(FuTestPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:402,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:403,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:404,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:405,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:406,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:407,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:408,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:409,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:410,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:411,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:412,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:413,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 415
    functionName: fu_test_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_config_default
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:420,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: fu_test_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:427,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 442
    functionName: fu_test_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_class_init(FuTestPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestBlePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_test_ble_plugin_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_test_ble_plugin_init(FuTestBlePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_test_ble_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_test_ble_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestBlePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_test_ble_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_test_ble_plugin_class_init(FuTestBlePluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:20,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:20,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:21,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:21,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:22,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:23,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-ble-device.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: fu_test_ble_device_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_private_flag
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_test_ble_device_init(FuTestBleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: fu_test_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_ble_device_class_init(FuTestBleDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuScsiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_scsi_plugin_init
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_scsi_plugin_init(FuScsiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:26,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:27,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:29,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_scsi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_scsi_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuScsiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_scsi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_scsi_plugin_class_init(FuScsiPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SCSI_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: fu_scsi_device_to_string
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - FU_SCSI_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_scsi_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_SCSI_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:57,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:63,1
    - Dst: g_info
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:70,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:71,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:71,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:74,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:74,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:80,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:82,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:90,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:91,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:93,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:96,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:96,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:101,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:104,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:115,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:115,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:121,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:129,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:134,1
    - Dst: fu_udev_device_get_devpath
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:137,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:137,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:139,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:140,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:145,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:147,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:149,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:149,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:154,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:156,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:158,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:158,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:163,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:168,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:169,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:170,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:171,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 50
    functionDepth: 6
    functionLinenumber: 50
    functionLinenumberEnd: 177
    functionName: fu_scsi_device_probe
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_udev_device_get_sysfs_path
    - fu_device_get_vendor
    - fu_device_set_vendor
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_device_set_physical_id
    - g_info
    - fu_device_set_summary
    - FU_SCSI_DEVICE
    - g_autoptr
    - fu_strtoull
    - fu_device_set_name
    - fu_device_get_backend_parent_with_subsystem
    - g_strdup_printf
    - fu_device_add_protocol
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_udev_device_get_devpath
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:186,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:186,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:187,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:188,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: fu_scsi_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_firmware_set_alignment
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_scsi_device_prepare_firmware(FuDevice *device,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: fu_scsi_device_ioctl_buf_cb
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_ioctl_buf_cb(FuIoctl *self, gpointer ptr, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: fu_scsi_device_ioctl_cdb_cb
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_ioctl_cdb_cb(FuIoctl *self, gpointer ptr, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: fu_scsi_device_ioctl_sense_cb
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_ioctl_sense_cb(FuIoctl *self, gpointer ptr,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:235,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:235,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:235,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:237,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:240,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:241,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:242,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:243,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:244,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:260,1
    - Dst: fu_scsi_sense_key_to_string
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - self
    - cdb
    - cdbsz
    - buf
    - bufsz
    - dir
    - error
    argTypes:
    - FuScsiDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 273
    functionName: fu_scsi_device_send_scsi_cmd_v3
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_ioctl_execute
    - fu_scsi_sense_key_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_scsi_device_send_scsi_cmd_v3(FuScsiDevice *self,\n\t\t\t\tconst
      guint8 *cdb,\n\t\t\t\tgsize cdbsz,\n\t\t\t\tconst guint8 *buf,\n\t\t\t\tgsize
      bufsz,\n\t\t\t\tgint dir,\n\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_SCSI_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:291,1
    - Dst: fu_scsi_device_send_scsi_cmd_v3
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:294,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:301,1
    - Dst: fu_struct_scsi_inquiry_parse
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:306,1
    - Dst: fu_struct_scsi_inquiry_get_vendor_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:309,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:311,1
    - Dst: fu_struct_scsi_inquiry_get_product_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:312,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:314,1
    - Dst: fu_struct_scsi_inquiry_get_product_rev
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:315,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:317,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:320,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:321,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:322,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:323,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:330,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:332,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:336,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:336,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:337,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:343,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:343,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 347
    functionName: fu_scsi_device_setup
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_scsi_inquiry_get_product_id
    - fu_struct_scsi_inquiry_get_vendor_id
    - fu_scsi_device_send_scsi_cmd_v3
    - g_prefix_error
    - fu_device_build_vendor_id
    - fu_struct_scsi_inquiry_get_product_rev
    - FU_SCSI_DEVICE
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_device_get_vendor
    - g_autoptr
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_device_build_instance_id_full
    - fu_device_set_vendor
    - fu_device_set_name
    - fu_struct_scsi_inquiry_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_setup(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SCSI_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:360,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:363,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:368,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:375,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:376,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:377,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:377,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:381,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:387,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:390,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:391,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:391,1
    - Dst: fu_scsi_device_send_scsi_cmd_v3
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:392,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:395,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:396,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:399,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:407,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:408,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:412,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 349
    functionDepth: 6
    functionLinenumber: 349
    functionLinenumberEnd: 415
    functionName: fu_scsi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_set_status
    - fu_firmware_get_stream
    - fu_chunk_get_data_sz
    - fu_chunk_array_length
    - fu_progress_step_done
    - fu_scsi_device_send_scsi_cmd_v3
    - g_prefix_error
    - fu_memwrite_uint24
    - FU_SCSI_DEVICE
    - fu_chunk_get_idx
    - fu_device_add_flag
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    - fu_device_add_problem
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_scsi_device_write_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SCSI_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:420,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:421,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:423,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 434
    functionName: fu_scsi_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - FU_SCSI_DEVICE
    - g_strcmp0
    - g_set_error_literal
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_scsi_device_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:439,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:440,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:441,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:442,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:443,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 445
    functionName: fu_scsi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_scsi_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:450,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:451,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:452,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:453,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:453,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:454,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:454,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:455,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuScsiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: fu_scsi_device_init
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_scsi_device_init(FuScsiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuScsiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 470
    functionName: fu_scsi_device_class_init
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_scsi_device_class_init(FuScsiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: fu_jabra_file_device_to_string
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_JABRA_FILE_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:46,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:48,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:57,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:60,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:61,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:62,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:65,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:66,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:67,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 79
    functionName: fu_jabra_file_device_probe
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - fu_usb_interface_get_endpoints
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_address
    - FU_JABRA_FILE_DEVICE
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:84,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:86,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:86,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: fu_jabra_file_device_tx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - FU_JABRA_FILE_DEVICE
    - FU_USB_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_tx_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cmd_req
    - error
    argTypes:
    - FuJabraFileDevice*
    - FuJabraFilePacket*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: fu_jabra_file_device_tx
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_tx(FuJabraFileDevice *self, FuJabraFilePacket
      *cmd_req, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:114,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:117,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:125,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:136,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 149
    functionName: fu_jabra_file_device_rx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - FU_JABRA_FILE_DEVICE
    - FU_USB_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_rx_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:154,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:154,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:155,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: fu_jabra_file_device_rx
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_steal_pointer
    - fu_jabra_file_packet_new
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuJabraFilePacket
    signature: 'FuJabraFilePacket *

      fu_jabra_file_device_rx(FuJabraFileDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:170,1
    - Dst: fu_jabra_file_device_rx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:176,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: fu_jabra_file_device_rx_with_sequence_cb
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_autoptr
    - FU_JABRA_FILE_DEVICE
    - fu_jabra_file_device_rx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_rx_with_sequence_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:194,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:195,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: fu_jabra_file_device_rx_with_sequence
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    - g_steal_pointer
    linkageType: ''
    returnType: FuJabraFilePacket
    signature: 'FuJabraFilePacket *

      fu_jabra_file_device_rx_with_sequence(FuJabraFileDevice *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:209,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:210,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:212,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:213,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:214,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:215,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:216,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:217,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:219,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:222,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 231
    functionName: fu_jabra_file_device_ensure_name
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - FU_DEVICE
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_memstrsafe
    - fu_jabra_file_packet_set_dst
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_ensure_name(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:236,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:237,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:239,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:240,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:241,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:242,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:243,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:244,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:245,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:247,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 253
    functionName: fu_jabra_file_device_ensure_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - fu_jabra_file_packet_set_sub_cmd
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_ensure_dfu_pid(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:259,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:260,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:262,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:263,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:264,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:265,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:266,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:267,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:268,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:270,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:273,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 282
    functionName: fu_jabra_file_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - fu_device_set_version
    - fu_jabra_file_packet_set_sub_cmd
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - FU_DEVICE
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_memstrsafe
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_ensure_version(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:292,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:293,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:296,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:297,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:297,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:299,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:300,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:301,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:302,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:303,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:304,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:305,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:307,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:311,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:312,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:313,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:314,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:315,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:316,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:317,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:319,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:321,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:328,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:338,1
    - Dst: g_string_equal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 4
    argNames:
    - self
    - firmware_checksum
    - match
    - error
    argTypes:
    - FuJabraFileDevice*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 341
    functionName: fu_jabra_file_device_file_checksum
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - g_string_append_printf
    - fu_jabra_file_packet_set_payload
    - g_string_new
    - fu_jabra_file_packet_set_sub_cmd
    - g_string_equal
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_memcpy_safe
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_file_checksum(FuJabraFileDevice *self,\n\t\t\t\t
      \  gchar *firmware_checksum,\n\t\t\t\t   gboolean *match,\n\t\t\t\t   GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:360,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:361,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:363,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:364,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:365,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:366,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:367,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:368,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:369,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:371,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:373,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 388
    functionName: fu_jabra_file_device_write_delete_file
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_payload
    - fu_jabra_file_packet_set_sub_cmd
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_write_delete_file(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:397,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:398,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:400,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:401,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:402,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:403,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:404,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:406,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:406,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:407,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:409,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:418,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:420,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuJabraFileDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 433
    functionName: fu_jabra_file_device_write_first_block
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_firmware_get_size
    - fu_jabra_file_packet_set_payload
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_memcpy_safe
    - fu_jabra_file_packet_set_src
    - fu_memwrite_uint32
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_write_first_block(FuJabraFileDevice
      *self,\n\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:443,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:443,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:445,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:446,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:447,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:448,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:451,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:452,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:454,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:466,1
    - Dst: fu_jabra_file_device_rx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:467,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - self
    - chunk_number
    - buf
    - bufsz
    - error
    argTypes:
    - FuJabraFileDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 483
    functionName: fu_jabra_file_device_write_next_block
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_payload
    - fu_jabra_file_packet_new
    - fu_memcpy_safe
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_jabra_file_device_rx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_write_next_block(FuJabraFileDevice *self,\n\t\t\t\t
      \     guint32 chunk_number,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t      gsize
      bufsz,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:492,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:493,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:493,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:495,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:498,1
    - Dst: fu_jabra_file_device_write_next_block
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:501,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:503,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:504,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuJabraFileDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 511
    functionName: fu_jabra_file_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_jabra_file_device_write_next_block
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_write_blocks(FuJabraFileDevice *self,\n\t\t\t\t
      \ FuChunkArray *chunks,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:516,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:516,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:517,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:519,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:520,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:521,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:522,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:523,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:524,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:525,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:527,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 537
    functionName: fu_jabra_file_device_check_device_busy
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - fu_jabra_file_packet_set_sub_cmd
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - g_set_error_literal
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_check_device_busy(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:543,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:544,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:546,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:547,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:548,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:549,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:550,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:551,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:552,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:554,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:556,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 569
    functionName: fu_jabra_file_device_start_update
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_payload
    - fu_jabra_file_packet_set_sub_cmd
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_packet_set_cmd_length
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_start_update(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:579,1
    - Dst: fu_jabra_file_firmware_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:579,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:581,1
    - Dst: fu_jabra_file_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:583,1
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:583,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:584,1
    - Dst: fu_jabra_file_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:588,1
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:588,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 593
    functionName: fu_jabra_file_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_jabra_file_firmware_get_dfu_pid
    - g_steal_pointer
    - FU_JABRA_FILE_FIRMWARE
    - fu_firmware_parse_stream
    - fu_jabra_file_firmware_new
    - g_autoptr
    - FU_JABRA_FILE_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_jabra_file_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:598,1
    - Dst: fu_jabra_file_device_ensure_name
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:599,1
    - Dst: fu_jabra_file_device_ensure_version
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:601,1
    - Dst: fu_jabra_file_device_ensure_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: fu_jabra_file_device_setup
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_ensure_dfu_pid
    - fu_jabra_file_device_ensure_name
    - FU_JABRA_FILE_DEVICE
    - fu_jabra_file_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_setup(FuDevice *device, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:619,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:620,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:623,1
    - Dst: fu_jabra_file_device_file_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:624,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:628,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:629,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:630,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:631,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:634,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:637,1
    - Dst: fu_jabra_file_device_write_delete_file
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:645,1
    - Dst: fu_jabra_file_device_write_first_block
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:647,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:649,1
    - Dst: fu_jabra_file_device_write_blocks
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:650,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:652,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:655,1
    - Dst: fu_jabra_file_device_file_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:656,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:659,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:667,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:668,1
    - Dst: fu_jabra_file_device_check_device_busy
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:671,1
    - Dst: fu_jabra_file_device_start_update
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:673,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:675,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 679
    functionName: fu_jabra_file_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_checksum
    - fu_firmware_get_stream
    - fu_progress_step_done
    - fu_jabra_file_device_write_blocks
    - fu_progress_get_child
    - g_set_error
    - fu_progress_add_step
    - fu_jabra_file_device_write_delete_file
    - fu_jabra_file_device_file_checksum
    - fu_progress_set_id
    - g_autoptr
    - fu_jabra_file_device_check_device_busy
    - fu_jabra_file_device_start_update
    - FU_JABRA_FILE_DEVICE
    - fu_jabra_file_device_write_first_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:684,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:685,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:686,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 681
    functionDepth: 6
    functionLinenumber: 681
    functionLinenumberEnd: 689
    functionName: fu_jabra_file_device_attach
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - FU_JABRA_FILE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:696,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:697,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:698,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: fu_jabra_file_device_set_progress
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:706,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:706,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:707,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:707,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:708,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:708,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:709,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:709,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:710,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:710,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:711,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:711,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:712,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:713,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: fu_jabra_file_device_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_device_init(FuJabraFileDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFileDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 728
    functionName: fu_jabra_file_device_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_device_class_init(FuJabraFileDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFilePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_jabra_file_plugin_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_plugin_init(FuJabraFilePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: fu_jabra_file_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFilePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_jabra_file_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_plugin_class_init(FuJabraFilePluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:23,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_jabra_file_firmware_export
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_FILE_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:34,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:36,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:38,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:44,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:50,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:50,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:51,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:53,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:56,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:58,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - self
    - silo
    - error
    argTypes:
    - FuJabraFileFirmware*
    - XbSilo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 69
    functionName: fu_jabra_file_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - xb_silo_query_first
    - xb_node_get_attr
    - g_prefix_error
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_set_error_literal
    - g_autoptr
    - xb_node_query_text
    - fwupd_error_convert
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_firmware_parse_info(FuJabraFileFirmware *self,
      XbSilo *silo, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:78,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:83,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:84,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:85,1
    - Dst: fu_archive_firmware_set_format
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:88,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:88,1
    - Dst: fu_archive_firmware_set_compression
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:90,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:90,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:92,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:95,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:95,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:98,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:101,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:102,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:105,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:106,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:108,1
    - Dst: fu_jabra_file_firmware_parse_info
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:111,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:115,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:115,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:120,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 127
    functionName: fu_jabra_file_firmware_parse
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_firmware_new
    - fwupd_error_convert
    - fu_archive_firmware_set_format
    - xb_builder_new
    - xb_builder_compile
    - FU_JABRA_FILE_FIRMWARE
    - xb_builder_import_source
    - fu_firmware_parse_stream
    - fu_archive_firmware_get_image_fnmatch
    - FU_FIRMWARE
    - xb_builder_source_new
    - g_autoptr
    - FU_ARCHIVE_FIRMWARE
    - fu_archive_firmware_set_compression
    - xb_builder_source_load_bytes
    - fu_firmware_set_bytes
    - fu_firmware_get_bytes
    - fu_jabra_file_firmware_parse_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:132,1
    - Dst: FU_IS_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: fu_jabra_file_firmware_get_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_FILE_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_jabra_file_firmware_get_dfu_pid(FuJabraFileFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:139,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:139,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:140,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: fu_jabra_file_firmware_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_firmware_init(FuJabraFileFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFileFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: fu_jabra_file_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_file_firmware_class_init(FuJabraFileFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:154,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: fu_jabra_file_firmware_new
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_jabra_file_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:32,1
    - Dst: FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: fu_synaptics_cxaudio_firmware_get_file_type
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuSynapticsCxaudioFileKind
    signature: FuSynapticsCxaudioFileKind fu_synaptics_cxaudio_firmware_get_file_type(FuSynapticsCxaudioFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:39,1
    - Dst: FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_synaptics_cxaudio_firmware_get_devtype
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuSynapticsCxaudioDeviceKind
    signature: FuSynapticsCxaudioDeviceKind fu_synaptics_cxaudio_firmware_get_devtype(FuSynapticsCxaudioFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:46,1
    - Dst: FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: fu_synaptics_cxaudio_firmware_get_layout_version
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_synaptics_cxaudio_firmware_get_layout_version(FuSynapticsCxaudioFirmware
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:55,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:56,1
    - Dst: fu_synaptics_cxaudio_file_kind_to_string
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:58,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:59,1
    - Dst: fu_synaptics_cxaudio_device_kind_to_string
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:61,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:62,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:63,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:65,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:66,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: fu_synaptics_cxaudio_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cxaudio_file_kind_to_string
    - fu_synaptics_cxaudio_device_kind_to_string
    - fu_xmlb_builder_insert_kx
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_cxaudio_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \    FuFirmwareExportFlags flags,\n\t\t\t\t     XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:83,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:84,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - badblocks
    - str
    - addr
    - len
    argTypes:
    - GPtrArray*
    - gchar*
    - guint32
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: fu_synaptics_cxaudio_firmware_badblock_add
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_debug
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_cxaudio_firmware_badblock_add(GPtrArray *badblocks,\n\t\t\t\t\t
      \  const gchar *str,\n\t\t\t\t\t   guint32 addr,\n\t\t\t\t\t   guint32 len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:95,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - badblocks
    - addr
    - len
    argTypes:
    - GPtrArray*
    - guint32
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: fu_synaptics_cxaudio_firmware_is_addr_valid
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_firmware_is_addr_valid(GPtrArray *badblocks,
      guint32 addr, guint32 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_cxaudio_firmware_is_addr_valid
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - badblocks
    - rcd
    argTypes:
    - GPtrArray*
    - FuSrecFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fu_synaptics_cxaudio_firmware_is_record_valid
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cxaudio_firmware_is_addr_valid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_firmware_is_record_valid(GPtrArray *badblocks,
      FuSrecFirmwareRecord *rcd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:120,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:120,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:124,1
    - Dst: fu_synaptics_cxaudio_firmware_is_record_valid
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:128,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:129,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:130,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:131,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:134,1
    - Dst: fu_synaptics_cxaudio_firmware_is_addr_valid
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:136,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:140,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:141,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:142,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:147,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:149,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - badblocks
    - records
    argTypes:
    - GPtrArray*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: fu_synaptics_cxaudio_firmware_avoid_badblocks
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_synaptics_cxaudio_firmware_is_addr_valid
    - fu_srec_firmware_record_new
    - g_ptr_array_new
    - g_ptr_array_index
    - g_ptr_array_set_size
    - g_autoptr
    - g_byte_array_append
    - g_ptr_array_add
    - fu_synaptics_cxaudio_firmware_is_record_valid
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_firmware_avoid_badblocks(GPtrArray *badblocks,
      GPtrArray *records)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:160,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:161,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:165,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:170,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:176,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:183,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:195,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:202,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:203,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_vendor_id
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:204,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_product_id
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:205,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_revision_id
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:206,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:210,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:217,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:228,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:233,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:235,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:242,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:247,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:261,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:266,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:271,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:276,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:281,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:286,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:291,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:295,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:307,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:307,1
    - Dst: fu_synaptics_cxaudio_firmware_badblock_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:310,1
    - Dst: fu_synaptics_cxaudio_firmware_badblock_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:311,1
    - Dst: fu_synaptics_cxaudio_firmware_badblock_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:317,1
    - Dst: fu_synaptics_cxaudio_firmware_badblock_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:331,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:335,1
    - Dst: fu_synaptics_cxaudio_firmware_badblock_add
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:342,1
    - Dst: fu_synaptics_cxaudio_firmware_avoid_badblocks
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:347,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 112
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 352
    functionName: fu_synaptics_cxaudio_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - memcmp
    - fu_synaptics_cxaudio_firmware_avoid_badblocks
    - fu_struct_synaptics_cxaudio_custom_info_parse
    - g_set_error
    - g_debug
    - fu_struct_synaptics_cxaudio_custom_info_get_product_id
    - g_ptr_array_index
    - fu_srec_firmware_get_records
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
    - fu_struct_synaptics_cxaudio_custom_info_get_revision_id
    - fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_version
    - FU_SREC_FIRMWARE
    - fu_struct_synaptics_cxaudio_custom_info_get_vendor_id
    - fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
    - fu_struct_synaptics_cxaudio_validity_signature_parse
    - fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
    - fu_memcpy_safe
    - fu_synaptics_cxaudio_firmware_badblock_add
    - fu_struct_synaptics_cxaudio_patch_info_parse
    - g_set_error_literal
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: fu_synaptics_cxaudio_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_firmware_init(FuSynapticsCxaudioFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: fu_synaptics_cxaudio_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_firmware_class_init(FuSynapticsCxaudioFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:370,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: fu_synaptics_cxaudio_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_cxaudio_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:37,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:38,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:46,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:47,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: fu_synaptics_cxaudio_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_bool
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:59,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:67,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: fu_synaptics_cxaudio_device_output_report
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_output_report(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t\t  guint8 *buf,\n\t\t\t\t\t  guint16 bufsz,\n\t\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:83,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - ReportID
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint8
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: fu_synaptics_cxaudio_device_input_report
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_input_report(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t\t guint8 ReportID,\n\t\t\t\t\t guint8 *buf,\n\t\t\t\t\t guint16
      bufsz,\n\t\t\t\t\t GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:137,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:147,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:149,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:157,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:158,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:159,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:160,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:160,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:164,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:168,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:169,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:172,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:173,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:175,1
    - Dst: fu_synaptics_cxaudio_device_output_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:179,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:185,1
    - Dst: fu_synaptics_cxaudio_device_output_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:186,1
    - Dst: fu_synaptics_cxaudio_device_input_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:194,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:204,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:212,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:214,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:215,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:220,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:220,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:221,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:226,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 8
    argNames:
    - self
    - operation
    - mem_kind
    - addr
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - FuSynapticsCxaudioOperation
    - FuSynapticsCxaudioMemKind
    - guint32
    - guint8*
    - gsize
    - FuSynapticsCxaudioOperationFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 234
    functionName: fu_synaptics_cxaudio_device_operation
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - FU_BIT_CLEAR
    - fu_chunk_get_data_out
    - fu_chunk_get_address
    - FU_BIT_SET
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - fu_memcpy_safe
    - fu_synaptics_cxaudio_device_input_report
    - g_ptr_array_index
    - fu_chunk_get_idx
    - fu_synaptics_cxaudio_device_output_report
    - fu_memwrite_uint16
    - fu_memcmp_safe
    - g_autoptr
    - fu_chunk_get_data
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_operation(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t      FuSynapticsCxaudioOperation operation,\n\t\t\t\t      FuSynapticsCxaudioMemKind
      mem_kind,\n\t\t\t\t      guint32 addr,\n\t\t\t\t      guint8 *buf,\n\t\t\t\t
      \     gsize bufsz,\n\t\t\t\t      FuSynapticsCxaudioOperationFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:243,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:252,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - address
    - bit_position
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint32
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 7
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: fu_synaptics_cxaudio_device_register_clear_bit
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_CLEAR
    - fu_synaptics_cxaudio_device_operation
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_register_clear_bit(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t\t       guint32 address,\n\t\t\t\t\t       guint8 bit_position,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:270,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:279,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - address
    - bit_position
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint32
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 288
    functionName: fu_synaptics_cxaudio_device_register_set_bit
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    - fu_synaptics_cxaudio_device_operation
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_register_set_bit(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t\t     guint32 address,\n\t\t\t\t\t     guint8 bit_position,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:298,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:301,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:309,1
    - Dst: fu_struct_synaptics_cxaudio_string_header_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:314,1
    - Dst: fu_struct_synaptics_cxaudio_string_header_get_length
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:317,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:319,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:327,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:328,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:336,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 340
    functionName: fu_synaptics_cxaudio_device_eeprom_read_string
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_synaptics_cxaudio_string_header_parse
    - g_malloc0
    - fu_synaptics_cxaudio_device_operation
    - fu_struct_synaptics_cxaudio_string_header_get_length
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_synaptics_cxaudio_device_eeprom_read_string(FuSynapticsCxaudioDevice
      *self,\n\t\t\t\t\t       guint32 address,\n\t\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:346,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:354,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:361,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:369,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 342
    functionDepth: 7
    functionLinenumber: 342
    functionLinenumberEnd: 383
    functionName: fu_synaptics_cxaudio_device_ensure_patch_level
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error
    - fu_synaptics_cxaudio_device_operation
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_device_ensure_patch_level(FuSynapticsCxaudioDevice
      *self, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:400,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:404,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:408,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:416,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:422,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:423,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:424,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:433,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:434,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:437,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:446,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:452,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:461,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:469,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:475,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:477,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:482,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_eeprom_size_code
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:490,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:491,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:499,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:502,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:510,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:518,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:523,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:526,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:529,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:534,1
    - Dst: fu_synaptics_cxaudio_device_eeprom_read_string
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:539,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:545,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:550,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:558,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:561,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:566,1
    - Dst: fu_synaptics_cxaudio_device_ensure_patch_level
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:570,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:583,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:587,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:588,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:592,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:592,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:596,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:596,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:598,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:599,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 606
    functionName: fu_synaptics_cxaudio_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_usb_device_get_string_descriptor
    - g_prefix_error
    - fu_synaptics_cxaudio_device_ensure_patch_level
    - fu_device_build_instance_id_full
    - fu_struct_synaptics_cxaudio_custom_info_parse
    - g_set_error
    - fu_device_set_version
    - g_debug
    - FU_DEVICE_CLASS
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_synaptics_cxaudio_device_eeprom_read_string
    - FU_USB_DEVICE
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
    - fu_memread_uint16
    - fu_device_set_summary
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_device_set_serial
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_version
    - fu_struct_synaptics_cxaudio_validity_signature_get_eeprom_size_code
    - fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
    - fu_struct_synaptics_cxaudio_validity_signature_parse
    - fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
    - g_strsplit
    - g_strdup_printf
    - fu_synaptics_cxaudio_device_operation
    - g_set_error_literal
    - fu_device_add_instance_str
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:617,1
    - Dst: fu_synaptics_cxaudio_firmware_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:617,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:618,1
    - Dst: fu_synaptics_cxaudio_firmware_get_devtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:621,1
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:621,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 632
    functionName: fu_synaptics_cxaudio_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_firmware_parse_stream
    - fu_synaptics_cxaudio_firmware_new
    - g_autoptr
    - fu_synaptics_cxaudio_firmware_get_devtype
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_cxaudio_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t     GInputStream *stream,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    FuFirmwareParseFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:641,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:642,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:642,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:647,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:648,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:649,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:650,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:651,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:661,1
    - Dst: fu_synaptics_cxaudio_device_register_set_bit
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:672,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:678,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:679,1
    - Dst: fu_synaptics_cxaudio_firmware_get_file_type
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:684,1
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:684,1
    - Dst: fu_synaptics_cxaudio_firmware_get_layout_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:687,1
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:688,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:690,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:700,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:703,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:713,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:717,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:721,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:724,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:725,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:734,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:740,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:740,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:750,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:752,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:761,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:764,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:767,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_set_patch_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:769,1
    - Dst: fu_struct_synaptics_cxaudio_patch_info_set_patch_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:770,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:771,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:780,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:783,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:786,1
    - Dst: fu_synaptics_cxaudio_device_register_clear_bit
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:789,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:795,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 799
    functionName: fu_synaptics_cxaudio_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_cxaudio_patch_info_set_patch_signature
    - g_prefix_error
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_synaptics_cxaudio_device_register_set_bit
    - fu_synaptics_cxaudio_device_register_clear_bit
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_srec_firmware_get_records
    - fu_progress_step_done
    - fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
    - g_autoptr
    - FU_SREC_FIRMWARE
    - fu_synaptics_cxaudio_device_operation
    - fu_synaptics_cxaudio_firmware_get_file_type
    - fu_struct_synaptics_cxaudio_patch_info_parse
    - fu_struct_synaptics_cxaudio_patch_info_set_patch_address
    - fu_synaptics_cxaudio_firmware_get_layout_version
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:806,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:813,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:816,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:824,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:826,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 801
    functionDepth: 7
    functionLinenumber: 801
    functionLinenumberEnd: 830
    functionName: fu_synaptics_cxaudio_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_error_matches
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_synaptics_cxaudio_device_operation
    - fu_device_add_flag
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:838,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:841,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:842,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:847,1
    - Dst: fu_strtobool
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:848,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:849,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:850,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:855,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:856,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 866
    functionName: fu_synaptics_cxaudio_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_strtobool
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t\t
      const gchar *key,\n\t\t\t\t\t const gchar *value,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:871,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:872,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:873,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:874,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:875,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: fu_synaptics_cxaudio_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:883,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:883,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:884,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:885,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:886,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:886,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:887,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:887,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:888,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:889,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:889,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:890,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 879
    functionDepth: 6
    functionLinenumber: 879
    functionLinenumberEnd: 891
    functionName: fu_synaptics_cxaudio_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_device_init(FuSynapticsCxaudioDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 904
    functionName: fu_synaptics_cxaudio_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_device_class_init(FuSynapticsCxaudioDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_synaptics_cxaudio_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_plugin_init(FuSynapticsCxaudioPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:28,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:32,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:34,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fu_synaptics_cxaudio_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_synaptics_cxaudio_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_plugin_class_init(FuSynapticsCxaudioPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:27,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:28,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_gpio_device_to_string
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - FU_GPIO_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_gpio_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:36,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:37,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:45,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: fu_gpio_device_probe
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_set_physical_id
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:53,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:53,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:53,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:56,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:64,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:71,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:80,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:81,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:84,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: fu_gpio_device_setup
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_ioctl_execute
    - g_prefix_error
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_device_add_instance_strsafe
    - g_autoptr
    - fu_strsafe
    - FU_GPIO_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:98,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:98,1
    - Dst: g_close
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGpioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: fu_gpio_device_unassign
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - g_close
    - FU_DEVICE
    - g_info
    - fu_device_get_logical_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_device_unassign(FuGpioDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:117,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:117,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:117,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:120,1
    - Dst: g_info
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:131,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:132,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:135,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - line
    - value
    - error
    argTypes:
    - FuGpioDevice*
    - guint64
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 150
    functionName: fu_gpio_device_assign_full
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_device_get_logical_id
    - fu_ioctl_execute
    - g_prefix_error
    - fu_memcpy_safe
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_device_assign_full(FuGpioDevice *self, guint64 line,
      gboolean value, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:159,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:171,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:171,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:171,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:184,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:184,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:184,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:188,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:196,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:199,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:207,1
    - Dst: fu_gpio_device_assign_full
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - self
    - id
    - value
    - error
    argTypes:
    - FuGpioDevice*
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 211
    functionName: fu_gpio_device_assign
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - g_prefix_error
    - fu_gpio_device_assign_full
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_strcmp0
    - fu_strsafe
    - fu_ioctl_execute
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_device_assign(FuGpioDevice *self, const gchar *id,
      gboolean value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:216,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGpioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: fu_gpio_device_init
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_gpio_device_init(FuGpioDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:222,1
    - Dst: g_close
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:224,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: fu_gpio_device_finalize
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - g_close
    - FU_GPIO_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gpio_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:231,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-device.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGpioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: fu_gpio_device_class_init
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gpio_device_class_init(FuGpioDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_PLUGIN
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:22,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:24,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:25,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: fu_gpio_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strdup_printf
    - FU_GPIO_PLUGIN
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:33,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - str
    - ret
    - error
    argTypes:
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: fu_gpio_plugin_parse_level
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_plugin_parse_level(const gchar *str, gboolean *ret,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_PLUGIN
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:52,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:55,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:56,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:59,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:60,1
    - Dst: fu_gpio_plugin_parse_level
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:67,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:71,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:78,1
    - Dst: fu_gpio_device_assign
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:81,1
    - Dst: FU_GPIO_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:81,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:82,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:87,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:87,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - plugin
    - str
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 89
    functionName: fu_gpio_plugin_process_quirk
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_gpio_device_assign
    - g_auto
    - FU_GPIO_PLUGIN
    - fu_device_get_logical_id
    - fu_gpio_plugin_parse_level
    - g_prefix_error
    - g_strsplit
    - fu_plugin_cache_lookup
    - g_strv_length
    - g_strdup
    - g_autoptr
    - fu_device_locker_new
    - g_ptr_array_add
    - FU_GPIO_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gpio_plugin_process_quirk(FuPlugin *plugin, const gchar
      *str, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:100,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:102,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:102,1
    - Dst: fu_gpio_plugin_process_quirk
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: fu_gpio_plugin_prepare
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_gpio_plugin_process_quirk
    - fu_device_get_guids
    - fu_plugin_get_context
    - fu_context_lookup_quirk_by_id
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_gpio_plugin_prepare(FuPlugin *self,\n\t\t       FuDevice
      *device,\n\t\t       FuProgress *progress,\n\t\t       FwupdInstallFlags flags,\n\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_PLUGIN
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:121,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:125,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:126,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:131,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:135,1
    - Dst: fu_gpio_device_unassign
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:142,1
    - Dst: FU_GPIO_DEVICE
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: fu_gpio_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_gpio_device_unassign
    - g_set_error
    - FU_GPIO_PLUGIN
    - g_prefix_error
    - fu_plugin_cache_lookup
    - g_ptr_array_index
    - g_ptr_array_set_size
    - g_autoptr
    - FU_GPIO_DEVICE
    - g_ptr_array_copy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_gpio_plugin_cleanup(FuPlugin *plugin,\n\t\t       FuDevice
      *device,\n\t\t       FuProgress *progress,\n\t\t       FwupdInstallFlags flags,\n\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:155,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: fu_gpio_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_plugin_cache_add
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_device_added(FuPlugin *self, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGpioPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: fu_gpio_plugin_init
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_init(FuGpioPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:167,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:168,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:169,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:170,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: fu_gpio_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GPIO_PLUGIN
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:177,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:178,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: fu_gpio_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_GPIO_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:185,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGpioPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: fu_gpio_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_class_init(FuGpioPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:15,1
    - Dst: fu_acpi_dmar_new
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:17,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:20,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:21,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:22,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:25,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:26,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:27,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:28,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:33,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:35,1
    - Dst: fu_acpi_dmar_get_opt_in
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: fu_acpi_dmar_opt_in_func
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_acpi_dmar_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_acpi_dmar_get_opt_in
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_opt_in_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:42,1
    - Dst: fu_acpi_dmar_new
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:44,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:47,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:48,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:49,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:52,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:53,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:54,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:55,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:60,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:61,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:62,1
    - Dst: fu_acpi_dmar_get_opt_in
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: fu_acpi_dmar_opt_out_func
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_acpi_dmar_new
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - g_assert_false
    - fu_acpi_dmar_get_opt_in
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_opt_out_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:68,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:69,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:72,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:73,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:76,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:77,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_DMAR
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:26,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:30,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:31,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:35,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:35,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:35,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:36,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:40,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:40,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:43,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: fu_acpi_dmar_parse
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - FU_FIRMWARE_CLASS
    - FU_ACPI_DMAR
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_dmar_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: fu_acpi_dmar_new
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuAcpiDmar
    signature: 'FuAcpiDmar *

      fu_acpi_dmar_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:59,1
    - Dst: FU_IS_ACPI_DMAR
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiDmar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_acpi_dmar_get_opt_in
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_DMAR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_dmar_get_opt_in(FuAcpiDmar *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiDmarClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_acpi_dmar_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_class_init(FuAcpiDmarClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiDmar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: fu_acpi_dmar_init
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_init(FuAcpiDmar *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:23,1
    - Dst: fu_acpi_dmar_new
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:26,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:29,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:33,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:34,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:35,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:38,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:39,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:40,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:42,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:43,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:46,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:46,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:51,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:52,1
    - Dst: fu_acpi_dmar_get_opt_in
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:55,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:56,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:57,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:58,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 64
    functionName: fu_acpi_dmar_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_acpi_dmar_new
    - g_build_filename
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_input_stream_from_path
    - fu_firmware_parse_stream
    - fwupd_security_attr_set_result_success
    - FU_FIRMWARE
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_acpi_dmar_get_opt_in
    - fu_path_from_kind
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiDmarPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: fu_acpi_dmar_plugin_init
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_plugin_init(FuAcpiDmarPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiDmarPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: fu_acpi_dmar_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_dmar_plugin_class_init(FuAcpiDmarPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:27,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:27,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:35,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:35,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: fu_hailuck_bl_device_attach
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_device_add_flag
    - FU_USB_DEVICE
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_bl_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:45,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: fu_hailuck_bl_device_probe
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_bl_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:56,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:57,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - length
    - error
    argTypes:
    - FuHailuckBlDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: fu_hailuck_bl_device_read_block_start
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_memwrite_uint16
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_bl_device_read_block_start(FuHailuckBlDevice *self,
      guint32 length, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:73,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:77,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:77,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:85,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - data_sz
    - error
    argTypes:
    - FuHailuckBlDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 98
    functionName: fu_hailuck_bl_device_read_block
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_malloc0
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hailuck_bl_device_read_block(FuHailuckBlDevice *self,\n\t\t\t\tguint8
      *data,\n\t\t\t\tgsize data_sz,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HAILUCK_BL_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:103,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:105,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:106,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:109,1
    - Dst: fu_hailuck_bl_device_read_block_start
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:110,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:114,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:115,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:116,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:117,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:119,1
    - Dst: fu_hailuck_bl_device_read_block
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:120,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:121,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:122,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:125,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: fu_hailuck_bl_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_hailuck_bl_device_read_block_start
    - FU_HAILUCK_BL_DEVICE
    - fu_hailuck_bl_device_read_block
    - fu_chunk_get_data_out
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_device_get_firmware_size_max
    - fu_progress_set_id
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_hailuck_bl_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:139,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:139,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuHailuckBlDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: fu_hailuck_bl_device_erase
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_hid_device_set_report
    - FU_DEVICE
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_bl_device_erase(FuHailuckBlDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:158,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:159,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - length
    - error
    argTypes:
    - FuHailuckBlDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: fu_hailuck_bl_device_write_block_start
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_memwrite_uint16
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_bl_device_write_block_start(FuHailuckBlDevice *self,
      guint32 length, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:175,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:179,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:188,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:188,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - data_sz
    - error
    argTypes:
    - FuHailuckBlDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 200
    functionName: fu_hailuck_bl_device_write_block
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_malloc0
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hailuck_bl_device_write_block(FuHailuckBlDevice *self,\n\t\t\t\t
      const guint8 *data,\n\t\t\t\t gsize data_sz,\n\t\t\t\t GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_HAILUCK_BL_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:213,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:217,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:218,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:219,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:222,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:225,1
    - Dst: fu_hailuck_bl_device_erase
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:230,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:230,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:232,1
    - Dst: fu_hailuck_bl_device_write_block_start
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:235,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:235,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:239,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:245,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:248,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:248,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:248,1
    - Dst: fu_hailuck_bl_device_write_block
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:252,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:252,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:257,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:260,1
    - Dst: fu_hailuck_bl_device_write_block
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:263,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:264,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:265,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:268,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:268,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:270,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:272,1
    - Dst: fu_hailuck_bl_device_write_block_start
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:275,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:275,1
    - Dst: fu_hailuck_bl_device_write_block
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:277,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:278,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:279,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:282,1
    - Dst: fu_hailuck_bl_device_dump_firmware
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:285,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:286,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:287,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 202
    functionDepth: 7
    functionLinenumber: 202
    functionLinenumberEnd: 288
    functionName: fu_hailuck_bl_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - FU_HAILUCK_BL_DEVICE
    - fu_memdup_safe
    - fu_chunk_array_length
    - fu_hailuck_bl_device_erase
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_hailuck_bl_device_write_block_start
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_hailuck_bl_device_dump_firmware
    - g_autoptr
    - fu_chunk_array_index
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - g_bytes_get_size
    - fu_bytes_compare
    - fu_hailuck_bl_device_write_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hailuck_bl_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:293,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:294,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:295,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:296,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:297,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:298,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:299,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:300,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:301,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:302,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:303,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:303,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHailuckBlDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 6
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: fu_hailuck_bl_device_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_set_firmware_gtype
    - fu_hid_device_add_flag
    - fu_device_add_icon
    - fu_device_set_remove_delay
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_bl_device_init(FuHailuckBlDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHailuckBlDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: fu_hailuck_bl_device_class_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_bl_device_class_init(FuHailuckBlDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:23,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: fu_hailuck_tp_device_probe
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_tp_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:35,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:43,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:43,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:51,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:51,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:63,1
    - Dst: fu_hailuck_cmd_to_string
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: fu_hailuck_tp_device_cmd_cb
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_set_error
    - FU_HID_DEVICE
    - fu_hailuck_cmd_to_string
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_tp_device_cmd_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:87,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:94,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:95,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:96,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:97,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:98,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:99,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:100,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:103,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:110,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:113,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:114,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:117,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:126,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:126,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:129,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:134,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:135,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:136,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:137,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:137,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:138,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:139,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:139,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:139,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:140,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:141,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:142,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:143,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:144,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:146,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:154,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:154,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:161,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:164,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:168,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:169,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:174,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:174,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:176,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:178,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:179,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:183,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:184,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:187,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:188,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:192,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:193,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:196,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:197,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:202,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:203,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:206,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 210
    functionName: fu_hailuck_tp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_byte_array_append_uint16
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_device_get_parent
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_hid_device_set_report
    - g_byte_array_append
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hailuck_tp_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:215,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:216,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:217,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:218,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:219,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: fu_hailuck_tp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_tp_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:227,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:228,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:229,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:230,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:231,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:231,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:232,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:233,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:234,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:235,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:236,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHailuckTpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 6
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: fu_hailuck_tp_device_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_set_logical_id
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_tp_device_init(FuHailuckTpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHailuckTpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: fu_hailuck_tp_device_class_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_tp_device_class_init(FuHailuckTpDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:253,1
    - Dst: FU_HAILUCK_TP_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: fu_hailuck_tp_device_new
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_HAILUCK_TP_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuHailuckTpDevice
    signature: 'FuHailuckTpDevice *

      fu_hailuck_tp_device_new(FuDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHailuckPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_hailuck_plugin_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_plugin_init(FuHailuckPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: fu_hailuck_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHailuckPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_hailuck_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_plugin_class_init(FuHailuckPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:24,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:24,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: fu_hailuck_kbd_device_detach
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_kbd_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:39,1
    - Dst: fu_hailuck_tp_device_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:39,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:42,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:43,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:47,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:51,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:51,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:52,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:52,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:53,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: fu_hailuck_kbd_device_probe
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_format
    - fu_device_add_child
    - fu_device_get_version
    - fu_device_get_version_format
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_autoptr
    - fu_device_probe
    - fu_hailuck_tp_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hailuck_kbd_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:62,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:63,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:64,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:65,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:66,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:67,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: fu_hailuck_kbd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_kbd_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:74,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:74,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:75,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:76,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:77,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:78,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:79,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:80,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:81,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:81,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHailuckKbdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: fu_hailuck_kbd_device_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_interface
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_set_remove_delay
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_kbd_device_init(FuHailuckKbdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHailuckKbdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: fu_hailuck_kbd_device_class_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_kbd_device_class_init(FuHailuckKbdDeviceClass *klass)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_ihex_firmware_get_records
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:23,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:24,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:25,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:28,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:32,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:40,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:49,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:55,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:57,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:79,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:80,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 82
    functionName: fu_hailuck_kbd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IHEX_FIRMWARE
    - fu_memcpy_safe
    - fu_firmware_set_bytes
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - fu_ihex_firmware_get_records
    - g_bytes_new
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hailuck_kbd_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:87,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHailuckKbdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fu_hailuck_kbd_firmware_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_kbd_firmware_init(FuHailuckKbdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHailuckKbdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fu_hailuck_kbd_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hailuck_kbd_firmware_class_init(FuHailuckKbdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelAmtPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_intel_amt_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_amt_plugin_init(FuIntelAmtPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_intel_amt_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_intel_amt_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelAmtPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_intel_amt_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_amt_plugin_class_init(FuIntelAmtPluginClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:34,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:38,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:42,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:49,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: fu_intel_amt_device_status_set_error
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_amt_device_status_set_error(guint32 status, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:60,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:60,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:62,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:62,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:62,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:63,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:63,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:65,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:73,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - inbuf
    - error
    argTypes:
    - FuIntelAmtDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: fu_intel_amt_device_host_if_call
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_mei_device_write
    - FU_MEI_DEVICE
    - fu_mei_device_get_max_msg_length
    - fu_mei_device_read
    - g_set_error_literal
    - g_autoptr
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_intel_amt_device_host_if_call(FuIntelAmtDevice *self, GByteArray *inbuf,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:87,1
    - Dst: fu_amt_host_if_msg_provisioning_state_request_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:89,1
    - Dst: fu_intel_amt_device_host_if_call
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:91,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:97,1
    - Dst: fu_intel_amt_device_status_set_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:100,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_get_status
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:101,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_get_provisioning_state
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - provisioning_state
    - error
    argTypes:
    - FuIntelAmtDevice*
    - FuAmtProvisioningState*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: fu_intel_amt_device_get_provisioning_state
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_amt_host_if_msg_provisioning_state_request_new
    - fu_amt_host_if_msg_provisioning_state_response_get_status
    - fu_intel_amt_device_status_set_error
    - fu_amt_host_if_msg_provisioning_state_response_get_provisioning_state
    - fu_amt_host_if_msg_provisioning_state_response_parse
    - fu_intel_amt_device_host_if_call
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_amt_device_get_provisioning_state(FuIntelAmtDevice
      *self,\n\t\t\t\t\t   FuAmtProvisioningState *provisioning_state,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:115,1
    - Dst: fu_amt_host_if_msg_code_version_request_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:119,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:120,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:120,1
    - Dst: fu_intel_amt_device_host_if_call
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:122,1
    - Dst: fu_amt_host_if_msg_code_version_response_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:127,1
    - Dst: fu_intel_amt_device_status_set_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:130,1
    - Dst: fu_amt_host_if_msg_code_version_response_get_status
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:131,1
    - Dst: fu_amt_host_if_msg_code_version_response_get_version_count
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:140,1
    - Dst: fu_amt_unicode_string_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:142,1
    - Dst: fu_amt_unicode_string_get_description_length
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:152,1
    - Dst: fu_amt_unicode_string_get_description_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:158,1
    - Dst: fu_amt_unicode_string_get_version_length
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:163,1
    - Dst: fu_amt_unicode_string_get_version_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:169,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:172,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:173,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:176,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:177,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:180,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:181,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:184,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:185,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:192,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:194,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIntelAmtDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 111
    functionDepth: 6
    functionLinenumber: 111
    functionLinenumberEnd: 196
    functionName: fu_intel_amt_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_amt_host_if_msg_code_version_response_parse
    - g_string_append
    - g_string_append_printf
    - fu_device_set_version
    - fu_amt_unicode_string_get_description_length
    - fu_amt_unicode_string_get_description_string
    - fu_amt_unicode_string_get_version_string
    - fu_amt_host_if_msg_code_version_response_get_status
    - fu_amt_host_if_msg_code_version_request_new
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_amt_unicode_string_parse
    - fu_amt_host_if_msg_code_version_response_get_version_count
    - fu_intel_amt_device_status_set_error
    - g_set_error_literal
    - FU_DEVICE
    - fu_intel_amt_device_host_if_call
    - fu_amt_unicode_string_get_version_length
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_amt_device_ensure_version(FuIntelAmtDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_AMT_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:201,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:205,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:205,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:206,1
    - Dst: fu_intel_amt_device_ensure_version
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:209,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:210,1
    - Dst: fu_intel_amt_device_get_provisioning_state
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:216,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:221,1
    - Dst: fu_amt_provisioning_state_to_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:222,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: fu_intel_amt_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - fu_intel_amt_device_get_provisioning_state
    - g_prefix_error
    - FU_INTEL_AMT_DEVICE
    - g_strdup_printf
    - fu_intel_amt_device_ensure_version
    - FU_MEI_DEVICE
    - fu_mei_device_connect
    - fu_amt_provisioning_state_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_amt_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:233,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:234,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:235,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:236,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:237,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:238,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelAmtDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: fu_intel_amt_device_init
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_intel_amt_device_init(FuIntelAmtDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelAmtDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: fu_intel_amt_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_amt_device_class_init(FuIntelAmtDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:24,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:25,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:26,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_linux_swap_strip_spaces
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_string_new
    - g_ascii_isspace
    - g_string_append_c
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_swap_strip_spaces(const gchar *line)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:33,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:36,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:37,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:43,1
    - Dst: fu_volume_is_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuLinuxSwap*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: fu_linux_swap_verify_partition
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_str_has_prefix
    - fu_volume_is_encrypted
    - fu_volume_new_by_device
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_verify_partition(FuLinuxSwap *self, const gchar
      *fn, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:65,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:68,1
    - Dst: g_file_query_info
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:69,1
    - Dst: g_file_info_get_attribute_uint32
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:76,1
    - Dst: fu_volume_new_by_devnum
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:79,1
    - Dst: fu_volume_is_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:85,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuLinuxSwap*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 93
    functionName: fu_linux_swap_verify_file
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_query_info
    - g_file_info_get_attribute_uint32
    - g_file_new_for_path
    - fu_volume_is_encrypted
    - fu_volume_new_by_devnum
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_verify_file(FuLinuxSwap *self, const gchar *fn,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:98,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:98,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:99,1
    - Dst: strlen
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:103,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:104,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:105,1
    - Dst: g_utf8_strlen
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:111,1
    - Dst: fu_linux_swap_strip_spaces
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:113,1
    - Dst: fu_linux_swap_strip_spaces
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:117,1
    - Dst: fu_linux_swap_verify_partition
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:121,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:126,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:127,1
    - Dst: fu_linux_swap_verify_file
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:130,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:133,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - buf
    - bufsz
    - error
    argTypes:
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 138
    functionName: fu_linux_swap_new
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_utf8_strlen
    - fu_linux_swap_verify_file
    - g_warning
    - g_auto
    - fu_strsplit
    - strlen
    - g_steal_pointer
    - g_build_filename
    - g_object_new
    - g_strv_length
    - fu_linux_swap_strip_spaces
    - g_autoptr
    - fu_linux_swap_verify_partition
    - g_strcmp0
    - fu_path_from_kind
    linkageType: ''
    returnType: FuLinuxSwap
    signature: 'FuLinuxSwap *

      fu_linux_swap_new(const gchar *buf, gsize bufsz, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:144,1
    - Dst: FU_IS_LINUX_SWAP
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fu_linux_swap_get_encrypted
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - FU_IS_LINUX_SWAP
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_get_encrypted(FuLinuxSwap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:151,1
    - Dst: FU_IS_LINUX_SWAP
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: fu_linux_swap_get_enabled
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - FU_IS_LINUX_SWAP
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_get_enabled(FuLinuxSwap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxSwapClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: fu_linux_swap_class_init
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_class_init(FuLinuxSwapClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: fu_linux_swap_init
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_init(FuLinuxSwap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:17,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:20,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:21,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:22,1
    - Dst: fu_linux_swap_get_enabled
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:22,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:23,1
    - Dst: fu_linux_swap_get_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: fu_linux_swap_none_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_get_enabled
    - fu_linux_swap_get_encrypted
    - g_assert_no_error
    - g_assert_false
    - g_assert_nonnull
    - g_autoptr
    - fu_linux_swap_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_none_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:30,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:33,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:37,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:38,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:39,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:40,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:41,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:42,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:43,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:44,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:45,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:48,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: fu_linux_swap_plain_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_error_matches
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_linux_swap_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plain_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:56,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:59,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:63,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:64,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:65,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:66,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:67,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:68,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: fu_linux_swap_encrypted_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_error_matches
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_linux_swap_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_encrypted_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:78,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:79,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:82,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:83,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:86,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:87,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:88,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:28,1
    - Dst: fu_context_security_changed
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: fu_linux_swap_plugin_changed_cb
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - fu_context_security_changed
    linkageType: ''
    returnType: void
    signature: "void fu_linux_swap_plugin_changed_cb(GFileMonitor *monitor,\n\t\t\t\tGFile
      *file,\n\t\t\t\tGFile *other_file,\n\t\t\t\tGFileMonitorEvent event_type,\n\t\t\t\tgpointer
      user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_SWAP_PLUGIN
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:35,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:39,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:40,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:41,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:42,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:48,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:49,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:52,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:52,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: fu_linux_swap_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - G_FILE_MONITOR
    - g_file_new_for_path
    - g_build_filename
    - FU_LINUX_SWAP_PLUGIN
    - g_file_monitor
    - g_set_error_literal
    - g_file_test
    - fu_path_from_kind
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_SWAP_PLUGIN
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:67,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:73,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:74,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:75,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:76,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:79,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:80,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:81,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:82,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:85,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:87,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:88,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:89,1
    - Dst: fu_linux_swap_get_enabled
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:94,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:95,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:96,1
    - Dst: fu_linux_swap_get_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:101,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:102,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:103,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 109
    functionName: fu_linux_swap_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_linux_swap_get_enabled
    - fwupd_security_attr_add_flag
    - g_file_get_path
    - FU_LINUX_SWAP_PLUGIN
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_linux_swap_get_encrypted
    - g_file_load_contents
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_linux_swap_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwapPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: fu_linux_swap_plugin_init
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plugin_init(FuLinuxSwapPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_SWAP_PLUGIN
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:119,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:121,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:123,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:124,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: fu_linux_swap_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LINUX_SWAP_PLUGIN
    - g_object_unref
    - g_file_monitor_cancel
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:132,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxSwapPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: fu_linux_swap_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plugin_class_init(FuLinuxSwapPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: fu_uefi_dbx_snapd_notifier_new
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuUefiDbxSnapdNotifier
    signature: 'FuUefiDbxSnapdNotifier *

      fu_uefi_dbx_snapd_notifier_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_snap_is_in_snap
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:34,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:36,1
    - Dst: curl_easy_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:44,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbxSnapdNotifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: fu_uefi_dbx_snapd_notifier_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - fu_snap_is_in_snap
    - curl_easy_init
    - g_getenv
    - curl_slist_append
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_snapd_notifier_init(FuUefiDbxSnapdNotifier *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_SNAPD_NOTIFIER
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:53,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:54,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:55,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: fu_uefi_dbx_snapd_notifier_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - curl_slist_free_all
    - curl_easy_cleanup
    - G_OBJECT_CLASS
    - FU_UEFI_DBX_SNAPD_NOTIFIER
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_snapd_notifier_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbxSnapdNotifierClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_uefi_dbx_snapd_notifier_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_snapd_notifier_class_init(FuUefiDbxSnapdNotifierClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: fu_uefi_dbx_snapd_notifier_rsp_cb
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: size_t
    signature: size_t fu_uefi_dbx_snapd_notifier_rsp_cb(char *ptr, size_t size, size_t
      nmemb, void *userdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:87,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:87,1
    - Dst: curl_easy_duphandle
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:90,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:92,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:96,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:101,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:106,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:110,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:117,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:128,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 5
    argNames:
    - self
    - endpoint
    - data
    - len
    - error
    argTypes:
    - FuUefiDbxSnapdNotifier*
    - char*
    - char*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 144
    functionName: fu_uefi_dbx_snapd_notifier_simple_req
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_set_error
    - curl_easy_strerror
    - g_strdup_printf
    - curl_easy_duphandle
    - g_autoptr
    - curl_easy_getinfo
    - fu_strsafe
    - g_info
    - g_byte_array_new
    - curl_easy_perform
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_snapd_notifier_simple_req(FuUefiDbxSnapdNotifier
      *self,\n\t\t\t\t      const char *endpoint,\n\t\t\t\t      const char *data,\n\t\t\t\t
      \     gsize len,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_dbx_snapd_notifier_simple_req
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:160,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:163,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxSnapdNotifier*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: fu_uefi_dbx_snapd_notifier_dbx_manager_startup
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_simple_req
    - g_prefix_error
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_snapd_notifier_dbx_manager_startup(FuUefiDbxSnapdNotifier
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:189,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:190,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:191,1
    - Dst: fu_uefi_dbx_snapd_notifier_simple_req
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:198,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:201,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - fw_payload
    - error
    argTypes:
    - FuUefiDbxSnapdNotifier*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: fu_uefi_dbx_snapd_notifier_dbx_update_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_simple_req
    - strlen
    - g_prefix_error
    - g_strdup_printf
    - g_base64_encode
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_snapd_notifier_dbx_update_prepare(FuUefiDbxSnapdNotifier
      *self,\n\t\t\t\t\t      GBytes *fw_payload,\n\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_dbx_snapd_notifier_simple_req
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:226,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:229,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxSnapdNotifier*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 236
    functionName: fu_uefi_dbx_snapd_notifier_dbx_update_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_simple_req
    - g_prefix_error
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_snapd_notifier_dbx_update_cleanup(FuUefiDbxSnapdNotifier
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:35,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:37,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:39,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:40,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:41,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:43,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:44,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:47,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:51,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:54,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:55,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: fu_efi_image_func
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_test_skip
    - g_assert_cmpstr
    - g_file_new_for_path
    - g_file_query_exists
    - g_prefix_error
    - g_test_build_filename
    - g_assert_true
    - g_strdup_printf
    - fu_firmware_parse_file
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_pefile_firmware_new
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_efi_image_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_duphandle
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:82,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:85,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:90,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:92,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:94,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:94,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:95,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - fixture
    - endpoint
    - data
    - len
    argTypes:
    - FuTestFixture*
    - gchar*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: fu_self_test_mock_snapd_easy_post_request
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_debug
    - curl_easy_cleanup
    - g_strdup_printf
    - curl_easy_duphandle
    - curl_easy_getinfo
    - curl_easy_strerror
    - curl_easy_perform
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_self_test_mock_snapd_easy_post_request(FuTestFixture *fixture,\n\t\t\t\t\t
      \ const gchar *endpoint,\n\t\t\t\t\t  const gchar *data,\n\t\t\t\t\t  gsize
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: fu_self_test_curl_write_callback
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: size_t
    signature: size_t fu_self_test_curl_write_callback(char *ptr, size_t size, size_t
      nmemb, void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_duphandle
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:115,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:115,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:119,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:120,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:121,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:122,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:123,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:123,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:124,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:125,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:127,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:128,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:130,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - fixture
    - endpoint
    argTypes:
    - FuTestFixture*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: fu_self_test_mock_snapd_easy_get_request
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_strerror
    - g_debug
    - curl_easy_cleanup
    - g_strdup_printf
    - g_assert_true
    - curl_easy_duphandle
    - g_autoptr
    - g_bytes_new
    - curl_easy_getinfo
    - g_byte_array_new
    - curl_easy_perform
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_self_test_mock_snapd_easy_get_request(FuTestFixture *fixture, const gchar
      *endpoint)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:146,1
    - Dst: g_key_file_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:147,1
    - Dst: fu_self_test_mock_snapd_easy_get_request
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:149,1
    - Dst: g_key_file_load_from_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:152,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:154,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:155,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:156,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:158,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:159,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:160,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:162,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:163,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - fixture
    - calls
    argTypes:
    - FuTestFixture*
    - FuTestSnapdCalls
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 165
    functionName: fu_self_test_mock_snapd_assert_calls
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_key_file_load_from_bytes
    - g_assert_cmpuint
    - g_key_file_new
    - fu_self_test_mock_snapd_easy_get_request
    - g_key_file_get_uint64
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_self_test_mock_snapd_assert_calls(FuTestFixture *fixture, FuTestSnapdCalls
      calls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_self_test_mock_snapd_easy_post_request
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FuTestFixture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: fu_self_test_mock_snapd_reset
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_self_test_mock_snapd_easy_post_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_self_test_mock_snapd_reset(FuTestFixture *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:176,1
    - Dst: fu_self_test_mock_snapd_easy_post_request
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:178,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fixture
    - scenario
    argTypes:
    - FuTestFixture*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: fu_self_test_mock_snapd_setup_scenario
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_self_test_mock_snapd_easy_post_request
    - g_strdup_printf
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_self_test_mock_snapd_setup_scenario(FuTestFixture *fixture,
      const gchar *scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:187,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:189,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:191,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:194,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:195,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:196,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:197,1
    - Dst: fu_self_test_mock_snapd_reset
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FuTestFixture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: fu_self_test_mock_snapd_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - fu_self_test_mock_snapd_reset
    - curl_easy_init
    - g_assert_nonnull
    - g_getenv
    - curl_slist_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_self_test_mock_snapd_init(FuTestFixture *fixture)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:210,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:212,1
    - Dst: fu_self_test_mock_snapd_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:215,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:219,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:221,1
    - Dst: fu_self_test_mock_snapd_setup_scenario
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:223,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:226,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:227,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:230,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 232
    functionName: fu_self_test_set_up
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_self_test_mock_snapd_setup_scenario
    - fu_context_add_flag
    - g_assert_true
    - g_assert_no_error
    - g_setenv
    - fu_self_test_mock_snapd_init
    - g_autoptr
    - fu_context_load_quirks
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_self_test_set_up(FuTestFixture *fixture, gconstpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_unsetenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:239,1
    - Dst: fu_self_test_mock_snapd_reset
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:242,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:245,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:248,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: fu_self_test_tear_down
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - curl_easy_cleanup
    - fu_self_test_mock_snapd_reset
    - curl_slist_free_all
    - g_unsetenv
    linkageType: ''
    returnType: void
    signature: void fu_self_test_tear_down(FuTestFixture *fixture, gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:263,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:265,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:268,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - efivars
    - guid
    - name
    - path
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: fu_test_mock_efivar_content
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_set_data_bytes
    - g_bytes_new_take
    - g_file_get_contents
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_test_mock_efivar_content(FuEfivars *efivars,\n\t\t\t    const
      gchar *guid,\n\t\t\t    const gchar *name,\n\t\t\t    const gchar *path,\n\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:277,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:281,1
    - Dst: fu_test_mock_efivar_content
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:285,1
    - Dst: fu_test_mock_efivar_content
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 297
    functionName: fu_test_mock_dbx_efivars
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_mock_efivar_content
    - g_test_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_mock_dbx_efivars(FuEfivars *efivars, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:306,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:308,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:311,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:312,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:314,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: fu_test_mock_dbx_update_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_bytes_new_take
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_new_from_bytes
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_test_mock_dbx_update_firmware(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:328,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:329,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:329,1
    - Dst: fu_uefi_dbx_plugin_get_type
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:330,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:334,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:335,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:336,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:337,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:340,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:344,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:345,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:346,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:349,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:351,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:351,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:352,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:353,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:354,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:356,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:357,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:357,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:358,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:358,1
    - Dst: fu_plugin_runner_device_created
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:359,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:360,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:361,1
    - Dst: fu_test_mock_dbx_update_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:363,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:365,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:367,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:371,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:372,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:373,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:373,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:374,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:377,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:377,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:378,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:379,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:380,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 390
    functionName: fu_uefi_dbx_test_plugin_update
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_uefi_device_set_guid
    - g_assert_true
    - g_object_new
    - fu_device_has_flag
    - fu_test_mock_dbx_efivars
    - fu_self_test_mock_snapd_assert_calls
    - fu_plugin_new_from_gtype
    - fu_progress_get_child
    - fu_plugin_runner_write_firmware
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_plugin_runner_startup
    - fu_plugin_runner_device_created
    - fu_progress_step_done
    - fu_uefi_device_set_name
    - g_error_matches
    - g_autoptr
    - fu_device_cleanup
    - fu_uefi_dbx_plugin_get_type
    - fu_progress_new
    - g_assert_no_error
    - FU_DEVICE
    - fu_context_get_efivars
    - FU_UEFI_DEVICE
    - fu_test_mock_dbx_update_firmware
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_update(FuTestFixture *fixture, gconstpointer
      user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:403,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:404,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:405,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:406,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:406,1
    - Dst: fu_uefi_dbx_plugin_get_type
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:407,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:410,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:415,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:419,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:420,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:421,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:424,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:426,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:427,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:428,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:430,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:431,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:431,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:432,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:432,1
    - Dst: fu_plugin_runner_device_created
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:433,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:434,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:435,1
    - Dst: fu_test_mock_dbx_update_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:437,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:439,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:445,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:446,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:447,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:449,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:450,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:454,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:455,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:456,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:458,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:459,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 468
    functionName: fu_uefi_dbx_test_plugin_failed_update
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_uefi_device_set_guid
    - g_str_equal
    - g_assert_true
    - g_object_new
    - fu_test_mock_dbx_efivars
    - fu_self_test_mock_snapd_assert_calls
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_write_firmware
    - fu_plugin_runner_startup
    - fu_plugin_runner_device_created
    - fu_uefi_device_set_name
    - g_error_matches
    - g_clear_error
    - g_autoptr
    - g_assert_error
    - fu_device_cleanup
    - fu_uefi_dbx_plugin_get_type
    - fu_progress_new
    - g_assert_no_error
    - FU_DEVICE
    - fu_context_get_efivars
    - FU_UEFI_DEVICE
    - fu_test_mock_dbx_update_firmware
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_failed_update(FuTestFixture *fixture,
      gconstpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:478,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:479,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:479,1
    - Dst: fu_uefi_dbx_plugin_get_type
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:480,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:484,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:488,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:489,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:490,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:493,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:495,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:496,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:497,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:499,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:500,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:500,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:501,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:501,1
    - Dst: fu_plugin_runner_device_created
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:502,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:503,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:504,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:506,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:508,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:510,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:512,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 520
    functionName: fu_uefi_dbx_test_plugin_coldplug_probed_device
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_uefi_device_set_guid
    - g_str_equal
    - g_assert_true
    - g_object_new
    - fu_test_mock_dbx_efivars
    - fu_self_test_mock_snapd_assert_calls
    - fu_plugin_new_from_gtype
    - g_assert_false
    - fu_plugin_runner_startup
    - fu_plugin_runner_device_created
    - fu_uefi_device_set_name
    - g_error_matches
    - fu_device_has_inhibit
    - g_autoptr
    - fu_uefi_dbx_plugin_get_type
    - fu_progress_new
    - g_assert_no_error
    - FU_DEVICE
    - fu_context_get_efivars
    - FU_UEFI_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_coldplug_probed_device(FuTestFixture *fixture,
      gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:528,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:528,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:529,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:530,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:530,1
    - Dst: fu_uefi_dbx_plugin_get_type
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:530,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:533,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:537,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:540,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:541,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:543,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:544,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:545,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 522
    functionDepth: 6
    functionLinenumber: 522
    functionLinenumberEnd: 553
    functionName: fu_uefi_dbx_test_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_new_from_gtype
    - g_test_skip
    - fu_progress_new
    - g_assert_true
    - g_assert_no_error
    - g_autoptr
    - fu_plugin_runner_startup
    - fu_context_load_quirks
    - fu_uefi_dbx_plugin_get_type
    - fu_self_test_mock_snapd_assert_calls
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_startup(FuTestFixture *fixture, gconstpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:631,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:632,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:635,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:636,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:638,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:640,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:641,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:642,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:643,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:644,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:647,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:649,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:655,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:662,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:668,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:674,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:680,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:686,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:692,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:698,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:705,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:712,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:718,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:725,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:731,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:738,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:744,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:750,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:756,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:763,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:769,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:776,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:782,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 790
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_add
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:32,1
    - Dst: uname
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:33,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:35,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 41
    functionName: fu_uefi_dbx_get_efi_arch
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - memset
    - g_strcmp0
    - uname
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_dbx_get_efi_arch(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:46,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:47,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:47,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:48,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: fu_uefi_dbx_get_authenticode_hash
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_file_new_for_path
    - fu_pefile_firmware_new
    - g_autoptr
    - fu_firmware_parse_file
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_dbx_get_authenticode_hash(const gchar *fn, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:62,1
    - Dst: fu_uefi_dbx_get_authenticode_hash
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:65,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:67,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:72,1
    - Dst: fu_firmware_get_image_by_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:73,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - siglist
    - fn
    - flags
    - error
    argTypes:
    - FuContext*
    - FuEfiSignatureList*
    - gchar*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 86
    functionName: fu_uefi_dbx_signature_list_validate_filename
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - FU_FIRMWARE
    - fu_uefi_dbx_get_authenticode_hash
    - g_autoptr
    - fu_firmware_get_image_by_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_signature_list_validate_filename(FuContext *ctx,\n\t\t\t\t\t
      \    FuEfiSignatureList *siglist,\n\t\t\t\t\t     const gchar *fn,\n\t\t\t\t\t
      \    FuFirmwareParseFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:95,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:97,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:103,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:105,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:109,1
    - Dst: fu_uefi_dbx_signature_list_validate_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:110,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - siglist
    - flags
    - error
    argTypes:
    - FuContext*
    - FuEfiSignatureList*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 119
    functionName: fu_uefi_dbx_signature_list_validate
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_error_matches
    - fu_firmware_get_filename
    - fu_uefi_dbx_signature_list_validate_filename
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - fu_context_get_esp_files
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_signature_list_validate(FuContext *ctx,\n\t\t\t\t
      \   FuEfiSignatureList *siglist,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_object
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obs
    argTypes:
    - FuUefiDbxDevice*
    - FuUefiDbxSnapdNotifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: fu_uefi_dbx_device_set_snapd_notifier
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - g_set_object
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_set_snapd_notifier(FuUefiDbxDevice *self, FuUefiDbxSnapdNotifier
      *obs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_dbx_snapd_notifier_dbx_update_prepare
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuUefiDbxDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: fu_uefi_dbx_device_maybe_notify_snapd_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_dbx_update_prepare
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_maybe_notify_snapd_prepare(FuUefiDbxDevice
      *self, GBytes *data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_dbx_snapd_notifier_dbx_update_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: fu_uefi_dbx_device_maybe_notify_snapd_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_dbx_update_cleanup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_maybe_notify_snapd_cleanup(FuUefiDbxDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:53,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:56,1
    - Dst: fu_uefi_dbx_device_maybe_notify_snapd_prepare
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:60,1
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:60,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:64,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:65,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - install_flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: fu_uefi_dbx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_uefi_device_set_efivar_bytes
    - fu_uefi_dbx_device_maybe_notify_snapd_prepare
    - g_autoptr
    - FU_UEFI_DBX_DEVICE
    - FU_UEFI_DEVICE
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      install_flags,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:86,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:89,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:90,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:99,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:100,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:102,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuUefiDbxDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 108
    functionName: fu_uefi_dbx_device_set_checksum
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version
    - fu_device_set_summary
    - g_strdup_printf
    - FU_DEVICE
    - fu_device_add_instance_strup
    - g_strndup
    - fu_device_build_instance_id_full
    - fu_device_add_checksum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_set_checksum(FuUefiDbxDevice *self, const
      gchar *csum, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:114,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:115,1
    - Dst: fu_uefi_device_get_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:119,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:119,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:126,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:130,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:132,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:134,1
    - Dst: fu_uefi_dbx_device_set_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 143
    functionName: fu_uefi_dbx_device_ensure_checksum
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - fu_efi_signature_list_new
    - fu_uefi_device_get_efivar_bytes
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_uefi_dbx_device_set_checksum
    - FU_UEFI_DEVICE
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_ensure_checksum(FuUefiDbxDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:148,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:149,1
    - Dst: fu_uefi_dbx_device_ensure_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 7
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: fu_uefi_dbx_device_reload
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_uefi_dbx_device_ensure_checksum
    - fu_device_add_private_flag
    - FU_UEFI_DBX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_reload(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:156,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: fu_uefi_dbx_device_version_notify_cb
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_lowest
    - fu_device_get_version
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_version_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:167,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:168,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:168,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:172,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:178,1
    - Dst: fu_uefi_dbx_signature_list_validate
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:179,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:183,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 159
    functionDepth: 8
    functionLinenumber: 159
    functionLinenumberEnd: 194
    functionName: fu_uefi_dbx_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_list_new
    - g_steal_pointer
    - g_prefix_error
    - fu_firmware_parse_stream
    - fu_device_get_context
    - g_autoptr
    - fu_firmware_new
    - fu_uefi_dbx_signature_list_validate
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_uefi_dbx_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:201,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:202,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:205,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:210,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:213,1
    - Dst: fu_uefi_dbx_get_efi_arch
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:213,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:215,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:217,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:220,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:220,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:223,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:224,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:230,1
    - Dst: fu_uefi_dbx_device_ensure_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 233
    functionName: fu_uefi_dbx_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - fu_progress_new
    - fu_uefi_dbx_get_efi_arch
    - g_prefix_error
    - FU_FIRMWARE
    - fu_device_build_instance_id
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_uefi_dbx_device_ensure_checksum
    - fu_device_add_instance_strup
    - g_autoptr
    - FU_UEFI_DBX_DEVICE
    - fu_device_build_instance_id_full
    - fu_device_read_firmware
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:241,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:242,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: fu_uefi_dbx_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_dbx_device_maybe_notify_snapd_cleanup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:252,1
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: fu_uefi_dbx_device_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DBX_DEVICE
    - fu_uefi_dbx_device_maybe_notify_snapd_cleanup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_dbx_device_cleanup(FuDevice *self,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:261,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:262,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:263,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:264,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:265,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:266,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:267,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:267,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:268,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:269,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:270,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:270,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:271,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:272,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:273,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:274,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:275,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:276,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:277,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:278,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:279,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:280,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:281,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:281,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: fu_uefi_dbx_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - FWUPD_DEVICE
    - fu_device_set_summary
    - fu_device_set_required_free
    - fu_device_add_protocol
    - G_CALLBACK
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_add_icon
    - fu_device_set_install_duration
    - g_signal_connect
    - fu_device_set_physical_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_init(FuUefiDbxDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:290,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:293,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: fu_uefi_dbx_device_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_UEFI_DBX_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:301,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: fu_uefi_dbx_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_class_init(FuUefiDbxDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - log_domain
    - log_level
    - message
    - user_data
    argTypes:
    - gchar*
    - GLogLevelFlags
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: fu_util_ignore_cb
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fu_util_ignore_cb(const gchar *log_domain,\n\t\t  GLogLevelFlags
      log_level,\n\t\t  const gchar *message,\n\t\t  gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:34,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:34,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:35,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:42,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: fu_dbxtool_get_siglist_system
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - fu_efi_signature_list_new
    - g_steal_pointer
    - fu_efivars_get_data_bytes
    - fu_context_get_efivars
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_dbxtool_get_siglist_system(FuContext *ctx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:51,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:51,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:52,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:53,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: fu_dbxtool_get_siglist_local
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - fu_efi_signature_list_new
    - g_steal_pointer
    - g_file_new_for_path
    - g_autoptr
    - fu_firmware_parse_file
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_dbxtool_get_siglist_local(const gchar *filename, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:61,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:61,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:65,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:66,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:66,1
    - Dst: fu_firmware_get_image_by_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - outer
    - inner
    argTypes:
    - FuFirmware*
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: fu_dbxtool_siglist_inclusive
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - fu_firmware_get_image_by_checksum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbxtool_siglist_inclusive(FuFirmware *outer, FuFirmware
      *inner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:83,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: fu_dbxtool_guid_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dbxtool_guid_to_string(const gchar *guid)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:99,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:100,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:110,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:118,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:126,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:134,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:142,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:144,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:151,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:153,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:160,1
    - Dst: setlocale
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:164,1
    - Dst: bindtextdomain
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:166,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:167,1
    - Dst: textdomain
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:168,1
    - Dst: g_option_context_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:171,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:172,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:175,1
    - Dst: g_set_application_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:178,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:178,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:179,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:180,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:182,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:182,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:188,1
    - Dst: g_log_set_handler
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:190,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:201,1
    - Dst: fu_dbxtool_get_siglist_local
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:203,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:205,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:207,1
    - Dst: fu_dbxtool_get_siglist_system
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:212,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:214,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:216,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:223,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:223,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:223,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:226,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:226,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:228,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:231,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:231,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:232,1
    - Dst: fu_dbxtool_guid_to_string
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:234,1
    - Dst: fu_efi_signature_get_owner
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:234,1
    - Dst: fu_efi_signature_kind_to_string
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:235,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:235,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:238,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:238,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:238,1
    - Dst: getuid
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:244,1
    - Dst: geteuid
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:244,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:246,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:246,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:254,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:255,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:259,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:259,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:264,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:264,1
    - Dst: fu_dbxtool_get_siglist_system
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:265,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:268,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:268,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:273,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:273,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:274,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:277,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:277,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:280,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:286,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:286,1
    - Dst: fu_dbxtool_siglist_inclusive
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:291,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:292,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:294,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:301,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:301,1
    - Dst: fu_uefi_dbx_signature_list_validate
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:302,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:303,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:306,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:309,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:316,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:316,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:317,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:328,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:328,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:333,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:333,1
    - Dst: g_option_context_get_help
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:338,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:340,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:340,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 102
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 342
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 4
    functionsReached:
    - fu_efi_signature_list_new
    - g_set_application_name
    - getuid
    - g_option_context_set_description
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_print
    - setlocale
    - fu_efi_signature_get_owner
    - fu_efivars_set_data_bytes
    - fu_context_new
    - fu_firmware_get_checksum
    - g_option_context_new
    - textdomain
    - fu_dbxtool_siglist_inclusive
    - fu_dbxtool_get_siglist_local
    - fu_dbxtool_get_siglist_system
    - g_ptr_array_index
    - fu_efi_signature_get_kind
    - N_
    - g_info
    - fu_dbxtool_guid_to_string
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_kind_to_string
    - fu_context_set_esp_location
    - g_autoptr
    - g_option_context_add_main_entries
    - g_setenv
    - fu_firmware_parse_bytes
    - fu_uefi_dbx_signature_list_validate
    - g_option_context_parse
    - bind_textdomain_codeset
    - bindtextdomain
    - geteuid
    - fu_firmware_get_version
    - g_printerr
    - _
    - fu_context_get_efivars
    - fu_bytes_get_contents
    - g_option_context_get_help
    - g_log_set_handler
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:25,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:28,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:28,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:29,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:29,1
    - Dst: fu_uefi_dbx_device_set_snapd_notifier
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:36,1
    - Dst: FU_UEFI_DBX_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:36,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: fu_uefi_dbx_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_plugin_get_context
    - fu_uefi_dbx_device_set_snapd_notifier
    - FU_UEFI_DBX_PLUGIN
    - FU_DEVICE
    - FU_UEFI_DBX_DEVICE
    - fu_context_has_hwid_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_plugin_device_created(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbxPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: fu_uefi_dbx_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_plugin_init(FuUefiDbxPlugin *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DBX_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:58,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:60,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: fu_uefi_dbx_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DBX_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_plugin_finalize(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:70,1
    - Dst: fu_uefi_dbx_snapd_notifier_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:70,1
    - Dst: fu_uefi_dbx_snapd_notifier_dbx_manager_startup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:72,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: fu_uefi_dbx_plugin_snapd_notify_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_snapd_notifier_new
    - fu_uefi_dbx_snapd_notifier_dbx_manager_startup
    - g_set_object
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_plugin_snapd_notify_init(FuUefiDbxPlugin *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:84,1
    - Dst: FU_UEFI_DBX_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:85,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:86,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:88,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:89,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:90,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:91,1
    - Dst: fu_snap_is_in_snap
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:95,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:96,1
    - Dst: fu_uefi_dbx_plugin_snapd_notify_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:97,1
    - Dst: FU_UEFI_DBX_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:97,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:102,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:104,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:106,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:112,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:112,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:114,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:115,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:116,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: fu_uefi_dbx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - g_info
    - g_error_matches
    - fu_uefi_dbx_plugin_snapd_notify_init
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - FU_UEFI_DBX_PLUGIN
    - fu_snap_is_in_snap
    - fu_plugin_add_flag
    - g_autoptr
    - fu_context_get_default_esp
    - fu_context_has_flag
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:124,1
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: fu_uefi_dbx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_plugin_class_init(FuUefiDbxPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdPmcPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: fu_amd_pmc_plugin_init
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_pmc_plugin_init(FuAmdPmcPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c:31,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_amd_pmc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_amd_pmc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdPmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_amd_pmc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_pmc_plugin_class_init(FuAmdPmcPluginClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:27,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:30,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:30,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:36,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:42,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:42,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:46,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:46,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:52,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:56,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:58,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:59,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 62
    functionName: fu_amd_pmc_device_probe
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_get_backend_id
    - g_steal_pointer
    - g_error_matches
    - fu_device_set_summary
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_strtoull
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_pmc_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:67,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:68,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:69,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:70,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:71,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:72,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdPmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: fu_amd_pmc_device_init
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_physical_id
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_amd_pmc_device_init(FuAmdPmcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdPmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fu_amd_pmc_device_class_init
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_pmc_device_class_init(FuAmdPmcDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:26,1
    - Dst: fu_heci_device_read_file_ex
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:35,1
    - Dst: FU_HECI_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:35,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:40,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:41,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:42,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:43,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - file_id
    - section
    - error
    argTypes:
    - FuIntelMchiDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 54
    functionName: fu_intel_mchi_device_add_checksum_for_id
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - FU_HECI_DEVICE
    - fu_byte_array_to_string
    - FU_DEVICE
    - g_autoptr
    - fu_device_add_checksum
    - fu_heci_device_read_file_ex
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_mchi_device_add_checksum_for_id(FuIntelMchiDevice
      *self,\n\t\t\t\t\t guint32 file_id,\n\t\t\t\t\t guint32 section,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_MCHI_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:59,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:67,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:67,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:68,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:74,1
    - Dst: fu_intel_mchi_device_add_checksum_for_id
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:75,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:79,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:80,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:81,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:84,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 101
    functionName: fu_intel_mchi_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_mei_device_connect
    - g_error_matches
    - g_prefix_error
    - fu_intel_mchi_device_add_checksum_for_id
    - FU_MEI_DEVICE
    - g_set_error_literal
    - FU_INTEL_MCHI_DEVICE
    - g_autoptr
    - fu_device_get_checksums
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_mchi_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_MCHI_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:107,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:111,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:112,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:113,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:116,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:117,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:120,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:121,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: fu_intel_mchi_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fu_device_has_private_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - FU_INTEL_MCHI_DEVICE
    - g_autoptr
    - fu_device_security_attr_new
    - fu_device_get_checksums
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:132,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: fu_intel_mchi_device_version_notify_cb
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_device_version_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:139,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:140,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:141,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:142,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:143,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:144,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:145,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:146,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:147,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:147,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMchiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: fu_intel_mchi_device_init
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_logical_id
    - G_CALLBACK
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - FWUPD_DEVICE
    - g_signal_connect
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_device_init(FuIntelMchiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMchiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: fu_intel_mchi_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_device_class_init(FuIntelMchiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMchiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_intel_mchi_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_plugin_init(FuIntelMchiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_intel_mchi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMchiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_intel_mchi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_mchi_plugin_class_init(FuIntelMchiPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:23,1
    - Dst: FU_IS_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHapticFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_elantp_haptic_firmware_get_driver_ic
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_ELANTP_HAPTIC_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_elantp_haptic_firmware_get_driver_ic(FuElantpHapticFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:32,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: fu_elantp_haptic_firmware_export
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HAPTIC_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: "void fu_elantp_haptic_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      FuFirmwareExportFlags flags,\n\t\t\t\t XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_elantp_haptic_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: fu_elantp_haptic_firmware_validate
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elantp_haptic_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_haptic_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   gsize offset,\n\t\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:51,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:59,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:63,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:65,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:68,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:79,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:80,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: fu_elantp_haptic_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_version
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - FU_ELANTP_HAPTIC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_haptic_firmware_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHapticFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: fu_elantp_haptic_firmware_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_elantp_haptic_firmware_init(FuElantpHapticFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHapticFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: fu_elantp_haptic_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_haptic_firmware_class_init(FuElantpHapticFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:104,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: fu_elantp_haptic_firmware_new
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elantp_haptic_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:46,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: fu_elantp_i2c_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_ELANTP_I2C_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:58,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:63,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:66,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:69,1
    - Dst: strlen
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - fn
    - buf
    - error
    argTypes:
    - FuElantpI2cDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: fu_elantp_i2c_device_writeln
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - strlen
    - fu_io_channel_new_file
    - FU_DEVICE
    - g_autoptr
    - fu_io_channel_write_raw
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_writeln(FuElantpI2cDevice *self,\n\t\t\t
      \    const gchar *fn,\n\t\t\t     const gchar *buf,\n\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:80,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:84,1
    - Dst: fu_elantp_i2c_device_writeln
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:91,1
    - Dst: fu_elantp_i2c_device_writeln
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpI2cDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: fu_elantp_i2c_device_rebind_driver
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_elantp_i2c_device_writeln
    - g_debug
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_rebind_driver(FuElantpI2cDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:103,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:106,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:106,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:107,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:111,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:111,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:114,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:114,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:115,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:121,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:122,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:122,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:124,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:124,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:124,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:127,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: fu_elantp_i2c_device_probe
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_set_physical_id
    - fu_udev_device_get_subsystem
    - g_build_filename
    - g_path_get_basename
    - fu_udev_device_get_device_file
    - fu_udev_device_get_driver
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - g_strcmp0
    - FU_ELANTP_I2C_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:138,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:139,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:139,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:143,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:143,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - self
    - tx
    - txsz
    - rx
    - rxsz
    - error
    argTypes:
    - FuElantpI2cDevice*
    - guint8*
    - gssize
    - guint8*
    - gssize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: fu_elantp_i2c_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_raw
    - fu_udev_device_pread
    - fu_udev_device_pwrite
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_send_cmd(FuElantpI2cDevice *self,\n\t\t\t
      \     guint8 *tx,\n\t\t\t      gssize txsz,\n\t\t\t      guint8 *rx,\n\t\t\t
      \     gssize rxsz,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:153,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:154,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - reg
    - cmd
    - error
    argTypes:
    - FuElantpI2cDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: fu_elantp_i2c_device_write_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_elantp_i2c_device_send_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_write_cmd(FuElantpI2cDevice *self, guint16
      reg, guint16 cmd, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:166,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - reg
    - rx
    - rxsz
    - error
    argTypes:
    - FuElantpI2cDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: fu_elantp_i2c_device_read_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_elantp_i2c_device_send_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_read_cmd(FuElantpI2cDevice *self,\n\t\t\t
      \     guint16 reg,\n\t\t\t      guint8 *rx,\n\t\t\t      gsize rxsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:174,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:175,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:178,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:183,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpI2cDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 188
    functionName: fu_elantp_i2c_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_elantp_i2c_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_ensure_iap_ctrl(FuElantpI2cDevice *self,
      GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:193,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:204,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:209,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:212,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:214,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:216,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:219,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:220,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:221,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:225,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:226,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:229,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:234,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:235,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:238,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:242,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:245,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:251,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:257,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:265,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:266,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:269,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:270,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:273,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:282,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:283,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:284,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:285,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:289,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:294,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:297,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:300,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:305,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:308,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:316,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:317,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:323,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:330,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:331,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:333,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:334,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:347,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:354,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:357,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 190
    functionDepth: 7
    functionLinenumber: 190
    functionLinenumberEnd: 362
    functionName: fu_elantp_i2c_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - g_prefix_error
    - fu_device_add_instance_u8
    - FU_ELANTP_I2C_DEVICE
    - fu_device_build_vendor_id_u16
    - fu_device_build_instance_id
    - fu_device_set_version_bootloader
    - fu_device_has_private_flag
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_add_instance_str
    - fu_device_set_version_raw
    - fu_device_build_instance_id_full
    - fu_version_from_uint16
    - fu_elantp_i2c_device_read_cmd
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:367,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:371,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:375,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:375,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:379,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: fu_elantp_i2c_device_open
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    - FU_UDEV_DEVICE
    - fu_udev_device_pwrite
    - FU_ELANTP_I2C_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:391,1
    - Dst: fu_elantp_firmware_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:391,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:394,1
    - Dst: fu_elantp_firmware_get_module_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:396,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:396,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:398,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 409
    functionName: fu_elantp_i2c_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_elantp_firmware_get_module_id
    - g_autoptr
    - FU_ELANTP_FIRMWARE
    - fu_elantp_firmware_new
    - FU_ELANTP_I2C_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_elantp_i2c_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:418,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:425,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:426,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:429,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:430,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:431,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:432,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:433,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:434,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:437,1
    - Dst: fu_elantp_i2c_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:442,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:444,1
    - Dst: fu_elantp_firmware_get_iap_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:447,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:449,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:449,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:452,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:456,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:460,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:463,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:467,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:467,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:467,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:472,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:475,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:476,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:478,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:482,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:482,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:484,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:486,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:490,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:493,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:503,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:503,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:505,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:507,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:510,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:516,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:532,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:535,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:537,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:538,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 411
    functionDepth: 7
    functionLinenumber: 411
    functionLinenumberEnd: 540
    functionName: fu_elantp_i2c_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_chunk_array_length
    - fu_memwrite_uint16
    - fu_elantp_i2c_device_read_cmd
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - fu_elantp_firmware_get_iap_addr
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_elantp_i2c_device_send_cmd
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_elantp_i2c_device_detach
    - fu_chunk_array_index
    - fu_bytes_new_offset
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - fu_sum16w
    - g_bytes_get_size
    - fu_memcpy_safe
    - g_malloc0
    - FU_ELANTP_FIRMWARE
    - FU_ELANTP_I2C_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:549,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:552,1
    - Dst: g_info
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:553,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:554,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:559,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:562,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:567,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:570,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:573,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:578,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:581,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:593,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:599,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:605,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:624,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:629,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:634,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:637,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:645,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:653,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:655,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:656,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:659,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 542
    functionDepth: 7
    functionLinenumber: 542
    functionLinenumberEnd: 668
    functionName: fu_elantp_i2c_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 1
    functionsReached:
    - fu_elantp_i2c_device_write_cmd
    - fu_memread_uint16_safe
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - g_prefix_error
    - fu_device_has_flag
    - g_set_error_literal
    - fu_elantp_i2c_device_read_cmd
    - g_info
    - FU_ELANTP_I2C_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:673,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:676,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:677,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:682,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:684,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:685,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:689,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:693,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:697,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:699,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:700,1
    - Dst: fu_elantp_i2c_device_rebind_driver
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:704,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:705,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:708,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:710,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:710,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:715,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:716,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 670
    functionDepth: 7
    functionLinenumber: 670
    functionLinenumberEnd: 723
    functionName: fu_elantp_i2c_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_i2c_device_write_cmd
    - g_debug
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - g_steal_pointer
    - g_error_matches
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_propagate_error
    - g_autoptr
    - fu_elantp_i2c_device_rebind_driver
    - FU_ELANTP_I2C_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:731,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:734,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:735,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:740,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:741,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:746,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:747,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 757
    functionName: fu_elantp_i2c_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    - FU_ELANTP_I2C_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \ const gchar *key,\n\t\t\t\t  const gchar *value,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:762,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:763,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:764,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:765,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:766,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:767,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 769
    functionName: fu_elantp_i2c_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:774,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: fu_elantp_i2c_device_convert_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_elantp_i2c_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:780,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:780,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:781,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:782,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:783,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:784,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:785,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:785,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:786,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:787,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:787,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:788,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:788,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpI2cDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 777
    functionDepth: 6
    functionLinenumber: 777
    functionLinenumberEnd: 790
    functionName: fu_elantp_i2c_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_init(FuElantpI2cDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:795,1
    - Dst: g_free
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:796,1
    - Dst: g_free
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:797,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 799
    functionName: fu_elantp_i2c_device_finalize
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FU_ELANTP_I2C_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:804,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpI2cDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 818
    functionName: fu_elantp_i2c_device_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_class_init(FuElantpI2cDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:34,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:34,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:36,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:39,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: fu_elantp_hid_haptic_device_get_parent
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HID_DEVICE
    - g_set_error_literal
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: FuElantpHidDevice
    signature: 'FuElantpHidDevice *

      fu_elantp_hid_haptic_device_get_parent(FuDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:53,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:54,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:55,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:56,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: fu_elantp_hid_haptic_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_haptic_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:71,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:71,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:81,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:83,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:83,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - self
    - tx
    - txsz
    - rx
    - rxsz
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 99
    functionName: fu_elantp_hid_haptic_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - g_malloc0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_send_cmd(FuDevice *self,\n\t\t\t\t
      \    const guint8 *tx,\n\t\t\t\t     gsize txsz,\n\t\t\t\t     guint8 *rx,\n\t\t\t\t
      \    gsize rxsz,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:109,1
    - Dst: fu_elantp_hid_haptic_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - reg
    - buf
    - bufz
    - error
    argTypes:
    - FuDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: fu_elantp_hid_haptic_device_read_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_elantp_hid_haptic_device_send_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_read_cmd(FuDevice *self,\n\t\t\t\t
      \    guint16 reg,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     gsize bufz,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:117,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:118,1
    - Dst: fu_elantp_hid_haptic_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - reg
    - cmd
    - error
    argTypes:
    - FuDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: fu_elantp_hid_haptic_device_write_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_elantp_hid_haptic_device_send_cmd
    linkageType: ''
    returnType: gint
    signature: gint fu_elantp_hid_haptic_device_write_cmd(FuDevice *self, guint16
      reg, guint16 cmd, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:128,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:133,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:136,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:141,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:143,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:148,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - parent
    - self
    - error
    argTypes:
    - FuDevice*
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 153
    functionName: fu_elantp_hid_haptic_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_ensure_iap_ctrl(FuDevice *parent,\n\t\t\t\t\t
      \   FuElantpHidHapticDevice *self,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:166,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - parent
    - self
    - error
    argTypes:
    - FuDevice*
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_memread_uint16
    - fu_elantp_hid_haptic_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl(FuDevice
      *parent,\n\t\t\t\t\t\t   FuElantpHidHapticDevice *self,\n\t\t\t\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:195,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:198,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:200,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - parent
    - self
    - error
    argTypes:
    - FuDevice*
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 219
    functionName: fu_elantp_hid_haptic_device_get_haptic_driver_ic
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error
    - fu_memread_uint16
    - fu_elantp_hid_haptic_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_get_haptic_driver_ic(FuDevice
      *parent,\n\t\t\t\t\t\t FuElantpHidHapticDevice *self,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:232,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:236,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:239,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:241,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:242,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:253,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:256,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:258,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:259,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:266,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:268,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - parent
    - self
    - error
    argTypes:
    - FuDevice*
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 273
    functionName: fu_elantp_hid_haptic_device_get_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - g_strdup_printf
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_get_version(FuDevice *parent,\n\t\t\t\t\tFuElantpHidHapticDevice
      *self,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:288,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:289,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:293,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:298,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - parent
    - tp_ic_type
    - tp_iap_ver
    - error
    argTypes:
    - FuDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 313
    functionName: fu_elantp_hid_haptic_device_write_fw_password
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_write_fw_password(FuDevice *parent,\n\t\t\t\t\t
      \     guint16 tp_ic_type,\n\t\t\t\t\t      guint16 tp_iap_ver,\n\t\t\t\t\t      GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:329,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:333,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:336,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:341,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:344,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:347,1
    - Dst: fu_elantp_hid_haptic_device_write_fw_password
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:354,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:359,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:363,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:366,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:370,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:373,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:377,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:380,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:385,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:388,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - parent
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 322
    functionDepth: 7
    functionLinenumber: 322
    functionLinenumberEnd: 401
    functionName: fu_elantp_hid_haptic_device_write_checksum_cb
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - fu_elantp_hid_haptic_device_write_fw_password
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_write_checksum_cb(FuDevice *parent,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:411,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:415,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:418,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:423,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:426,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - parent
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 403
    functionDepth: 6
    functionLinenumber: 403
    functionLinenumberEnd: 437
    functionName: fu_elantp_hid_haptic_device_wait_calc_checksum_cb
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_wait_calc_checksum_cb(FuDevice
      *parent,\n\t\t\t\t\t\t  gpointer user_data,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:443,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:445,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:450,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:456,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:463,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:468,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:473,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - parent
    - checksum
    - error
    argTypes:
    - FuDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 479
    functionName: fu_elantp_hid_haptic_device_get_checksum
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error
    - fu_elantp_hid_haptic_device_read_cmd
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - g_autoptr
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_get_checksum(FuDevice *parent,
      guint16 *checksum, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:485,1
    - Dst: fu_elantp_hid_haptic_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:492,1
    - Dst: fu_elantp_hid_haptic_device_get_haptic_driver_ic
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:496,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:496,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:497,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:502,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:507,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:510,1
    - Dst: fu_elantp_hid_haptic_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:513,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:513,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:516,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:517,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:520,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:525,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:528,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:531,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:532,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:532,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:532,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:533,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:533,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:533,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:534,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:535,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:536,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:552,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:555,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:557,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:557,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:562,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:565,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:570,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:571,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:577,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:578,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:579,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:590,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:598,1
    - Dst: fu_elantp_hid_haptic_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:601,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:601,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 481
    functionDepth: 7
    functionLinenumber: 481
    functionLinenumberEnd: 606
    functionName: fu_elantp_hid_haptic_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_elantp_hid_haptic_device_ensure_iap_ctrl
    - fu_device_set_firmware_size
    - fu_device_build_instance_id_full
    - fu_elantp_hid_haptic_device_get_version
    - g_set_error
    - fu_elantp_hid_haptic_device_get_parent
    - FU_UDEV_DEVICE
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_version_from_uint16
    - fu_memread_uint16
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_haptic_device_get_haptic_driver_ic
    - fu_device_set_version_bootloader
    - fu_elantp_hid_haptic_device_read_cmd
    - fu_device_get_vid
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:617,1
    - Dst: fu_elantp_haptic_firmware_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:617,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:620,1
    - Dst: fu_elantp_haptic_firmware_get_driver_ic
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:622,1
    - Dst: FU_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:622,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:624,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 635
    functionName: fu_elantp_hid_haptic_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_haptic_firmware_new
    - fu_elantp_haptic_firmware_get_driver_ic
    - fu_firmware_parse_stream
    - g_autoptr
    - FU_ELANTP_HAPTIC_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_elantp_hid_haptic_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t     GInputStream *stream,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    FuFirmwareParseFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:651,1
    - Dst: fu_elantp_hid_haptic_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:654,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:659,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:663,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:664,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:665,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:666,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:669,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:671,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:673,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:674,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:676,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:684,1
    - Dst: memset
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:688,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:689,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:690,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:700,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:703,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:703,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:703,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:704,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:707,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:708,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:710,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:714,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:714,1
    - Dst: fu_elantp_hid_haptic_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:719,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:727,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:731,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:731,1
    - Dst: fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:737,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:737,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:740,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:752,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 644
    functionDepth: 7
    functionLinenumber: 644
    functionLinenumberEnd: 757
    functionName: fu_elantp_hid_haptic_device_write_chunks_cb
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_sum16
    - fu_memwrite_uint16
    - fu_progress_set_steps
    - g_set_error
    - fu_elantp_hid_haptic_device_get_parent
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_elantp_hid_haptic_device_send_cmd
    - memset
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_haptic_device_write_cmd
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_memcpy_safe
    - g_malloc0
    - FU_DEVICE
    - fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_write_chunks_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:767,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:772,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:777,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:778,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:779,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:780,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:781,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:784,1
    - Dst: fu_elantp_hid_haptic_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:789,1
    - Dst: fu_elantp_hid_haptic_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:794,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:794,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:796,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:800,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:801,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:808,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:810,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:810,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:814,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:817,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:821,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:824,1
    - Dst: fu_elantp_hid_haptic_device_get_checksum
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:825,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:825,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:826,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:830,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:843,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:849,1
    - Dst: fu_elantp_hid_haptic_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:853,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:853,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:855,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:856,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:858,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:859,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:867,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:869,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:869,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:873,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:876,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 63
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 759
    functionDepth: 7
    functionLinenumber: 759
    functionLinenumberEnd: 879
    functionName: fu_elantp_hid_haptic_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    - fu_elantp_hid_haptic_device_get_version
    - g_set_error
    - fu_progress_get_child
    - fu_device_get_version
    - fu_elantp_hid_haptic_device_get_parent
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_elantp_hid_haptic_device_get_checksum
    - fu_progress_step_done
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_haptic_device_write_cmd
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_firmware_get_version
    - fu_elantp_hid_haptic_device_detach
    - FU_DEVICE
    - g_strcmp0
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:885,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:891,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:892,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:900,1
    - Dst: fu_elantp_hid_haptic_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:908,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:913,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:913,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:918,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:921,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:923,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:923,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:928,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:931,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:936,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:936,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:942,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:948,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:962,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:962,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:967,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:967,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:972,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:975,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:977,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:986,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:986,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:990,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:994,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:994,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:998,1
    - Dst: fu_elantp_hid_haptic_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1002,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1008,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1010,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 881
    functionDepth: 6
    functionLinenumber: 881
    functionLinenumberEnd: 1020
    functionName: fu_elantp_hid_haptic_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_elantp_hid_haptic_device_read_cmd
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - g_prefix_error
    - fu_elantp_hid_haptic_device_get_parent
    - fu_elantp_hid_haptic_device_write_cmd
    - fu_device_has_flag
    - FU_DEVICE
    - g_set_error_literal
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1026,1
    - Dst: fu_elantp_hid_haptic_device_get_parent
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1028,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1033,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1033,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1037,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1040,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1041,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1041,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1045,1
    - Dst: fu_elantp_hid_haptic_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1048,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1048,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1049,1
    - Dst: fu_elantp_hid_haptic_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1052,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1052,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1056,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1022
    functionDepth: 7
    functionLinenumber: 1022
    functionLinenumberEnd: 1063
    functionName: fu_elantp_hid_haptic_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - g_prefix_error
    - fu_elantp_hid_haptic_device_write_cmd
    - fu_elantp_hid_haptic_device_get_parent
    - fu_device_has_flag
    - FU_DEVICE
    - fu_elantp_hid_haptic_device_ensure_iap_ctrl
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1071,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1074,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1075,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1080,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1081,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1091
    functionName: fu_elantp_hid_haptic_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t\t
      const gchar *key,\n\t\t\t\t\t const gchar *value,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1096,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1097,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1098,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1099,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1100,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1102
    functionName: fu_elantp_hid_haptic_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_haptic_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1107,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1108,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1109,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1110,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1111,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1112,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1113,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1114,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHidHapticDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1104
    functionDepth: 6
    functionLinenumber: 1104
    functionLinenumberEnd: 1116
    functionName: fu_elantp_hid_haptic_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_priority
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_haptic_device_init(FuElantpHidHapticDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHidHapticDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1130
    functionName: fu_elantp_hid_haptic_device_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_haptic_device_class_init(FuElantpHidHapticDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1136,1
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: fu_elantp_hid_haptic_device_new
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuElantpHidHapticDevice
    signature: 'FuElantpHidHapticDevice *

      fu_elantp_hid_haptic_device_new(FuDevice *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:36,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_elantp_firmware_get_module_id
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ELANTP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_elantp_firmware_get_module_id(FuElantpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:43,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_elantp_firmware_get_ic_type
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ELANTP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_elantp_firmware_get_ic_type(FuElantpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:50,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_elantp_firmware_get_iap_addr
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ELANTP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_elantp_firmware_get_iap_addr(FuElantpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:57,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fu_elantp_firmware_get_forcetable_support
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ELANTP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_firmware_get_forcetable_support(FuElantpFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:64,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: fu_elantp_firmware_get_forcetable_addr
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ELANTP_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_elantp_firmware_get_forcetable_addr(FuElantpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:71,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:72,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_elantp_firmware_export
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_elantp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:82,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:88,1
    - Dst: fu_struct_elantp_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:94,1
    - Dst: fu_struct_elantp_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 109
    functionName: fu_elantp_firmware_validate
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_FIRMWARE
    - fu_input_stream_size
    - g_set_error_literal
    - fu_struct_elantp_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    gsize offset,\n\t\t\t    GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:121,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:131,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:148,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:155,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:161,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:167,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:178,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:183,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:187,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:192,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 204
    functionName: fu_elantp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - g_debug
    - g_autoptr
    - FU_ELANTP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:209,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:213,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: fu_elantp_firmware_build
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_FIRMWARE
    - xb_node_query_text_as_uint
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:228,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:229,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:232,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:245,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:246,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:253,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:260,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:267,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 270
    functionName: fu_elantp_firmware_write
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_memwrite_uint16_safe
    - g_autoptr
    - FU_ELANTP_FIRMWARE
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elantp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: fu_elantp_firmware_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_elantp_firmware_init(FuElantpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: fu_elantp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_firmware_class_init(FuElantpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:291,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: fu_elantp_firmware_new
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elantp_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:20,1
    - Dst: fu_elantp_firmware_new
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:21,1
    - Dst: fu_elantp_firmware_new
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:28,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:31,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:34,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:38,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:41,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_elantp_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/elantp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_elantp_firmware_new
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_elantp_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:49,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:50,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:53,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/plugins/elantp/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_specialized_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:23,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:24,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:24,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:25,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: fu_elantp_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_specialized_gtype
    - fu_plugin_get_context
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_context_has_hwid_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_plugin_device_created(FuPlugin *plugin, FuDevice
      *dev, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: fu_elantp_plugin_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_elantp_plugin_init(FuElantpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:40,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:41,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:42,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:43,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:44,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:45,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:46,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:47,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:48,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:49,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: fu_elantp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_elantp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: fu_elantp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_plugin_class_init(FuElantpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fu_elantp_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_ELANTP_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:49,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:52,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:52,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:52,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:53,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:57,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:57,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: fu_elantp_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_udev_device_get_subsystem
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:85,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:85,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:95,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:97,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:97,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - self
    - tx
    - txsz
    - rx
    - rxsz
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 113
    functionName: fu_elantp_hid_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - g_malloc0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_send_cmd(FuElantpHidDevice *self,\n\t\t\t
      \     guint8 *tx,\n\t\t\t      gsize txsz,\n\t\t\t      guint8 *rx,\n\t\t\t
      \     gsize rxsz,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:123,1
    - Dst: fu_elantp_hid_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - reg
    - rx
    - rxsz
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: fu_elantp_hid_device_read_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_send_cmd
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_read_cmd(FuElantpHidDevice *self,\n\t\t\t
      \     guint16 reg,\n\t\t\t      guint8 *rx,\n\t\t\t      gsize rxsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:131,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:132,1
    - Dst: fu_elantp_hid_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - reg
    - cmd
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: fu_elantp_hid_device_write_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_send_cmd
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gint
    signature: gint fu_elantp_hid_device_write_cmd(FuElantpHidDevice *self, guint16
      reg, guint16 cmd, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:141,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:144,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:149,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:151,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:156,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: fu_elantp_hid_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_elantp_hid_device_read_cmd
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_ensure_iap_ctrl(FuElantpHidDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:169,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:174,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:177,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: fu_elantp_hid_device_read_force_table_enable
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_elantp_hid_device_read_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_read_force_table_enable(FuElantpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:202,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:207,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:212,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 197
    functionDepth: 6
    functionLinenumber: 197
    functionLinenumberEnd: 227
    functionName: fu_elantp_hid_device_read_haptic_enable
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_elantp_hid_device_read_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_read_haptic_enable(FuElantpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:239,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:240,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:243,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 257
    functionName: fu_elantp_hid_device_get_forcetable_address
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_elantp_hid_device_read_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_get_forcetable_address(FuElantpHidDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:272,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:273,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:278,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - ic_type
    - iap_ver
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 293
    functionName: fu_elantp_hid_device_write_fw_password
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_elantp_hid_device_write_cmd
    - g_prefix_error
    - fu_elantp_hid_device_read_cmd
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_write_fw_password(FuElantpHidDevice
      *self,\n\t\t\t\t       guint16 ic_type,\n\t\t\t\t       guint16 iap_ver,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:304,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:307,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:308,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:311,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:315,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:316,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:319,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:322,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:325,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:331,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:337,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:339,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:340,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:343,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:344,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:347,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:350,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:350,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:351,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:351,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:352,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:353,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:362,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:365,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:367,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:372,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:375,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:381,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:382,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:388,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:389,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:394,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:403,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:406,1
    - Dst: fu_elantp_hid_device_read_force_table_enable
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:412,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:413,1
    - Dst: fu_elantp_hid_device_get_forcetable_address
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:415,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:416,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:421,1
    - Dst: fu_elantp_hid_device_read_haptic_enable
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:425,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:428,1
    - Dst: fu_elantp_hid_haptic_device_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:428,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:429,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:433,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:433,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:434,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 88
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 295
    functionDepth: 7
    functionLinenumber: 295
    functionLinenumberEnd: 438
    functionName: fu_elantp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_elantp_hid_device_ensure_iap_ctrl
    - g_prefix_error
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_get_forcetable_address
    - fu_elantp_hid_device_read_haptic_enable
    - fu_device_set_firmware_size
    - fu_device_build_instance_id_full
    - g_set_error
    - g_debug
    - fu_elantp_hid_haptic_device_new
    - fu_device_get_name
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_version_from_uint16
    - fu_memread_uint16
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_device_set_version_raw
    - g_str_has_prefix
    - fu_device_get_vid
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_set_name
    - fu_elantp_hid_device_read_force_table_enable
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:451,1
    - Dst: fu_elantp_firmware_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:451,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:454,1
    - Dst: fu_elantp_firmware_get_module_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:456,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:456,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:458,1
    - Dst: fu_elantp_firmware_get_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:466,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:466,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:468,1
    - Dst: fu_elantp_firmware_get_forcetable_support
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:477,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:477,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:479,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:489,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:489,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:491,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:502,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 515
    functionName: fu_elantp_hid_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_elantp_firmware_get_forcetable_addr
    - g_steal_pointer
    - FU_ELANTP_HID_DEVICE
    - fu_firmware_parse_stream
    - fu_elantp_firmware_get_module_id
    - fu_elantp_firmware_get_forcetable_support
    - g_autoptr
    - FU_ELANTP_FIRMWARE
    - fu_elantp_firmware_new
    - fu_elantp_firmware_get_ic_type
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_elantp_hid_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:524,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:535,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:544,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:554,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:555,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:565,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:567,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - device
    - fw_data
    - fw_size
    - force_table_addr
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 581
    functionName: fu_elantp_hid_device_filling_forcetable_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_sum16w
    - FU_ELANTP_HID_DEVICE
    - fu_memcpy_safe
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_filling_forcetable_firmware(FuDevice
      *device,\n\t\t\t\t\t\t guint8 *fw_data,\n\t\t\t\t\t\t gsize fw_size,\n\t\t\t\t\t\t
      guint32 force_table_addr,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:590,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:598,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:599,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:603,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:604,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:605,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:606,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:607,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:608,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:611,1
    - Dst: fu_elantp_hid_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:616,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:616,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:618,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:621,1
    - Dst: fu_elantp_firmware_get_iap_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:622,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:626,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:626,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:627,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:628,1
    - Dst: fu_elantp_hid_device_filling_forcetable_firmware
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:638,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:642,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:642,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:644,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:650,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:657,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:665,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:673,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:675,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:675,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:675,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:677,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:681,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:684,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:685,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:687,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:690,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:690,1
    - Dst: fu_elantp_hid_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:691,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:693,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:697,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:700,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:710,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:710,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:714,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:717,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:723,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:731,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:739,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:742,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:744,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:745,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 583
    functionDepth: 7
    functionLinenumber: 583
    functionLinenumberEnd: 747
    functionName: fu_elantp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_firmware_get_forcetable_addr
    - fu_elantp_hid_device_ensure_iap_ctrl
    - fu_memread_uint16_safe
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_detach
    - fu_memwrite_uint16
    - fu_elantp_hid_device_filling_forcetable_firmware
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - FU_ELANTP_FIRMWARE
    - fu_elantp_firmware_get_iap_addr
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_elantp_hid_device_send_cmd
    - fu_progress_step_done
    - fu_device_sleep_full
    - g_autoptr
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - fu_sum16w
    - fu_memcpy_safe
    - g_malloc0
    - fu_chunk_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:752,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:759,1
    - Dst: g_info
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:760,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:761,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:766,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:770,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:775,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:778,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:780,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:785,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:788,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:794,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:800,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:806,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:820,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:825,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:830,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:833,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:835,1
    - Dst: fu_elantp_hid_device_write_fw_password
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:843,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:845,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:847,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:847,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:848,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:851,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 749
    functionDepth: 7
    functionLinenumber: 749
    functionLinenumberEnd: 860
    functionName: fu_elantp_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 1
    functionsReached:
    - fu_elantp_hid_device_write_cmd
    - fu_elantp_hid_device_ensure_iap_ctrl
    - g_prefix_error
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_write_fw_password
    - fu_elantp_hid_device_read_cmd
    - fu_device_has_flag
    - FU_DEVICE
    - g_set_error_literal
    - fu_memread_uint16
    - g_info
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:865,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:868,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:869,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:874,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:876,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:877,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:881,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:884,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:885,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 862
    functionDepth: 7
    functionLinenumber: 862
    functionLinenumberEnd: 893
    functionName: fu_elantp_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_write_cmd
    - g_debug
    - fu_elantp_hid_device_ensure_iap_ctrl
    - g_prefix_error
    - FU_ELANTP_HID_DEVICE
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:901,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:904,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:905,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:910,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:911,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 921
    functionName: fu_elantp_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_ELANTP_HID_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \ const gchar *key,\n\t\t\t\t  const gchar *value,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:926,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:927,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:928,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:929,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:930,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:931,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 933
    functionName: fu_elantp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:938,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: fu_elantp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_elantp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:944,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:944,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:945,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:946,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:946,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:947,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:947,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:948,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:948,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:949,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:950,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:951,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:952,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:953,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:953,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:954,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:954,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:955,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 941
    functionDepth: 6
    functionLinenumber: 941
    functionLinenumberEnd: 956
    functionName: fu_elantp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_priority
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_device_init(FuElantpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 972
    functionName: fu_elantp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_device_class_init(FuElantpHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 1289
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - retries
    argTypes:
    - FuThunderboltDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_thunderbolt_device_set_retries
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_set_retries(FuThunderboltDevice *self, guint
      retries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:44,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:45,1
    - Dst: fu_udev_device_list_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:47,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:47,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:51,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:52,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - active
    - error
    argTypes:
    - FuThunderboltDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: fu_thunderbolt_device_find_nvmem
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - fu_udev_device_list_sysfs
    - g_build_filename
    - g_ptr_array_index
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_thunderbolt_device_find_nvmem(FuThunderboltDevice *self, gboolean active,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:64,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:64,1
    - Dst: g_build_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:66,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:69,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:72,1
    - Dst: fu_device_get_contents
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:80,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:83,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:84,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:88,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 93
    functionName: fu_thunderbolt_device_check_authorized
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_contents
    - fu_device_inhibit
    - g_prefix_error
    - fu_device_uninhibit
    - fu_strtoull
    - g_build_path
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_set_error_literal
    - fu_udev_device_get_sysfs_path
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_check_authorized(FuThunderboltDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:98,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:99,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:99,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:103,1
    - Dst: g_build_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:106,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:108,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:119,1
    - Dst: fu_device_get_contents
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:123,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:126,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:127,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:128,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:135,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:138,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:139,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:140,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:147,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:149,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:151,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:152,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 154
    functionName: fu_thunderbolt_device_get_version
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_build_path
    - fu_udev_device_get_sysfs_path
    - fu_device_get_contents
    - g_set_error
    - g_debug
    - fu_device_set_version
    - g_strv_length
    - FU_UDEV_DEVICE
    - fu_device_query_file_exists
    - g_error_matches
    - g_autoptr
    - fu_strtoull
    - g_strsplit
    - g_strdup_printf
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_get_version(FuThunderboltDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:159,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:160,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: fu_thunderbolt_device_to_string
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fwupd_codec_string_append
    - FU_THUNDERBOLT_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - auth_method
    argTypes:
    - FuThunderboltDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: fu_thunderbolt_device_set_auth_method
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_set_auth_method(FuThunderboltDevice *self,
      const gchar *auth_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:174,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: fu_thunderbolt_device_activate
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:186,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:187,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:188,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: fu_thunderbolt_device_authenticate
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - FU_THUNDERBOLT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_authenticate(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:200,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:201,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:202,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 209
    functionName: fu_thunderbolt_device_flush_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - FU_THUNDERBOLT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_flush_update(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:218,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:218,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:230,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 245
    functionName: fu_thunderbolt_device_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:250,1
    - Dst: fu_thunderbolt_device_check_authorized
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:253,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: fu_thunderbolt_device_rescan
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_device_check_authorized
    - fu_thunderbolt_device_get_version
    - FU_THUNDERBOLT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_rescan(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_thunderbolt_device_find_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:268,1
    - Dst: fu_device_set_contents_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - blob_fw
    - progress
    - error
    argTypes:
    - FuThunderboltDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: fu_thunderbolt_device_write_data
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_thunderbolt_device_find_nvmem
    - fu_device_set_contents_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_thunderbolt_device_write_data(FuThunderboltDevice *self,\n\t\t\t\t
      GBytes *blob_fw,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:282,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:285,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:300,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:302,1
    - Dst: fu_thunderbolt_device_find_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:303,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:307,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:310,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:311,1
    - Dst: fu_firmware_check_compatible
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:320,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 326
    functionName: fu_thunderbolt_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_steal_pointer
    - fu_firmware_new_from_gtypes
    - FU_THUNDERBOLT_DEVICE
    - fu_firmware_has_flag
    - fu_device_get_contents_bytes
    - g_autoptr
    - fu_firmware_check_compatible
    - g_memory_input_stream_new_from_bytes
    - fu_thunderbolt_device_find_nvmem
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_thunderbolt_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FuFirmwareParseFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:336,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:339,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:343,1
    - Dst: fu_thunderbolt_device_write_data
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:344,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:345,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:347,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:347,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:352,1
    - Dst: fu_thunderbolt_device_flush_update
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:353,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:355,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:359,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:360,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:361,1
    - Dst: fu_thunderbolt_device_authenticate
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:366,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:367,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:372,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:373,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:374,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 328
    functionDepth: 8
    functionLinenumber: 328
    functionLinenumberEnd: 378
    functionName: fu_thunderbolt_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_debug
    - fu_thunderbolt_device_write_data
    - fu_thunderbolt_device_authenticate
    - g_prefix_error
    - fu_thunderbolt_device_flush_update
    - FU_THUNDERBOLT_DEVICE
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_device_set_remove_delay
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_thunderbolt_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:383,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:386,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:388,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:390,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 380
    functionDepth: 6
    functionLinenumber: 380
    functionLinenumberEnd: 396
    functionName: fu_thunderbolt_device_probe
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_vid
    - fu_device_add_flag
    - g_autoptr
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:403,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:404,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:405,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: fu_thunderbolt_device_set_progress
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:412,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:415,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:416,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 418
    functionName: fu_thunderbolt_device_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_init(FuThunderboltDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: fu_thunderbolt_device_class_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_device_class_init(FuThunderboltDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:23,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:24,1
    - Dst: fu_thunderbolt_udev_set_port_offline
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:29,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:29,1
    - Dst: fu_thunderbolt_udev_rescan_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:31,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: fu_thunderbolt_retimer_set_parent_port_offline
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_thunderbolt_udev_rescan_port
    - fu_thunderbolt_udev_set_port_offline
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_set_parent_port_offline(FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:37,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:38,1
    - Dst: fu_thunderbolt_udev_set_port_online
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:43,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fu_thunderbolt_retimer_set_parent_port_online
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_udev_set_port_online
    - fu_device_get_backend_parent_with_subsystem
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_set_parent_port_online(FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:49,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:49,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:50,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: fu_thunderbolt_retimer_probe
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - g_path_get_basename
    - fu_device_set_physical_id
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_thunderbolt_udev_rescan_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:63,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:63,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:65,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: fu_thunderbolt_retimer_reload
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - FU_UDEV_DEVICE
    - fu_thunderbolt_udev_rescan_port
    - fu_thunderbolt_device_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_reload(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:76,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:80,1
    - Dst: fu_thunderbolt_retimer_set_parent_port_online
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:81,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:85,1
    - Dst: fu_thunderbolt_retimer_set_parent_port_offline
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:88,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: fu_thunderbolt_retimer_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_retimer_set_parent_port_online
    - FU_DEVICE_CLASS
    - fu_thunderbolt_retimer_set_parent_port_offline
    - fu_device_add_flag
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_RETIMER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:99,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:105,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:105,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:109,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:111,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:119,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:126,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:129,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 134
    functionName: fu_thunderbolt_retimer_setup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_device_add_instance_id
    - g_strdup_printf
    - FU_THUNDERBOLT_DEVICE
    - FU_DEVICE
    - FU_THUNDERBOLT_RETIMER
    - g_set_error_literal
    - fu_device_get_physical_id
    - fu_thunderbolt_device_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:139,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:141,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:144,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:145,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:146,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:147,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:148,1
    - Dst: fu_thunderbolt_device_set_retries
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:149,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltRetimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: fu_thunderbolt_retimer_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_summary
    - FU_THUNDERBOLT_DEVICE
    - fu_device_add_flag
    - FU_DEVICE
    - fu_thunderbolt_device_set_retries
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_retimer_init(FuThunderboltRetimer *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltRetimerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: fu_thunderbolt_retimer_class_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_retimer_class_init(FuThunderboltRetimerClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:17,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:20,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:21,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:22,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:25,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - device
    - attribute
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: fu_thunderbolt_device_find_usb4_port_path
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_build_filename
    - g_strdup_printf
    - FU_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_thunderbolt_device_find_usb4_port_path(FuUdevDevice *device,\n\t\t\t\t\t
      \ const gchar *attribute,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:39,1
    - Dst: fu_thunderbolt_device_find_usb4_port_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:43,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:46,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: fu_thunderbolt_udev_set_port_offline
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_udev_device_write_sysfs
    - g_prefix_error
    - fu_thunderbolt_device_find_usb4_port_path
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_udev_set_port_offline(FuUdevDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:61,1
    - Dst: fu_thunderbolt_device_find_usb4_port_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:63,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:65,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:68,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: fu_thunderbolt_udev_rescan_port
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 2
    functionsReached:
    - g_debug
    - fu_udev_device_write_sysfs
    - g_prefix_error
    - fu_thunderbolt_device_find_usb4_port_path
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_udev_rescan_port(FuUdevDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:84,1
    - Dst: fu_thunderbolt_device_find_usb4_port_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:88,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: fu_thunderbolt_udev_set_port_online
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_udev_device_write_sysfs
    - g_prefix_error
    - fu_thunderbolt_device_find_usb4_port_path
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_udev_set_port_online(FuUdevDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:108,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - name
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: fu_thunderbolt_udev_get_attr_uint16
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_thunderbolt_udev_get_attr_uint16(FuUdevDevice *device, const
      gchar *name, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:33,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:33,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:37,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:41,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:42,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltController*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: fu_thunderbolt_controller_check_safe_mode
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_version
    - fu_device_set_metadata_boolean
    - fu_device_add_instance_id
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_check_safe_mode(FuThunderboltController
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:51,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:54,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:58,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltController*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: fu_thunderbolt_controller_ensure_fallback_name
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_ensure_fallback_name(FuThunderboltController
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:68,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:69,1
    - Dst: fu_thunderbolt_controller_kind_to_string
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:72,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:73,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:74,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: fu_thunderbolt_controller_to_string
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_CONTROLLER
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - fu_thunderbolt_controller_kind_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:81,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:86,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:90,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:90,1
    - Dst: fu_thunderbolt_controller_kind_from_string
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:94,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:95,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:99,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:100,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:100,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:101,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:108,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:108,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 117
    functionName: fu_thunderbolt_controller_probe
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - FU_THUNDERBOLT_CONTROLLER
    - FU_DEVICE_CLASS
    - g_str_has_prefix
    - g_path_get_basename
    - fu_udev_device_read_property
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_device_set_physical_id
    - fu_udev_device_read_sysfs
    - fu_thunderbolt_controller_kind_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:126,1
    - Dst: fu_thunderbolt_device_find_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:128,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:128,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:134,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:141,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:142,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:151,1
    - Dst: fu_intel_thunderbolt_nvm_is_native
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:153,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltController*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 156
    functionName: fu_thunderbolt_controller_read_status_block
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_gtypes
    - FU_THUNDERBOLT_DEVICE
    - FU_DEVICE
    - fu_device_get_contents_bytes
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - FU_INTEL_THUNDERBOLT_NVM
    - g_autoptr
    - g_memory_input_stream_new_from_bytes
    - fu_thunderbolt_device_find_nvmem
    - fu_intel_thunderbolt_nvm_is_native
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_read_status_block(FuThunderboltController
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:161,1
    - Dst: fu_thunderbolt_device_find_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:165,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltController*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: fu_thunderbolt_controller_can_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_thunderbolt_device_find_nvmem
    - g_autoptr
    - FU_THUNDERBOLT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_can_update(FuThunderboltController
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:178,1
    - Dst: fu_thunderbolt_udev_set_port_online
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:180,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:180,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: fu_thunderbolt_controller_set_port_online_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_THUNDERBOLT_CONTROLLER
    - fu_thunderbolt_udev_set_port_online
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_set_port_online_cb(gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_thunderbolt_udev_set_port_offline
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:191,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:191,1
    - Dst: fu_thunderbolt_udev_rescan_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:193,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:193,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:196,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltController*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: fu_thunderbolt_controller_setup_usb4
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_udev_rescan_port
    - fu_thunderbolt_udev_set_port_offline
    - g_timeout_add_seconds
    - FU_UDEV_DEVICE
    - g_source_remove
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_setup_usb4(FuThunderboltController
      *self, GError **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:211,1
    - Dst: fu_thunderbolt_udev_get_attr_uint16
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:215,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:217,1
    - Dst: fu_thunderbolt_device_set_retries
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:219,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:219,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:225,1
    - Dst: fu_thunderbolt_controller_setup_usb4
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:226,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:227,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:231,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:231,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:233,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:234,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:234,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:237,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:241,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:243,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:245,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:250,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:251,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:254,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:254,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:258,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:262,1
    - Dst: fu_thunderbolt_controller_ensure_fallback_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:263,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:266,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:266,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:271,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:273,1
    - Dst: fu_thunderbolt_controller_check_safe_mode
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:274,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:277,1
    - Dst: fu_thunderbolt_controller_can_update
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:281,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:282,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:282,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:283,1
    - Dst: fu_thunderbolt_controller_read_status_block
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:289,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:294,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:299,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:304,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:305,1
    - Dst: fu_thunderbolt_device_check_authorized
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:308,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:313,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:319,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:321,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:326,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:326,1
    - Dst: fu_thunderbolt_device_set_auth_method
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:331,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:331,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:334,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:336,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:338,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:340,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:345,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:347,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 351
    functionName: fu_thunderbolt_controller_setup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_CONTROLLER
    - fu_device_remove_private_flag
    - fu_thunderbolt_controller_setup_usb4
    - g_propagate_error
    - fu_udev_device_get_sysfs_path
    - fu_device_set_vendor
    - g_set_error
    - g_debug
    - fu_device_get_version
    - fu_device_add_private_flag
    - fu_thunderbolt_controller_ensure_fallback_name
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_thunderbolt_controller_read_status_block
    - fu_device_get_pid
    - fu_thunderbolt_controller_can_update
    - g_steal_pointer
    - g_error_matches
    - fu_device_set_summary
    - fu_device_add_instance_id
    - g_autoptr
    - fu_thunderbolt_device_set_retries
    - fu_thunderbolt_controller_check_safe_mode
    - fu_thunderbolt_udev_get_attr_uint16
    - fu_thunderbolt_device_get_version
    - fu_device_set_name
    - g_warning
    - fu_device_get_vid
    - g_path_get_basename
    - fu_thunderbolt_device_check_authorized
    - fu_device_set_update_error
    - g_strdup_printf
    - FU_THUNDERBOLT_DEVICE
    - fu_device_has_private_flag
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_thunderbolt_device_set_auth_method
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:361,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:364,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 367
    functionName: fu_thunderbolt_controller_write_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_thunderbolt_controller_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:372,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltController*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 6
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: fu_thunderbolt_controller_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_init(FuThunderboltController *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:380,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:383,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: fu_thunderbolt_controller_finalize
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - FU_THUNDERBOLT_CONTROLLER
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:391,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltControllerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: fu_thunderbolt_controller_class_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_controller_class_init(FuThunderboltControllerClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:32,1
    - Dst: umockdev_testbed_add_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - bed
    - active
    - parent
    - id
    argTypes:
    - UMockdevTestbed*
    - gboolean
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: udev_mock_add_nvmem
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - umockdev_testbed_add_device
    - g_assert_nonnull
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      udev_mock_add_nvmem(UMockdevTestbed *bed, gboolean active, const char *parent,
      int id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:42,1
    - Dst: umockdev_testbed_add_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:43,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bed
    - id
    argTypes:
    - UMockdevTestbed*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: udev_mock_add_usb4_port
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - umockdev_testbed_add_device
    - g_assert_nonnull
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      udev_mock_add_usb4_port(UMockdevTestbed *bed, int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_slice_new0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:103,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:112,1
    - Dst: g_uuid_string_random
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:114,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - parent
    - device
    - id
    argTypes:
    - MockTree*
    - MockDevice*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: mock_tree_new
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_slice_new0
    - g_uuid_string_random
    - g_strdup
    linkageType: ''
    returnType: MockTree
    signature: 'MockTree *

      mock_tree_new(MockTree *parent, MockDevice *device, int *id)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:124,1
    - Dst: mock_tree_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:125,1
    - Dst: g_ptr_array_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:128,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:131,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:133,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:136,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:137,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:141,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:142,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:146,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:147,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:150,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:153,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:154,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:155,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:156,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:157,1
    - Dst: g_slice_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - tree
    argTypes:
    - MockTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: mock_tree_free
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_slice_free
    - g_ptr_array_free
    - umockdev_testbed_uevent
    - mock_tree_free
    - g_object_unref
    - umockdev_testbed_remove_device
    - g_ptr_array_index
    - g_free
    linkageType: ''
    returnType: void
    signature: void mock_tree_free(MockTree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:169,1
    - Dst: mock_tree_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:173,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:174,1
    - Dst: mock_tree_init_children
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - node
    - id
    argTypes:
    - MockTree*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: mock_tree_init_children
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - mock_tree_new
    - g_ptr_array_new
    - mock_tree_init_children
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      mock_tree_init_children(MockTree *node, int *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_tree_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:187,1
    - Dst: mock_tree_init_children
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - device
    argTypes:
    - MockDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: mock_tree_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_new
    - mock_tree_init_children
    linkageType: ''
    returnType: MockTree
    signature: 'MockTree *

      mock_tree_init(MockDevice *device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:197,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:203,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:204,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:206,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:215,1
    - Dst: mock_tree_dump
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - node
    - level
    argTypes:
    - MockTree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 218
    functionName: mock_tree_dump
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - mock_tree_dump
    - g_ptr_array_index
    - g_debug
    linkageType: ''
    returnType: void
    signature: void mock_tree_dump(const MockTree *node, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:227,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:232,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:233,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:235,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:236,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:238,1
    - Dst: g_file_get_child
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:239,1
    - Dst: g_file_read
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:241,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:242,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:246,1
    - Dst: g_input_stream_read_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:249,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:250,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:251,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:253,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:255,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:259,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - MockTree*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 262
    functionName: mock_tree_firmware_verify
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_file_read
    - g_input_stream_read_bytes
    - g_file_new_for_path
    - g_checksum_update
    - g_assert_no_error
    - g_checksum_new
    - g_assert_nonnull
    - g_compute_checksum_for_bytes
    - g_autoptr
    - g_checksum_get_string
    - g_file_get_child
    - g_bytes_get_data
    linkageType: ''
    returnType: void
    signature: void mock_tree_firmware_verify(const MockTree *node, GBytes *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: predicate
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:269,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:276,1
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - node
    - predicate
    - data
    argTypes:
    - MockTree*
    - MockTreePredicate
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: mock_tree_contains
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - predicate
    - mock_tree_contains
    linkageType: ''
    returnType: MockTree
    signature: 'MockTree *

      mock_tree_contains(const MockTree *node, MockTreePredicate predicate, gpointer
      data)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: predicate
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:288,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:294,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - node
    - predicate
    - data
    argTypes:
    - MockTree*
    - MockTreePredicate
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: mock_tree_all
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_index
    - predicate
    - mock_tree_all
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_all(const MockTree *node, MockTreePredicate predicate,
      gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - MockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: mock_tree_compare_uuid
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_str_equal
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_compare_uuid(const MockTree *node, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - uuid
    argTypes:
    - MockTree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: mock_tree_find_uuid
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_contains
    linkageType: ''
    returnType: MockTree
    signature: 'MockTree *

      mock_tree_find_uuid(const MockTree *root, const char *uuid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - MockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: mock_tree_node_have_fu_device
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_node_have_fu_device(const MockTree *node, gpointer
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:332,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:332,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:336,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:337,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:338,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:339,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:340,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:341,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:342,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:344,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:345,1
    - Dst: g_file_get_child
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:347,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:348,1
    - Dst: g_file_append_to
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:350,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:351,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:352,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:354,1
    - Dst: g_output_stream_splice
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:356,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:357,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - nvm
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 359
    functionName: write_controller_fw
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_assert_cmpuint
    - g_file_new_for_path
    - g_file_append_to
    - g_test_build_filename
    - g_assert_true
    - fu_intel_thunderbolt_nvm_new
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - g_output_stream_splice
    - g_memory_input_stream_new_from_bytes
    - g_file_get_child
    linkageType: ''
    returnType: void
    signature: void write_controller_fw(const gchar *nvm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:369,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:370,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:371,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:373,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:374,1
    - Dst: umockdev_testbed_add_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:376,1
    - Dst: udev_mock_add_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:401,1
    - Dst: udev_mock_add_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:403,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:405,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:406,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:407,1
    - Dst: write_controller_fw
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:409,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:414,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:416,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:417,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 423
    functionName: mock_tree_attach_device
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - write_controller_fw
    - g_strdup_printf
    - g_timeout_add
    - udev_mock_add_nvmem
    - g_ptr_array_index
    - g_assert_nonnull
    - g_strdup
    - umockdev_testbed_add_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_attach_device(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: on_sync_timeout
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean on_sync_timeout(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:443,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:446,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:449,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:454,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: sync_device_added
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - mock_tree_find_uuid
    - g_object_unref
    - fu_device_get_physical_id
    - g_critical
    linkageType: ''
    returnType: void
    signature: void sync_device_added(FuPlugin *plugin, FuDevice *device, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:464,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:467,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:470,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:474,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: sync_device_removed
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - mock_tree_find_uuid
    - fu_device_get_physical_id
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void sync_device_removed(FuPlugin *plugin, FuDevice *device, gpointer
      user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:485,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:485,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:493,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:493,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:495,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:498,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:498,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:500,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:504,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:506,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:508,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - root
    - plugin
    - timeout_ms
    argTypes:
    - MockTree*
    - FuPlugin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 510
    functionName: mock_tree_sync
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_signal_handler_disconnect
    - g_timeout_add
    - g_autoptr
    - g_main_loop_run
    - g_main_loop_new
    - g_signal_connect
    - FU_PLUGIN
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void mock_tree_sync(MockTree *root, FuPlugin *plugin, int timeout_ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:526,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:529,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:532,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:536,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:538,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 542
    functionName: mock_tree_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - mock_tree_find_uuid
    - g_set_object
    - fu_device_get_physical_id
    - mock_tree_all
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void mock_tree_plugin_device_added(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:547,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:547,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:554,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:554,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:556,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:559,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - root
    - plugin
    argTypes:
    - MockTree*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 563
    functionName: mock_tree_settle
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_signal_handler_disconnect
    - g_autoptr
    - g_main_loop_run
    - g_main_loop_new
    - g_signal_connect
    - FU_PLUGIN
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_settle(MockTree *root, FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:568,1
    - Dst: udev_mock_add_usb4_port
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:569,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:570,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:572,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - root
    - bed
    - plugin
    argTypes:
    - MockTree*
    - UMockdevTestbed*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: mock_tree_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - mock_tree_settle
    - udev_mock_add_usb4_port
    - g_timeout_add
    - g_assert_nonnull
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_attach(MockTree *root, UMockdevTestbed *bed, FuPlugin
      *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:587,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:588,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:589,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:591,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:592,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - node
    - unused
    argTypes:
    - MockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 597
    functionName: mock_tree_node_is_detached
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - g_assert_null
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_node_is_detached(const MockTree *node, gpointer
      unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mock_tree_node_is_detached
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:604,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:608,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:609,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:610,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:615,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:616,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:618,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:619,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:621,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:622,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:624,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:625,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:626,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - node
    argTypes:
    - MockTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 634
    functionName: mock_tree_detach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - umockdev_testbed_uevent
    - g_object_unref
    - umockdev_testbed_remove_device
    - g_ptr_array_index
    - mock_tree_node_is_detached
    - mock_tree_detach
    - g_free
    linkageType: ''
    returnType: void
    signature: void mock_tree_detach(MockTree *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:663,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:665,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:666,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:667,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:668,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:669,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - UpdateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 671
    functionName: update_context_free
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_file_monitor_cancel
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void update_context_free(UpdateContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:684,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:686,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 690
    functionName: reattach_tree
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_debug
    - g_timeout_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean reattach_tree(gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:705,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:706,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:707,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:709,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:710,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:711,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:713,1
    - Dst: mock_tree_firmware_verify
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:717,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:719,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:720,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:726,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:727,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:730,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:735,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:740,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 742
    functionName: udev_file_changed_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_str_has_prefix
    - g_assert_true
    - g_file_monitor_cancel
    - g_file_load_contents
    - g_timeout_add
    - mock_tree_firmware_verify
    - g_assert_no_error
    - g_strdup
    - g_autoptr
    - mock_tree_detach
    - g_free
    linkageType: ''
    returnType: void
    signature: "void udev_file_changed_cb(GFileMonitor *monitor,\n\t\t     GFile *file,\n\t\t
      \    GFile *other_file,\n\t\t     GFileMonitorEvent event_type,\n\t\t     gpointer
      user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:752,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:753,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:754,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:757,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:758,1
    - Dst: g_file_get_child
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:759,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:761,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:762,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:763,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:766,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:767,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:770,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:771,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:773,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:773,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - node
    - plugin
    - version
    - fw_data
    - timeout_ms
    argTypes:
    - MockTree*
    - FuPlugin*
    - char*
    - GBytes*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 776
    functionName: mock_tree_prepare_for_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_monitor_file
    - g_object_ref
    - g_bytes_ref
    - G_FILE_MONITOR
    - g_new0
    - g_file_new_for_path
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_strdup
    - g_file_get_child
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: UpdateContext
    signature: "UpdateContext *\nmock_tree_prepare_for_update(MockTree *node,\n\t\t\t
      \    FuPlugin *plugin,\n\t\t\t     const char *version,\n\t\t\t     GBytes *fw_data,\n\t\t\t
      \    guint timeout_ms)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:868,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:869,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:871,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:871,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:873,1
    - Dst: g_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:873,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:874,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:875,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:879,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:882,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:885,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:887,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:890,1
    - Dst: g_udev_device_get_sysfs_attr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:892,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:893,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:894,1
    - Dst: fu_udev_device_emit_changed
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:895,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - gudev_client
    - action
    - udev_device
    - tt
    argTypes:
    - GUdevClient*
    - gchar*
    - GUdevDevice*
    - ThunderboltTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 862
    functionDepth: 6
    functionLinenumber: 862
    functionLinenumberEnd: 898
    functionName: fu_thunderbolt_gudev_uevent_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_progress_new
    - fu_udev_device_new
    - g_udev_device_get_sysfs_attr
    - mock_tree_find_uuid
    - g_udev_device_get_sysfs_path
    - fu_plugin_device_remove
    - FU_DEVICE
    - fu_udev_device_emit_changed
    - fu_plugin_runner_backend_device_added
    - g_assert_nonnull
    - g_autoptr
    - fu_device_probe
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: "void fu_thunderbolt_gudev_uevent_cb(GUdevClient *gudev_client,\n\t\t\t
      \      const gchar *action,\n\t\t\t       GUdevDevice *udev_device,\n\t\t\t
      \      ThunderboltTest *tt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:905,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:906,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:906,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:909,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:910,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:913,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:914,1
    - Dst: umockdev_testbed_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:916,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:917,1
    - Dst: umockdev_testbed_get_sys_dir
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:919,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:920,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:922,1
    - Dst: fu_thunderbolt_plugin_get_type
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:922,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:924,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:926,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:927,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:928,1
    - Dst: mock_tree_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:931,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:932,1
    - Dst: umockdev_in_mock_environment
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:935,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:936,1
    - Dst: g_udev_client_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:940,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:941,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:942,1
    - Dst: G_UDEV_CLIENT
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:942,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:944,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:948,1
    - Dst: mock_tree_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:950,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:951,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:956,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:957,1
    - Dst: fu_intel_thunderbolt_firmware_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:957,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:960,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:961,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:962,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:963,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:964,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:965,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:966,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:967,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 2
    argNames:
    - tt
    - params
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 899
    functionDepth: 6
    functionLinenumber: 899
    functionLinenumberEnd: 970
    functionName: test_set_up
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - G_UDEV_CLIENT
    - mock_tree_attach
    - umockdev_testbed_new
    - GPOINTER_TO_UINT
    - g_assert_true
    - fu_firmware_build_from_filename
    - fu_context_load_quirks
    - g_signal_connect
    - fu_context_new
    - fu_plugin_new_from_gtype
    - g_debug
    - g_udev_client_new
    - fu_plugin_runner_startup
    - G_CALLBACK
    - fu_intel_thunderbolt_firmware_new
    - mock_tree_init
    - g_assert_nonnull
    - g_autoptr
    - g_warning
    - fu_firmware_write
    - fu_progress_new
    - g_test_build_filename
    - umockdev_testbed_get_sys_dir
    - g_assert_no_error
    - umockdev_in_mock_environment
    - fu_thunderbolt_plugin_get_type
    - g_memory_input_stream_new_from_bytes
    linkageType: ''
    returnType: void
    signature: void test_set_up(ThunderboltTest *tt, gconstpointer params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:975,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:976,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:977,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:978,1
    - Dst: mock_tree_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:981,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:984,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 987
    functionName: test_tear_down
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_free
    - g_object_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void test_tear_down(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:996,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:998,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1000,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1001,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1002,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - MockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1007
    functionName: test_tree_uuids
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_find_uuid
    - g_assert_cmpstr
    - g_debug
    - g_assert_nonnull
    linkageType: ''
    returnType: gboolean
    signature: gboolean test_tree_uuids(const MockTree *node, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1014,1
    - Dst: mock_tree_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1016,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1017,1
    - Dst: mock_tree_dump
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1019,1
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1021,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1023,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1024,1
    - Dst: mock_tree_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1026,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1027,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1029,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1030,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1032
    functionName: test_tree
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_contains
    - mock_tree_attach
    - mock_tree_find_uuid
    - g_assert_true
    - g_assert_null
    - mock_tree_init
    - g_assert_nonnull
    - g_autoptr
    - mock_tree_all
    - mock_tree_dump
    - mock_tree_detach
    linkageType: ''
    returnType: void
    signature: void test_tree(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1041,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1042,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1043,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1044,1
    - Dst: fu_intel_thunderbolt_firmware_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1044,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1045,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1045,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1046,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1046,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1050,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1051,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1052,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1053,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1056,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1057,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1058,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1059,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1062,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1063,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1064,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1065,1
    - Dst: g_mapped_file_get_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1067,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1068,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1071,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1076,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1077,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1078,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1079,1
    - Dst: fu_firmware_check_compatible
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1082,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1086,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1088
    functionName: test_image_validation
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_check_compatible
    - g_debug
    - g_clear_error
    - g_test_build_filename
    - fu_intel_thunderbolt_firmware_new
    - g_assert_true
    - fu_intel_thunderbolt_nvm_new
    - g_mapped_file_get_bytes
    - g_assert_no_error
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_assert_nonnull
    - g_assert_false
    - g_assert_error
    - g_mapped_file_new
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void test_image_validation(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1099,1
    - Dst: umockdev_testbed_set_attribute
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1103,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1104,1
    - Dst: mock_tree_sync
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1107,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1110,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1111,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1114,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1116
    functionName: test_change_uevent
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - umockdev_testbed_set_attribute
    - g_assert_cmpstr
    - fu_device_get_version
    - umockdev_testbed_uevent
    - g_assert_true
    - mock_tree_all
    - g_assert_nonnull
    - mock_tree_sync
    linkageType: ''
    returnType: void
    signature: void test_change_uevent(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1128,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1128,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1131,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1132,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1136,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1137,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1144,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1145,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1149,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1150,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1152,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1153,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1154,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1156,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1157,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1158,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1161,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1162,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1167,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1118
    functionDepth: 4
    functionLinenumber: 1118
    functionLinenumberEnd: 1169
    functionName: test_update_working
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_write_firmware
    - g_debug
    - fu_progress_new
    - fu_device_get_version
    - g_assert_cmpstr
    - mock_tree_settle
    - g_assert_true
    - g_assert_no_error
    - mock_tree_all
    - g_assert_nonnull
    - g_autoptr
    - fu_plugin_runner_attach
    - mock_tree_prepare_for_update
    linkageType: ''
    returnType: void
    signature: void test_update_working(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1181,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1181,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1185,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1188,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1189,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1190,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1192,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1198,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1199,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1201,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1202,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1204,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1171
    functionDepth: 6
    functionLinenumber: 1171
    functionLinenumberEnd: 1206
    functionName: test_update_wd19
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_write_firmware
    - g_assert_cmpstr
    - fu_progress_new
    - fu_device_add_private_flag
    - fu_device_get_version
    - g_assert_true
    - fu_device_has_flag
    - fu_device_add_flag
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void test_update_wd19(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1218,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1218,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1221,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1222,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1227,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1236,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1237,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1242,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1243,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1245,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1246,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1247,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1250,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1251,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1254,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1255,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1256,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1258,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1208
    functionDepth: 4
    functionLinenumber: 1208
    functionLinenumberEnd: 1260
    functionName: test_update_fail
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_write_firmware
    - g_debug
    - fu_progress_new
    - fu_device_get_version
    - g_assert_cmpstr
    - mock_tree_settle
    - g_assert_true
    - g_assert_no_error
    - mock_tree_all
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_assert_false
    - fu_plugin_runner_attach
    - mock_tree_prepare_for_update
    linkageType: ''
    returnType: void
    signature: void test_update_fail(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1271,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1271,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1274,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1275,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1280,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1283,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1289,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1290,1
    - Dst: mock_tree_sync
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1292,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1294,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - ThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1262
    functionDepth: 3
    functionLinenumber: 1262
    functionLinenumberEnd: 1296
    functionName: test_update_fail_nowshow
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_write_firmware
    - fu_progress_new
    - g_assert_true
    - g_assert_no_error
    - mock_tree_all
    - g_assert_nonnull
    - g_autoptr
    - g_assert_false
    - mock_tree_sync
    - mock_tree_prepare_for_update
    linkageType: ''
    returnType: void
    signature: void test_update_fail_nowshow(ThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1302,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1303,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1304,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1306,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1307,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1309,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1316,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1323,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1325,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1330,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1337,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1344,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1350,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1358
    functionName: main
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 4
    functionsReached:
    - GUINT_TO_POINTER
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_setenv
    - g_test_init
    - g_test_add
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:23,1
    - Dst: fu_kernel_check_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_thunderbolt_plugin_safe_kernel
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_check_version
    - fu_plugin_get_config_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_plugin_safe_kernel(FuPlugin *plugin, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:30,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:31,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:34,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: fu_thunderbolt_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_context_has_hwid_flag
    - fu_plugin_get_context
    - fu_device_add_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_plugin_device_created(FuPlugin *plugin, FuDevice
      *dev, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:42,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:42,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:46,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:47,1
    - Dst: g_info
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:48,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:48,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:49,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:50,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: fu_thunderbolt_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_remove_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_get_name
    - g_strcmp0
    - fu_device_get_plugin
    - g_info
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_thunderbolt_plugin_safe_kernel
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: fu_thunderbolt_plugin_startup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_plugin_safe_kernel
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:66,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:66,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:67,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:68,1
    - Dst: fu_thunderbolt_retimer_set_parent_port_offline
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: fu_thunderbolt_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_retimer_set_parent_port_offline
    - fu_device_has_private_flag
    - g_ptr_array_index
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_plugin_composite_prepare(FuPlugin *plugin,
      GPtrArray *devices, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:80,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:80,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:81,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:82,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:83,1
    - Dst: fu_thunderbolt_retimer_set_parent_port_online
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: fu_thunderbolt_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_retimer_set_parent_port_online
    - fu_device_has_private_flag
    - g_ptr_array_index
    - g_strcmp0
    - fu_device_get_plugin
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_plugin_composite_cleanup(FuPlugin *plugin,
      GPtrArray *devices, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:98,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: fu_thunderbolt_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_thunderbolt_plugin_modify_config(FuPlugin *plugin,\n\t\t\t\t
      \   const gchar *key,\n\t\t\t\t    const gchar *value,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: fu_thunderbolt_plugin_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_plugin_init(FuThunderboltPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:116,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:117,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:118,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:119,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:122,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: fu_thunderbolt_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_set_config_default
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: fu_thunderbolt_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thunderbolt_plugin_class_init(FuThunderboltPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ep963x_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_ep963x_firmware_validate
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ep963x_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ep963x_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    gsize offset,\n\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: fu_ep963x_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ep963x_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEp963xFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: fu_ep963x_firmware_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_firmware_init(FuEp963xFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEp963xFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_ep963x_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_firmware_class_init(FuEp963xFirmwareClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:36,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:46,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:46,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - self
    - ctrl_id
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuEp963xDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 58
    functionName: fu_ep963x_device_write
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ep963x_device_write(FuEp963xDevice *self,\n\t\t       guint8
      ctrl_id,\n\t\t       guint8 cmd,\n\t\t       const guint8 *buf,\n\t\t       gsize
      bufsz,\n\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:75,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:77,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:77,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:89,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:101,1
    - Dst: fu_ep963x_smbus_error_to_string
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:101,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - bufout
    - bufoutsz
    - error
    argTypes:
    - FuEp963xDevice*
    - guint8
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: fu_ep963x_device_write_icp
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - g_debug
    - FU_HID_DEVICE
    - fu_ep963x_device_write
    - fu_ep963x_smbus_error_to_string
    - fu_memcpy_safe
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ep963x_device_write_icp(FuEp963xDevice *self,\n\t\t\t
      \  guint8 cmd,\n\t\t\t   const guint8 *buf,\n\t\t\t   gsize bufsz,\n\t\t\t   guint8
      *bufout,\n\t\t\t   gsize bufoutsz,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EP963X_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:115,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:118,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:119,1
    - Dst: fu_ep963x_device_write_icp
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:130,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 110
    functionDepth: 7
    functionLinenumber: 110
    functionLinenumberEnd: 140
    functionName: fu_ep963x_device_detach
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ep963x_device_write_icp
    - FU_EP963X_DEVICE
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ep963x_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EP963X_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:146,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:149,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:150,1
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:153,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:159,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 168
    functionName: fu_ep963x_device_attach
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ep963x_device_write
    - FU_EP963X_DEVICE
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ep963x_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EP963X_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:173,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:178,1
    - Dst: fu_ep963x_device_write_icp
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:182,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:191,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:192,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:196,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 203
    functionName: fu_ep963x_device_setup
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - fu_ep963x_device_write_icp
    - g_strdup_printf
    - FU_EP963X_DEVICE
    - fu_device_add_flag
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ep963x_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:213,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: fu_ep963x_device_wait_cb
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - g_set_error_literal
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ep963x_device_wait_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_EP963X_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:239,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:242,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:243,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:244,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:245,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:248,1
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:253,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:259,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:266,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:269,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:280,1
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:283,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:289,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:298,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:301,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:302,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:303,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:308,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:311,1
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:316,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:319,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:320,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:322,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:326,1
    - Dst: fu_ep963x_device_write
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:333,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:339,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:343,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:349,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:353,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:353,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:355,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 361
    functionName: fu_ep963x_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - FU_EP963X_DEVICE
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_bytes
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_ep963x_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ep963x_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:366,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:367,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:368,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:369,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:370,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:371,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: fu_ep963x_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:378,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:379,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:380,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:381,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:382,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:383,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:384,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEp963xDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 375
    functionDepth: 6
    functionLinenumber: 375
    functionLinenumberEnd: 386
    functionName: fu_ep963x_device_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_device_init(FuEp963xDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-device.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEp963xDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: fu_ep963x_device_class_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_device_class_init(FuEp963xDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEp963XPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_ep963x_plugin_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_plugin_init(FuEp963XPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:28,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_ep963x_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:35,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:36,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: fu_ep963x_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:43,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEp963XPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: fu_ep963x_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_plugin_class_init(FuEp963XPluginClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:24,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:29,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:31,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:33,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:35,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:42,1
    - Dst: fu_linux_lockdown_to_string
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: fu_linux_lockdown_plugin_rescan
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LINUX_LOCKDOWN_PLUGIN
    - g_strstr_len
    - g_file_load_contents
    - fu_linux_lockdown_to_string
    - fu_plugin_add_report_metadata
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_rescan(FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:54,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:55,1
    - Dst: fu_linux_lockdown_plugin_rescan
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:56,1
    - Dst: fu_context_security_changed
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: fu_linux_lockdown_plugin_changed_cb
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_lockdown_plugin_rescan
    - FU_PLUGIN
    - fu_plugin_get_context
    - fu_context_security_changed
    linkageType: ''
    returnType: void
    signature: "void fu_linux_lockdown_plugin_changed_cb(GFileMonitor *monitor,\n\t\t\t\t
      \   GFile *file,\n\t\t\t\t    GFile *other_file,\n\t\t\t\t    GFileMonitorEvent
      event_type,\n\t\t\t\t    gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:63,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:67,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:68,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:69,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:70,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:76,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:77,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:80,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:80,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:82,1
    - Dst: fu_linux_lockdown_plugin_rescan
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: fu_linux_lockdown_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_lockdown_plugin_rescan
    - G_FILE_MONITOR
    - FU_LINUX_LOCKDOWN_PLUGIN
    - g_file_new_for_path
    - g_build_filename
    - g_file_monitor
    - g_set_error_literal
    - g_file_test
    - fu_path_from_kind
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_lockdown_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:93,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:93,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:98,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:101,1
    - Dst: fu_kernel_check_cmdline_mutable
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:106,1
    - Dst: fu_kernel_get_config
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:110,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:114,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:122,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:124,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:126,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:135,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:137,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:138,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:139,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:141,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuLinuxLockdownPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 145
    functionName: fu_linux_lockdown_plugin_ensure_security_attr_flags
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_check_cmdline_mutable
    - fwupd_security_attr_add_flag
    - fu_kernel_get_config
    - fwupd_security_attr_set_kernel_current_value
    - fu_plugin_get_context
    - fu_kernel_get_cmdline
    - fu_efivars_get_secure_boot
    - fwupd_security_attr_set_kernel_target_value
    - g_set_error_literal
    - fu_context_get_efivars
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_contains
    - FU_PLUGIN
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_lockdown_plugin_ensure_security_attr_flags(FuLinuxLockdownPlugin
      *self,\n\t\t\t\t\t\t    FwupdSecurityAttr *attr,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:152,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:155,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:156,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:157,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:158,1
    - Dst: fu_linux_lockdown_plugin_ensure_security_attr_flags
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:161,1
    - Dst: g_info
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:162,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:165,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:171,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:175,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:176,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 182
    functionName: fu_linux_lockdown_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - FU_LINUX_LOCKDOWN_PLUGIN
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_linux_lockdown_plugin_ensure_security_attr_flags
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_add_security_attrs(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:187,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:188,1
    - Dst: fu_linux_lockdown_to_string
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: fu_linux_lockdown_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_lockdown_to_string
    - FU_LINUX_LOCKDOWN_PLUGIN
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_to_string(FuPlugin *plugin, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxLockdownPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: fu_linux_lockdown_plugin_init
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_init(FuLinuxLockdownPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:202,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:204,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:206,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:207,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: fu_linux_lockdown_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_object_unref
    - g_file_monitor_cancel
    - FU_LINUX_LOCKDOWN_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_add_cmdline_arg
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: fu_linux_lockdown_plugin_fix_host_security_attr
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_add_cmdline_arg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_lockdown_plugin_fix_host_security_attr(FuPlugin
      *plugin,\n\t\t\t\t\t\tFwupdSecurityAttr *attr,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_remove_cmdline_arg
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: fu_linux_lockdown_plugin_undo_host_security_attr
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_remove_cmdline_arg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_lockdown_plugin_undo_host_security_attr(FuPlugin
      *plugin,\n\t\t\t\t\t\t FwupdSecurityAttr *attr,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:231,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxLockdownPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: fu_linux_lockdown_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_lockdown_plugin_class_init(FuLinuxLockdownPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanfpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_elanfp_plugin_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_plugin_init(FuElanfpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_elanfp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_elanfp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_plugin_class_init(FuElanfpPluginClass *klass)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:57,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:66,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:77,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:86,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:90,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:90,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 7
    argNames:
    - self
    - request_type
    - request
    - buf
    - bufsz
    - rspsz
    - error
    argTypes:
    - FuElanfpDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 119
    functionName: fu_elanfp_device_iap_send_command
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_memcpy_safe
    - fu_usb_device_control_transfer
    - fu_device_has_private_flag
    - fu_usb_device_bulk_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_device_iap_send_command(FuElanfpDevice *self,\n\t\t\t\t
      \ guint8 request_type,\n\t\t\t\t  guint8 request,\n\t\t\t\t  const guint8 *buf,\n\t\t\t\t
      \ gsize bufsz,\n\t\t\t\t  gsize rspsz,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:127,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:131,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:139,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuElanfpDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: fu_elanfp_device_iap_recv_status
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_usb_device_bulk_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elanfp_device_iap_recv_status(FuElanfpDevice *self, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:170,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:170,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:181,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:194,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 8
    argNames:
    - self
    - outbuf
    - outlen
    - inbuf
    - inlen
    - allow_less
    - rxed_count
    - error
    argTypes:
    - FuElanfpDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gboolean
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 219
    functionName: fu_elanfp_device_do_xfer
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_device_do_xfer(FuElanfpDevice *self,\n\t\t\t guint8
      *outbuf,\n\t\t\t gsize outlen,\n\t\t\t guint8 *inbuf,\n\t\t\t gsize inlen,\n\t\t\t
      gboolean allow_less,\n\t\t\t gsize *rxed_count,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:224,1
    - Dst: fu_elanfp_device_do_xfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:238,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:241,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:242,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 247
    functionName: fu_elanfp_device_setup
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_ELANFP_DEVICE
    - g_prefix_error
    - g_strdup_printf
    - fu_elanfp_device_do_xfer
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elanfp_device_setup(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:255,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:258,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:261,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:262,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:264,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:275,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:278,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:287,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:290,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:296,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:299,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:300,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:302,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:304,1
    - Dst: fu_elanfp_device_iap_send_command
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:307,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:314,1
    - Dst: fu_elanfp_device_iap_recv_status
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:317,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:318,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:322,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:327,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:330,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - self
    - payload
    - progress
    - error
    argTypes:
    - FuElanfpDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 335
    functionName: fu_elanfp_device_write_payload
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_progress_step_done
    - fu_firmware_get_chunks
    - g_prefix_error
    - fu_cfu_content_status_to_string
    - fu_memwrite_uint16_safe
    - fu_memcpy_safe
    - g_ptr_array_index
    - fu_elanfp_device_iap_send_command
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_get_data
    - fu_elanfp_device_iap_recv_status
    - fu_chunk_get_address
    - fu_progress_set_steps
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_device_write_payload(FuElanfpDevice *self,\n\t\t\t
      \      FuFirmware *payload,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:355,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:358,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:359,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:364,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:367,1
    - Dst: fu_elanfp_device_iap_send_command
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:370,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:373,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:374,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:375,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:377,1
    - Dst: fu_elanfp_device_iap_recv_status
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:380,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:381,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:384,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:386,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:387,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:392,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:398,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:401,1
    - Dst: fu_elanfp_device_write_payload
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:404,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:404,1
    - Dst: fu_elanfp_device_do_xfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:408,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:416,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:419,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:420,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 337
    functionDepth: 6
    functionLinenumber: 337
    functionLinenumberEnd: 424
    functionName: fu_elanfp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANFP_DEVICE
    - g_prefix_error
    - fu_cfu_rr_code_to_string
    - fu_firmware_get_image_by_idx
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_elanfp_device_do_xfer
    - fu_elanfp_device_iap_recv_status
    - fu_elanfp_device_write_payload
    - fu_progress_step_done
    - fu_firmware_get_image_by_idx_bytes
    - fu_elanfp_device_iap_send_command
    - g_autoptr
    - g_bytes_get_data
    - fu_cfu_offer_status_to_string
    - g_bytes_get_size
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:429,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:431,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:432,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:433,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:434,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:435,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:436,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:437,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:438,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:439,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:440,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:441,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:442,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:443,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:444,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:444,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:445,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:445,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuElanfpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 426
    functionDepth: 6
    functionLinenumber: 426
    functionLinenumberEnd: 447
    functionName: fu_elanfp_device_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_ELANFP_DEVICE
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    - fu_device_set_firmware_size_max
    - fu_device_set_install_duration
    - fu_device_register_private_flag
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_device_init(FuElanfpDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:452,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:453,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:454,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:455,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:456,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: fu_elanfp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: fu_elanfp_device_class_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_device_class_init(FuElanfpDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:22,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: fu_elanfp_firmware_export
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ELANFP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:29,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: fu_elanfp_firmware_build
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_ELANFP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elanfp_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_elanfp_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: fu_elanfp_firmware_validate
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elanfp_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    gsize offset,\n\t\t\t    GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:56,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:74,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:77,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:85,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:87,1
    - Dst: fu_cfu_offer_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:101,1
    - Dst: fu_cfu_payload_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:105,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:108,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:111,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:112,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:118,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:126,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:134,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:137,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 151
    functionName: fu_elanfp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u32
    - fu_firmware_add_image_full
    - FU_ELANFP_FIRMWARE
    - fu_firmware_parse_stream
    - fu_firmware_set_addr
    - fu_cfu_offer_new
    - fu_cfu_payload_new
    - g_autoptr
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_firmware_get_image_by_idx
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elanfp_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:158,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:159,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:159,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:162,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:163,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:164,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:165,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:171,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:171,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:174,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:174,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:175,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:176,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:177,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:177,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:178,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:182,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:183,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:184,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:190,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:190,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:193,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: fu_elanfp_firmware_write
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - FU_ELANFP_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_firmware_get_idx
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elanfp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:203,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:203,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:204,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanfpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: fu_elanfp_firmware_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_firmware_init(FuElanfpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: fu_elanfp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elanfp_firmware_class_init(FuElanfpFirmwareClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:20,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:23,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:24,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: fu_bios_plugin_startup
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_context_get_hwid_value
    - fu_plugin_get_context
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:35,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:39,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:42,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:43,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:44,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:49,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:50,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:51,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:52,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:53,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: fu_bios_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_plugin_get_context
    - fu_efivars_supported
    - fu_plugin_add_flag
    - fu_context_get_efivars
    - g_autoptr
    - g_file_test
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:65,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:67,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:71,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:72,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:73,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:75,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:76,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: fu_bios_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_bios_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: fu_bios_plugin_init
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bios_plugin_init(FuBiosPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: fu_bios_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bios_plugin_class_init(FuBiosPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRallysystemPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_logitech_rallysystem_plugin_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_plugin_init(FuLogitechRallysystemPlugin
      *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:42,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:42,1
    - Dst: FU_IS_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:43,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:44,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:46,1
    - Dst: FU_IS_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:47,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:48,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:50,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:51,1
    - Dst: FU_IS_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:55,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:56,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:58,1
    - Dst: FU_IS_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:59,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:60,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:61,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:62,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 69
    functionName: fu_logitech_rallysystem_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_plugin_get_devices
    - g_debug
    - fu_device_get_version
    - FU_IS_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
    - g_ptr_array_index
    - FU_IS_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_plugin_device_added(FuPlugin *plugin,
      FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:74,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:75,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:76,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: fu_logitech_rallysystem_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: fu_logitech_rallysystem_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_plugin_class_init(FuLogitechRallysystemPluginClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:32,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:32,1
    - Dst: fu_memread_uint24_safe
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:39,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRallysystemAudioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: fu_logitech_rallysystem_audio_device_set_version
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_memread_uint24_safe
    - FU_DEVICE
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_audio_device_set_version(FuLogitechRallysystemAudioDevice
      *self,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:61,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:61,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:64,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:64,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:72,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:75,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:75,1
    - Dst: fu_struct_audio_serial_number_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:84,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:87,1
    - Dst: fu_struct_audio_serial_number_get_pid
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:89,1
    - Dst: fu_struct_audio_serial_number_get_year
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:90,1
    - Dst: fu_struct_audio_serial_number_get_month
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:91,1
    - Dst: fu_struct_audio_serial_number_get_day
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:92,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:94,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRallysystemAudioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 99
    functionName: fu_logitech_rallysystem_audio_device_set_serial
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_hidraw_device_get_feature
    - g_string_new
    - fu_hidraw_device_set_feature
    - fu_struct_audio_serial_number_get_year
    - FU_HIDRAW_DEVICE
    - fu_struct_audio_serial_number_get_month
    - fu_struct_audio_serial_number_parse
    - FU_DEVICE
    - fu_device_set_serial
    - g_autoptr
    - fu_struct_audio_serial_number_get_day
    - fu_struct_audio_serial_number_get_pid
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_audio_device_set_serial(FuLogitechRallysystemAudioDevice
      *self,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:104,1
    - Dst: fu_logitech_rallysystem_audio_device_set_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:105,1
    - Dst: fu_logitech_rallysystem_audio_device_set_serial
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: fu_logitech_rallysystem_audio_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_rallysystem_audio_device_set_serial
    - fu_logitech_rallysystem_audio_device_set_version
    - FU_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rallysystem_audio_device_setup(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:115,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:116,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:117,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:118,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:119,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: fu_logitech_rallysystem_audio_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_audio_device_set_progress(FuDevice *self,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:137,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: fu_logitech_rallysystem_audio_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_rallysystem_audio_device_convert_version(FuDevice *device, guint64
      version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:143,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:144,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:145,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:146,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:146,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:147,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:147,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:148,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRallysystemAudioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: fu_logitech_rallysystem_audio_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_audio_device_init(FuLogitechRallysystemAudioDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemAudioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: fu_logitech_rallysystem_audio_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_audio_device_class_init(FuLogitechRallysystemAudioDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:31,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_logitech_rallysystem_tablehub_device_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_tablehub_device_to_string(FuDevice *device,
      guint idt, GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:41,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:43,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:43,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:47,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:49,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:49,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:50,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:54,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:56,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:63,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:69,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: fu_logitech_rallysystem_tablehub_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - fu_usb_interface_get_endpoints
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_address
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rallysystem_tablehub_device_probe(FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:80,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:92,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuLogitechRallysystemTablehubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: fu_logitech_rallysystem_tablehub_device_send
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_send(FuLogitechRallysystemTablehubDevice
      *self,\n\t\t\t\t\t     guint8 *buf,\n\t\t\t\t\t     gsize bufsz,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:118,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:122,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - timeout
    - error
    argTypes:
    - FuLogitechRallysystemTablehubDevice*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: fu_logitech_rallysystem_tablehub_device_recv
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_recv(FuLogitechRallysystemTablehubDevice
      *self,\n\t\t\t\t\t     guint8 *buf,\n\t\t\t\t\t     gsize bufsz,\n\t\t\t\t\t
      \    guint timeout,\n\t\t\t\t\t     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:138,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:138,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:145,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:146,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:146,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:148,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:152,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:155,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:155,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:155,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:158,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:160,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:162,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuLogitechRallysystemTablehubDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: fu_logitech_rallysystem_tablehub_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_memdup_safe
    - fu_chunk_array_length
    - fu_logitech_rallysystem_tablehub_device_send
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_write_fw(FuLogitechRallysystemTablehubDevice
      *self,\n\t\t\t\t\t\t GInputStream *stream,\n\t\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:178,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:186,1
    - Dst: fu_struct_usb_progress_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:189,1
    - Dst: fu_struct_usb_progress_response_get_completed
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:193,1
    - Dst: fu_struct_usb_progress_response_get_completed
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: fu_logitech_rallysystem_tablehub_device_progress_cb
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_usb_progress_response_get_completed
    - fu_struct_usb_progress_response_parse
    - g_prefix_error
    - fu_logitech_rallysystem_tablehub_device_recv
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_progress_cb(FuDevice
      *device,\n\t\t\t\t\t\t    gpointer user_data,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:216,1
    - Dst: fu_struct_usb_firmware_download_request_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:217,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:223,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:224,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:227,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:230,1
    - Dst: fu_struct_usb_firmware_download_request_set_len
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:232,1
    - Dst: fu_struct_usb_firmware_download_request_set_fw_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:233,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:234,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:236,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:239,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:240,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:243,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:249,1
    - Dst: fu_struct_usb_firmware_download_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:254,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:257,1
    - Dst: fu_logitech_rallysystem_tablehub_device_write_fw
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:260,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:262,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:265,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:269,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:275,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:278,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:282,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:282,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:283,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:286,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 288
    functionName: fu_logitech_rallysystem_tablehub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_firmware_get_stream
    - fu_logitech_rallysystem_tablehub_device_send
    - g_prefix_error
    - fu_progress_get_child
    - fu_device_get_version
    - fu_struct_usb_firmware_download_request_new
    - fu_struct_usb_firmware_download_request_set_len
    - fu_progress_add_step
    - fu_device_add_flag
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - fu_progress_set_id
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_logitech_rallysystem_tablehub_device_recv
    - g_autoptr
    - fu_struct_usb_firmware_download_request_set_fw_version
    - fu_logitech_rallysystem_tablehub_device_write_fw
    - FU_DEVICE
    - fu_struct_usb_firmware_download_response_parse
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_write_firmware(FuDevice
      *device,\n\t\t\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t\t\t       FuProgress
      *progress,\n\t\t\t\t\t\t       FwupdInstallFlags flags,\n\t\t\t\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:297,1
    - Dst: fu_struct_usb_init_request_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:298,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:300,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:301,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:304,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:310,1
    - Dst: fu_struct_usb_init_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 321
    functionName: fu_logitech_rallysystem_tablehub_device_send_init_cmd_cb
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_rallysystem_tablehub_device_send
    - fu_struct_usb_init_response_parse
    - g_prefix_error
    - fu_struct_usb_init_request_new
    - fu_logitech_rallysystem_tablehub_device_recv
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_tablehub_device_send_init_cmd_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:329,1
    - Dst: fu_struct_usb_read_version_request_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:330,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:333,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:338,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:343,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:348,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:349,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:354,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:360,1
    - Dst: fu_struct_usb_read_version_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:365,1
    - Dst: fu_struct_usb_read_version_response_get_fw_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:368,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 373
    functionName: fu_logitech_rallysystem_tablehub_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_struct_usb_read_version_response_parse
    - fu_device_set_version
    - fu_struct_usb_read_version_response_get_fw_version
    - FU_DEVICE_CLASS
    - fu_logitech_rallysystem_tablehub_device_send
    - g_prefix_error
    - fu_struct_usb_read_version_request_new
    - fu_logitech_rallysystem_tablehub_device_recv
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rallysystem_tablehub_device_setup(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:378,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:379,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:380,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:381,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:382,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 384
    functionName: fu_logitech_rallysystem_tablehub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_tablehub_device_set_progress(FuDevice
      *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:389,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:390,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:391,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:392,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:393,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRallysystemTablehubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 6
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: fu_logitech_rallysystem_tablehub_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_tablehub_device_init(FuLogitechRallysystemTablehubDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemTablehubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: fu_logitech_rallysystem_tablehub_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rallysystem_tablehub_device_class_init(FuLogitechRallysystemTablehubDeviceClass
      *klass)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_HID_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:31,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:34,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:37,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:40,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:48,1
    - Dst: fu_synaptics_cape_firmware_set_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:51,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:51,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:52,1
    - Dst: fu_synaptics_cape_firmware_set_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:53,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:53,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:54,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:55,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_ver_z
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:56,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_ver_y
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:57,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_ver_x
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:58,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_get_ver_w
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:59,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:60,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:60,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:63,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:69,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:71,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:72,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:75,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:78,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: fu_synaptics_cape_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_cape_hid_hdr_get_ver_y
    - fu_firmware_set_stream
    - FU_SYNAPTICS_CAPE_HID_FIRMWARE
    - FU_FIRMWARE
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_struct_synaptics_cape_hid_hdr_get_pid
    - fu_struct_synaptics_cape_hid_hdr_get_vid
    - fu_synaptics_cape_firmware_set_pid
    - fu_struct_synaptics_cape_hid_hdr_parse_stream
    - fu_firmware_add_image
    - fu_struct_synaptics_cape_hid_hdr_get_ver_x
    - fu_struct_synaptics_cape_hid_hdr_get_ver_w
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - g_strdup_printf
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_synaptics_cape_firmware_set_vid
    - fu_input_stream_size
    - fu_struct_synaptics_cape_hid_hdr_get_ver_z
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_hid_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_HID_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:87,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:89,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:90,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:93,1
    - Dst: fu_synaptics_cape_firmware_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:95,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:95,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:96,1
    - Dst: fu_synaptics_cape_firmware_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:98,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:98,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_crc
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:99,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_w
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:100,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_x
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:101,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_y
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:102,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_z
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:103,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:106,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:109,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:110,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 113
    functionName: fu_synaptics_cape_hid_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_synaptics_cape_firmware_get_pid
    - fu_byte_array_append_bytes
    - fu_struct_synaptics_cape_hid_hdr_set_crc
    - g_steal_pointer
    - fu_synaptics_cape_firmware_get_vid
    - fu_firmware_get_bytes_with_patches
    - FU_SYNAPTICS_CAPE_HID_FIRMWARE
    - fu_firmware_get_version_raw
    - fu_struct_synaptics_cape_hid_hdr_set_ver_z
    - fu_struct_synaptics_cape_hid_hdr_new
    - fu_struct_synaptics_cape_hid_hdr_set_ver_x
    - g_autoptr
    - fu_struct_synaptics_cape_hid_hdr_set_vid
    - fu_struct_synaptics_cape_hid_hdr_set_ver_w
    - fu_byte_array_align_up
    - fu_struct_synaptics_cape_hid_hdr_set_ver_y
    - fu_struct_synaptics_cape_hid_hdr_set_pid
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_cape_hid_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: fu_synaptics_cape_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_hid_firmware_init(FuSynapticsCapeHidFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: fu_synaptics_cape_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_hid_firmware_class_init(FuSynapticsCapeHidFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:131,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: fu_synaptics_cape_hid_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_cape_hid_firmware_new(void)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:31,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:38,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:45,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:53,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_file_size
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:56,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:67,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:69,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:72,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_file_crc
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:77,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:78,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_file_crc
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:82,1
    - Dst: fu_synaptics_cape_firmware_set_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:88,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:88,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:89,1
    - Dst: fu_synaptics_cape_firmware_set_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:90,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:90,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:91,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:92,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_fw_version
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:92,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:94,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_get_fw_file_num
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:97,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 108
    functionName: fu_synaptics_cape_sngl_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_cape_sngl_hdr_get_file_size
    - fu_struct_synaptics_cape_sngl_hdr_get_file_crc
    - fu_struct_synaptics_cape_sngl_hdr_get_fw_version
    - fu_input_stream_compute_crc32
    - FU_FIRMWARE
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - g_set_error
    - fu_synaptics_cape_firmware_set_pid
    - FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
    - fu_struct_synaptics_cape_sngl_hdr_get_pid
    - fu_struct_synaptics_cape_sngl_hdr_get_vid
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_firmware_set_version
    - fu_struct_synaptics_cape_sngl_hdr_parse_stream
    - fu_struct_synaptics_cape_sngl_hdr_get_fw_file_num
    - g_set_error_literal
    - fu_synaptics_cape_firmware_set_vid
    - fu_version_from_uint32
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_sngl_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:114,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:114,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_set_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:117,1
    - Dst: fu_synaptics_cape_firmware_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:119,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:119,1
    - Dst: fu_struct_synaptics_cape_sngl_hdr_set_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:120,1
    - Dst: fu_synaptics_cape_firmware_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:122,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: fu_synaptics_cape_sngl_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_synaptics_cape_firmware_get_pid
    - g_steal_pointer
    - fu_synaptics_cape_firmware_get_vid
    - fu_struct_synaptics_cape_sngl_hdr_set_vid
    - fu_struct_synaptics_cape_sngl_hdr_new
    - g_autoptr
    - fu_struct_synaptics_cape_sngl_hdr_set_pid
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_cape_sngl_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:131,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeSnglFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: fu_synaptics_cape_sngl_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_sngl_firmware_init(FuSynapticsCapeSnglFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeSnglFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: fu_synaptics_cape_sngl_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_sngl_firmware_class_init(FuSynapticsCapeSnglFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:23,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_synaptics_cape_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_plugin_init(FuSynapticsCapePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: fu_synaptics_cape_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_synaptics_cape_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_plugin_class_init(FuSynapticsCapePluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 1296
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:23,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:24,1
    - Dst: FU_IS_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: fu_synaptics_cape_firmware_get_vid
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_synaptics_cape_firmware_get_vid(FuSynapticsCapeFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:31,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:32,1
    - Dst: FU_IS_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - vid
    argTypes:
    - FuSynapticsCapeFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_synaptics_cape_firmware_set_vid
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_firmware_set_vid(FuSynapticsCapeFirmware *self,
      guint16 vid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:39,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:40,1
    - Dst: FU_IS_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: fu_synaptics_cape_firmware_get_pid
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_synaptics_cape_firmware_get_pid(FuSynapticsCapeFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:47,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:48,1
    - Dst: FU_IS_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pid
    argTypes:
    - FuSynapticsCapeFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: fu_synaptics_cape_firmware_set_pid
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_firmware_set_pid(FuSynapticsCapeFirmware *self,
      guint16 pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:57,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:58,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:59,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: fu_synaptics_cape_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_cape_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:66,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:67,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:71,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: fu_synaptics_cape_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - xb_node_query_text_as_uint
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:85,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: fu_synaptics_cape_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_firmware_init(FuSynapticsCapeFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: fu_synaptics_cape_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_firmware_class_init(FuSynapticsCapeFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:49,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:49,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:50,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:51,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:53,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:55,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeCmdHidReport*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: fu_synaptics_cape_device_set_report
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_set_report(FuSynapticsCapeDevice
      *self,\n\t\t\t\t    const FuSynapticsCapeCmdHidReport *data,\n\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:70,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - st_report
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeCmdHidReport*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: fu_synaptics_cape_device_get_report
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_get_report(FuSynapticsCapeDevice
      *self,\n\t\t\t\t    FuSynapticsCapeCmdHidReport *st_report,\n\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:86,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:86,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:87,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:88,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:89,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:89,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:97,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeCmdHidReport*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: fu_synaptics_cape_device_get_report_intr
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_prefix_error
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_get_report_intr(FuSynapticsCapeDevice
      *self,\n\t\t\t\t\t FuSynapticsCapeCmdHidReport *data,\n\t\t\t\t\t GError **error)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:114,1
    - Dst: fu_synaptics_cape_msg_get_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:116,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:124,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:127,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:142,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:160,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:172,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:220,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:226,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:232,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:238,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - rsp
    - error
    argTypes:
    - FuSynapticsCapeMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 243
    functionName: fu_synaptics_cape_device_rc_set_error
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cape_msg_get_data_len
    - g_set_error
    - g_return_val_if_fail
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_rc_set_error(const FuSynapticsCapeMsg
      *rsp, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:254,1
    - Dst: fu_synaptics_cape_cmd_hid_report_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:256,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:259,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:262,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:263,1
    - Dst: fu_synaptics_cape_cmd_hid_report_set_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:268,1
    - Dst: fu_synaptics_cape_device_set_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:271,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:272,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:276,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:284,1
    - Dst: fu_synaptics_cape_device_get_report_intr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:286,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:288,1
    - Dst: fu_synaptics_cape_msg_get_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:290,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:292,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:293,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:294,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:295,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:297,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:305,1
    - Dst: fu_synaptics_cape_device_get_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:306,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:308,1
    - Dst: fu_synaptics_cape_msg_get_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:310,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:312,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:315,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:318,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:319,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:321,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:322,1
    - Dst: fu_synaptics_cape_cmd_hid_report_get_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:326,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:327,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:330,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:330,1
    - Dst: fu_synaptics_cape_cmd_hid_report_get_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:335,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:337,1
    - Dst: fu_synaptics_cape_device_rc_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:343,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:347,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - self
    - st_msg_req
    - delay_ms
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeMsg*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 348
    functionName: fu_synaptics_cape_device_sendcmd_ex
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_synaptics_cape_cmd_hid_report_set_msg
    - g_byte_array_ref
    - fu_synaptics_cape_device_get_report_intr
    - fu_synaptics_cape_msg_get_module_id
    - g_return_val_if_fail
    - g_set_error
    - g_debug
    - g_propagate_prefixed_error
    - fu_synaptics_cape_device_set_report
    - fu_synaptics_cape_device_rc_set_error
    - fu_synaptics_cape_msg_get_cmd_id
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - fu_synaptics_cape_device_get_report
    - fu_synaptics_cape_cmd_hid_report_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_synaptics_cape_cmd_hid_report_get_msg
    - fu_synaptics_cape_msg_set_data_len
    - fu_device_sleep
    linkageType: ''
    returnType: FuSynapticsCapeMsg
    signature: "FuSynapticsCapeMsg *\nfu_synaptics_cape_device_sendcmd_ex(FuSynapticsCapeDevice
      *self,\n\t\t\t\t    FuSynapticsCapeMsg *st_msg_req,\n\t\t\t\t    guint delay_ms,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:360,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:361,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:362,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:363,1
    - Dst: fu_synaptics_cape_msg_set_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:364,1
    - Dst: fu_synaptics_cape_msg_set_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:366,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - self
    - module_id
    - cmd_id
    - data
    - data_len
    - delay_ms
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeModuleId
    - FuSynapticsCapeCmd
    - guint32*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 369
    functionName: fu_synaptics_cape_device_sendcmd
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cape_msg_set_data
    - fu_synaptics_cape_msg_set_cmd_id
    - fu_synaptics_cape_msg_new
    - g_autoptr
    - fu_synaptics_cape_msg_set_data_len
    - fu_synaptics_cape_msg_set_module_id
    - fu_synaptics_cape_device_sendcmd_ex
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_sendcmd(FuSynapticsCapeDevice *self,\n\t\t\t\t
      FuSynapticsCapeModuleId module_id,\n\t\t\t\t FuSynapticsCapeCmd cmd_id,\n\t\t\t\t
      const guint32 *data,\n\t\t\t\t gsize data_len,\n\t\t\t\t guint delay_ms,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:376,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:376,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: fu_synaptics_cape_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fwupd_codec_string_append_int
    - FU_SYNAPTICS_CAPE_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:385,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:385,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:387,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:388,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:390,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:397,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:401,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:403,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 382
    functionDepth: 8
    functionLinenumber: 382
    functionLinenumberEnd: 407
    functionName: fu_synaptics_cape_device_reset
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_timer_new
    - g_timer_elapsed
    - g_prefix_error
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - FU_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    - fu_synaptics_cape_device_sendcmd
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_reset(FuSynapticsCapeDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:423,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:424,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:426,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:426,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:427,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:429,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:430,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:434,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 420
    functionDepth: 7
    functionLinenumber: 420
    functionLinenumberEnd: 447
    functionName: fu_synaptics_cape_device_setup_active_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_cape_msg_set_cmd_id
    - fu_synaptics_cape_msg_get_data
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_synaptics_cape_msg_new
    - g_autoptr
    - g_return_val_if_fail
    - fu_synaptics_cape_device_sendcmd_ex
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_setup_active_partition(FuSynapticsCapeDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:454,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:455,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:458,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:459,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:460,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:465,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:466,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:467,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:468,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:469,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 450
    functionDepth: 7
    functionLinenumber: 450
    functionLinenumberEnd: 474
    functionName: fu_synaptics_cape_device_setup_version
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cape_msg_set_cmd_id
    - fu_synaptics_cape_msg_get_data
    - fu_synaptics_cape_msg_new
    - FU_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_device_set_version_raw
    - fu_synaptics_cape_msg_set_data_len
    - fu_synaptics_cape_device_sendcmd_ex
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_setup_version(FuSynapticsCapeDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:481,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:482,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:485,1
    - Dst: fu_synaptics_cape_device_setup_version
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:488,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:489,1
    - Dst: fu_synaptics_cape_device_setup_active_partition
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:493,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 476
    functionDepth: 8
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: fu_synaptics_cape_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cape_device_setup_active_partition
    - FU_DEVICE_CLASS
    - g_prefix_error
    - FU_SYNAPTICS_CAPE_DEVICE
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_synaptics_cape_device_setup_version
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:512,1
    - Dst: fu_synaptics_cape_hid_firmware_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:513,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:517,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:520,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:531,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:534,1
    - Dst: fu_synaptics_cape_firmware_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:540,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:540,1
    - Dst: fu_synaptics_cape_firmware_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:542,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:542,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:544,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:544,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:545,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:552,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 560
    functionName: fu_synaptics_cape_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_device_get_pid
    - fu_synaptics_cape_firmware_get_pid
    - g_set_error
    - g_steal_pointer
    - fu_synaptics_cape_hid_firmware_new
    - fu_synaptics_cape_firmware_get_vid
    - fu_device_get_vid
    - FU_SYNAPTICS_CAPE_DEVICE
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_cape_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:572,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:572,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:573,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:574,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:576,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:580,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:588,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:589,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 563
    functionDepth: 8
    functionLinenumber: 563
    functionLinenumberEnd: 605
    functionName: fu_synaptics_cape_device_write_firmware_header
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_memcpy_safe
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - g_set_error_literal
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_synaptics_cape_device_sendcmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_write_firmware_header(FuSynapticsCapeDevice
      *self,\n\t\t\t\t\t       GBytes *fw,\n\t\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:614,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:617,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:625,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:626,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:626,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:630,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:633,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:638,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:639,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:640,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:643,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:650,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:657,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 608
    functionDepth: 8
    functionLinenumber: 608
    functionLinenumberEnd: 665
    functionName: fu_synaptics_cape_device_write_firmware_image
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_new0
    - g_prefix_error
    - fu_memcpy_safe
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    - fu_synaptics_cape_device_sendcmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_write_firmware_image(FuSynapticsCapeDevice
      *self,\n\t\t\t\t\t      GInputStream *stream,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:675,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:679,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:680,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:681,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:684,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:685,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:686,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:687,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:688,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:690,1
    - Dst: fu_synaptics_cape_device_write_firmware_header
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:693,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:694,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:697,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:700,1
    - Dst: fu_synaptics_cape_device_write_firmware_image
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:703,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:705,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:707,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:710,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:713,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:720,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:723,1
    - Dst: fu_synaptics_cape_device_reset
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:726,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:728,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 668
    functionDepth: 9
    functionLinenumber: 668
    functionLinenumberEnd: 733
    functionName: fu_synaptics_cape_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_firmware_get_stream
    - fu_synaptics_cape_device_write_firmware_image
    - fu_progress_get_child
    - g_prefix_error
    - FU_SYNAPTICS_CAPE_DEVICE
    - fu_progress_add_step
    - fu_synaptics_cape_device_write_firmware_header
    - fu_synaptics_cape_device_reset
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_firmware_get_image_by_id_bytes
    - fu_device_add_flag
    - fu_progress_set_id
    - g_autoptr
    - g_return_val_if_fail
    - fu_synaptics_cape_device_sendcmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cape_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:738,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:739,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:740,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:741,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:742,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 744
    functionName: fu_synaptics_cape_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:749,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: fu_synaptics_cape_device_convert_version
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_synaptics_cape_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:755,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:755,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:756,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:757,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:758,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:758,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:759,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:760,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:761,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:762,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 6
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: fu_synaptics_cape_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_register_private_flag
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_device_init(FuSynapticsCapeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: fu_synaptics_cape_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cape_device_class_init(FuSynapticsCapeDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:81,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:87,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:87,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - usb_device
    - buf
    - interface_id
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - FuUsbDevice*
    - GByteArray*
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: fu_logitech_scribe_device_send
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_send(FuLogitechScribeDevice *self,\n\t\t\t
      \      FuUsbDevice *usb_device,\n\t\t\t       GByteArray *buf,\n\t\t\t       gint
      interface_id,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:116,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:122,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - self
    - usb_device
    - buf
    - interface_id
    - timeout
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - FuUsbDevice*
    - GByteArray*
    - gint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 134
    functionName: fu_logitech_scribe_device_recv
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_recv(FuLogitechScribeDevice *self,\n\t\t\t
      \      FuUsbDevice *usb_device,\n\t\t\t       GByteArray *buf,\n\t\t\t       gint
      interface_id,\n\t\t\t       guint timeout,\n\t\t\t       GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:145,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:146,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:146,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:148,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:149,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:153,1
    - Dst: fu_logitech_scribe_device_send
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:157,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:161,1
    - Dst: fu_logitech_scribe_device_recv
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:168,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:184,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:191,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - self
    - usb_device
    - cmd
    - buf
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - FuUsbDevice*
    - guint32
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 208
    functionName: fu_logitech_scribe_device_send_upd_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_scribe_device_send
    - fu_memread_uint32_safe
    - fu_logitech_scribe_device_recv
    - g_autoptr
    - fu_byte_array_set_size
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_send_upd_cmd(FuLogitechScribeDevice
      *self,\n\t\t\t\t       FuUsbDevice *usb_device,\n\t\t\t\t       guint32 cmd,\n\t\t\t\t
      \      GByteArray *buf,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: fu_logitech_scribe_device_compute_hash_cb
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_checksum_update
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_compute_hash_cb(const guint8 *buf,\n\t\t\t\t\t
      \ gsize bufsz,\n\t\t\t\t\t  gpointer user_data,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:226,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:226,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:227,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:232,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: fu_logitech_scribe_device_compute_hash
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_checksum_get_digest
    - fu_input_stream_chunkify
    - g_checksum_new
    - g_autoptr
    - g_base64_encode
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_scribe_device_compute_hash(GInputStream *stream, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: fu_logitech_scribe_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t\t\t
      \ gpointer ptr,\n\t\t\t\t\t  guint8 *buf,\n\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:262,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:262,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:262,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:265,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:266,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:267,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:268,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:269,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:285,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - self
    - unit_id
    - control_selector
    - data_size
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - guchar
    - guchar
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 293
    functionName: fu_logitech_scribe_device_query_data_size
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_query_data_size(FuLogitechScribeDevice
      *self,\n\t\t\t\t\t  guchar unit_id,\n\t\t\t\t\t  guchar control_selector,\n\t\t\t\t\t
      \ guint16 *data_size,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:308,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:308,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:308,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:311,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:312,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:313,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:314,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:315,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:320,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:329,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - self
    - unit_id
    - control_selector
    - buf
    - bufsz
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - guchar
    - guchar
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 337
    functionName: fu_logitech_scribe_device_get_xu_control
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_get_xu_control(FuLogitechScribeDevice
      *self,\n\t\t\t\t\t guchar unit_id,\n\t\t\t\t\t guchar control_selector,\n\t\t\t\t\t
      guint8 *buf,\n\t\t\t\t\t guint16 bufsz,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_SCRIBE_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:342,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:343,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:344,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: fu_logitech_scribe_device_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_SCRIBE_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:353,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:353,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 363
    functionName: fu_logitech_scribe_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_v4l_device_get_index
    - FU_V4L_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_scribe_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_SCRIBE_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:368,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 374
    functionName: fu_logitech_scribe_device_send_upd_init_cmd_cb
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_SCRIBE_DEVICE
    - fu_logitech_scribe_device_send_upd_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_scribe_device_send_upd_init_cmd_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:383,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:385,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:392,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:393,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:393,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:396,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:396,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:399,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:402,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:402,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:402,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:409,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - self
    - usb_device
    - stream
    - progress
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - FuUsbDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 415
    functionName: fu_logitech_scribe_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_logitech_scribe_device_send_upd_cmd
    - g_prefix_error
    - g_byte_array_new
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_write_fw(FuLogitechScribeDevice
      *self,\n\t\t\t\t   FuUsbDevice *usb_device,\n\t\t\t\t   GInputStream *stream,\n\t\t\t\t
      \  FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_SCRIBE_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:427,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:428,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:434,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:437,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:438,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:443,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:448,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:448,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:456,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:458,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:465,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:467,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:469,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:471,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:473,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:474,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:486,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:489,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:494,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:499,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:503,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:506,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:508,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:509,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:514,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:517,1
    - Dst: fu_logitech_scribe_device_write_fw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:520,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:523,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:526,1
    - Dst: fu_logitech_scribe_device_compute_hash
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:529,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:532,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:533,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:534,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:537,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:537,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:538,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:543,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:546,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:550,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:555,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:559,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:565,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:565,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:566,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:567,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 79
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 417
    functionDepth: 8
    functionLinenumber: 417
    functionLinenumberEnd: 571
    functionName: fu_logitech_scribe_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_firmware_get_stream
    - strlen
    - fu_logitech_scribe_device_send_upd_cmd
    - g_prefix_error
    - fu_logitech_scribe_device_write_fw
    - fu_input_stream_size
    - fu_byte_array_append_uint32
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_progress_set_id
    - FU_USB_DEVICE
    - fu_usb_endpoint_get_address
    - fu_logitech_scribe_device_compute_hash
    - fu_device_sleep_full
    - fu_usb_interface_get_number
    - fu_progress_step_done
    - FU_LOGITECH_SCRIBE_DEVICE
    - fu_usb_interface_get_endpoints
    - g_autoptr
    - fu_device_locker_new
    - g_byte_array_new
    - fu_device_get_backend_parent_with_subsystem
    - fu_byte_array_append_uint64
    - fu_usb_device_add_interface
    - g_set_error_literal
    - FU_DEVICE
    - fu_usb_device_get_interface
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_scribe_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_scribe_device_query_data_size
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:581,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:588,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:591,1
    - Dst: fu_logitech_scribe_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:592,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 573
    functionDepth: 5
    functionLinenumber: 573
    functionLinenumberEnd: 607
    functionName: fu_logitech_scribe_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_malloc0
    - fu_logitech_scribe_device_get_xu_control
    - FU_DEVICE
    - fu_device_set_version_raw
    - fu_logitech_scribe_device_query_data_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_scribe_device_ensure_version(FuLogitechScribeDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_SCRIBE_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:612,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:615,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:619,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:619,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:621,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:621,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:621,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:622,1
    - Dst: fu_logitech_scribe_device_ensure_version
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 631
    functionName: fu_logitech_scribe_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DEVICE_CLASS
    - FU_LOGITECH_SCRIBE_DEVICE
    - fu_logitech_scribe_device_ensure_version
    - FU_V4L_DEVICE
    - fu_v4l_device_get_caps
    - fu_v4l_cap_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_scribe_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:636,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:637,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:638,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:639,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:640,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: fu_logitech_scribe_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:647,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: fu_logitech_scribe_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_scribe_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:653,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:654,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:655,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:656,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:657,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:658,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:658,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechScribeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: fu_logitech_scribe_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_device_init(FuLogitechScribeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechScribeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: fu_logitech_scribe_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_device_class_init(FuLogitechScribeDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechScribePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_logitech_scribe_plugin_init
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_plugin_init(FuLogitechScribePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_logitech_scribe_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechScribePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_logitech_scribe_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_scribe_plugin_class_init(FuLogitechScribePluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:30,1
    - Dst: g_free
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:31,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - chip_name
    argTypes:
    - FuGenesysGl32xxDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: fu_genesys_gl32xx_device_set_chip_name
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_set_chip_name(FuGenesysGl32xxDevice *self,
      const gchar *chip_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:39,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:39,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:40,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:41,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:41,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: fu_genesys_gl32xx_device_cmd_get_version
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_genesys_gl32xx_device_cmd_get_version(FuGenesysGl32xxDevice *self, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:55,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_switch_to_rom_mode(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:68,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:68,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: fu_genesys_gl32xx_device_cmd_reset_usb
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_reset_usb(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:81,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fu_genesys_gl32xx_device_cmd_write_sr
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_write_sr(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:88,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: fu_genesys_gl32xx_device_cmd_write_enable
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_write_enable(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:95,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: fu_genesys_gl32xx_device_cmd_write_disable
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_write_disable(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:103,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: fu_genesys_gl32xx_device_cmd_clear_wp
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_write
    - FU_BLOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_clear_wp(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:115,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: fu_genesys_gl32xx_device_cmd_chip_erase
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_chip_erase(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:122,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: fu_genesys_gl32xx_device_cmd_wait_wip
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_none
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_cmd_wait_wip(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:134,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:137,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:141,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:144,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - self
    - addr
    - data
    - datasz
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: fu_genesys_gl32xx_device_cmd_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - fu_memwrite_uint16_safe
    - g_return_val_if_fail
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_cmd_read_flash(FuGenesysGl32xxDevice
      *self,\n\t\t\t\t\tgsize addr,\n\t\t\t\t\tguint8 *data,\n\t\t\t\t\tgsize datasz,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:157,1
    - Dst: fu_genesys_gl32xx_device_cmd_get_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:159,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:165,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:172,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:175,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:178,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:181,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 190
    functionName: fu_genesys_gl32xx_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_prefix_error
    - g_set_error_literal
    - FU_DEVICE
    - fu_genesys_gl32xx_device_cmd_get_version
    - fu_memstrsafe
    - g_autoptr
    - fu_device_add_instance_str
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_ensure_version(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:202,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:202,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:209,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:217,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:220,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - cmd
    - cmdsz
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 237
    functionName: fu_genesys_gl32xx_device_check_rom_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_memcmp_safe
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_check_rom_mode(FuGenesysGl32xxDevice
      *self,\n\t\t\t\t\tguint8 *cmd,\n\t\t\t\t\tgsize cmdsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:245,1
    - Dst: fu_genesys_gl32xx_device_check_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:253,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:255,1
    - Dst: fu_genesys_gl32xx_device_check_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:260,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 265
    functionName: fu_genesys_gl32xx_device_ensure_rom_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_set_chip_name
    - fu_genesys_gl32xx_device_check_rom_mode
    - g_debug
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_ensure_rom_mode(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:275,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:277,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:277,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:284,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:284,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:291,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:292,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:292,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:293,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:296,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:302,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 306
    functionName: fu_genesys_gl32xx_device_verify_chip_id
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_setup
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    - g_strdup_printf
    - fu_device_get_context
    - fu_block_device_sg_io_cmd_write
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_get_name
    - g_autoptr
    - fu_cfi_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_verify_chip_id(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:311,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:312,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:315,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:316,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:322,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 327
    functionName: fu_genesys_gl32xx_device_ensure_enforce_requires
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_version
    - fu_device_add_private_flag
    - g_str_has_prefix
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_ensure_enforce_requires(FuGenesysGl32xxDevice
      *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:335,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:349,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:357,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:357,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:364,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:365,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 376
    functionName: fu_genesys_gl32xx_device_ensure_cid
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_memread_uint32
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_u32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_ensure_cid(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:384,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:384,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 414
    functionName: fu_genesys_gl32xx_device_get_usb_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_get_usb_mode(FuGenesysGl32xxDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_gl32xx_device_cmd_write_enable
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:421,1
    - Dst: fu_genesys_gl32xx_device_cmd_clear_wp
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:426,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:427,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:430,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_enable
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:433,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:434,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:437,1
    - Dst: fu_genesys_gl32xx_device_cmd_chip_erase
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:440,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:441,1
    - Dst: fu_genesys_gl32xx_device_cmd_wait_wip
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:446,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 453
    functionName: fu_genesys_gl32xx_device_erase
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_cmd_chip_erase
    - fu_genesys_gl32xx_device_cmd_clear_wp
    - fu_genesys_gl32xx_device_cmd_write_enable
    - g_prefix_error
    - FU_DEVICE
    - fu_genesys_gl32xx_device_cmd_wait_wip
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_erase(FuGenesysGl32xxDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:458,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:459,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:460,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: fu_genesys_gl32xx_device_to_string
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_GENESYS_GL32XX_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:467,1
    - Dst: fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:470,1
    - Dst: fu_genesys_gl32xx_device_get_usb_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:474,1
    - Dst: fu_genesys_gl32xx_device_verify_chip_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:476,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_sr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:480,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 464
    functionDepth: 6
    functionLinenumber: 464
    functionLinenumberEnd: 487
    functionName: fu_genesys_gl32xx_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
    - FU_GENESYS_GL32XX_DEVICE
    - fu_genesys_gl32xx_device_get_usb_mode
    - fu_genesys_gl32xx_device_cmd_write_sr
    - g_prefix_error
    - fu_genesys_gl32xx_device_verify_chip_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:492,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:493,1
    - Dst: fu_genesys_gl32xx_device_cmd_reset_usb
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: fu_genesys_gl32xx_device_attach
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_GENESYS_GL32XX_DEVICE
    - fu_genesys_gl32xx_device_cmd_reset_usb
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:500,1
    - Dst: fu_genesys_gl32xx_device_ensure_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:503,1
    - Dst: fu_genesys_gl32xx_device_ensure_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:507,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:513,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:514,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:515,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:517,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:518,1
    - Dst: fu_genesys_gl32xx_device_ensure_cid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:521,1
    - Dst: fu_genesys_gl32xx_device_ensure_enforce_requires
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 527
    functionName: fu_genesys_gl32xx_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_genesys_gl32xx_device_ensure_cid
    - FU_GENESYS_GL32XX_DEVICE
    - fu_device_has_vendor_id
    - g_prefix_error
    - fu_genesys_gl32xx_device_ensure_rom_mode
    - g_strdup_printf
    - fu_genesys_gl32xx_device_ensure_version
    - fu_genesys_gl32xx_device_ensure_enforce_requires
    - fu_genesys_gl32xx_device_set_chip_name
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:532,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:534,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:535,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:537,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:539,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:540,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:542,1
    - Dst: fu_genesys_gl32xx_device_cmd_read_flash
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:543,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:544,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:545,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:546,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:548,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:551,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:554,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 555
    functionName: fu_genesys_gl32xx_device_dump_bytes
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - FU_GENESYS_GL32XX_DEVICE
    - fu_chunk_get_address
    - g_steal_pointer
    - g_bytes_new_take
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_malloc0
    - g_ptr_array_index
    - fu_device_get_firmware_size_max
    - fu_progress_set_id
    - g_autoptr
    - fu_genesys_gl32xx_device_cmd_read_flash
    - fu_progress_set_steps
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_genesys_gl32xx_device_dump_bytes(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:563,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:564,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:571,1
    - Dst: fu_genesys_gl32xx_device_dump_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:572,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 557
    functionDepth: 7
    functionLinenumber: 557
    functionLinenumberEnd: 578
    functionName: fu_genesys_gl32xx_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_GL32XX_DEVICE
    - g_steal_pointer
    - fu_genesys_gl32xx_device_dump_bytes
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_genesys_gl32xx_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:583,1
    - Dst: fu_genesys_gl32xx_firmware_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:584,1
    - Dst: fu_genesys_gl32xx_device_dump_firmware
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:586,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:589,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 580
    functionDepth: 8
    functionLinenumber: 580
    functionLinenumberEnd: 594
    functionName: fu_genesys_gl32xx_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_genesys_gl32xx_firmware_new
    - g_autoptr
    - fu_genesys_gl32xx_device_dump_firmware
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_genesys_gl32xx_device_read_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:603,1
    - Dst: fu_genesys_gl32xx_firmware_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:603,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:605,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:609,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:609,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:610,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:615,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:616,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 624
    functionName: fu_genesys_gl32xx_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - g_steal_pointer
    - fu_genesys_gl32xx_firmware_new
    - fu_firmware_parse_stream
    - fu_device_get_firmware_size_max
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_genesys_gl32xx_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:629,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:630,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:631,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:635,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:637,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:639,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:639,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - chunk
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 626
    functionDepth: 5
    functionLinenumber: 626
    functionLinenumberEnd: 651
    functionName: fu_genesys_gl32xx_device_write_block
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - FU_BLOCK_DEVICE
    - g_prefix_error
    - fu_memwrite_uint16_safe
    - fu_block_device_sg_io_cmd_write
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_write_block(FuGenesysGl32xxDevice
      *self, FuChunk *chunk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:660,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:661,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:661,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:662,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:663,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:666,1
    - Dst: fu_genesys_gl32xx_device_write_block
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:669,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:670,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 653
    functionDepth: 6
    functionLinenumber: 653
    functionLinenumberEnd: 678
    functionName: fu_genesys_gl32xx_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_genesys_gl32xx_device_write_block
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_write_blocks(FuGenesysGl32xxDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:690,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:693,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:696,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:697,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:700,1
    - Dst: fu_genesys_gl32xx_device_erase
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:705,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:707,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:710,1
    - Dst: fu_genesys_gl32xx_device_write_blocks
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:714,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:716,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:719,1
    - Dst: fu_genesys_gl32xx_device_dump_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:722,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:725,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:726,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:727,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:733,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_disable
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:736,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 680
    functionDepth: 7
    functionLinenumber: 680
    functionLinenumberEnd: 743
    functionName: fu_genesys_gl32xx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - FU_GENESYS_GL32XX_DEVICE
    - fu_progress_get_child
    - fu_genesys_gl32xx_device_cmd_write_disable
    - g_prefix_error
    - fu_progress_add_step
    - fu_genesys_gl32xx_device_dump_bytes
    - g_set_error_literal
    - fu_progress_set_id
    - g_autoptr
    - fu_genesys_gl32xx_device_write_blocks
    - g_bytes_compare
    - fu_genesys_gl32xx_device_erase
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:748,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:749,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:750,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:751,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:752,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: fu_genesys_gl32xx_device_set_progress
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:762,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:766,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:767,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 779
    functionName: fu_genesys_gl32xx_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_GENESYS_GL32XX_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:786,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:787,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:788,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:788,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:790,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:791,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:792,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:792,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:793,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:793,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:794,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:794,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:795,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:795,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:796,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:796,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:797,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:797,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 781
    functionDepth: 6
    functionLinenumber: 781
    functionLinenumberEnd: 799
    functionName: fu_genesys_gl32xx_device_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_init(FuGenesysGl32xxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:804,1
    - Dst: g_free
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:805,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: fu_genesys_gl32xx_device_finalize
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_GENESYS_GL32XX_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:812,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 825
    functionName: fu_genesys_gl32xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_device_class_init(FuGenesysGl32xxDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_genesys_gl32xx_plugin_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_plugin_init(FuGenesysGl32xxPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:28,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_genesys_gl32xx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_genesys_gl32xx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_plugin_class_init(FuGenesysGl32xxPluginClass
      *klass)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:32,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:40,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:48,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:53,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:59,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:61,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: fu_genesys_gl32xx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_version
    - g_strdup_printf
    - fu_input_stream_read_u8
    - g_set_error_literal
    - fu_partial_input_stream_new
    - g_autoptr
    - fu_input_stream_compute_sum8
    - fu_input_stream_size
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:84,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: fu_genesys_gl32xx_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_firmware_init(FuGenesysGl32xxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: fu_genesys_gl32xx_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_genesys_gl32xx_firmware_class_init(FuGenesysGl32xxFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:97,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: fu_genesys_gl32xx_firmware_new
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_genesys_gl32xx_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:20,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:21,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: fu_uefi_recovery_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_context_get_efivars
    - fu_efivars_supported
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_recovery_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:29,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:31,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:31,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:31,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:32,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:33,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:34,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:35,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:36,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:37,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:38,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:39,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:40,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:41,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:43,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:44,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:48,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:50,1
    - Dst: fu_plugin_device_register
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: fu_uefi_recovery_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_device_set_metadata
    - fu_device_build_vendor_id
    - fu_plugin_get_context
    - fu_device_add_instance_id
    - fu_plugin_device_register
    - fu_device_set_id
    - fu_device_add_flag
    - g_ptr_array_index
    - fu_context_get_hwid_value
    - fu_device_new
    - g_autoptr
    - fu_device_add_icon
    - fu_context_get_hwid_guids
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_recovery_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:59,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:62,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: fu_uefi_recovery_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_uefi_recovery_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiRecoveryPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: fu_uefi_recovery_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_recovery_plugin_init(FuUefiRecoveryPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiRecoveryPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: fu_uefi_recovery_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_recovery_plugin_class_init(FuUefiRecoveryPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:41,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:42,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: fu_vbe_simple_device_to_string
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_VBE_SIMPLE_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:55,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - str
    - value
    - error
    argTypes:
    - gchar*
    - guint*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: fu_vbe_simple_device_parse_devnum
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_ascii_isdigit
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_simple_device_parse_devnum(const gchar *str, guint
      *value, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:72,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:72,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:75,1
    - Dst: fu_vbe_device_get_fdt_node
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:78,1
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:78,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:79,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:84,1
    - Dst: fu_vbe_simple_device_parse_devnum
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:89,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:90,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:93,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:96,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:106,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:108,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 125
    functionName: fu_vbe_simple_device_probe
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IS_VBE_DEVICE
    - g_str_has_prefix
    - FU_DEVICE_CLASS
    - g_prefix_error
    - g_strdup_printf
    - fu_fdt_image_get_attr_u32
    - fu_vbe_simple_device_parse_devnum
    - fu_vbe_device_get_fdt_node
    - fu_fdt_image_get_attr_str
    - g_strdup
    - FU_VBE_DEVICE
    - g_return_val_if_fail
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_simple_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:130,1
    - Dst: open
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:136,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: fu_vbe_simple_device_open
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_strerror
    - open
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_simple_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:159,1
    - Dst: close
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: fu_vbe_simple_device_close
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - close
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_simple_device_close(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:176,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:181,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:181,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:186,1
    - Dst: fu_vbe_device_get_compatible
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:189,1
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:189,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:192,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:193,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:194,1
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:199,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:201,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:206,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuVbeSimpleDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 213
    functionName: fu_vbe_simple_device_get_cfg_compatible
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_set_error
    - g_auto
    - g_strv_contains
    - fu_fdt_image_get_attr_strlist
    - g_strjoinv
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_vbe_device_get_compatible
    - FU_FDT_FIRMWARE
    - g_autoptr
    - FU_VBE_DEVICE
    - fu_fdt_firmware_get_image_by_path
    linkageType: ''
    returnType: FuFdtImage
    signature: "FuFdtImage *\nfu_vbe_simple_device_get_cfg_compatible(FuVbeSimpleDevice
      *self,\n\t\t\t\t\tFuFirmware *firmware,\n\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:222,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:226,1
    - Dst: fu_fit_firmware_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:227,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:227,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:230,1
    - Dst: fu_vbe_simple_device_get_cfg_compatible
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:234,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:237,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:245,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:246,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:248,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:248,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:251,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:251,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 256
    functionName: fu_vbe_simple_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_vbe_simple_device_get_cfg_compatible
    - fu_firmware_add_image
    - g_steal_pointer
    - g_strdup_printf
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_fit_firmware_new
    - fu_fdt_image_get_attr_str
    - g_autoptr
    - FU_FDT_FIRMWARE
    - fu_fdt_image_get_attr_strlist
    - fu_firmware_new
    - fu_fdt_firmware_get_image_by_path
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_vbe_simple_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:269,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:272,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:275,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:276,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:280,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:284,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:284,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:291,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:295,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:295,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:304,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:305,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:305,1
    - Dst: lseek
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:313,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:321,1
    - Dst: write
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:332,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:335,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:340,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuVbeSimpleDevice*
    - FuFdtImage*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 353
    functionName: fu_vbe_simple_device_write_firmware_img
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_fdt_image_get_attr
    - g_debug
    - write
    - FU_FIRMWARE
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - lseek
    - fwupd_strerror
    - g_bytes_get_data
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vbe_simple_device_write_firmware_img(FuVbeSimpleDevice
      *self,\n\t\t\t\t\tFuFdtImage *img,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:363,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:363,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:365,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:365,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:368,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:369,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:371,1
    - Dst: fu_vbe_simple_device_write_firmware_img
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:372,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:374,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 382
    functionName: fu_vbe_simple_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_IS_VBE_DEVICE
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - g_return_val_if_fail
    - fu_vbe_simple_device_write_firmware_img
    - fu_progress_set_steps
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vbe_simple_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:389,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:390,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:393,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:394,1
    - Dst: lseek
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:397,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:400,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:406,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:408,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:419,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:420,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:422,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:423,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:423,1
    - Dst: read
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:425,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:425,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:426,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:427,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:432,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:435,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:435,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:436,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 441
    functionName: fu_vbe_simple_device_upload
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_address
    - read
    - g_malloc0
    - g_byte_array_append
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - g_autoptr
    - lseek
    - fu_chunk_array_new
    - g_bytes_new
    - fwupd_strerror
    - g_byte_array_new
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_vbe_simple_device_upload(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:446,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:447,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:448,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:449,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: fu_vbe_simple_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:457,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:458,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:459,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:460,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVbeSimpleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: fu_vbe_simple_device_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_lowest
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_build_vendor_id
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_init(FuVbeSimpleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:467,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 5
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: fu_vbe_simple_device_constructed
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_instance_id
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:474,1
    - Dst: g_free
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:475,1
    - Dst: g_free
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:476,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 478
    functionName: fu_vbe_simple_device_finalize
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FU_VBE_SIMPLE_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:483,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVbeSimpleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 495
    functionName: fu_vbe_simple_device_class_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vbe_simple_device_class_init(FuVbeSimpleDeviceClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:29,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:36,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:39,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:40,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:41,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:48,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:49,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:59,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:66,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:69,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:78,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:80,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - plugin
    - fdt_root
    - fdt_node
    - error
    argTypes:
    - FuPlugin*
    - FuFdtImage*
    - FuFdtImage*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 88
    functionName: fu_vbe_plugin_coldplug_img
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - g_str_has_prefix
    - fu_plugin_device_add
    - g_prefix_error
    - g_strsplit
    - fu_plugin_get_context
    - g_object_new
    - g_strv_length
    - fu_fdt_image_get_attr_str
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vbe_plugin_coldplug_img(FuPlugin *plugin,\n\t\t\t   FuFdtImage
      *fdt_root,\n\t\t\t   FuFdtImage *fdt_node,\n\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:95,1
    - Dst: fu_context_get_fdt
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:98,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:98,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:101,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:101,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:107,1
    - Dst: fu_vbe_plugin_coldplug_img
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:108,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:109,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 125
    functionName: fu_vbe_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - fu_plugin_get_devices
    - fu_context_get_fdt
    - fu_plugin_get_context
    - fu_vbe_plugin_coldplug_img
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_ptr_array_index
    - FU_FDT_FIRMWARE
    - g_autoptr
    - fu_fdt_firmware_get_image_by_path
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVbePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: fu_vbe_plugin_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_vbe_plugin_init(FuVbePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:135,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: fu_vbe_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_vbe_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVbePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: fu_vbe_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vbe_plugin_class_init(FuVbePluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 1302
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:27,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:28,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:31,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_vbe_device_to_string
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - FU_VBE_DEVICE
    - g_strjoinv
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:39,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:40,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVbeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: fu_vbe_device_get_fdt_node
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_VBE_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFdtImage
    signature: 'FuFdtImage *

      fu_vbe_device_get_fdt_node(FuVbeDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:47,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:48,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: fu_vbe_device_get_compatible
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_VBE_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_vbe_device_get_compatible(FuVbeDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:55,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:56,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:57,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:58,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:59,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:60,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:61,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:62,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:63,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:64,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:65,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVbeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: fu_vbe_device_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_init(FuVbeDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:72,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:77,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:77,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:81,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:86,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:93,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:95,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:96,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: fu_vbe_device_probe
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_IS_VBE_DEVICE
    - fu_fdt_image_get_attr_strlist
    - fu_device_set_version_bootloader
    - g_set_error_literal
    - GET_PRIVATE
    - fu_fdt_image_get_attr_str
    - FU_VBE_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:107,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:108,1
    - Dst: g_value_set_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:111,1
    - Dst: g_value_set_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:114,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: fu_vbe_device_get_property
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - FU_VBE_DEVICE
    - GET_PRIVATE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_get_property(GObject *obj, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:125,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:126,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:129,1
    - Dst: g_value_get_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:129,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:132,1
    - Dst: g_value_get_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:132,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - obj
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: fu_vbe_device_set_property
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_set_object
    - GET_PRIVATE
    - FU_VBE_DEVICE
    - g_value_get_object
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_set_property(GObject *obj, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:143,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:144,1
    - Dst: g_strfreev
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:145,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:147,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:149,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: fu_vbe_device_finalize
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - g_strfreev
    - g_object_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_VBE_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:157,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:158,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:164,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:169,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:172,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/vbe/fu-vbe-device.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVbeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 182
    functionName: fu_vbe_device_class_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_class_init(FuVbeDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:43,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:44,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:45,1
    - Dst: getpid
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:45,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:46,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: fu_powerd_plugin_create_suspend_file
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_set_contents
    - g_build_filename
    - g_prefix_error
    - getpid
    - g_strdup_printf
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_create_suspend_file(GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:58,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:60,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:62,1
    - Dst: g_file_delete
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:63,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:64,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:65,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: fu_powerd_plugin_delete_suspend_file
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_delete
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - fu_path_from_kind
    - g_file_new_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_delete_suspend_file(GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:76,1
    - Dst: g_variant_get
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:81,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:86,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:91,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:97,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - parameters
    argTypes:
    - FuPlugin*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: fu_powerd_plugin_rescan
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_set_power_state
    - fu_context_set_battery_level
    - fu_plugin_get_context
    - g_variant_get
    linkageType: ''
    returnType: void
    signature: void fu_powerd_plugin_rescan(FuPlugin *plugin, GVariant *parameters)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:109,1
    - Dst: fu_powerd_plugin_rescan
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - proxy
    - sender_name
    - signal_name
    - parameters
    - plugin
    argTypes:
    - GDBusProxy*
    - gchar*
    - gchar*
    - GVariant*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: fu_powerd_plugin_proxy_changed_cb
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - g_str_equal
    - fu_powerd_plugin_rescan
    linkageType: ''
    returnType: void
    signature: "void fu_powerd_plugin_proxy_changed_cb(GDBusProxy *proxy,\n\t\t\t\t
      \ const gchar *sender_name,\n\t\t\t\t  const gchar *signal_name,\n\t\t\t\t  GVariant
      *parameters,\n\t\t\t\t  FuPlugin *plugin)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_POWERD_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:117,1
    - Dst: fu_powerd_plugin_delete_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:120,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:124,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:134,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:137,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:139,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:143,1
    - Dst: fu_powerd_plugin_rescan
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:147,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:148,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:156,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:156,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 162
    functionName: fu_powerd_plugin_startup
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_set_error
    - G_DBUS_PROXY
    - g_prefix_error
    - FU_POWERD_PLUGIN
    - g_dbus_proxy_get_name
    - fu_powerd_plugin_rescan
    - g_dbus_proxy_get_name_owner
    - g_dbus_proxy_new_for_bus_sync
    - fu_powerd_plugin_delete_suspend_file
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_powerd_plugin_create_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: fu_powerd_plugin_prepare
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_powerd_plugin_create_suspend_file
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_powerd_plugin_prepare(FuPlugin *plugin,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_powerd_plugin_delete_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: fu_powerd_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_powerd_plugin_delete_suspend_file
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_powerd_plugin_cleanup(FuPlugin *plugin,\n\t\t\t FuDevice
      *device,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPowerdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: fu_powerd_plugin_init
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_powerd_plugin_init(FuPowerdPlugin *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_POWERD_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:192,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:194,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: fu_powerd_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_POWERD_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_powerd_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:201,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPowerdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: fu_powerd_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_powerd_plugin_class_init(FuPowerdPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:44,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:45,1
    - Dst: fu_wistron_dock_component_idx_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:48,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:49,1
    - Dst: fu_wistron_dock_update_phase_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:52,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:53,1
    - Dst: fu_wistron_dock_status_code_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:56,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:57,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:58,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: fu_wistron_dock_device_to_string
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_wistron_dock_update_phase_to_string
    - fu_wistron_dock_status_code_to_string
    - fu_wistron_dock_component_idx_to_string
    - fwupd_codec_string_append_hex
    - FU_WISTRON_DOCK_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:74,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:74,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:83,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: fu_wistron_dock_device_control_cb
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_control_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - cmd
    - cmdsz
    - check_result
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: fu_wistron_dock_device_control_write
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_control_write(FuWistronDockDevice
      *self,\n\t\t\t\t     guint8 *cmd,\n\t\t\t\t     gsize cmdsz,\n\t\t\t\t     gboolean
      check_result,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - self
    - cmd
    - cmdsz
    - buf
    - bufsz
    - check_result
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 143
    functionName: fu_wistron_dock_device_control_read
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_control_read(FuWistronDockDevice *self,\n\t\t\t\t
      \   guint8 *cmd,\n\t\t\t\t    gsize cmdsz,\n\t\t\t\t    guint8 *buf,\n\t\t\t\t
      \   gsize bufsz,\n\t\t\t\t    gboolean check_result,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:149,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:149,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:157,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:157,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:165,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 182
    functionName: fu_wistron_dock_device_data_write_cb
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_data_write_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - cmd
    - cmdsz
    - buf
    - bufsz
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: fu_wistron_dock_device_data_write
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_data_write(FuWistronDockDevice *self,\n\t\t\t\t
      \ guint8 *cmd,\n\t\t\t\t  gsize cmdsz,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize
      bufsz,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:210,1
    - Dst: fu_wistron_dock_device_data_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: fu_wistron_dock_device_write_wdfl_sig
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_wistron_dock_device_data_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_write_wdfl_sig(FuWistronDockDevice
      *self,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t      gsize bufsz,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:235,1
    - Dst: fu_wistron_dock_device_data_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 250
    functionName: fu_wistron_dock_device_write_wdfl_data
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_wistron_dock_device_data_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_write_wdfl_data(FuWistronDockDevice
      *self,\n\t\t\t\t       const guint8 *buf,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:256,1
    - Dst: fu_wistron_dock_device_control_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: fu_wistron_dock_device_set_img_address
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_wistron_dock_device_control_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_set_img_address(FuWistronDockDevice
      *self, guint32 addr, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:269,1
    - Dst: fu_wistron_dock_device_data_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: fu_wistron_dock_device_write_img_data
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_wistron_dock_device_data_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_write_img_data(FuWistronDockDevice
      *self,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t      gsize bufsz,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:293,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:294,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:294,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:296,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:299,1
    - Dst: fu_wistron_dock_device_set_img_address
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:304,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:305,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:307,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:309,1
    - Dst: fu_wistron_dock_device_write_img_data
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:314,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:315,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:318,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:320,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuWistronDockDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 330
    functionName: fu_wistron_dock_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_wistron_dock_device_set_img_address
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_wistron_dock_device_write_img_data
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_write_blocks(FuWistronDockDevice *self,\n\t\t\t\t
      \   FuChunkArray *chunks,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:339,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:341,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:343,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:346,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:348,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:348,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:354,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:354,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:358,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:358,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:363,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:364,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:368,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:372,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:373,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:377,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:383,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:384,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:385,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:386,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:387,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:388,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 390
    functionName: fu_wistron_dock_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - fu_firmware_set_id
    - fu_archive_firmware_new
    - fu_firmware_add_image
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_archive_firmware_get_image_fnmatch
    - g_autoptr
    - FU_ARCHIVE_FIRMWARE
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_wistron_dock_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:403,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:406,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:407,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:408,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:409,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:412,1
    - Dst: fu_wistron_dock_device_write_wdfl_sig
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:415,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:416,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:417,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:419,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:422,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:425,1
    - Dst: fu_wistron_dock_device_write_wdfl_data
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:428,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:429,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:430,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:432,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:435,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:438,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:441,1
    - Dst: fu_wistron_dock_device_write_blocks
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:448,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:450,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:452,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 459
    functionName: fu_wistron_dock_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_wistron_dock_device_write_wdfl_sig
    - g_prefix_error
    - g_bytes_get_size
    - fu_progress_add_step
    - fu_wistron_dock_device_write_wdfl_data
    - fu_firmware_get_image_by_id_stream
    - fu_wistron_dock_device_write_blocks
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_set_id
    - g_autoptr
    - FU_WISTRON_DOCK_DEVICE
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_wistron_dock_device_control_read
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:468,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:476,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:479,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWistronDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 461
    functionDepth: 6
    functionLinenumber: 461
    functionLinenumberEnd: 487
    functionName: fu_wistron_dock_device_ensure_mcuid
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_wistron_dock_device_control_read
    - fu_memstrsafe
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_ensure_mcuid(FuWistronDockDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wistron_dock_device_control_read
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:495,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:503,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWistronDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: fu_wistron_dock_device_ensure_bbinfo
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - fu_wistron_dock_device_control_read
    - g_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_ensure_bbinfo(FuWistronDockDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wistron_dock_device_control_read
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:514,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:522,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWistronDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 525
    functionName: fu_wistron_dock_device_ensure_userinfo
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - fu_wistron_dock_device_control_read
    - g_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_ensure_userinfo(FuWistronDockDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:542,1
    - Dst: fu_struct_wistron_dock_wdit_img_parse
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:545,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_version_build
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:550,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:552,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_version1
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:553,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:555,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_version2
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:556,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:558,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_name
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:561,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_status
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:562,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:563,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:564,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_comp_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:565,1
    - Dst: fu_struct_wistron_dock_wdit_img_get_mode
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - device_cnt
    - error
    argTypes:
    - FuWistronDockDevice*
    - guint8*
    - gsize
    - gsize
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 575
    functionName: fu_wistron_dock_device_parse_wdit_img
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_wistron_dock_wdit_img_get_comp_id
    - fu_struct_wistron_dock_wdit_img_get_name
    - fu_struct_wistron_dock_wdit_img_parse
    - fu_struct_wistron_dock_wdit_img_get_version1
    - fu_struct_wistron_dock_wdit_img_get_mode
    - fu_struct_wistron_dock_wdit_img_get_status
    - fu_struct_wistron_dock_wdit_img_get_version_build
    - fu_version_from_uint32
    - g_autoptr
    - fu_struct_wistron_dock_wdit_img_get_version2
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_parse_wdit_img(FuWistronDockDevice
      *self,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t      gsize bufsz,\n\t\t\t\t
      \     gsize offset,\n\t\t\t\t      guint8 device_cnt,\n\t\t\t\t      GError
      **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:582,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:585,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:585,1
    - Dst: fu_struct_wistron_dock_wdit_parse
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:597,1
    - Dst: fu_struct_wistron_dock_wdit_get_tag_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:600,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:601,1
    - Dst: fu_struct_wistron_dock_wdit_get_tag_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:606,1
    - Dst: fu_struct_wistron_dock_wdit_get_vid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:611,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:611,1
    - Dst: fu_struct_wistron_dock_wdit_get_pid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:612,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:612,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:613,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:617,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:618,1
    - Dst: fu_struct_wistron_dock_wdit_get_vid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:619,1
    - Dst: fu_struct_wistron_dock_wdit_get_pid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:620,1
    - Dst: fu_struct_wistron_dock_wdit_get_imgmode
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:625,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:627,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:629,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:629,1
    - Dst: fu_struct_wistron_dock_wdit_get_update_state
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:632,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:635,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:635,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:637,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:637,1
    - Dst: fu_wistron_dock_update_phase_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:638,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:639,1
    - Dst: fu_wistron_dock_component_idx_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:641,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:642,1
    - Dst: fu_struct_wistron_dock_wdit_get_status_code
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:645,1
    - Dst: fu_wistron_dock_status_code_to_string
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:646,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:647,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:650,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:650,1
    - Dst: fu_struct_wistron_dock_wdit_get_composite_version
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:651,1
    - Dst: fu_wistron_dock_device_parse_wdit_img
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:654,1
    - Dst: MIN
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:659,1
    - Dst: fu_struct_wistron_dock_wdit_get_device_cnt
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:659,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:661,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:668,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWistronDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 577
    functionDepth: 6
    functionLinenumber: 577
    functionLinenumberEnd: 677
    functionName: fu_wistron_dock_device_ensure_wdit
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_wistron_dock_device_parse_wdit_img
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_struct_wistron_dock_wdit_get_device_cnt
    - fu_struct_wistron_dock_wdit_get_pid
    - fu_struct_wistron_dock_wdit_get_tag_id
    - fu_hid_device_get_report
    - g_set_error
    - fu_wistron_dock_update_phase_to_string
    - fu_device_add_flag
    - fu_device_remove_flag
    - MIN
    - fu_device_get_pid
    - fu_struct_wistron_dock_wdit_get_composite_version
    - fu_wistron_dock_status_code_to_string
    - fu_wistron_dock_component_idx_to_string
    - fu_struct_wistron_dock_wdit_get_status_code
    - fu_struct_wistron_dock_wdit_parse
    - g_autoptr
    - fu_struct_wistron_dock_wdit_get_vid
    - fu_struct_wistron_dock_wdit_get_imgmode
    - fu_device_set_version_raw
    - g_warning
    - fu_device_get_vid
    - FU_DEVICE
    - fu_struct_wistron_dock_wdit_get_update_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_ensure_wdit(FuWistronDockDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:682,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:685,1
    - Dst: fu_wistron_dock_device_ensure_mcuid
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:688,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:689,1
    - Dst: fu_wistron_dock_device_ensure_bbinfo
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:692,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:693,1
    - Dst: fu_wistron_dock_device_ensure_userinfo
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:696,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:697,1
    - Dst: fu_wistron_dock_device_ensure_wdit
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:700,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 679
    functionDepth: 7
    functionLinenumber: 679
    functionLinenumberEnd: 707
    functionName: fu_wistron_dock_device_setup
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_wistron_dock_device_ensure_bbinfo
    - g_prefix_error
    - fu_wistron_dock_device_ensure_wdit
    - fu_wistron_dock_device_ensure_userinfo
    - FU_WISTRON_DOCK_DEVICE
    - fu_wistron_dock_device_ensure_mcuid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:712,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:716,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:717,1
    - Dst: fu_wistron_dock_device_control_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:720,1
    - Dst: fu_wistron_dock_device_ensure_wdit
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 709
    functionDepth: 7
    functionLinenumber: 709
    functionLinenumberEnd: 723
    functionName: fu_wistron_dock_device_detach
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_wistron_dock_device_control_write
    - fu_wistron_dock_device_ensure_wdit
    - fu_device_has_flag
    - FU_WISTRON_DOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:728,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:729,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:730,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:733,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:734,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:735,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:736,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:736,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 742
    functionName: fu_wistron_dock_device_insert_cb
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - FU_DEVICE
    - fwupd_request_set_id
    - g_autoptr
    - FU_WISTRON_DOCK_DEVICE
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_insert_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:750,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 758
    functionName: fu_wistron_dock_device_cleanup
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - FU_WISTRON_DOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wistron_dock_device_cleanup(FuDevice *device,\n\t\t\t
      \      FuProgress *progress,\n\t\t\t       FwupdInstallFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:763,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:765,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:765,1
    - Dst: fu_wistron_dock_device_ensure_wdit
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:768,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:770,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:771,1
    - Dst: fu_wistron_dock_device_control_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:774,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:776,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:779,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:780,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:781,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:782,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:787,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 760
    functionDepth: 7
    functionLinenumber: 760
    functionLinenumberEnd: 792
    functionName: fu_wistron_dock_device_attach
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_debug
    - fwupd_request_set_kind
    - fu_wistron_dock_device_control_write
    - fu_wistron_dock_device_ensure_wdit
    - fu_device_has_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - fwupd_request_add_flag
    - g_timeout_add_seconds
    - g_autoptr
    - FU_WISTRON_DOCK_DEVICE
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:797,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:798,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:799,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:800,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:801,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 803
    functionName: fu_wistron_dock_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:808,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 809
    functionName: fu_wistron_dock_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wistron_dock_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:814,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:815,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:815,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:816,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:817,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:818,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWistronDockDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 811
    functionDepth: 6
    functionLinenumber: 811
    functionLinenumberEnd: 820
    functionName: fu_wistron_dock_device_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_request_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_device_init(FuWistronDockDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:825,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:827,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:828,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:829,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 831
    functionName: fu_wistron_dock_device_finalize
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - FU_WISTRON_DOCK_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:836,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWistronDockDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 848
    functionName: fu_wistron_dock_device_class_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_device_class_init(FuWistronDockDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWistronDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_wistron_dock_plugin_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_plugin_init(FuWistronDockPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_wistron_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWistronDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_wistron_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wistron_dock_plugin_class_init(FuWistronDockPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:37,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:37,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:45,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: fu_system76_launch_device_response_cb
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_prefix_error
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_response_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:69,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:69,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:77,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:81,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - data
    - len
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 89
    functionName: fu_system76_launch_device_command
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - fu_device_retry
    - g_prefix_error
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_command(FuDevice *device, guint8
      *data, gsize len, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_system76_launch_device_command
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:98,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:99,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:103,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: fu_system76_launch_device_version_cb
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_prefix_error
    - g_strdup_printf
    - fu_system76_launch_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_version_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:113,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: fu_system76_launch_device_setup
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_system76_launch_device_command
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - rc
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: fu_system76_launch_device_reset
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_system76_launch_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_reset(FuDevice *device, guint8 *rc,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_system76_launch_device_command
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:149,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - state
    - rc
    - error
    argTypes:
    - FuDevice*
    - FuSystem76LaunchSecurityState
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: fu_system76_launch_device_security_set
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_system76_launch_device_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_system76_launch_device_security_set(FuDevice *device,\n\t\t\t\t
      \      FuSystem76LaunchSecurityState state,\n\t\t\t\t       guint8 *rc,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:162,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:163,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:163,1
    - Dst: fu_system76_launch_device_reset
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:166,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:171,1
    - Dst: fu_system76_launch_device_security_set
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:176,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:184,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:187,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:198,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:201,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:203,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:207,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:208,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:209,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:209,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:210,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:215,1
    - Dst: fu_system76_launch_device_reset
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:216,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:219,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:221,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:224,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:229,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 231
    functionName: fu_system76_launch_device_detach
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_system76_launch_device_security_set
    - fwupd_request_set_kind
    - g_timer_new
    - g_timer_elapsed
    - g_strdup_printf
    - fu_system76_launch_device_reset
    - fu_device_get_update_message
    - fu_device_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_message
    - fu_device_sleep
    - g_autoptr
    - g_set_error_literal
    - fu_device_get_name
    - fu_device_set_update_message
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:237,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: fu_system76_launch_device_set_progress
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:248,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:249,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:250,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:251,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:252,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:253,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:254,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:255,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:256,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:257,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:258,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSystem76LaunchDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: fu_system76_launch_device_init
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_device_init(FuSystem76LaunchDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSystem76LaunchDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: fu_system76_launch_device_class_init
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_device_class_init(FuSystem76LaunchDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSystem76LaunchPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_system76_launch_plugin_init
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_plugin_init(FuSystem76LaunchPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_system76_launch_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSystem76LaunchPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_system76_launch_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_system76_launch_plugin_class_init(FuSystem76LaunchPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:42,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:43,1
    - Dst: fu_parade_lspcon_device_kind_to_string
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: fu_parade_lspcon_device_to_string
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_kind_to_string
    - fwupd_codec_string_append_hex
    - FU_PARADE_LSPCON_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:54,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:56,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:61,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: fu_parade_lspcon_device_open
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_set_address
    - FU_PARADE_LSPCON_DEVICE
    - FU_I2C_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:82,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:82,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - new_address
    - error
    argTypes:
    - FuParadeLspconDevice*
    - FuParadeLspconI2cAddr
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: fu_parade_lspcon_device_i2c_address_guard_new
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_i2c_device_set_address
    - FU_I2C_DEVICE
    linkageType: ''
    returnType: FuParadeLspconI2cAddressGuard
    signature: "FuParadeLspconI2cAddressGuard *\nfu_parade_lspcon_device_i2c_address_guard_new(FuParadeLspconDevice
      *self,\n\t\t\t\t\t      FuParadeLspconI2cAddr new_address,\n\t\t\t\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:96,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:97,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:97,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:101,1
    - Dst: g_free
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - guard
    argTypes:
    - FuParadeLspconI2cAddressGuard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: fu_parade_lspcon_device_i2c_address_guard_free
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    - g_free
    - g_autoptr
    - FU_PARADE_LSPCON_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_i2c_address_guard_free(FuParadeLspconI2cAddressGuard
      *guard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:116,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - register_addr
    - value
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: fu_parade_lspcon_device_write_register
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_write_register(FuParadeLspconDevice
      *self,\n\t\t\t\t       guint8 register_addr,\n\t\t\t\t       guint8 value,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:125,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:126,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - register_addr
    - value
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: fu_parade_lspcon_device_read_register
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_read_register(FuParadeLspconDevice
      *self,\n\t\t\t\t      guint8 register_addr,\n\t\t\t\t      guint8 *value,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:135,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: fu_parade_lspcon_device_map_page
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_map_page(FuParadeLspconDevice *self,
      guint32 address, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:156,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:156,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:159,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - register_address
    - mask
    - expected
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: fu_parade_lspcon_device_poll_register
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_timer_new
    - g_timer_elapsed
    - g_autoptr
    - fu_parade_lspcon_device_read_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_poll_register(FuParadeLspconDevice
      *self,\n\t\t\t\t      guint8 register_address,\n\t\t\t\t      guint8 mask,\n\t\t\t\t
      \     guint8 expected,\n\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:184,1
    - Dst: MIN
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:194,1
    - Dst: fu_parade_lspcon_device_map_page
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:196,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:199,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:204,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:207,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - self
    - base_address
    - data
    - len
    - progress
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 223
    functionName: fu_parade_lspcon_device_flash_read
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_parade_lspcon_device_map_page
    - fu_i2c_device_read
    - fu_memcpy_safe
    - FU_I2C_DEVICE
    - fu_parade_lspcon_device_i2c_address_guard_new
    - MIN
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_flash_read(FuParadeLspconDevice *self,\n\t\t\t\t
      \  guint32 base_address,\n\t\t\t\t   guint8 *data,\n\t\t\t\t   const gsize len,\n\t\t\t\t
      \  FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:232,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:236,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:244,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - self
    - command
    - command_len
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 255
    functionName: fu_parade_lspcon_device_flash_transmit_command
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_parade_lspcon_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_flash_transmit_command(FuParadeLspconDevice
      *self,\n\t\t\t\t\t       const guint8 *command,\n\t\t\t\t\t       gsize command_len,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: fu_parade_lspcon_device_flash_enable_write
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_flash_transmit_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_flash_enable_write(FuParadeLspconDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:274,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:279,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:284,1
    - Dst: fu_parade_lspcon_device_poll_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:291,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 303
    functionName: fu_parade_lspcon_device_flash_read_status
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_poll_register
    - fu_parade_lspcon_device_write_register
    - fu_parade_lspcon_device_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_flash_read_status(FuParadeLspconDevice
      *self, guint8 *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:309,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:309,1
    - Dst: fu_parade_lspcon_device_flash_read_status
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:313,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:322,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 330
    functionName: fu_parade_lspcon_device_flash_wait_ready
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_timer_new
    - g_timer_elapsed
    - FU_DEVICE
    - g_set_error_literal
    - fu_parade_lspcon_device_flash_read_status
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_flash_wait_ready(FuParadeLspconDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:338,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:346,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:353,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:358,1
    - Dst: fu_parade_lspcon_device_flash_wait_ready
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 332
    functionDepth: 8
    functionLinenumber: 332
    functionLinenumberEnd: 366
    functionName: fu_parade_lspcon_device_prepare
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_flash_transmit_command
    - FU_PARADE_LSPCON_DEVICE
    - fu_parade_lspcon_device_write_register
    - fu_parade_lspcon_device_flash_wait_ready
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_prepare(FuDevice *device,\n\t\t\t\tFuProgress
      *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:374,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:379,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:384,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:389,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 396
    functionName: fu_parade_lspcon_device_cleanup
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_flash_transmit_command
    - fu_progress_step_done
    - FU_PARADE_LSPCON_DEVICE
    - fu_parade_lspcon_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_cleanup(FuDevice *device,\n\t\t\t\tFuProgress
      *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:407,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:411,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:420,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:425,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:426,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:434,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:437,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:438,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:438,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:444,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:447,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:452,1
    - Dst: fu_parade_lspcon_device_map_page
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:453,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:458,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:466,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:467,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:470,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:477,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:481,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:485,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - self
    - base_address
    - stream
    - progress
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 489
    functionName: fu_parade_lspcon_device_flash_write
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_parade_lspcon_device_map_page
    - fu_parade_lspcon_device_write_register
    - FU_I2C_DEVICE
    - fu_memcpy_safe
    - fu_i2c_device_write
    - fu_parade_lspcon_device_i2c_address_guard_new
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_flash_write(FuParadeLspconDevice
      *self,\n\t\t\t\t    guint32 base_address,\n\t\t\t\t    GInputStream *stream,\n\t\t\t\t
      \   FuProgress *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:499,1
    - Dst: fu_parade_lspcon_device_flash_enable_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:500,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:505,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:510,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:515,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:520,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:526,1
    - Dst: fu_parade_lspcon_device_poll_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:533,1
    - Dst: fu_parade_lspcon_device_flash_wait_ready
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:541,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:546,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:551,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:556,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:561,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - self
    - base_address
    - size
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 491
    functionDepth: 8
    functionLinenumber: 491
    functionLinenumberEnd: 570
    functionName: fu_parade_lspcon_device_flash_erase_block
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_flash_enable_write
    - fu_parade_lspcon_device_poll_register
    - g_debug
    - fu_parade_lspcon_device_flash_wait_ready
    - fu_parade_lspcon_device_write_register
    - fu_parade_lspcon_device_flash_transmit_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_flash_erase_block(FuParadeLspconDevice
      *self,\n\t\t\t\t\t  guint32 base_address,\n\t\t\t\t\t  guint32 size,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:579,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:588,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:589,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:592,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:593,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:594,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:595,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:596,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:597,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:598,1
    - Dst: fu_parade_lspcon_device_flash_erase_block
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:601,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:602,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:605,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:608,1
    - Dst: fu_parade_lspcon_device_flash_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:611,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:614,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:616,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:621,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:624,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:625,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:629,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:632,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:635,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:636,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:639,1
    - Dst: fu_parade_lspcon_device_flash_erase_block
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:642,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:646,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:648,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:648,1
    - Dst: fu_parade_lspcon_device_flash_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:649,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:652,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:655,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:658,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:662,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:665,1
    - Dst: MIN
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:671,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 572
    functionDepth: 9
    functionLinenumber: 572
    functionLinenumberEnd: 679
    functionName: fu_parade_lspcon_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_firmware_get_stream
    - g_prefix_error
    - fu_parade_lspcon_device_flash_write
    - fu_input_stream_read_byte_array
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_parade_lspcon_device_flash_read
    - MIN
    - fu_progress_set_id
    - fu_memcmp_safe
    - FU_PARADE_LSPCON_DEVICE
    - fu_progress_step_done
    - g_memory_input_stream_new_from_data
    - g_autoptr
    - G_INPUT_STREAM
    - g_malloc0
    - fu_device_get_firmware_size_max
    - fu_parade_lspcon_device_flash_erase_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strndup
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:684,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:685,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:686,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:689,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:689,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:690,1
    - Dst: fu_parade_lspcon_device_kind_from_string
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:693,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - dev_id
    - error
    argTypes:
    - FuParadeLspconDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 705
    functionName: fu_parade_lspcon_device_set_dev_id
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_strdup_printf
    - FU_DEVICE
    - fu_parade_lspcon_device_kind_from_string
    - g_strndup
    - fu_device_get_name
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_set_dev_id(FuParadeLspconDevice *self,
      const gchar *dev_id, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:710,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:711,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:711,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:712,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ieee_oui
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 707
    functionDepth: 5
    functionLinenumber: 707
    functionLinenumberEnd: 719
    functionName: fu_parade_lspcon_device_set_ieee_oui
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_build_vendor_id
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_set_ieee_oui(FuParadeLspconDevice
      *self, guint32 ieee_oui, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:726,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:727,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:729,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:735,1
    - Dst: fu_struct_dpaux_dpcd_parse
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:741,1
    - Dst: fu_struct_dpaux_dpcd_get_dev_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:744,1
    - Dst: fu_parade_lspcon_device_set_dev_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:746,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:749,1
    - Dst: fu_parade_lspcon_device_set_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:750,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:751,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:755,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:755,1
    - Dst: fu_struct_dpaux_dpcd_get_fw_ver
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 759
    functionName: fu_parade_lspcon_device_ensure_dpcd
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_dpaux_dpcd_get_ieee_oui
    - fu_struct_dpaux_dpcd_parse
    - fu_parade_lspcon_device_i2c_address_guard_new
    - fu_struct_dpaux_dpcd_get_dev_id
    - fu_parade_lspcon_device_set_dev_id
    - FU_DEVICE
    - fu_struct_dpaux_dpcd_get_fw_ver
    - g_autoptr
    - fu_device_set_version_raw
    - fu_parade_lspcon_device_set_ieee_oui
    - fu_parade_lspcon_device_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_ensure_dpcd(FuParadeLspconDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:766,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:769,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 761
    functionDepth: 5
    functionLinenumber: 761
    functionLinenumberEnd: 782
    functionName: fu_parade_lspcon_device_ensure_active_flash_partition_internal
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_i2c_address_guard_new
    - fu_parade_lspcon_device_read_register
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_ensure_active_flash_partition_internal(FuParadeLspconDevice
      *self,\n\t\t\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:790,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:791,1
    - Dst: fu_parade_lspcon_device_ensure_active_flash_partition_internal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:793,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:795,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:797,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 784
    functionDepth: 6
    functionLinenumber: 784
    functionLinenumberEnd: 806
    functionName: fu_parade_lspcon_device_ensure_active_flash_partition
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_parade_lspcon_device_ensure_active_flash_partition_internal
    - g_set_error_literal
    - g_autoptr
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_ensure_active_flash_partition(FuParadeLspconDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:811,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:812,1
    - Dst: fu_parade_lspcon_device_ensure_active_flash_partition
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:815,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:820,1
    - Dst: fu_parade_lspcon_device_ensure_dpcd
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:829,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:833,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:835,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 808
    functionDepth: 7
    functionLinenumber: 808
    functionLinenumberEnd: 837
    functionName: fu_parade_lspcon_device_setup
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_ensure_dpcd
    - g_set_error
    - fu_device_get_context
    - fu_device_build_instance_id
    - fu_context_get_hwid_value
    - fu_device_add_instance_str
    - fu_parade_lspcon_device_ensure_active_flash_partition
    - FU_PARADE_LSPCON_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:845,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - running
    - error
    argTypes:
    - FuParadeLspconDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: fu_parade_lspcon_device_set_mpu_running
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_parade_lspcon_device_set_mpu_running(FuParadeLspconDevice
      *self,\n\t\t\t\t\tgboolean running,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:861,1
    - Dst: fu_parade_lspcon_device_set_mpu_running
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 858
    functionDepth: 5
    functionLinenumber: 858
    functionLinenumberEnd: 863
    functionName: fu_parade_lspcon_device_detach
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_LSPCON_DEVICE
    - fu_parade_lspcon_device_set_mpu_running
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:868,1
    - Dst: fu_parade_lspcon_device_set_mpu_running
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 870
    functionName: fu_parade_lspcon_device_attach
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_LSPCON_DEVICE
    - fu_parade_lspcon_device_set_mpu_running
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_parade_lspcon_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_LSPCON_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:875,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:876,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:877,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:879,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:886,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 887
    functionName: fu_parade_lspcon_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_bytes_new_take
    - fu_parade_lspcon_device_flash_read
    - g_malloc0
    - fu_device_get_firmware_size_max
    - FU_PARADE_LSPCON_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_parade_lspcon_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:892,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:893,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:894,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:895,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:896,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:897,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 899
    functionName: fu_parade_lspcon_device_set_progress
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: fu_parade_lspcon_device_convert_version
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_parade_lspcon_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:912,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:912,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:913,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:913,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:914,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:915,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:916,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:916,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:917,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:917,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:918,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:918,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:919,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:919,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:920,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:920,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:921,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:921,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:922,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeLspconDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 909
    functionDepth: 6
    functionLinenumber: 909
    functionLinenumberEnd: 923
    functionName: fu_parade_lspcon_device_init
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_size
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_init(FuParadeLspconDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeLspconDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 941
    functionName: fu_parade_lspcon_device_class_init
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_class_init(FuParadeLspconDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeLspconPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_parade_lspcon_plugin_init
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_plugin_init(FuParadeLspconPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_parade_lspcon_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeLspconPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_parade_lspcon_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_plugin_class_init(FuParadeLspconPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:23,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_jabra_device_to_string
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_JABRA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:30,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:31,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:35,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:36,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - usb_device
    - intf_class
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: _fu_usb_device_get_interface_for_class
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_autoptr
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: guint8
    signature: guint8 _fu_usb_device_get_interface_for_class(FuUsbDevice *usb_device,
      guint8 intf_class, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:50,1
    - Dst: strlen
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:56,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:59,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:61,1
    - Dst: _fu_usb_device_get_interface_for_class
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:71,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:82,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:83,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:87,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:97,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:97,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:110,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:114,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 117
    functionName: fu_jabra_device_prepare
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - g_debug
    - strlen
    - fu_usb_device_control_transfer
    - fu_firmware_strparse_uint8_safe
    - FU_JABRA_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - FU_USB_DEVICE
    - _fu_usb_device_get_interface_for_class
    - fu_usb_device_claim_interface
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_device_prepare(FuDevice *device,\n\t\t\tFuProgress
      *progress,\n\t\t\tFwupdInstallFlags flags,\n\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:124,1
    - Dst: strlen
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:125,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: fu_jabra_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - FU_JABRA_DEVICE
    - g_set_error_literal
    - g_strdup
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_device_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:147,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:148,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:149,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:150,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: fu_jabra_device_init
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_jabra_device_init(FuJabraDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:157,1
    - Dst: g_free
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:158,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: fu_jabra_device_finalize
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_JABRA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:165,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: fu_jabra_device_class_init
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_device_class_init(FuJabraDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:28,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:32,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:34,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:37,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:38,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:39,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 51
    functionName: fu_jabra_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - fu_device_has_private_flag
    - fu_device_add_flag
    - g_autoptr
    - fu_device_locker_new
    - FU_USB_DEVICE
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_plugin_cleanup(FuPlugin *plugin,\n\t\t\tFuDevice
      *device,\n\t\t\tFuProgress *progress,\n\t\t\tFwupdInstallFlags flags,\n\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: fu_jabra_plugin_init
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jabra_plugin_init(FuJabraPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:61,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:62,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:63,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: fu_jabra_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_jabra_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: fu_jabra_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_plugin_class_init(FuJabraPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:34,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuCcgxDmcFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: fu_ccgx_dmc_firmware_record_free
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_record_free(FuCcgxDmcFirmwareRecord *rcd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:42,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuCcgxDmcFirmwareSegmentRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: fu_ccgx_dmc_firmware_segment_record_free
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_segment_record_free(FuCcgxDmcFirmwareSegmentRecord
      *rcd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:53,1
    - Dst: FU_IS_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: fu_ccgx_dmc_firmware_get_image_records
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_ccgx_dmc_firmware_get_image_records(FuCcgxDmcFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:60,1
    - Dst: FU_IS_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: fu_ccgx_dmc_firmware_get_fwct_record
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_ccgx_dmc_firmware_get_fwct_record(FuCcgxDmcFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:67,1
    - Dst: FU_IS_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: fu_ccgx_dmc_firmware_get_custom_meta_record
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_ccgx_dmc_firmware_get_custom_meta_record(FuCcgxDmcFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:74,1
    - Dst: FU_IS_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: fu_ccgx_dmc_firmware_get_fw_data_size
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_ccgx_dmc_firmware_get_fw_data_size(FuCcgxDmcFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:81,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:83,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: fu_ccgx_dmc_firmware_export
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:98,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:98,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:109,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:112,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:114,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_get_start_row
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:118,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_get_num_rows
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:119,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:130,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:132,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:141,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:142,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:143,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:153,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:153,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:163,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:164,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 6
    argNames:
    - firmware
    - stream
    - img_rcd
    - seg_off
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuCcgxDmcFirmwareRecord*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 175
    functionName: fu_ccgx_dmc_firmware_parse_segment
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_input_stream_read_bytes
    - g_steal_pointer
    - g_new0
    - fu_struct_ccgx_dmc_fwct_segmentation_info_parse_stream
    - g_checksum_get_digest
    - g_bytes_get_size
    - g_checksum_update
    - g_set_error_literal
    - g_checksum_new
    - fu_struct_ccgx_dmc_fwct_segmentation_info_get_num_rows
    - g_autoptr
    - memcmp
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_struct_ccgx_dmc_fwct_segmentation_info_get_start_row
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_parse_segment(FuFirmware *firmware,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuCcgxDmcFirmwareRecord *img_rcd,\n\t\t\t\t
      \  gsize *seg_off,\n\t\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t\t   GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:192,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:195,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:196,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_row_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:201,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_img_offset
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:208,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_num_img_segments
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:210,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_img_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:218,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:220,1
    - Dst: fu_ccgx_dmc_firmware_parse_segment
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:231,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:240,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - firmware
    - image_count
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - guint8
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 248
    functionName: fu_ccgx_dmc_firmware_parse_image
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ccgx_dmc_fwct_image_info_get_img_digest
    - fu_struct_ccgx_dmc_fwct_image_info_get_row_size
    - g_steal_pointer
    - g_new0
    - fu_memcpy_safe
    - g_autoptr
    - fu_ccgx_dmc_firmware_parse_segment
    - fu_struct_ccgx_dmc_fwct_image_info_get_num_img_segments
    - fu_struct_ccgx_dmc_fwct_image_info_parse_stream
    - fu_struct_ccgx_dmc_fwct_image_info_get_img_offset
    - g_ptr_array_add
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_parse_image(FuFirmware *firmware,\n\t\t\t\t
      guint8 image_count,\n\t\t\t\t GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ccgx_dmc_fwct_info_validate_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: fu_ccgx_dmc_firmware_validate
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_fwct_info_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      gsize offset,\n\t\t\t      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:271,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:274,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:279,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:281,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:291,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:293,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:296,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:301,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:302,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:307,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:314,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_image_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:319,1
    - Dst: fu_ccgx_dmc_firmware_parse_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 259
    functionDepth: 5
    functionLinenumber: 259
    functionLinenumberEnd: 325
    functionName: fu_ccgx_dmc_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ccgx_dmc_fwct_info_get_size
    - fu_struct_ccgx_dmc_fwct_info_get_composite_version
    - fu_input_stream_read_u16
    - fu_struct_ccgx_dmc_fwct_info_parse_stream
    - fu_struct_ccgx_dmc_fwct_info_get_image_count
    - fu_ccgx_dmc_firmware_parse_image
    - g_prefix_error
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_input_stream_read_bytes
    - fu_input_stream_size
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:330,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:331,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:332,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:332,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:335,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:340,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_custom_meta_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:341,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_cdtt_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:342,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_device_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:343,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:344,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:345,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_image_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:346,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:351,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:351,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:352,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_img_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:353,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_row_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:354,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:355,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_app_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:356,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_num_img_segments
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:357,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:358,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:364,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:366,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:366,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:369,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_set_num_rows
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:373,1
    - Dst: MAX
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:375,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:375,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:376,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:380,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:381,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:385,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:390,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:393,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:395,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:398,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:403,1
    - Dst: MAX
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:403,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:403,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:404,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:405,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:406,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:407,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:408,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:411,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 424
    functionName: fu_ccgx_dmc_firmware_write
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_struct_ccgx_dmc_fwct_info_set_image_count
    - fu_struct_ccgx_dmc_fwct_info_set_device_id
    - fu_firmware_get_version_raw
    - fu_firmware_get_images
    - g_checksum_new
    - fu_struct_ccgx_dmc_fwct_info_set_version
    - fu_struct_ccgx_dmc_fwct_image_info_set_device_type
    - fu_byte_array_append_bytes
    - fu_struct_ccgx_dmc_fwct_info_set_composite_version
    - fu_byte_array_append_uint16
    - fu_struct_ccgx_dmc_fwct_image_info_set_num_img_segments
    - fu_struct_ccgx_dmc_fwct_info_new
    - g_ptr_array_index
    - g_checksum_update
    - fu_bytes_pad
    - fu_chunk_array_new_from_bytes
    - g_steal_pointer
    - fu_struct_ccgx_dmc_fwct_image_info_new
    - fu_struct_ccgx_dmc_fwct_info_set_cdtt_version
    - fu_byte_array_append_uint8
    - fu_struct_ccgx_dmc_fwct_segmentation_info_set_num_rows
    - g_checksum_get_digest
    - fu_struct_ccgx_dmc_fwct_image_info_set_app_version
    - fu_struct_ccgx_dmc_fwct_segmentation_info_new
    - g_autoptr
    - g_byte_array_new
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_struct_ccgx_dmc_fwct_image_info_set_row_size
    - fu_struct_ccgx_dmc_fwct_image_info_set_img_type
    - fu_struct_ccgx_dmc_fwct_info_set_size
    - g_bytes_get_size
    - fu_memcpy_safe
    - MAX
    - fu_struct_ccgx_dmc_fwct_image_info_set_fw_version
    - fu_struct_ccgx_dmc_fwct_info_set_custom_meta_type
    - g_byte_array_append
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ccgx_dmc_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:429,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: fu_ccgx_dmc_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:436,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:437,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:437,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:438,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: fu_ccgx_dmc_firmware_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_init(FuCcgxDmcFirmware *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:444,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:447,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:449,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:451,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: fu_ccgx_dmc_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_CCGX_DMC_FIRMWARE
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:459,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 467
    functionName: fu_ccgx_dmc_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_class_init(FuCcgxDmcFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:472,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: fu_ccgx_dmc_firmware_new
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ccgx_dmc_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:20,1
    - Dst: fu_ccgx_dmc_firmware_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:21,1
    - Dst: fu_ccgx_dmc_firmware_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:28,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:31,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:34,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:38,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:41,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_ccgx_dmc_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - fu_ccgx_dmc_firmware_new
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:49,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:50,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:53,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:45,1
    - Dst: fu_struct_ccgx_dmc_dock_identity_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:45,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:46,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:46,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:59,1
    - Dst: fu_struct_ccgx_dmc_dock_identity_get_custom_meta_data_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: fu_ccgx_dmc_device_ensure_dock_id
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_struct_ccgx_dmc_dock_identity_new
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_ccgx_dmc_dock_identity_get_custom_meta_data_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_ensure_dock_id(FuCcgxDmcDevice *self, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:73,1
    - Dst: fu_struct_ccgx_dmc_dock_status_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:73,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:76,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:77,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:77,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:90,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:97,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:98,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:100,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:103,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:116,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:119,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_device_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:124,1
    - Dst: fu_ccgx_dmc_devx_device_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:125,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:128,1
    - Dst: fu_ccgx_dmc_devx_device_get_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:131,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:132,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:138,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:139,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_device_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:143,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:144,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 147
    functionName: fu_ccgx_dmc_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_prefix_error
    - fu_struct_ccgx_dmc_dock_status_get_device_status
    - fu_device_has_flag
    - fu_device_set_remove_delay
    - fu_ccgx_dmc_devx_device_new
    - g_debug
    - fu_struct_ccgx_dmc_dock_status_new
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_device_get_remove_delay
    - fu_dump_raw
    - fu_struct_ccgx_dmc_dock_status_get_device_count
    - fu_struct_ccgx_dmc_dock_status_get_composite_version
    - fu_ccgx_dmc_devx_device_get_remove_delay
    - g_autoptr
    - fu_device_locker_new
    - fu_device_set_version_raw
    - fu_memcpy_safe
    - g_malloc0
    - FU_DEVICE
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_ensure_status(FuCcgxDmcDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:152,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:152,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 169
    functionName: fu_ccgx_dmc_device_send_reset_state_machine
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_send_reset_state_machine(FuCcgxDmcDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:174,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:174,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - reset_later
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 191
    functionName: fu_ccgx_dmc_device_send_soft_reset
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_send_soft_reset(FuCcgxDmcDevice *self,
      gboolean reset_later, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:201,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:203,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:207,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:207,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 224
    functionName: fu_ccgx_dmc_device_send_start_upgrade
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_send_start_upgrade(FuCcgxDmcDevice *self,
      GBytes *fw, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:229,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:229,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - trigger
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: fu_ccgx_dmc_device_send_download_trigger
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_send_download_trigger(FuCcgxDmcDevice *self,
      guint16 trigger, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:256,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:258,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:261,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:261,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 278
    functionName: fu_ccgx_dmc_device_send_fwct
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_send_fwct(FuCcgxDmcDevice *self,\n\t\t\t
      \    const guint8 *buf,\n\t\t\t     guint16 bufsz,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:286,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:288,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:288,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:296,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:301,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:302,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:304,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:305,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:307,1
    - Dst: MIN
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:308,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - intr_rqt
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 311
    functionName: fu_ccgx_dmc_device_read_intr_req
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - fu_ccgx_dmc_int_opcode_to_string
    - g_prefix_error
    - g_strdup_printf
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - MIN
    - FU_USB_DEVICE
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - fu_dump_raw
    - g_return_val_if_fail
    - fu_struct_ccgx_dmc_int_rqt_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_read_intr_req(FuCcgxDmcDevice *self, GByteArray
      *intr_rqt, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:319,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:319,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - start_row
    - num_of_row
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: fu_ccgx_dmc_device_send_write_command
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_send_write_command(FuCcgxDmcDevice *self,\n\t\t\t\t
      \     guint16 start_row,\n\t\t\t\t      guint16 num_of_row,\n\t\t\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:344,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:346,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:346,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - row_buffer
    - row_size
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 358
    functionName: fu_ccgx_dmc_device_send_row_data
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_bulk_transfer
    - g_return_val_if_fail
    - FU_USB_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_send_row_data(FuCcgxDmcDevice *self,\n\t\t\t\t
      const guint8 *row_buffer,\n\t\t\t\t guint16 row_size,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:363,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:364,1
    - Dst: fu_ccgx_dmc_update_model_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:367,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:368,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:369,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:370,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:371,1
    - Dst: fu_ccgx_dmc_device_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: fu_ccgx_dmc_device_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_device_status_to_string
    - fu_ccgx_dmc_update_model_to_string
    - fwupd_codec_string_append_hex
    - FU_CCGX_DMC_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:383,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:383,1
    - Dst: fu_ccgx_dmc_device_read_intr_req
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:386,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:387,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:392,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:394,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:399,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:404,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:406,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 415
    functionName: fu_ccgx_dmc_device_get_image_write_status_cb
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_dmc_int_opcode_to_string
    - g_prefix_error
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - fu_ccgx_dmc_device_read_intr_req
    - g_autoptr
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - fu_struct_ccgx_dmc_int_rqt_new
    - FU_CCGX_DMC_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_get_image_write_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:427,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:428,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:429,1
    - Dst: fu_ccgx_dmc_device_send_write_command
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:432,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:437,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:442,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:447,1
    - Dst: fu_ccgx_dmc_device_send_row_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:448,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:455,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:455,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:463,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:463,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - self
    - seg_rcd
    - fw_data_written
    - progress
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - FuCcgxDmcFirmwareSegmentRecord*
    - gsize*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 471
    functionName: fu_ccgx_dmc_device_write_firmware_record
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_progress_set_percentage_full
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_ccgx_dmc_device_send_row_data
    - g_ptr_array_index
    - fu_ccgx_dmc_device_send_write_command
    - FU_DEVICE
    - fu_progress_set_id
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_write_firmware_record(FuCcgxDmcDevice
      *self,\n\t\t\t\t\t FuCcgxDmcFirmwareSegmentRecord *seg_rcd,\n\t\t\t\t\t gsize
      *fw_data_written,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:484,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:485,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:489,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:490,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:492,1
    - Dst: fu_ccgx_dmc_device_write_firmware_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:493,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:496,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - device
    - img_rcd
    - fw_data_written
    - fw_data_size
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuCcgxDmcFirmwareRecord*
    - gsize*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 473
    functionDepth: 5
    functionLinenumber: 473
    functionLinenumberEnd: 502
    functionName: fu_ccgx_dmc_device_write_firmware_image
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_ccgx_dmc_device_write_firmware_record
    - fu_progress_set_id
    - g_return_val_if_fail
    - FU_CCGX_DMC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_write_firmware_image(FuDevice *device,\n\t\t\t\t\tFuCcgxDmcFirmwareRecord
      *img_rcd,\n\t\t\t\t\tgsize *fw_data_written,\n\t\t\t\t\tconst gsize fw_data_size,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:523,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:523,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:526,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:527,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:528,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:529,1
    - Dst: fu_ccgx_dmc_firmware_get_fwct_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:535,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:535,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:536,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:538,1
    - Dst: fu_ccgx_dmc_device_send_reset_state_machine
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:546,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:548,1
    - Dst: fu_ccgx_dmc_firmware_get_custom_meta_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:552,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:552,1
    - Dst: fu_ccgx_dmc_device_send_start_upgrade
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:553,1
    - Dst: fu_ccgx_dmc_device_send_fwct
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:557,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:559,1
    - Dst: fu_ccgx_dmc_firmware_get_image_records
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:562,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:562,1
    - Dst: fu_ccgx_dmc_firmware_get_fw_data_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:563,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:563,1
    - Dst: fu_ccgx_dmc_device_read_intr_req
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:566,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:568,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:576,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:586,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:587,1
    - Dst: fu_ccgx_dmc_device_write_firmware_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:588,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:592,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:598,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:605,1
    - Dst: fu_ccgx_dmc_fwct_analysis_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:610,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:613,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:618,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:628,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:635,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 504
    functionDepth: 6
    functionLinenumber: 504
    functionLinenumberEnd: 639
    functionName: fu_ccgx_dmc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_firmware_get_custom_meta_record
    - fu_ccgx_dmc_device_write_firmware_image
    - fu_ccgx_dmc_firmware_get_image_records
    - fu_ccgx_dmc_device_send_start_upgrade
    - fu_ccgx_dmc_firmware_get_fw_data_size
    - FU_CCGX_DMC_DEVICE
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_ccgx_dmc_device_send_fwct
    - fu_ccgx_dmc_firmware_get_fwct_record
    - fu_progress_step_done
    - g_autoptr
    - fu_struct_ccgx_dmc_int_rqt_new
    - g_bytes_get_data
    - fu_ccgx_dmc_int_opcode_to_string
    - fu_ccgx_dmc_fwct_analysis_status_to_string
    - g_set_error_literal
    - fu_ccgx_dmc_device_send_reset_state_machine
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - fu_ccgx_dmc_device_read_intr_req
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:648,1
    - Dst: fu_ccgx_dmc_firmware_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:648,1
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:649,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:654,1
    - Dst: fu_ccgx_dmc_firmware_get_custom_meta_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:659,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:659,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:661,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:666,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 673
    functionName: fu_ccgx_dmc_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_firmware_get_custom_meta_record
    - g_steal_pointer
    - fu_ccgx_dmc_firmware_new
    - g_bytes_get_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_autoptr
    - FU_CCGX_DMC_DEVICE
    - FU_CCGX_DMC_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_ccgx_dmc_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:678,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:682,1
    - Dst: fu_ccgx_dmc_device_send_download_trigger
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:687,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:690,1
    - Dst: fu_ccgx_dmc_device_send_soft_reset
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:695,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:703,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:703,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:704,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:705,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:706,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:707,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 675
    functionDepth: 6
    functionLinenumber: 675
    functionLinenumberEnd: 714
    functionName: fu_ccgx_dmc_device_attach
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - g_prefix_error
    - fu_ccgx_dmc_device_send_download_trigger
    - fu_device_has_private_flag
    - fwupd_request_add_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - g_autoptr
    - fu_ccgx_dmc_device_send_soft_reset
    - FU_CCGX_DMC_DEVICE
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:719,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:721,1
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:722,1
    - Dst: fu_ccgx_dmc_devx_device_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:724,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:725,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:726,1
    - Dst: g_info
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:729,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 734
    functionName: fu_ccgx_dmc_device_ensure_factory_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_children
    - fu_device_set_version_raw
    - g_ptr_array_index
    - FU_DEVICE
    - fu_ccgx_dmc_devx_device_get_device_type
    - fu_memread_uint64
    - g_info
    - fu_ccgx_dmc_devx_device_get_fw_version
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_ensure_factory_version(FuCcgxDmcDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:739,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:740,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:743,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:743,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:746,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:746,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 736
    functionDepth: 8
    functionLinenumber: 736
    functionLinenumberEnd: 748
    functionName: fu_ccgx_dmc_device_probe
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_device_add_interface
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_get_interface
    - FU_CCGX_DMC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_probe(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:753,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:756,1
    - Dst: fu_ccgx_dmc_device_ensure_dock_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:760,1
    - Dst: fu_ccgx_dmc_device_ensure_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:762,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:767,1
    - Dst: fu_ccgx_dmc_device_ensure_factory_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:768,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:769,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:769,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:772,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:774,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:776,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 750
    functionDepth: 6
    functionLinenumber: 750
    functionLinenumberEnd: 782
    functionName: fu_ccgx_dmc_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - FU_DEVICE_CLASS
    - fu_ccgx_dmc_device_ensure_status
    - fu_ccgx_dmc_device_ensure_factory_version
    - fu_device_has_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_get_version_raw
    - FU_CCGX_DMC_DEVICE
    - fu_ccgx_dmc_device_ensure_dock_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:790,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:791,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:793,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 800
    functionName: fu_ccgx_dmc_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_CCGX_DMC_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:805,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:806,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:807,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:808,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:809,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:810,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 802
    functionDepth: 3
    functionLinenumber: 802
    functionLinenumberEnd: 812
    functionName: fu_ccgx_dmc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:817,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: fu_ccgx_dmc_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:826,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:827,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:827,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:828,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:828,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:829,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:829,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:830,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:830,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:831,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:832,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:833,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 820
    functionDepth: 6
    functionLinenumber: 820
    functionLinenumberEnd: 834
    functionName: fu_ccgx_dmc_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_init(FuCcgxDmcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 849
    functionName: fu_ccgx_dmc_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_class_init(FuCcgxDmcDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ccgx_dmc_devx_status_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: fu_ccgx_dmc_devx_device_get_fw_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 1
    functionsReached:
    - fu_struct_ccgx_dmc_devx_status_get_fw_version
    linkageType: ''
    returnType: guint8
    signature: 'guint8 *

      fu_ccgx_dmc_devx_device_get_fw_version(FuCcgxDmcDevxDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: fu_ccgx_dmc_devx_device_get_device_type
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 1
    functionsReached:
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    linkageType: ''
    returnType: FuCcgxDmcDevxDeviceType
    signature: FuCcgxDmcDevxDeviceType fu_ccgx_dmc_devx_device_get_device_type(FuCcgxDmcDevxDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:37,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:38,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: fu_ccgx_dmc_devx_device_version_dmc_bfw
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ccgx_dmc_devx_device_get_fw_version
    - fu_memread_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_version_dmc_bfw(FuCcgxDmcDevxDevice *self, gsize offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:48,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: fu_ccgx_dmc_devx_device_version_dmc_app
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ccgx_dmc_devx_device_get_fw_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_version_dmc_app(FuCcgxDmcDevxDevice *self, gsize offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:58,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: fu_ccgx_dmc_devx_device_version_hx3
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ccgx_dmc_devx_device_get_fw_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_version_hx3(FuCcgxDmcDevxDevice *self, gsize offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:72,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:73,1
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:75,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:75,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - kind
    - offset
    - idt
    - str
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gchar*
    - gsize
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: fu_ccgx_dmc_devx_device_hexver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - g_strdup_printf
    - fu_memread_uint64
    - fu_ccgx_dmc_devx_device_get_fw_version
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fu_ccgx_dmc_devx_device_hexver_to_string(FuCcgxDmcDevxDevice
      *self,\n\t\t\t\t\t const gchar *kind,\n\t\t\t\t\t gsize offset,\n\t\t\t\t\t
      guint idt,\n\t\t\t\t\t GString *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:87,1
    - Dst: fu_ccgx_dmc_devx_device_version_hx3
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:88,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - kind
    - offset
    - idt
    - str
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gchar*
    - gsize
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: fu_ccgx_dmc_devx_device_hx3ver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_devx_device_version_hx3
    - g_strdup_printf
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: "void fu_ccgx_dmc_devx_device_hx3ver_to_string(FuCcgxDmcDevxDevice
      *self,\n\t\t\t\t\t const gchar *kind,\n\t\t\t\t\t gsize offset,\n\t\t\t\t\t
      guint idt,\n\t\t\t\t\t GString *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:99,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_bfw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:100,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_app
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:101,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:102,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - kind
    - offset
    - idt
    - str
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gchar*
    - gsize
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: fu_ccgx_dmc_devx_device_dmcver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - g_strdup_printf
    - fu_ccgx_dmc_devx_device_version_dmc_bfw
    - fu_ccgx_dmc_devx_device_version_dmc_app
    linkageType: ''
    returnType: void
    signature: "void fu_ccgx_dmc_devx_device_dmcver_to_string(FuCcgxDmcDevxDevice
      *self,\n\t\t\t\t\t const gchar *kind,\n\t\t\t\t\t gsize offset,\n\t\t\t\t\t
      guint idt,\n\t\t\t\t\t GString *str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: fu_ccgx_dmc_devx_device_version_type
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    linkageType: ''
    returnType: FuCcgxDmcDevxDeviceType
    signature: FuCcgxDmcDevxDeviceType fu_ccgx_dmc_devx_device_version_type(FuCcgxDmcDevxDevice
      *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:131,1
    - Dst: fu_ccgx_dmc_devx_device_version_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:132,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:141,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:142,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:144,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:145,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:147,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_image_mode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:149,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:151,1
    - Dst: fu_ccgx_dmc_img_mode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:153,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:154,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:156,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:159,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:163,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_img_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:164,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:165,1
    - Dst: fu_ccgx_dmc_img_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:168,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:169,1
    - Dst: fu_ccgx_dmc_img_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:172,1
    - Dst: fu_ccgx_dmc_devx_device_dmcver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:176,1
    - Dst: fu_ccgx_dmc_devx_device_dmcver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:177,1
    - Dst: fu_ccgx_dmc_devx_device_dmcver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:179,1
    - Dst: fu_ccgx_dmc_devx_device_hx3ver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:181,1
    - Dst: fu_ccgx_dmc_devx_device_hx3ver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:182,1
    - Dst: fu_ccgx_dmc_devx_device_hx3ver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:184,1
    - Dst: fu_ccgx_dmc_devx_device_hexver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:186,1
    - Dst: fu_ccgx_dmc_devx_device_hexver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:187,1
    - Dst: fu_ccgx_dmc_devx_device_hexver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 191
    functionName: fu_ccgx_dmc_devx_device_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_devx_device_dmcver_to_string
    - FU_CCGX_DMC_DEVX_DEVICE
    - fu_ccgx_dmc_devx_device_type_to_string
    - fu_ccgx_dmc_devx_device_hx3ver_to_string
    - g_strdup_printf
    - fu_ccgx_dmc_img_mode_to_string
    - fu_struct_ccgx_dmc_devx_status_get_current_image
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    - fu_struct_ccgx_dmc_devx_status_get_img_status
    - fu_ccgx_dmc_img_status_to_string
    - fu_ccgx_dmc_devx_device_version_type
    - fwupd_codec_string_append_hex
    - fu_struct_ccgx_dmc_devx_status_get_image_mode
    - fu_ccgx_dmc_devx_device_hexver_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_devx_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:199,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:201,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:202,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:204,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:205,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:206,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:208,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:209,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 215
    functionName: fu_ccgx_dmc_devx_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_debug
    - fu_device_set_version_raw
    - g_set_error_literal
    - fu_device_get_id
    - g_strcmp0
    - fu_device_get_version_raw
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_devx_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - device_type
    argTypes:
    - FuCcgxDmcDevxDeviceType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 247
    functionName: fu_ccgx_dmc_devx_device_type_to_name
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_type_to_name(FuCcgxDmcDevxDeviceType device_type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:254,1
    - Dst: FU_IS_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:254,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: fu_ccgx_dmc_devx_device_get_remove_delay
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CCGX_DMC_DEVX_DEVICE
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    linkageType: ''
    returnType: guint
    signature: guint fu_ccgx_dmc_devx_device_get_remove_delay(FuCcgxDmcDevxDevice
      *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:270,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:271,1
    - Dst: fu_ccgx_dmc_devx_device_version_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:272,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:281,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:285,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:286,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_name
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:286,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:288,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:289,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:290,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_component_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:291,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:292,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:295,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:297,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_bfw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:302,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:303,1
    - Dst: fu_ccgx_dmc_devx_device_version_hx3
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:305,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:306,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:309,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:310,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:314,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:316,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:317,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_component_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:319,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:320,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:320,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:321,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:321,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:322,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:323,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 267
    functionDepth: 6
    functionLinenumber: 267
    functionLinenumberEnd: 344
    functionName: fu_ccgx_dmc_devx_device_probe
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - fu_device_set_version
    - fu_struct_ccgx_dmc_devx_status_get_component_id
    - fu_struct_ccgx_dmc_devx_status_get_current_image
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    - fu_device_add_instance_strsafe
    - fu_ccgx_dmc_devx_device_version_dmc_bfw
    - fu_device_add_instance_strup
    - fu_ccgx_dmc_devx_device_version_hx3
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_ccgx_dmc_devx_device_type_to_string
    - fu_device_set_logical_id
    - fu_ccgx_dmc_devx_device_version_type
    - fu_device_set_version_format
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_add_instance_u8
    - fu_ccgx_dmc_devx_device_type_to_name
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - g_strdup
    - FU_CCGX_DMC_DEVX_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_devx_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:349,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: fu_ccgx_dmc_devx_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: fu_ccgx_dmc_devx_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_devx_device_init(FuCcgxDmcDevxDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:360,1
    - Dst: fu_struct_ccgx_dmc_devx_status_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:362,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: fu_ccgx_dmc_devx_device_finalize
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - FU_CCGX_DMC_DEVX_DEVICE
    - G_OBJECT_CLASS
    - fu_struct_ccgx_dmc_devx_status_unref
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_devx_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:369,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcDevxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: fu_ccgx_dmc_devx_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_devx_device_class_init(FuCcgxDmcDevxDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:385,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:385,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:387,1
    - Dst: fu_struct_ccgx_dmc_devx_status_parse
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:391,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: fu_ccgx_dmc_devx_device_new
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 1
    functionsReached:
    - g_steal_pointer
    - fu_device_get_context
    - g_object_new
    - g_autoptr
    - fu_struct_ccgx_dmc_devx_status_parse
    linkageType: ''
    returnType: FuCcgxDmcDevxDevice
    signature: "FuCcgxDmcDevxDevice *\nfu_ccgx_dmc_devx_device_new(FuDevice *proxy,\n\t\t\t
      \   const guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    gsize offset,\n\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_ccgx_dmc_plugin_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_plugin_init(FuCcgxDmcPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:29,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:32,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: fu_ccgx_dmc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_ccgx_dmc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_plugin_class_init(FuCcgxDmcPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:20,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:22,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:25,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:26,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:28,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:30,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:31,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:36,1
    - Dst: fu_nvme_device_new_from_blob
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:39,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:40,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:41,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:41,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:42,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:43,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:44,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 47
    functionName: fu_nvme_cns_func
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_nvme_device_new_from_blob
    - g_test_skip
    - g_file_get_contents
    - g_assert_cmpstr
    - fu_device_get_version
    - g_test_build_filename
    - g_assert_true
    - fu_device_get_guid_default
    - fu_device_get_serial
    - g_assert_no_error
    - FU_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - g_file_test
    - fu_context_load_quirks
    - fu_device_get_name
    - fu_device_convert_instance_ids
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_nvme_cns_func(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:54,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:55,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:58,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:59,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:61,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:67,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:69,1
    - Dst: g_print
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:70,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:71,1
    - Dst: g_print
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:72,1
    - Dst: fu_nvme_device_new_from_blob
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:75,1
    - Dst: g_print
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:77,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:80,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:81,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:81,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:82,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:82,1
    - Dst: g_print
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 85
    functionName: fu_nvme_cns_all_func
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_nvme_device_new_from_blob
    - g_assert_cmpstr
    - g_file_get_contents
    - fu_device_get_version
    - g_dir_read_name
    - g_build_filename
    - g_test_build_filename
    - g_dir_open
    - FU_DEVICE
    - g_file_test
    - g_autoptr
    - g_print
    - fu_device_get_name
    - fu_device_get_serial
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_nvme_cns_all_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:91,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:92,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:95,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:97,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:98,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:101,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:102,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:38,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_nvme_device_to_string
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - FU_NVME_DEVICE
    - fwupd_codec_string_append_int
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:48,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:49,1
    - Dst: g_string_new_len
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:51,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:55,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:57,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:58,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:63,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:66,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - addr_start
    - addr_end
    argTypes:
    - guint8*
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: fu_nvme_device_get_string_safe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_strchomp
    - g_string_free
    - g_string_new_len
    - g_string_append_c
    - g_ascii_isprint
    - g_return_val_if_fail
    - g_ascii_isspace
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nvme_device_get_string_safe(const guint8 *buf, guint16 addr_start, guint16
      addr_end)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:72,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - addr_start
    argTypes:
    - guint8*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: fu_nvme_device_get_guid_safe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_common_guid_is_plausible
    - fwupd_guid_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nvme_device_get_guid_safe(const guint8 *buf, guint16 addr_start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: fu_nvme_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nvme_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t       gpointer
      ptr,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:105,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:105,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:105,1
    - Dst: fu_ioctl_set_name
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:108,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:109,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:110,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:111,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:112,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:113,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:137,1
    - Dst: fu_nvme_status_to_string
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuNvmeDevice*
    - struct nvme_admin_cmd*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 143
    functionName: fu_nvme_device_submit_admin_passthru
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - fu_nvme_status_to_string
    - fu_ioctl_set_name
    - g_prefix_error
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nvme_device_submit_admin_passthru(FuNvmeDevice *self,\n\t\t\t\t
      \    struct nvme_admin_cmd *cmd,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     gsize
      bufsz,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_nvme_device_submit_admin_passthru
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNvmeDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: fu_nvme_device_identify_ctrl
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_nvme_device_submit_admin_passthru
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_identify_ctrl(FuNvmeDevice *self, guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_nvme_device_submit_admin_passthru
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - slot
    - action
    - bpid
    - error
    argTypes:
    - FuNvmeDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: fu_nvme_device_fw_commit
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_nvme_device_submit_admin_passthru
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nvme_device_fw_commit(FuNvmeDevice *self,\n\t\t\t guint8
      slot,\n\t\t\t guint8 action,\n\t\t\t guint8 bpid,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:187,1
    - Dst: fu_nvme_device_submit_admin_passthru
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNvmeDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: fu_nvme_device_fw_download
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - fu_nvme_device_submit_admin_passthru
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nvme_device_fw_download(FuNvmeDevice *self,\n\t\t\t   guint32
      addr,\n\t\t\t   const guint8 *buf,\n\t\t\t   gsize bufsz,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_nvme_device_get_string_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:201,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:202,1
    - Dst: strlen
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:202,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:203,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:209,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:212,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:213,1
    - Dst: fu_nvme_device_get_guid_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:216,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - buf
    argTypes:
    - FuNvmeDevice*
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 219
    functionName: fu_nvme_device_parse_cns_maybe_dell
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_str_is_ascii
    - g_debug
    - fu_device_add_private_flag
    - strlen
    - fu_device_add_instance_id
    - g_strdup_printf
    - FU_DEVICE
    - fu_nvme_device_get_string_safe
    - fu_nvme_device_get_guid_safe
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_parse_cns_maybe_dell(FuNvmeDevice *self, const
      guint8 *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:235,1
    - Dst: fu_nvme_device_get_string_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:245,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:247,1
    - Dst: fu_nvme_device_get_string_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:248,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:250,1
    - Dst: fu_nvme_device_get_string_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:251,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:264,1
    - Dst: fu_nvme_device_get_guid_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:267,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:269,1
    - Dst: fu_nvme_device_parse_cns_maybe_dell
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:274,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:277,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:278,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:279,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - self
    - buf
    - sz
    - error
    argTypes:
    - FuNvmeDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 282
    functionName: fu_nvme_device_parse_cns
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - g_debug
    - fu_device_add_instance_id
    - fu_device_get_guids
    - fu_nvme_device_parse_cns_maybe_dell
    - FU_DEVICE
    - fu_nvme_device_get_string_safe
    - fu_nvme_device_get_guid_safe
    - fu_device_set_serial
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_parse_cns(FuNvmeDevice *self, const guint8
      *buf, gsize sz, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:287,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:289,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:292,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:294,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:300,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:300,1
    - Dst: fu_pci_device_get_revision
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:301,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:301,1
    - Dst: fu_pci_device_set_subsystem_vid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:302,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:302,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:303,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:303,1
    - Dst: fu_pci_device_set_subsystem_pid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:304,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:304,1
    - Dst: fu_pci_device_get_subsystem_pid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:305,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:305,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:306,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:308,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:315,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNvmeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 9
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: fu_nvme_device_pci_probe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_backend_parent_with_subsystem
    - fu_pci_device_set_subsystem_vid
    - fu_pci_device_get_revision
    - FU_PCI_DEVICE
    - fu_pci_device_set_revision
    - fu_device_build_instance_id
    - fu_pci_device_set_subsystem_pid
    - FU_DEVICE
    - g_autoptr
    - fu_device_probe
    - fu_device_build_instance_id_full
    - fu_pci_device_get_subsystem_vid
    - fu_pci_device_get_subsystem_pid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_pci_probe(FuNvmeDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:324,1
    - Dst: fu_nvme_device_pci_probe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:331,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:331,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:331,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:332,1
    - Dst: fu_udev_device_get_subsystem_depth
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:335,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:335,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:337,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:338,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:343,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:344,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:345,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 321
    functionDepth: 10
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: fu_nvme_device_probe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_subsystem_depth
    - fu_device_has_private_flag
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_nvme_device_pci_probe
    - fu_device_get_vendor
    - FU_NVME_DEVICE
    - fu_device_set_vendor
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:354,1
    - Dst: fu_nvme_device_identify_ctrl
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:358,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:359,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:361,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:361,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:364,1
    - Dst: fu_nvme_device_parse_cns
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:365,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:369,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:369,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 381
    functionName: fu_nvme_device_setup
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version
    - fu_nvme_device_identify_ctrl
    - g_prefix_error
    - fu_device_get_physical_id
    - FU_DEVICE
    - fu_dump_raw
    - fu_nvme_device_parse_cns
    - fu_device_add_instance_strsafe
    - FU_NVME_DEVICE
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_setup(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:393,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:399,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:400,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:403,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:409,1
    - Dst: fu_bytes_align
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:410,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:412,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:416,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:421,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:424,1
    - Dst: fu_nvme_device_fw_download
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:427,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:428,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:429,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:430,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:432,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:435,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:437,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:439,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:442,1
    - Dst: fu_nvme_device_fw_commit
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:444,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:449,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 456
    functionName: fu_nvme_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_prefix_error
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_nvme_device_fw_download
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_nvme_device_fw_commit
    - g_autoptr
    - fu_chunk_array_index
    - FU_NVME_DEVICE
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - fu_bytes_align
    - fu_device_has_private_flag
    - g_bytes_ref
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nvme_device_write_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:461,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:462,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:464,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: fu_nvme_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - FU_NVME_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: fu_nvme_device_set_progress
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:491,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:492,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:493,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:494,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:495,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:496,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:496,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:497,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:497,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:498,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:498,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:499,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:499,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:500,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:500,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:501,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNvmeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 503
    functionName: fu_nvme_device_init
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_init(FuNvmeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNvmeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: fu_nvme_device_class_init
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_class_init(FuNvmeDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:520,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:521,1
    - Dst: fu_nvme_device_parse_cns
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:522,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - buf
    - sz
    - error
    argTypes:
    - FuContext*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 7
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: fu_nvme_device_new_from_blob
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 2
    functionsReached:
    - g_steal_pointer
    - fu_nvme_device_parse_cns
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuNvmeDevice
    signature: 'FuNvmeDevice *

      fu_nvme_device_new_from_blob(FuContext *ctx, const guint8 *buf, gsize sz, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNvmePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_nvme_plugin_init
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_nvme_plugin_init(FuNvmePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:26,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:27,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:28,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: fu_nvme_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_nvme_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNvmePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_nvme_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nvme_plugin_class_init(FuNvmePluginClass *klass)
  - BBCount: 63
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 127
    argCount: 1
    argNames:
    - status
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 140
    functionName: fu_nvme_status_to_string
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nvme_status_to_string(guint32 status)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - port_type
    argTypes:
    - MMModemPortType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 29
    functionName: fu_mm_device_port_type_to_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mm_device_port_type_to_string(MMModemPortType port_type)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:36,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:38,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:42,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:44,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-common.c:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - port_type
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: fu_mm_device_port_type_from_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: MMModemPortType
    signature: MMModemPortType fu_mm_device_port_type_from_string(const gchar *port_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: FU_MODEM_MANAGER_PLUGIN
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_MODEM_MANAGER_PLUGIN(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: fu_mm_plugin_load
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_add_quirk_key
    linkageType: ''
    returnType: void
    signature: void fu_mm_plugin_load(FuContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:34,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:37,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:38,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:42,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: fu_mm_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_MM_DEVICE
    - fu_plugin_device_add
    - g_set_error_literal
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \ FuDevice *device,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:54,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:56,1
    - Dst: fu_mm_backend_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:56,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:58,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:59,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:60,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:61,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:62,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:63,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:64,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:65,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:66,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: fu_mm_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_mm_backend_new
    - fu_context_add_backend
    - g_autoptr
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_mm_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vfuncs
    argTypes:
    - FuPluginVfuncs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_plugin_init_vfuncs
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_plugin_init_vfuncs(FuPluginVfuncs *vfuncs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:23,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_mm_fastboot_device_to_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FASTBOOT_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:30,1
    - Dst: FU_IS_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:30,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:31,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:32,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - detach_at
    argTypes:
    - FuMmFastbootDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: fu_mm_fastboot_device_set_detach_at
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    - FU_IS_MM_FASTBOOT_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_set_detach_at(FuMmFastbootDevice *self,
      const gchar *detach_at)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:39,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:43,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:47,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:47,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:49,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:49,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:50,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: fu_mm_fastboot_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_prefix_error
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_add_flag
    - fu_mm_device_at_cmd
    - FU_MM_FASTBOOT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fastboot_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:62,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:63,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_mm_fastboot_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FASTBOOT_DEVICE
    - fu_mm_device_set_device_file
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fastboot_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:69,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:73,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:78,1
    - Dst: fu_mm_fastboot_device_set_detach_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: fu_mm_fastboot_device_from_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FASTBOOT_DEVICE
    - json_object_get_string_member_with_default
    - fu_mm_fastboot_device_set_detach_at
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fastboot_device_from_json(FuDevice *device, JsonObject
      *json_object, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:89,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:92,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: fu_mm_fastboot_device_add_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_json_append
    - FU_MM_FASTBOOT_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_add_json(FuDevice *device, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:102,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:103,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:104,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:105,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:106,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:107,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: fu_mm_fastboot_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:114,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:115,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:116,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:117,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:119,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmFastbootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: fu_mm_fastboot_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_init(FuMmFastbootDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:130,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:131,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: fu_mm_fastboot_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FASTBOOT_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:138,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmFastbootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: fu_mm_fastboot_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_class_init(FuMmFastbootDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: fu_mm_mbim_device_helper_timeout_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_cancellable_cancel
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_helper_timeout_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:47,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:48,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:49,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: fu_mm_mbim_device_helper_helper_new
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_main_loop_new
    - g_cancellable_new
    - g_timeout_add
    linkageType: ''
    returnType: FuMmMbimDeviceHelper
    signature: 'FuMmMbimDeviceHelper *

      fu_mm_mbim_device_helper_helper_new(guint timeout_ms)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:58,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:60,1
    - Dst: mbim_message_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:62,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:63,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:64,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuMmMbimDeviceHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: fu_mm_mbim_device_helper_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_main_loop_unref
    - g_object_unref
    - g_free
    - g_source_remove
    - mbim_message_unref
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_helper_free(FuMmMbimDeviceHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbim_device_new_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:74,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_mm_mbim_device_new_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_device_new_finish
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_new_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:81,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:81,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:85,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:85,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:86,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:89,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:90,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:90,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:92,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:93,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:97,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:98,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:101,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:106,1
    - Dst: mbim_device_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:108,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:109,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - file
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - GFile*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 111
    functionName: fu_mm_mbim_device_new_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_device_new
    - g_steal_pointer
    - g_file_get_path
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - g_object_new
    - G_IS_FILE
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_autoptr
    - fu_mm_mbim_device_helper_helper_new
    - g_main_loop_run
    - g_return_val_if_fail
    - fu_context_has_flag
    linkageType: ''
    returnType: MbimDevice
    signature: 'MbimDevice *

      fu_mm_mbim_device_new_sync(FuMmMbimDevice *self, GFile *file, guint timeout_ms,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbim_device_open_full_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:117,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: fu_mm_mbim_device_open_sync_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_device_open_full_finish
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_open_sync_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:124,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:124,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:128,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:131,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:132,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:132,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:134,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:138,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:139,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:145,1
    - Dst: mbim_device_open_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:147,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:153,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:157,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:158,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 164
    functionName: fu_mm_mbim_device_open_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_save_event
    - fu_device_get_context
    - mbim_device_open_full
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_strdup
    - g_autoptr
    - fu_mm_mbim_device_helper_helper_new
    - g_main_loop_run
    - g_propagate_error
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_event_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_open_sync(FuMmMbimDevice *self, guint timeout_ms,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbim_device_close_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:170,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: fu_mm_mbim_device_close_sync_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_device_close_finish
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_close_sync_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:177,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:181,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:184,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:185,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:185,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:187,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:191,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:192,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:193,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:199,1
    - Dst: mbim_device_close
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:201,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:206,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:210,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:211,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:211,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 218
    functionName: fu_mm_mbim_device_close_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_save_event
    - fu_device_get_context
    - fu_device_event_set_error
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - g_strdup
    - g_autoptr
    - fu_mm_mbim_device_helper_helper_new
    - mbim_device_close
    - g_main_loop_run
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_propagate_error
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_close_sync(FuMmMbimDevice *self, guint timeout_ms,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:224,1
    - Dst: mbim_device_command_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:226,1
    - Dst: mbim_message_response_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:228,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:231,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: fu_mm_mbim_device_command_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_device_command_finish
    - g_steal_pointer
    - g_autoptr
    - mbim_message_response_get_result
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_command_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:243,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:243,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:247,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:250,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:251,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:251,1
    - Dst: mbim_message_get_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:257,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:259,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:262,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:263,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:270,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:271,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:272,1
    - Dst: mbim_message_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:275,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:275,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:275,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:280,1
    - Dst: mbim_device_command
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:282,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:288,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:292,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:293,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:293,1
    - Dst: mbim_message_get_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:302,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:304,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:307,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - self
    - mbim_message
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - MbimMessage*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 312
    functionName: fu_mm_mbim_device_command_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_propagate_error
    - g_main_loop_run
    - g_return_val_if_fail
    - fu_context_has_flag
    - fwupd_error_convert
    - mbim_message_new
    - fu_device_get_context
    - mbim_message_get_raw
    - fu_device_load_event
    - fu_device_event_get_bytes
    - g_steal_pointer
    - mbim_device_command
    - g_autoptr
    - fu_mm_mbim_device_helper_helper_new
    - g_base64_encode
    - g_bytes_get_data
    - fu_device_event_set_data
    - fu_device_event_set_error
    - fu_device_save_event
    - g_bytes_get_size
    - g_strdup_printf
    - FU_DEVICE
    linkageType: ''
    returnType: MbimMessage
    signature: "MbimMessage *\nfu_mm_mbim_device_command_sync(FuMmMbimDevice *self,\n\t\t\t
      \      MbimMessage *mbim_message,\n\t\t\t       guint timeout_ms,\n\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:319,1
    - Dst: mbim_message_device_caps_query_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:321,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:322,1
    - Dst: mbim_message_device_caps_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:325,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:342,1
    - Dst: mbim_device_get_path_display
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmMbimDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 348
    functionName: fu_mm_mbim_device_ensure_firmware_version
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - mbim_message_device_caps_query_new
    - fu_mm_mbim_device_command_sync
    - mbim_device_get_path_display
    - mbim_message_device_caps_response_parse
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_ensure_firmware_version(FuMmMbimDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:355,1
    - Dst: mbim_message_qdu_quectel_reboot_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:357,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:358,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:361,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:362,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:365,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmMbimDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 371
    functionName: fu_mm_mbim_device_detach_to_edl
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_mm_mbim_device_command_sync
    - mbim_message_qdu_quectel_reboot_set_new
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_detach_to_edl(FuMmMbimDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:376,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:379,1
    - Dst: fu_mm_mbim_device_detach_to_edl
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:380,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: fu_mm_mbim_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MBIM_DEVICE
    - fu_device_add_flag
    - fu_mm_mbim_device_detach_to_edl
    - fu_device_get_vid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:395,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:398,1
    - Dst: g_checksum_type_get_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:399,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:400,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:401,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:401,1
    - Dst: g_array_sized_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:404,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:405,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 408
    functionName: fu_mm_mbim_device_get_checksum
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_array_set_size
    - g_checksum_get_digest
    - g_bytes_get_size
    - g_checksum_update
    - g_checksum_type_get_length
    - g_checksum_new
    - g_autoptr
    - g_bytes_get_data
    - g_array_sized_new
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_mm_mbim_device_get_checksum(GBytes *blob)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:414,1
    - Dst: mbim_message_qdu_file_write_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:416,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:416,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:417,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:419,1
    - Dst: mbim_message_qdu_file_write_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:422,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuMmMbimDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 429
    functionName: fu_mm_mbim_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - mbim_message_qdu_file_write_response_parse
    - fu_mm_mbim_device_command_sync
    - g_prefix_error
    - fu_chunk_get_data
    - g_autoptr
    - mbim_message_qdu_file_write_set_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_write_chunk(FuMmMbimDevice *self, FuChunk
      *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:437,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:438,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:438,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:440,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:441,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:443,1
    - Dst: fu_mm_mbim_device_write_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:446,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMmMbimDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 431
    functionDepth: 6
    functionLinenumber: 431
    functionLinenumberEnd: 453
    functionName: fu_mm_mbim_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_mm_mbim_device_write_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mbim_device_write_chunks(FuMmMbimDevice *self,\n\t\t\t
      \      FuChunkArray *chunks,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:464,1
    - Dst: fu_mm_mbim_device_get_checksum
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:468,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:471,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:472,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:474,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:475,1
    - Dst: mbim_message_qdu_update_session_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:478,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:481,1
    - Dst: mbim_message_qdu_update_session_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:484,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:492,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:495,1
    - Dst: mbim_device_get_path_display
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:496,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:497,1
    - Dst: mbim_message_qdu_file_open_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:500,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:501,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:503,1
    - Dst: mbim_message_qdu_file_open_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:507,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:514,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:517,1
    - Dst: fu_mm_mbim_device_write_chunks
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:521,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:521,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 5
    argNames:
    - self
    - filename
    - blob
    - progress
    - error
    argTypes:
    - FuMmMbimDevice*
    - gchar*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 455
    functionDepth: 7
    functionLinenumber: 455
    functionLinenumberEnd: 527
    functionName: fu_mm_mbim_device_write
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_progress_get_child
    - fu_mm_mbim_device_command_sync
    - g_prefix_error
    - g_bytes_get_size
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_mm_mbim_device_get_checksum
    - mbim_device_get_path_display
    - fu_progress_set_id
    - mbim_message_qdu_file_open_set_new
    - g_autoptr
    - mbim_message_qdu_file_open_response_parse
    - mbim_message_qdu_update_session_response_parse
    - fu_mm_mbim_device_write_chunks
    - mbim_message_qdu_update_session_set_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mbim_device_write(FuMmMbimDevice *self,\n\t\t\tconst
      gchar *filename,\n\t\t\tGBytes *blob,\n\t\t\tFuProgress *progress,\n\t\t\tGError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:542,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:546,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:547,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:548,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:551,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:554,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:559,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:562,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:564,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:565,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:569,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:572,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:573,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:574,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:577,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:578,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:579,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:586,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:588,1
    - Dst: fu_mm_mbim_device_write
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:589,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:593,1
    - Dst: fu_mm_mbim_device_ensure_firmware_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:594,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 529
    functionDepth: 8
    functionLinenumber: 529
    functionLinenumberEnd: 599
    functionName: fu_mm_mbim_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_firmware_get_stream
    - xb_builder_new
    - FU_MM_MBIM_DEVICE
    - xb_builder_import_source
    - fu_archive_lookup_by_fn
    - g_set_error
    - g_debug
    - xb_silo_query_first
    - xb_node_get_attr
    - xb_builder_source_new
    - g_autoptr
    - xb_builder_source_load_bytes
    - fu_archive_new_stream
    - fu_mm_mbim_device_ensure_firmware_version
    - xb_builder_compile
    - fu_mm_mbim_device_write
    - g_compute_checksum_for_bytes
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mbim_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:604,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:605,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: fu_mm_mbim_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MBIM_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:611,1
    - Dst: fu_mm_mbim_device_open_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: fu_mm_mbim_device_open_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MBIM_DEVICE
    - fu_mm_mbim_device_open_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_open_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:618,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:619,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:620,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:620,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:620,1
    - Dst: fu_mm_mbim_device_new_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:624,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 615
    functionDepth: 5
    functionLinenumber: 615
    functionLinenumberEnd: 632
    functionName: fu_mm_mbim_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_mm_mbim_device_new_sync
    - g_file_new_for_path
    - FU_MM_MBIM_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:637,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:641,1
    - Dst: fu_mm_mbim_device_close_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 648
    functionName: fu_mm_mbim_device_close
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MBIM_DEVICE
    - g_set_error_literal
    - fu_mm_mbim_device_close_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_close(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:656,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:659,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:659,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:662,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 664
    functionName: fu_mm_mbim_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_MBIM_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_autosuspend_delay
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mbim_device_prepare(FuDevice *device,\n\t\t\t  FuProgress
      *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:672,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:674,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:674,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:677,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: fu_mm_mbim_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_MBIM_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_autosuspend_delay
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mbim_device_cleanup(FuDevice *device,\n\t\t\t  FuProgress
      *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:684,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:685,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:686,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:687,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:688,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:689,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 691
    functionName: fu_mm_mbim_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:696,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:696,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:697,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:697,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:698,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:698,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmMbimDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 700
    functionName: fu_mm_mbim_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_init(FuMmMbimDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:705,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:706,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: fu_mm_mbim_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MBIM_DEVICE
    - g_warn_if_fail
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:713,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmMbimDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 724
    functionName: fu_mm_mbim_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_class_init(FuMmMbimDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 1309
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:43,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:44,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:46,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - branch_at
    argTypes:
    - FuMmDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: fu_mm_device_set_branch_at
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_set_branch_at(FuMmDevice *self, const gchar *branch_at)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:53,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:54,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:55,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:57,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:61,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:61,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: fu_mm_device_to_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fwupd_codec_string_append_bool
    - g_strdup_printf
    - GET_PRIVATE
    - fu_mm_device_port_type_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:71,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: fu_mm_device_get_inhibition_uid
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_MM_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mm_device_get_inhibition_uid(FuMmDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:78,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:79,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:79,1
    - Dst: g_object_notify
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:83,1
    - Dst: G_OBJECT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - inhibited
    argTypes:
    - FuMmDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: fu_mm_device_set_inhibited
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - GET_PRIVATE
    - G_OBJECT
    - FU_IS_MM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_set_inhibited(FuMmDevice *self, gboolean inhibited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:89,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:90,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: fu_mm_device_get_inhibited
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_get_inhibited(FuMmDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:98,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:99,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:101,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:105,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:108,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - port_type
    - error
    argTypes:
    - FuMmDevice*
    - MMModemPortType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: fu_mm_device_set_device_file
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - FU_IS_MM_DEVICE
    - g_return_val_if_fail
    - fu_udev_device_set_device_file
    - fu_mm_device_port_type_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_set_device_file(FuMmDevice *self, MMModemPortType
      port_type, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:115,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:116,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:119,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fn
    - buf
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: fu_mm_device_writeln
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_write_raw
    - strlen
    - g_autoptr
    - fu_io_channel_new_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_writeln(const gchar *fn, const gchar *buf, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:131,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:134,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:134,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:138,1
    - Dst: fu_mm_device_writeln
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: fu_mm_device_set_autosuspend_delay
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 2
    functionsReached:
    - g_debug
    - fu_mm_device_writeln
    - g_build_filename
    - g_strdup_printf
    - fu_device_get_physical_id
    - FU_DEVICE
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_set_autosuspend_delay(FuMmDevice *self, guint
      timeout_ms, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:149,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:150,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:153,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:154,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:155,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:156,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:157,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:161,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:164,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:166,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:166,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:167,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:167,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:168,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:168,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:169,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:170,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:171,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:172,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:173,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:174,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:176,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:182,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:183,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:187,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:193,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:199,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:206,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:213,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:221,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:223,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:230,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:238,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:247,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:248,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:255,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:257,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:265,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 2
    argNames:
    - self
    - device_id
    argTypes:
    - FuMmDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 276
    functionName: fu_mm_device_add_instance_id
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_strsplit
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - g_strdup
    - fu_device_add_instance_str
    - g_strndup
    - fu_device_build_instance_id_full
    - g_pattern_match_simple
    - g_strcmp0
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_add_instance_id(FuMmDevice *self, const gchar *device_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:281,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - port_type
    - device_file
    argTypes:
    - FuMmDevice*
    - MMModemPortType
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: fu_mm_device_add_port
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_add_port(FuMmDevice *self, MMModemPortType port_type,
      const gchar *device_file)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:292,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:293,1
    - Dst: mm_object_peek_modem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:294,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:304,1
    - Dst: mm_modem_dup_device
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:308,1
    - Dst: mm_modem_get_physdev
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:311,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:313,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:319,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:322,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:325,1
    - Dst: mm_firmware_update_settings_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:333,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:335,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:342,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:342,1
    - Dst: mm_modem_get_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:345,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:346,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:353,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:357,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:358,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:360,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:363,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:365,1
    - Dst: mm_modem_get_ignored_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:367,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:374,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:378,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:380,1
    - Dst: mm_modem_get_manufacturer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:384,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:385,1
    - Dst: mm_modem_get_manufacturer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:385,1
    - Dst: mm_modem_get_model
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:386,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:387,1
    - Dst: mm_modem_get_model
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:387,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:390,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:391,1
    - Dst: mm_modem_get_carrier_configuration
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:391,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:393,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:397,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:400,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:400,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:401,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmDevice*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 289
    functionDepth: 7
    functionLinenumber: 289
    functionLinenumberEnd: 405
    functionName: fu_mm_device_probe_from_omodem
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vendor
    - mm_modem_get_physdev
    - g_pattern_match_simple
    - mm_modem_get_ignored_ports
    - fu_device_set_vendor
    - fu_device_set_version
    - fu_device_set_branch
    - mm_modem_get_ports
    - mm_modem_dup_device
    - mm_object_peek_modem
    - fu_mm_device_add_port
    - fu_device_set_backend_id
    - mm_object_get_path
    - mm_modem_get_carrier_configuration
    - fu_device_set_physical_id
    - mm_modem_port_info_array_free
    - mm_object_peek_modem_firmware
    - MM_CHECK_VERSION
    - mm_modem_get_model
    - g_autoptr
    - mm_modem_firmware_get_update_settings
    - mm_modem_get_manufacturer
    - mm_firmware_update_settings_get_device_ids
    - g_strdup_printf
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - fu_mm_device_add_instance_id
    - mm_firmware_update_settings_get_version
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_probe_from_omodem(FuMmDevice *self, MMObject
      *omodem, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:417,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:424,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:427,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:428,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:428,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:429,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:429,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:434,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:440,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:445,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:445,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:451,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:454,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:455,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:461,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:462,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:462,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:463,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:464,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:464,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:470,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:473,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:476,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:485,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:486,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:487,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:488,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 500
    functionName: fu_mm_device_at_cmd_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_MM_DEVICE
    - g_debug
    - fu_udev_device_write_bytes
    - strlen
    - g_steal_pointer
    - g_prefix_error
    - g_strdup_printf
    - fu_strsafe_bytes
    - g_strrstr_len
    - g_bytes_unref
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_bytes_new
    - g_strndup
    - g_bytes_get_data
    - fu_udev_device_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_at_cmd_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:506,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - cmd
    - has_response
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 518
    functionName: fu_mm_device_at_cmd
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 1
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_bytes_unref
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_at_cmd(FuMmDevice *self, const gchar *cmd, gboolean
      has_response, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - cmd
    - count
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: fu_mm_device_at_cmd_full
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_mm_device_at_cmd_full(FuMmDevice *self, const gchar *cmd, gsize count, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:538,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:539,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:547,1
    - Dst: fu_mm_device_at_cmd_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:551,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:554,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:556,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:556,1
    - Dst: g_info
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:557,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:558,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 565
    functionName: fu_mm_device_ensure_branch
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_branch
    - g_auto
    - fu_mm_device_at_cmd_full
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_strsplit_bytes
    - g_strcmp0
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_ensure_branch(FuMmDevice *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:570,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:574,1
    - Dst: fu_mm_device_at_cmd_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:579,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:581,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:584,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:584,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:586,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:587,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:591,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:592,1
    - Dst: fu_mm_device_at_cmd_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:601,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:603,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:605,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:605,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:607,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:608,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:608,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:612,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:613,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:624,1
    - Dst: strncmp
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:625,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:626,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:629,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:629,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:632,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:632,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 638
    functionName: fu_mm_device_ensure_payload_quectel
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_get_version
    - g_auto
    - strncmp
    - fu_version_compare
    - fu_mm_device_at_cmd_full
    - FU_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_strsplit_bytes
    - g_strcmp0
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_ensure_payload_quectel(FuMmDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:643,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:643,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:644,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:644,1
    - Dst: fu_mm_device_ensure_payload_quectel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:645,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:646,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:646,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:647,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:647,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:649,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 640
    functionDepth: 7
    functionLinenumber: 640
    functionLinenumberEnd: 651
    functionName: fu_mm_device_ensure_payload
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_has_vendor_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_mm_device_ensure_payload_quectel
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_ensure_payload(FuMmDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:657,1
    - Dst: fu_mm_device_ensure_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:659,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:660,1
    - Dst: fu_mm_device_ensure_payload
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 8
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: fu_mm_device_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_ensure_payload
    - FU_MM_DEVICE
    - g_debug
    - g_autoptr
    - fu_mm_device_ensure_branch
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:670,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:672,1
    - Dst: fu_mm_device_set_branch_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:673,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 683
    functionName: fu_mm_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - FU_MM_DEVICE
    - fu_mm_device_set_branch_at
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:688,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:692,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:696,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:698,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:699,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:701,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:702,1
    - Dst: fu_mm_device_set_branch_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:704,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:707,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:708,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:709,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:710,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:711,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:716,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:718,1
    - Dst: json_object_get_members
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:718,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:721,1
    - Dst: fu_mm_device_port_type_from_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:722,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - device
    - json_object
    - error
    argTypes:
    - FuDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 685
    functionDepth: 7
    functionLinenumber: 685
    functionLinenumberEnd: 729
    functionName: fu_mm_device_from_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - fu_device_set_version
    - FU_MM_DEVICE
    - json_object_get_string_member
    - FU_DEVICE_CLASS
    - fu_mm_device_set_branch_at
    - fu_mm_device_port_type_from_string
    - fu_mm_device_add_port
    - fu_mm_device_add_instance_id
    - json_object_get_string_member_with_default
    - json_object_get_array_member
    - g_autoptr
    - json_object_has_member
    - fu_device_set_physical_id
    - json_object_get_members
    - json_array_get_length
    - json_array_get_string_element
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_from_json(FuDevice *device, JsonObject *json_object,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:734,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:735,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:736,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:737,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:740,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:743,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:743,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:744,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:745,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:745,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:746,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:747,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:747,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:749,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:752,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:753,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:755,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:756,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:759,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:760,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:761,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:762,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:764,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:765,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:766,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:769,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:772,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:773,1
    - Dst: fwupd_codec_json_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:776,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:777,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:781,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - device
    - builder
    - flags
    argTypes:
    - FuDevice*
    - JsonBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 782
    functionName: fu_mm_device_add_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_device_get_physical_id
    - json_builder_add_string_value
    - G_OBJECT_TYPE_NAME
    - fu_device_get_version
    - FU_DEVICE_CLASS
    - json_builder_begin_object
    - g_ptr_array_index
    - json_builder_set_member_name
    - fu_mm_device_port_type_to_string
    - fu_device_get_instance_ids
    - fwupd_codec_json_append
    - json_builder_begin_array
    - g_str_has_prefix
    - json_builder_end_array
    - g_strdup_printf
    - GET_PRIVATE
    - fu_device_get_vendor_ids
    - json_builder_end_object
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_add_json(FuDevice *device, JsonBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:787,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:788,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:791,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 797
    functionName: fu_mm_device_get_property
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - GET_PRIVATE
    - g_value_set_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:802,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:805,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:805,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 811
    functionName: fu_mm_device_set_property
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - g_value_get_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:816,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:817,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:818,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:819,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:820,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:820,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:821,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:821,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:822,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:822,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:823,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:824,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:824,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:825,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:825,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:826,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:827,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:827,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:828,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:828,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:829,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:829,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:830,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 813
    functionDepth: 6
    functionLinenumber: 813
    functionLinenumberEnd: 831
    functionName: fu_mm_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_add_possible_plugin
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_init(FuMmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:836,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:837,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:840,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:841,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:842,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 845
    functionName: fu_mm_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:850,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:851,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:863,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 869
    functionName: fu_mm_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_boolean
    - G_OBJECT_CLASS
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_class_init(FuMmDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:17,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:18,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:19,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:22,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:24,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:26,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:26,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:27,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:28,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:29,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:32,1
    - Dst: fu_mm_device_get_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:32,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:33,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:34,1
    - Dst: fu_mm_device_get_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:34,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:37,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:38,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:45,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:45,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:48,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:52,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:52,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:58,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:60,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:61,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:62,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:62,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:66,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:66,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:72,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:73,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:75,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:75,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:79,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 83
    functionName: fu_mm_device_func
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_add_private_flag
    - g_assert_true
    - fu_mm_device_set_autosuspend_delay
    - g_object_new
    - fu_mm_device_set_inhibited
    - fu_device_to_string
    - g_assert_no_error
    - FU_DEVICE
    - fu_mm_device_add_instance_id
    - g_assert_false
    - g_autoptr
    - fu_device_has_instance_id
    - fu_context_load_quirks
    - fu_device_set_physical_id
    - fu_mm_device_get_inhibited
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:88,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:89,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:35,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_mm_backend_to_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_MM_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_to_string(FuBackend *backend, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_mm_device_get_inhibition_uid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:42,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:43,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:47,1
    - Dst: mm_manager_inhibit_device_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: fu_mm_backend_device_inhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - mm_manager_inhibit_device_sync
    - g_autoptr
    - fu_mm_device_get_inhibition_uid
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_inhibit(FuMmBackend *self, FuMmDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_mm_device_get_inhibition_uid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:55,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:56,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:60,1
    - Dst: mm_manager_uninhibit_device_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:61,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: fu_mm_backend_device_uninhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - g_autoptr
    - fu_mm_device_get_inhibition_uid
    - mm_manager_uninhibit_device_sync
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_uninhibit(FuMmBackend *self, FuMmDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:68,1
    - Dst: fu_mm_device_get_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:69,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:69,1
    - Dst: fu_mm_backend_device_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:70,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:70,1
    - Dst: fu_mm_backend_device_uninhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:73,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: fu_mm_backend_device_inhibited_notify_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_BACKEND
    - FU_MM_DEVICE
    - fu_mm_backend_device_uninhibit
    - fu_mm_device_get_inhibited
    - fu_mm_backend_device_inhibit
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_inhibited_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:79,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:79,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:83,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:86,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:87,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:89,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:96,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:97,1
    - Dst: g_type_from_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:99,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:101,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:108,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 120
    functionName: fu_mm_backend_probe_gtype
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - mm_firmware_update_settings_get_device_ids
    - g_set_error
    - fu_backend_get_context
    - g_strjoinv
    - fu_context_lookup_quirk_by_id
    - g_object_new
    - g_type_from_name
    - g_set_error_literal
    - fwupd_guid_hash_string
    - g_autoptr
    - mm_modem_firmware_get_update_settings
    - FU_BACKEND
    - mm_object_peek_modem_firmware
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_mm_backend_probe_gtype(FuMmBackend *self, MMObject *omodem, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_object_peek_modem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:125,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:126,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:126,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:138,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:186,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:187,1
    - Dst: mm_firmware_update_settings_get_method
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:188,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:190,1
    - Dst: mm_modem_get_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:205,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:207,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:208,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:210,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:212,1
    - Dst: mm_modem_get_ignored_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:214,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:221,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:223,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:224,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:226,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:230,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:231,1
    - Dst: mm_modem_firmware_update_method_build_string_from_mask
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:239,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:240,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:249,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:253,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:255,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:257,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:259,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:260,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 267
    functionName: fu_mm_backend_probe_gtype_fallback
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_BIT_IS_SET
    - FU_BACKEND
    - mm_modem_get_ignored_ports
    - g_set_error
    - g_debug
    - mm_modem_get_ports
    - fu_backend_get_context
    - mm_modem_firmware_update_method_build_string_from_mask
    - mm_object_peek_modem
    - g_type_name
    - mm_modem_port_info_array_free
    - fu_mm_device_port_type_to_string
    - mm_object_peek_modem_firmware
    - MM_CHECK_VERSION
    - g_autoptr
    - mm_modem_firmware_get_update_settings
    - G_N_ELEMENTS
    - mm_firmware_update_settings_get_device_ids
    - mm_firmware_update_settings_get_method
    - g_warning
    - FU_BIT_SET
    - g_strjoinv
    - g_set_error_literal
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_mm_backend_probe_gtype_fallback(FuMmBackend *self, MMObject *omodem, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:273,1
    - Dst: fu_mm_backend_probe_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:276,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:279,1
    - Dst: fu_mm_backend_probe_gtype_fallback
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:280,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:284,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:284,1
    - Dst: fu_mm_device_probe_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:288,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:288,1
    - Dst: FU_IS_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:292,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:294,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:295,1
    - Dst: mm_firmware_update_settings_get_fastboot_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:296,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:298,1
    - Dst: fu_mm_fastboot_device_set_detach_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:304,1
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:304,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 269
    functionDepth: 8
    functionLinenumber: 269
    functionLinenumberEnd: 309
    functionName: fu_mm_backend_device_create_from_omodem
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - fu_mm_device_probe_from_omodem
    - g_steal_pointer
    - g_error_matches
    - fu_mm_fastboot_device_set_detach_at
    - mm_firmware_update_settings_get_fastboot_at
    - FU_IS_MM_FASTBOOT_DEVICE
    - fu_mm_backend_probe_gtype
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - fu_mm_backend_probe_gtype_fallback
    - mm_modem_firmware_get_update_settings
    - FU_MM_FASTBOOT_DEVICE
    - mm_object_peek_modem_firmware
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_mm_backend_device_create_from_omodem(FuMmBackend *self, MMObject *omodem,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_test
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:314,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:315,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: fu_mm_backend_ensure_modem_power_inhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_uninhibit
    - g_file_test
    - fu_device_inhibit
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_ensure_modem_power_inhibit(FuMmBackend *self, FuDevice
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:327,1
    - Dst: fu_mm_backend_device_create_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:329,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:331,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:336,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:338,1
    - Dst: fu_mm_backend_ensure_modem_power_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:340,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:341,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - omodem
    argTypes:
    - FuMmBackend*
    - MMObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 9
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: fu_mm_backend_device_add
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_backend_ensure_modem_power_inhibit
    - g_debug
    - fu_mm_backend_device_create_from_omodem
    - fu_backend_device_added
    - g_autoptr
    - g_signal_connect
    - FU_BACKEND
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_add(FuMmBackend *self, MMObject *omodem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:347,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:347,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:349,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:350,1
    - Dst: fu_mm_device_probe_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:351,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:351,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:352,1
    - Dst: fu_mm_backend_device_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - manager
    - omodem
    - self
    argTypes:
    - MMManager*
    - MMObject*
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 10
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: fu_mm_backend_device_added_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - FU_BACKEND
    - fu_mm_device_probe_from_omodem
    - g_autoptr
    - fu_mm_backend_device_add
    - mm_object_get_path
    - fu_backend_lookup_by_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_added_cb(MMManager *manager, MMObject *omodem,
      FuMmBackend *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:361,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:361,1
    - Dst: fu_mm_device_get_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:364,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:364,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:365,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:365,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:368,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:368,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - manager
    - omodem
    - backend
    argTypes:
    - MMManager*
    - MMObject*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: fu_mm_backend_device_removed_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - fu_device_get_backend_id
    - fu_backend_device_removed
    - mm_object_get_path
    - fu_backend_lookup_by_id
    - fu_mm_device_get_inhibited
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_device_removed_cb(MMManager *manager, MMObject *omodem,
      FuBackend *backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:379,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:380,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:382,1
    - Dst: fu_mm_backend_ensure_modem_power_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: fu_mm_backend_modem_power_changed_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_backend_ensure_modem_power_inhibit
    - FU_MM_BACKEND
    - g_ptr_array_index
    - fu_backend_get_devices
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: "void fu_mm_backend_modem_power_changed_cb(GFileMonitor *monitor,\n\t\t\t\t
      \    GFile *file,\n\t\t\t\t     GFile *other_file,\n\t\t\t\t     GFileMonitorEvent
      event_type,\n\t\t\t\t     gpointer user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:395,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:395,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:397,1
    - Dst: mm_manager_new_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:400,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:408,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:411,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 418
    functionName: fu_mm_backend_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_BACKEND
    - g_file_new_for_path
    - mm_manager_new_sync
    - g_file_monitor
    - g_autoptr
    - g_signal_connect
    - g_bus_get_sync
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_backend_setup(FuBackend *backend,\n\t\t    FuBackendSetupFlags
      flags,\n\t\t    FuProgress *progress,\n\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:424,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:425,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:426,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:428,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: fu_mm_backend_teardown_manager
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_debug
    - G_CALLBACK
    - g_signal_handlers_disconnect_by_func
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_teardown_manager(FuMmBackend *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_manager_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:438,1
    - Dst: g_autolist
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:439,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:441,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:442,1
    - Dst: g_info
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:448,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:449,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:449,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:451,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:453,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:453,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:455,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:458,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:458,1
    - Dst: g_list_next
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:459,1
    - Dst: MM_OBJECT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:460,1
    - Dst: fu_mm_backend_device_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 435
    functionDepth: 10
    functionLinenumber: 435
    functionLinenumberEnd: 465
    functionName: fu_mm_backend_setup_manager
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_version_compare
    - MM_OBJECT
    - g_autolist
    - mm_manager_get_version
    - g_dbus_object_manager_get_objects
    - fu_mm_backend_device_add
    - G_DBUS_OBJECT_MANAGER
    - g_signal_connect
    - g_info
    - g_list_next
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_setup_manager(FuMmBackend *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_object_manager_client_get_name_owner
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:470,1
    - Dst: G_DBUS_OBJECT_MANAGER_CLIENT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:471,1
    - Dst: fu_mm_backend_setup_manager
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:473,1
    - Dst: fu_mm_backend_teardown_manager
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 11
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: fu_mm_backend_name_owner_changed
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_dbus_object_manager_client_get_name_owner
    - G_DBUS_OBJECT_MANAGER_CLIENT
    - fu_mm_backend_setup_manager
    - fu_mm_backend_teardown_manager
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_name_owner_changed(FuMmBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mm_backend_name_owner_changed
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - manager
    - pspec
    - self
    argTypes:
    - MMManager*
    - GParamSpec*
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 12
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: fu_mm_backend_name_owner_notify_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_backend_name_owner_changed
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_name_owner_notify_cb(MMManager *manager, GParamSpec
      *pspec, FuMmBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:487,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:488,1
    - Dst: MM_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:488,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:490,1
    - Dst: fu_mm_backend_name_owner_changed
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 12
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: fu_mm_backend_coldplug
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_BACKEND
    - MM_MANAGER
    - fu_mm_backend_name_owner_changed
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: fu_mm_backend_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_init(FuMmBackend *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:504,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:506,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:508,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 510
    functionName: fu_mm_backend_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_MM_BACKEND
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:515,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: fu_mm_backend_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_class_init(FuMmBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: fu_mm_backend_new
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_mm_backend_new(FuContext *ctx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:19,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:22,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:23,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:24,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:24,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:29,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:34,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:34,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:40,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:43,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuMmQcdmDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 56
    functionName: fu_mm_qcdm_device_cmd
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_write_bytes
    - g_prefix_error
    - FU_UDEV_DEVICE
    - g_bytes_new
    - g_autoptr
    - g_bytes_compare
    - fu_dump_bytes
    - fu_udev_device_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_cmd(FuMmQcdmDevice *self, const guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:61,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:65,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:65,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:65,1
    - Dst: fu_mm_qcdm_device_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - userdata
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: fu_mm_qcdm_device_switch_to_edl_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QCDM_DEVICE
    - fu_mm_qcdm_device_cmd
    - FU_UDEV_DEVICE
    - g_file_test
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_switch_to_edl_cb(FuDevice *device, gpointer
      userdata, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:74,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: fu_mm_qcdm_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:88,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:89,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: fu_mm_qcdm_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    - FU_MM_QCDM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:98,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:99,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: fu_mm_qcdm_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_QCDM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qcdm_device_prepare(FuDevice *device,\n\t\t\t  FuProgress
      *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:109,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:110,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: fu_mm_qcdm_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_QCDM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qcdm_device_cleanup(FuDevice *device,\n\t\t\t  FuProgress
      *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:117,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:118,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:119,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:120,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:121,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:122,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: fu_mm_qcdm_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_qcdm_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:129,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:129,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:130,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:130,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:131,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmQcdmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: fu_mm_qcdm_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_qcdm_device_init(FuMmQcdmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmQcdmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: fu_mm_qcdm_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_qcdm_device_class_init(FuMmQcdmDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:43,1
    - Dst: qmi_device_close_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:46,1
    - Dst: QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:46,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:50,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:51,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:52,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:57,1
    - Dst: fu_mm_qmi_device_qmi_device_open_attempt
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - qmi_device
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 59
    functionName: fu_mm_qmi_device_qmi_device_open_abort_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_DEVICE
    - qmi_device_close_finish
    - g_clear_error
    - fu_mm_qmi_device_qmi_device_open_attempt
    - g_warn_if_fail
    - g_main_loop_quit
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_qmi_device_open_abort_ready(GObject *qmi_device,\n\t\t\t\t\t
      \     GAsyncResult *res,\n\t\t\t\t\t      gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmi_device_close_async
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceOpenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: fu_mm_qmi_device_open_abort
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_device_close_async
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_open_abort(FuMmQmiDeviceOpenContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:78,1
    - Dst: qmi_device_allocate_client_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:79,1
    - Dst: QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:79,1
    - Dst: fu_mm_qmi_device_open_abort
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:81,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - qmi_device
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: fu_mm_qmi_device_qmi_device_allocate_client_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_DEVICE
    - g_main_loop_quit
    - QMI_CLIENT_PDC
    - qmi_device_allocate_client_finish
    - fu_mm_qmi_device_open_abort
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_qmi_device_allocate_client_ready(GObject *qmi_device,\n\t\t\t\t\t\t
      \  GAsyncResult *res,\n\t\t\t\t\t\t   gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qmi_device_open_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:93,1
    - Dst: QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:93,1
    - Dst: fu_mm_qmi_device_open_abort
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:94,1
    - Dst: qmi_device_allocate_client
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - qmi_device
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: fu_mm_qmi_device_qmi_device_open_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_DEVICE
    - qmi_device_allocate_client
    - qmi_device_open_finish
    - fu_mm_qmi_device_open_abort
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_qmi_device_open_cb(GObject *qmi_device, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:110,1
    - Dst: qmi_device_open
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceOpenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: fu_mm_qmi_device_qmi_device_open_attempt
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 1
    functionsReached:
    - g_debug
    - qmi_device_open
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_qmi_device_open_attempt(FuMmQmiDeviceOpenContext
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qmi_device_new_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:127,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:129,1
    - Dst: fu_mm_qmi_device_qmi_device_open_attempt
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: fu_mm_qmi_device_qmi_device_new_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_device_new_finish
    - g_main_loop_quit
    - fu_mm_qmi_device_qmi_device_open_attempt
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_qmi_device_new_ready(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:140,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:141,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:150,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:150,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:150,1
    - Dst: qmi_device_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:151,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:152,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:157,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: fu_mm_qmi_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_file_new_for_path
    - qmi_device_new
    - FU_UDEV_DEVICE
    - g_warn_if_fail
    - g_autoptr
    - g_main_loop_run
    - g_propagate_error
    - g_main_loop_new
    - FU_MM_QMI_DEVICE
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmi_device_close_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:181,1
    - Dst: QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:181,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:184,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - qmi_device
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: fu_mm_qmi_device_qmi_device_close_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_DEVICE
    - g_main_loop_quit
    - qmi_device_close_finish
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_qmi_device_close_ready(GObject *qmi_device, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmi_device_release_client_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:195,1
    - Dst: QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:195,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:196,1
    - Dst: qmi_device_close_async
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - qmi_device
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: fu_mm_qmi_device_qmi_device_release_client_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_DEVICE
    - qmi_device_release_client_finish
    - qmi_device_close_async
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_qmi_device_release_client_ready(GObject *qmi_device,\n\t\t\t\t\t\t
      \ GAsyncResult *res,\n\t\t\t\t\t\t  gpointer user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:209,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:209,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:212,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:218,1
    - Dst: qmi_device_release_client
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:222,1
    - Dst: QMI_CLIENT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:223,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:229,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 239
    functionName: fu_mm_qmi_device_close
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - qmi_device_release_client
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_main_loop_new
    - FU_MM_QMI_DEVICE
    - QMI_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:267,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 274
    functionName: fu_mm_qmi_device_load_config_timeout
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_signal_handler_disconnect
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_load_config_timeout(gpointer user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:285,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:287,1
    - Dst: qmi_indication_pdc_load_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:290,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:293,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:303,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:304,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:308,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:312,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:313,1
    - Dst: qmi_indication_pdc_load_config_output_get_frame_reset
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:319,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:323,1
    - Dst: qmi_indication_pdc_load_config_output_get_remaining_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:327,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:330,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:331,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:336,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:337,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:341,1
    - Dst: fu_mm_qmi_device_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcLoadConfigOutput*
    - FuMmQmiDeviceWriteContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 343
    functionName: fu_mm_qmi_device_load_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - qmi_indication_pdc_load_config_output_get_frame_reset
    - g_main_loop_quit
    - fu_mm_qmi_device_load_config
    - qmi_protocol_error_get_string
    - qmi_indication_pdc_load_config_output_get_remaining_size
    - qmi_indication_pdc_load_config_output_get_indication_result
    - g_signal_handler_disconnect
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_load_config_indication(QmiClientPdc *client,\n\t\t\t\t\tQmiIndicationPdcLoadConfigOutput
      *output,\n\t\t\t\t\tFuMmQmiDeviceWriteContext *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:349,1
    - Dst: qmi_client_pdc_load_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:351,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:351,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:353,1
    - Dst: qmi_message_pdc_load_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:357,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:358,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:364,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:365,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:365,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:367,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:371,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 373
    functionName: fu_mm_qmi_device_load_config_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_client_pdc_load_config_finish
    - QMI_CLIENT_PDC
    - g_autoptr
    - g_warn_if_fail
    - g_timeout_add_seconds
    - g_main_loop_quit
    - qmi_message_pdc_load_config_output_get_result
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_load_config_ready(GObject *qmi_client, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:382,1
    - Dst: qmi_message_pdc_load_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:384,1
    - Dst: qmi_message_pdc_load_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:385,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:387,1
    - Dst: g_array_sized_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:393,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:394,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:395,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:398,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:399,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:403,1
    - Dst: qmi_message_pdc_load_config_input_set_config_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:406,1
    - Dst: qmi_client_pdc_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceWriteContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 420
    functionName: fu_mm_qmi_device_load_config
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 1
    functionsReached:
    - qmi_message_pdc_load_config_input_new
    - qmi_message_pdc_load_config_input_set_token
    - g_array_set_size
    - g_bytes_get_size
    - fu_memcpy_safe
    - g_critical
    - g_autoptr
    - qmi_client_pdc_load_config
    - qmi_message_pdc_load_config_input_set_config_chunk
    - g_bytes_get_data
    - g_array_sized_new
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_load_config(FuMmQmiDeviceWriteContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:428,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:431,1
    - Dst: g_checksum_type_get_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:432,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:433,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:434,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:434,1
    - Dst: g_array_sized_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:436,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:437,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 441
    functionName: fu_mm_qmi_device_get_checksum
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_array_set_size
    - g_checksum_get_digest
    - g_bytes_get_size
    - g_checksum_update
    - g_checksum_type_get_length
    - g_checksum_new
    - g_autoptr
    - g_bytes_get_data
    - g_array_sized_new
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_mm_qmi_device_get_checksum(GBytes *blob)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:446,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:447,1
    - Dst: fu_mm_qmi_device_get_checksum
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:447,1
    - Dst: fu_mm_qmi_device_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:460,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:461,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:464,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - filename
    - blob
    - error
    argTypes:
    - FuMmQmiDevice*
    - gchar*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 469
    functionName: fu_mm_qmi_device_write
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_qmi_device_get_checksum
    - g_steal_pointer
    - fu_mm_qmi_device_load_config
    - g_propagate_error
    - g_autoptr
    - g_main_loop_run
    - g_main_loop_new
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_mm_qmi_device_write(FuMmQmiDevice *self, const gchar *filename, GBytes *blob,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:487,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: fu_mm_qmi_device_activate_config_timeout
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_signal_handler_disconnect
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_activate_config_timeout(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:503,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:505,1
    - Dst: qmi_indication_pdc_activate_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:508,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:516,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:520,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:521,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:526,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcActivateConfigOutput*
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 528
    functionName: fu_mm_qmi_device_activate_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_indication_pdc_activate_config_output_get_indication_result
    - g_set_error
    - g_debug
    - g_main_loop_quit
    - qmi_protocol_error_get_string
    - g_signal_handler_disconnect
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_activate_config_indication(QmiClientPdc *client,\n\t\t\t\t\t
      \   QmiIndicationPdcActivateConfigOutput *output,\n\t\t\t\t\t    FuMmQmiDeviceActivateContext
      *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:534,1
    - Dst: qmi_client_pdc_activate_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:537,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:537,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:546,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:548,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:550,1
    - Dst: qmi_message_pdc_activate_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:554,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:555,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:564,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:566,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:566,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:568,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:572,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 574
    functionName: fu_mm_qmi_device_activate_config_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_clear_error
    - qmi_client_pdc_activate_config_finish
    - qmi_message_pdc_activate_config_output_get_result
    - g_timeout_add_seconds
    - QMI_CLIENT_PDC
    - g_autoptr
    - g_warn_if_fail
    - g_main_loop_quit
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_activate_config_ready(GObject *qmi_client, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:579,1
    - Dst: qmi_message_pdc_activate_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:581,1
    - Dst: qmi_message_pdc_activate_config_input_set_config_type
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:582,1
    - Dst: qmi_message_pdc_activate_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:585,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:587,1
    - Dst: qmi_client_pdc_activate_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 594
    functionName: fu_mm_qmi_device_activate_config
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - qmi_message_pdc_activate_config_input_new
    - qmi_client_pdc_activate_config
    - qmi_message_pdc_activate_config_input_set_token
    - g_autoptr
    - qmi_message_pdc_activate_config_input_set_config_type
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_activate_config(FuMmQmiDeviceActivateContext
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:602,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:605,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 612
    functionName: fu_mm_qmi_device_set_selected_config_timeout
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_signal_handler_disconnect
    - g_main_loop_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_set_selected_config_timeout(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:621,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:623,1
    - Dst: qmi_indication_pdc_set_selected_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:626,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:629,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:634,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:638,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:639,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:643,1
    - Dst: fu_mm_qmi_device_activate_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcSetSelectedConfigOutput*
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 647
    functionName: fu_mm_qmi_device_set_selected_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - qmi_indication_pdc_set_selected_config_output_get_indication_result
    - g_debug
    - fu_mm_qmi_device_activate_config
    - g_main_loop_quit
    - qmi_protocol_error_get_string
    - g_signal_handler_disconnect
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_set_selected_config_indication(QmiClientPdc
      *client,\n\t\t\t\t\t\tQmiIndicationPdcSetSelectedConfigOutput *output,\n\t\t\t\t\t\tFuMmQmiDeviceActivateContext
      *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:655,1
    - Dst: qmi_client_pdc_set_selected_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:658,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:658,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:660,1
    - Dst: qmi_message_pdc_set_selected_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:664,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:665,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:671,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:673,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:673,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:675,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:679,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 682
    functionName: fu_mm_qmi_device_set_selected_config_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_message_pdc_set_selected_config_output_get_result
    - qmi_client_pdc_set_selected_config_finish
    - g_timeout_add_seconds
    - QMI_CLIENT_PDC
    - g_autoptr
    - g_warn_if_fail
    - g_main_loop_quit
    - G_CALLBACK
    - g_signal_connect
    linkageType: ''
    returnType: void
    signature: "void fu_mm_qmi_device_set_selected_config_ready(GObject *qmi_client,\n\t\t\t\t\t
      \   GAsyncResult *res,\n\t\t\t\t\t    gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:687,1
    - Dst: qmi_message_pdc_set_selected_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:689,1
    - Dst: qmi_message_pdc_set_selected_config_input_set_type_with_id_v2
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:690,1
    - Dst: qmi_message_pdc_set_selected_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:695,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:697,1
    - Dst: qmi_client_pdc_set_selected_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 704
    functionName: fu_mm_qmi_device_set_selected_config
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - qmi_message_pdc_set_selected_config_input_set_token
    - g_autoptr
    - qmi_message_pdc_set_selected_config_input_new
    - qmi_message_pdc_set_selected_config_input_set_type_with_id_v2
    - qmi_client_pdc_set_selected_config
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_set_selected_config(FuMmQmiDeviceActivateContext
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:709,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:709,1
    - Dst: fu_mm_qmi_device_set_selected_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:720,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:721,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmQmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 729
    functionName: fu_mm_qmi_device_activate
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_propagate_error
    - g_main_loop_run
    - g_autoptr
    - g_main_loop_new
    - fu_mm_qmi_device_set_selected_config
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_activate(FuMmQmiDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:734,1
    - Dst: fu_mm_qmi_device_activate
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 740
    functionName: fu_mm_qmi_device_attach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_qmi_device_activate
    - FU_MM_QMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: fu_mm_qmi_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:752,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:753,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: fu_mm_qmi_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    - FU_MM_QMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:766,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:767,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:768,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - file_info
    argTypes:
    - FuMmQmiDeviceFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 770
    functionName: fu_mm_qmi_device_file_info_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_clear_pointer
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_file_info_free(FuMmQmiDeviceFileInfo *file_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:781,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:795,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:796,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:798,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:801,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - version
    - filename
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 803
    functionName: fu_mm_qmi_device_should_be_active
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - g_strdup_printf
    - g_strstr_len
    - g_strv_length
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_should_be_active(const gchar *version, const
      gchar *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:816,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:816,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:819,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:820,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:821,1
    - Dst: fu_mm_qmi_device_should_be_active
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:823,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:823,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - archive
    - filename
    - bytes
    - user_data
    - error
    argTypes:
    - FuArchive*
    - gchar*
    - GBytes*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 827
    functionName: fu_mm_qmi_device_archive_iterate_mcfg_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version
    - g_str_has_prefix
    - g_new0
    - fu_mm_qmi_device_should_be_active
    - FU_DEVICE
    - g_str_has_suffix
    - g_strdup
    - g_bytes_ref
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qmi_device_archive_iterate_mcfg_cb(FuArchive *archive,\n\t\t\t\t\t
      const gchar *filename,\n\t\t\t\t\t GBytes *bytes,\n\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:836,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:837,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:838,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:839,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:840,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:849,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:852,1
    - Dst: fu_archive_iterate
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:857,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:864,1
    - Dst: fu_mm_qmi_device_write
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:865,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:870,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:884,1
    - Dst: g_array_ref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:885,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:889,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 895
    functionName: fu_mm_qmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_mm_qmi_device_write
    - fu_archive_iterate
    - g_prefix_error
    - g_ptr_array_index
    - g_propagate_error
    - g_autoptr
    - g_array_ref
    - g_ptr_array_new_with_free_func
    - fu_archive_new_stream
    - FU_MM_QMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qmi_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:903,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:904,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 906
    functionName: fu_mm_qmi_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_QMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qmi_device_prepare(FuDevice *device,\n\t\t\t FuProgress
      *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:914,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:915,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 917
    functionName: fu_mm_qmi_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_QMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qmi_device_cleanup(FuDevice *device,\n\t\t\t FuProgress
      *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:922,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:923,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:924,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:925,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:926,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:927,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 929
    functionName: fu_mm_qmi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:934,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmQmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: fu_mm_qmi_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_init(FuMmQmiDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:940,1
    - Dst: g_array_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:943,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 946
    functionName: fu_mm_qmi_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_array_unref
    - FU_MM_QMI_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:951,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmQmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 963
    functionName: fu_mm_qmi_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_class_init(FuMmQmiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:27,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:28,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_mm_dfota_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DFOTA_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:35,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:37,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:37,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:38,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:42,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:42,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:46,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:50,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:51,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:51,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: fu_mm_dfota_device_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_debug
    - g_prefix_error
    - FU_MM_DFOTA_DEVICE
    - g_autoptr
    - fu_mm_device_at_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: fu_mm_dfota_device_compute_checksum_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_compute_checksum_cb(const guint8 *buf,\n\t\t\t\t
      \      gsize bufsz,\n\t\t\t\t       gpointer user_data,\n\t\t\t\t       GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:85,1
    - Dst: g_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:91,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:92,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:92,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:96,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:96,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:98,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:98,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:103,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:109,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:115,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:121,1
    - Dst: g_regex_match
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuMmDfotaDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 139
    functionName: fu_mm_dfota_device_upload_chunk
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_set_error
    - fu_udev_device_write_bytes
    - g_prefix_error
    - g_bytes_get_size
    - g_regex_new
    - fu_bytes_pad
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_regex_match
    - fu_chunk_get_bytes
    - fu_udev_device_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_upload_chunk(FuMmDfotaDevice *self, FuChunk
      *chk, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:153,1
    - Dst: g_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:158,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:162,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:162,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:168,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:171,1
    - Dst: g_strrstr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:174,1
    - Dst: g_regex_match
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:181,1
    - Dst: g_match_info_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:187,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:188,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:196,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:197,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:198,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:199,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - self
    - checksum
    - size
    - error
    argTypes:
    - FuMmDfotaDevice*
    - guint16*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 210
    functionName: fu_mm_dfota_device_parse_upload_result
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_match_info_matches
    - g_debug
    - g_prefix_error
    - g_regex_new
    - fu_strtoull
    - g_set_error_literal
    - g_strrstr
    - FU_UDEV_DEVICE
    - g_match_info_fetch
    - g_autoptr
    - g_regex_match
    - g_bytes_get_data
    - fu_udev_device_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_parse_upload_result(FuMmDfotaDevice *self,\n\t\t\t\t
      \      guint16 *checksum,\n\t\t\t\t       gsize *size,\n\t\t\t\t       GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:219,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:221,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:225,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:225,1
    - Dst: fu_mm_dfota_device_upload_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:228,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:233,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:233,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:237,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:239,1
    - Dst: fu_mm_dfota_device_parse_upload_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:244,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:247,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMmDfotaDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 267
    functionName: fu_mm_dfota_device_upload_stream
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - g_set_error
    - g_debug
    - fu_chunk_array_length
    - g_prefix_error
    - fu_mm_dfota_device_parse_upload_result
    - fu_mm_dfota_device_upload_chunk
    - fu_input_stream_chunkify
    - g_autoptr
    - fu_chunk_array_index
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_upload_stream(FuMmDfotaDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:277,1
    - Dst: g_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:283,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:285,1
    - Dst: g_regex_match
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:295,1
    - Dst: g_match_info_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:298,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:299,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:306,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:308,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:309,1
    - Dst: g_match_info_get_match_count
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:314,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:315,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:323,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:324,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:332,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:333,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:338,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:346,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:351,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 5
    argNames:
    - self
    - response
    - progress
    - finished
    - error
    argTypes:
    - FuMmDfotaDevice*
    - gchar*
    - FuProgress*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 357
    functionName: fu_mm_dfota_device_parse_fota_response
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_match_info_matches
    - g_set_error
    - g_debug
    - g_ascii_string_to_unsigned
    - g_prefix_error
    - g_regex_new
    - g_set_error_literal
    - g_match_info_fetch
    - g_autoptr
    - fu_progress_set_percentage
    - g_match_info_get_match_count
    - g_strcmp0
    - g_regex_match
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_parse_fota_response(FuMmDfotaDevice *self,\n\t\t\t\t
      \      const gchar *response,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      gboolean *finished,\n\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:366,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:369,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:369,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:376,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:382,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:383,1
    - Dst: fu_mm_dfota_device_parse_fota_response
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 395
    functionName: fu_mm_dfota_device_attach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_mm_dfota_device_parse_fota_response
    - g_strstrip
    - FU_MM_DFOTA_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_strsafe_bytes
    - fu_udev_device_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:406,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:409,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:414,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:416,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:417,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:417,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:418,1
    - Dst: fu_mm_dfota_device_upload_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:421,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:423,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:423,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:427,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 397
    functionDepth: 7
    functionLinenumber: 397
    functionLinenumberEnd: 434
    functionName: fu_mm_dfota_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_firmware_get_size
    - FU_MM_DEVICE
    - fu_mm_dfota_device_upload_stream
    - g_prefix_error
    - g_strdup_printf
    - FU_MM_DFOTA_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_mm_device_at_cmd
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:442,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:443,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 445
    functionName: fu_mm_dfota_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DFOTA_DEVICE
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_prepare(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:453,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:454,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: fu_mm_dfota_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DFOTA_DEVICE
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_dfota_device_cleanup(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:461,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:462,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:463,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:464,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:465,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:466,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 468
    functionName: fu_mm_dfota_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_dfota_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:473,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDfotaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: fu_mm_dfota_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_mm_dfota_device_init(FuMmDfotaDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmDfotaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 487
    functionName: fu_mm_dfota_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_dfota_device_class_init(FuMmDfotaDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:24,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: fu_mm_mhi_qcdm_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_MM_MHI_QCDM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mhi_qcdm_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:44,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:47,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:48,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:49,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:50,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:55,1
    - Dst: fu_kernel_search_path_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmMhiQcdmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: fu_mm_mhi_qcdm_device_search_path_locker_new
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_build_filename
    - g_mkdir_with_parents
    - fwupd_strerror
    - g_autoptr
    - fu_path_from_kind
    - fu_kernel_search_path_locker_new
    linkageType: ''
    returnType: FuKernelSearchPathLocker
    signature: 'FuKernelSearchPathLocker *

      fu_mm_mhi_qcdm_device_search_path_locker_new(FuMmMhiQcdmDevice *self, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:70,1
    - Dst: fu_mm_mhi_qcdm_device_search_path_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: fu_mm_mhi_qcdm_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_mhi_qcdm_device_search_path_locker_new
    - FU_MM_MHI_QCDM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mhi_qcdm_device_prepare(FuDevice *device,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:88,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: fu_mm_mhi_qcdm_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MHI_QCDM_DEVICE
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mhi_qcdm_device_cleanup(FuDevice *device,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_search_path_locker_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:100,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:101,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:102,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - prog
    - error
    argTypes:
    - FuMmMhiQcdmDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: fu_mm_mhi_qcdm_device_copy_firehose_prog
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_kernel_search_path_locker_get_path
    - g_build_filename
    - fu_path_mkdir_parent
    - fu_bytes_set_contents
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mhi_qcdm_device_copy_firehose_prog(FuMmMhiQcdmDevice
      *self, GBytes *prog, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:115,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:119,1
    - Dst: fu_mm_mhi_qcdm_device_copy_firehose_prog
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:122,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:126,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 132
    functionName: fu_mm_mhi_qcdm_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MHI_QCDM_DEVICE
    - FU_DEVICE_CLASS
    - fu_mm_mhi_qcdm_device_copy_firehose_prog
    - fu_firmware_get_image_by_id_bytes
    - fu_device_add_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mhi_qcdm_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:140,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:142,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:143,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: fu_mm_mhi_qcdm_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_MM_MHI_QCDM_DEVICE
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_mhi_qcdm_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \  const gchar *key,\n\t\t\t\t   const gchar *value,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:158,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: fu_mm_mhi_qcdm_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:170,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:171,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:171,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:172,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:172,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:173,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmMhiQcdmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: fu_mm_mhi_qcdm_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_init(FuMmMhiQcdmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:179,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:180,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: fu_mm_mhi_qcdm_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_MM_MHI_QCDM_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:187,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmMhiQcdmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: fu_mm_mhi_qcdm_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_class_init(FuMmMhiQcdmDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FIREHOSE_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:22,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:24,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:24,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:26,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:26,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:27,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: fu_mm_firehose_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FIREHOSE_DEVICE
    - FU_MM_DEVICE
    - g_prefix_error
    - fu_device_add_flag
    - fu_mm_device_at_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_firehose_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FIREHOSE_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:39,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:40,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_mm_firehose_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_FIREHOSE_DEVICE
    - fu_mm_device_set_device_file
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_firehose_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FIREHOSE_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:49,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:50,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: fu_mm_firehose_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_FIREHOSE_DEVICE
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_firehose_device_prepare(FuDevice *device,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FIREHOSE_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:60,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:61,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: fu_mm_firehose_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_FIREHOSE_DEVICE
    - FU_MM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_firehose_device_cleanup(FuDevice *device,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:68,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:69,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:70,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:71,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:72,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:73,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: fu_mm_firehose_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_firehose_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:80,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:80,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:81,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:81,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:82,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmFirehoseDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_mm_firehose_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_firehose_device_init(FuMmFirehoseDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmFirehoseDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: fu_mm_firehose_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_firehose_device_class_init(FuMmFirehoseDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:33,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:35,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:35,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:37,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:37,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:38,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: fu_mm_fdl_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - g_prefix_error
    - FU_MM_FDL_DEVICE
    - fu_mm_device_at_cmd
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:50,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:54,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:54,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:64,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: fu_mm_fdl_device_wait_ready_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_udev_device_read
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_wait_ready_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:79,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:79,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:86,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - size_bytes
    - chunk_bytes
    - error
    argTypes:
    - FuMmFdlDevice*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: fu_mm_fdl_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_bytes
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_fdl_device_write_chunk(FuMmFdlDevice *self,\n\t\t\t
      \    GBytes *size_bytes,\n\t\t\t     GBytes *chunk_bytes,\n\t\t\t     GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:104,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - response
    - error
    argTypes:
    - FuMmFdlDevice*
    - FuMmCinterionFdlResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: fu_mm_fdl_device_read_response
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_fdl_device_read_response(FuMmFdlDevice *self,\n\t\t\t
      \      FuMmCinterionFdlResponse *response,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:142,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:144,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuMmFdlDeviceWriteHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: fu_mm_fdl_device_write_helper_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_mm_fdl_device_write_helper_free(FuMmFdlDeviceWriteHelper *helper)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:153,1
    - Dst: fu_mm_fdl_device_read_response
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: fu_mm_fdl_device_read_chunk_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_mm_fdl_device_read_response
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_read_chunk_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:176,1
    - Dst: fu_mm_fdl_device_write_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:180,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:182,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: fu_mm_fdl_device_write_chunk_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error_literal
    - fu_mm_fdl_device_write_chunk
    - FU_DEVICE
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_write_chunk_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:207,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:211,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:214,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:227,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:229,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:233,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:234,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:234,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:235,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:244,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:247,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:257,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:259,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 274
    functionName: fu_mm_fdl_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_device_retry_full
    - fu_firmware_get_size
    - fu_memread_uint16_safe
    - g_debug
    - g_set_error
    - g_new0
    - g_prefix_error
    - g_bytes_get_size
    - FU_DEVICE
    - g_autoptr
    - FU_MM_FDL_DEVICE
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - g_bytes_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_fdl_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:279,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:280,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: fu_mm_fdl_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:287,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:287,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:287,1
    - Dst: tcsetattr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:292,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmFdlDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 306
    functionName: fu_mm_fdl_device_set_io_flags
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - tcsetattr
    - fu_io_channel_unix_get_fd
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_set_io_flags(FuMmFdlDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:311,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:314,1
    - Dst: fu_mm_fdl_device_set_io_flags
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: fu_mm_fdl_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_fdl_device_set_io_flags
    - FU_DEVICE_CLASS
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:325,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:326,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: fu_mm_fdl_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_fdl_device_prepare(FuDevice *device,\n\t\t\t FuProgress
      *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_FDL_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:336,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:337,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: fu_mm_fdl_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_inhibited
    - FU_MM_DEVICE
    - FU_MM_FDL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_fdl_device_cleanup(FuDevice *device,\n\t\t\t FuProgress
      *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:344,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:345,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:346,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:347,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:348,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:349,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 351
    functionName: fu_mm_fdl_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_fdl_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:356,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:356,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:357,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:357,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmFdlDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: fu_mm_fdl_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_fdl_device_init(FuMmFdlDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmFdlDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: fu_mm_fdl_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_fdl_device_class_init(FuMmFdlDeviceClass *klass)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:34,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:38,1
    - Dst: fu_struct_uf2_parse
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:41,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:41,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:42,1
    - Dst: fu_struct_uf2_get_flags
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:49,1
    - Dst: fu_struct_uf2_get_payload_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:57,1
    - Dst: fu_struct_uf2_get_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:64,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:65,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:69,1
    - Dst: fu_struct_uf2_get_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:70,1
    - Dst: fu_struct_uf2_get_num_blocks
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:74,1
    - Dst: fu_struct_uf2_get_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:81,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:82,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:91,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:92,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:92,1
    - Dst: fu_struct_uf2_get_target_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:92,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:93,1
    - Dst: fu_struct_uf2_get_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:93,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:97,1
    - Dst: fu_struct_uf2_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:97,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:100,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:114,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:117,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:123,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:132,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:133,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:142,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:144,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:145,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:154,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:154,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:156,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:157,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 4
    argNames:
    - self
    - chk
    - tmp
    - error
    argTypes:
    - FuUf2Firmware*
    - FuChunk*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 167
    functionName: fu_uf2_firmware_parse_chunk
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_chunk_get_idx
    - fu_struct_uf2_get_flags
    - fu_struct_uf2_get_num_blocks
    - g_set_error
    - fu_firmware_set_addr
    - fu_chunk_get_data
    - fu_struct_uf2_parse
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_struct_uf2_get_family_id
    - g_getenv
    - fu_chunk_get_data_sz
    - fu_struct_uf2_get_target_addr
    - g_warning
    - fu_firmware_set_id
    - fu_struct_uf2_get_block_no
    - fu_struct_uf2_get_data
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - fu_firmware_set_version
    - g_malloc0
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_byte_array_append
    - fu_struct_uf2_get_payload_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_firmware_parse_chunk(FuUf2Firmware *self, FuChunk *chk,
      GByteArray *tmp, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:176,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:178,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:181,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:189,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:192,1
    - Dst: fu_uf2_firmware_parse_chunk
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:195,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:200,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 203
    functionName: fu_uf2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - fu_firmware_set_bytes
    - FU_UF2_FIRMWARE
    - g_autoptr
    - fu_chunk_array_index
    - g_bytes_new
    - fu_uf2_firmware_parse_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uf2_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:208,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:210,1
    - Dst: fu_struct_uf2_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:210,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:213,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:213,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:217,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:217,1
    - Dst: fu_struct_uf2_set_flags
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:220,1
    - Dst: fu_struct_uf2_set_target_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:221,1
    - Dst: fu_struct_uf2_set_payload_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:222,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:222,1
    - Dst: fu_struct_uf2_set_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:223,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:223,1
    - Dst: fu_struct_uf2_set_num_blocks
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:224,1
    - Dst: fu_struct_uf2_set_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:225,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:225,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:225,1
    - Dst: fu_struct_uf2_set_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:226,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:226,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:226,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chk
    - chk_len
    - error
    argTypes:
    - FuUf2Firmware*
    - FuChunk*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 231
    functionName: fu_uf2_firmware_write_chunk
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - fu_struct_uf2_set_data
    - fu_struct_uf2_set_num_blocks
    - fu_struct_uf2_set_family_id
    - fu_struct_uf2_set_target_addr
    - fu_struct_uf2_set_flags
    - FU_FIRMWARE
    - fu_firmware_get_addr
    - fu_chunk_get_idx
    - fu_struct_uf2_set_block_no
    - fu_firmware_get_idx
    - fu_struct_uf2_set_payload_size
    - g_autoptr
    - fu_chunk_get_data
    - fu_struct_uf2_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_uf2_firmware_write_chunk(FuUf2Firmware *self, FuChunk *chk, guint chk_len,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:237,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:239,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:242,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:247,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:248,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:256,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:259,1
    - Dst: fu_uf2_firmware_write_chunk
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:262,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:262,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: fu_uf2_firmware_write
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_steal_pointer
    - fu_uf2_firmware_write_chunk
    - fu_firmware_get_addr
    - FU_UF2_FIRMWARE
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_uf2_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUf2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: fu_uf2_firmware_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uf2_firmware_init(FuUf2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: fu_uf2_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uf2_firmware_class_init(FuUf2FirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:288,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: fu_uf2_firmware_new
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uf2_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:20,1
    - Dst: fu_uf2_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:21,1
    - Dst: fu_uf2_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:28,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:31,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:34,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:38,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:41,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_uf2_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/uf2/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_new
    - fu_firmware_get_checksum
    - g_file_get_contents
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_uf2_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:49,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:50,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:53,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uf2/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUf2Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_uf2_plugin_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uf2_plugin_init(FuUf2Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:29,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_uf2_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uf2_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_uf2_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uf2_plugin_class_init(FuUf2PluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:30,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:31,1
    - Dst: fu_uf2_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:31,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:33,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:37,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:39,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:44,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:49,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 52
    functionName: fu_uf2_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_new
    - g_set_error
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_firmware_get_idx
    - g_autoptr
    - FU_UF2_DEVICE
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_uf2_device_prepare_firmware(FuDevice *device,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuProgress *progress,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:58,1
    - Dst: fu_uf2_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:59,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:62,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:64,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:65,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:65,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:68,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:69,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:71,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:73,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:81,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:84,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:85,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - fw
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 90
    functionName: fu_uf2_device_probe_current_fw
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_new
    - fu_device_set_version
    - fu_firmware_get_version
    - fu_device_add_flag
    - fu_firmware_get_idx
    - g_compute_checksum_for_bytes
    - g_autoptr
    - fu_device_add_instance_u32
    - fu_device_build_instance_id_full
    - fu_firmware_parse_bytes
    - fu_device_add_checksum
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_probe_current_fw(FuDevice *device, GBytes *fw,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_block_partition_get_mount_point
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:96,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:96,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuUf2Device*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: fu_uf2_device_get_full_path
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_block_partition_get_mount_point
    - FU_BLOCK_PARTITION
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uf2_device_get_full_path(FuUf2Device *self, const gchar *filename, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:111,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:114,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:119,1
    - Dst: fu_device_set_contents
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:124,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:128,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:129,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 135
    functionName: fu_uf2_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - g_debug
    - fu_device_has_private_flag
    - fu_device_set_contents
    - fu_device_add_flag
    - g_autoptr
    - FU_UF2_DEVICE
    - fu_uf2_device_get_full_path
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uf2_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:140,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:144,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: fu_uf2_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_UF2_DEVICE
    - fu_device_get_contents_bytes
    - fu_uf2_device_get_full_path
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uf2_device_dump_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:153,1
    - Dst: fu_uf2_firmware_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:154,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:156,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:159,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: fu_uf2_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_new
    - g_steal_pointer
    - fu_device_dump_firmware
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uf2_device_read_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:168,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:168,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:171,1
    - Dst: fu_volume_mount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUf2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: fu_uf2_device_volume_mount
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_volume_new_by_device
    - fu_volume_mount
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_volume_mount(FuUf2Device *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:180,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:184,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:192,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 205
    functionName: fu_uf2_device_check_volume_mounted_cb
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_volume_new_by_device
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_volume_is_mounted
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_check_volume_mounted_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:211,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:214,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:218,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:223,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:229,1
    - Dst: fu_uf2_device_volume_mount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:231,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:234,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: fu_uf2_device_open
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE_CLASS
    - g_error_matches
    - g_steal_pointer
    - fu_device_has_flag
    - fu_uf2_device_volume_mount
    - g_propagate_error
    - g_autoptr
    - FU_UF2_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_open(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:246,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:249,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:254,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 261
    functionName: fu_uf2_device_close
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_UF2_DEVICE
    - fu_volume_unmount
    - FU_DEVICE_CLASS
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_close(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:266,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:271,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:274,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:278,1
    - Dst: fu_block_partition_get_fs_type
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:278,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:279,1
    - Dst: fu_block_partition_get_fs_type
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:283,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:283,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:288,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:288,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:289,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:292,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:292,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:293,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:298,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:301,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:302,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:304,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:305,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:306,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:307,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:310,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:313,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:316,1
    - Dst: fu_uf2_device_probe_current_fw
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:318,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:321,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:321,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 326
    functionName: fu_uf2_device_setup
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_block_partition_get_fs_uuid
    - fu_strsplit_bytes
    - g_set_error
    - FU_DEVICE_CLASS
    - fu_device_add_instance_strsafe
    - fu_uf2_device_get_full_path
    - fu_uf2_device_probe_current_fw
    - fu_block_partition_get_fs_type
    - FU_BLOCK_PARTITION
    - g_autoptr
    - fu_device_set_version_format
    - g_str_has_prefix
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_get_contents_bytes
    - fu_device_add_instance_str
    - FU_UF2_DEVICE
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:332,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:334,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:338,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - usb_device
    - error
    argTypes:
    - FuUf2Device*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 9
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: fu_uf2_device_usb_probe
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_probe
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_usb_probe(FuUf2Device *self, FuDevice *usb_device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:356,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:359,1
    - Dst: fu_uf2_device_usb_probe
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:362,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 352
    functionDepth: 10
    functionLinenumber: 352
    functionLinenumberEnd: 376
    functionName: fu_uf2_device_probe
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_uf2_device_usb_probe
    - fu_device_has_flag
    - g_set_error_literal
    - g_autoptr
    - FU_UF2_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:382,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:382,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:383,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:383,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: fu_uf2_device_replace
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_private_flag
    - fu_device_get_vid
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:390,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:392,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:393,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:394,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:395,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: fu_uf2_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:402,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: fu_uf2_device_to_string
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_UF2_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:409,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: fu_uf2_device_vid_notify_cb
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_vid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:415,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: fu_uf2_device_pid_notify_cb
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_pid_notify_cb(FuDevice *device, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:421,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:422,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:423,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:424,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:425,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:426,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:428,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:430,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUf2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 434
    functionName: fu_uf2_device_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_init(FuUf2Device *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:439,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:443,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: fu_uf2_device_finalize
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_UF2_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:451,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: fu_uf2_device_class_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_class_init(FuUf2DeviceClass *klass)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:27,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:30,1
    - Dst: fu_struct_ebitdo_hdr_parse_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:33,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:36,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:40,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:44,1
    - Dst: fu_struct_ebitdo_hdr_get_version
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:50,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:51,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:54,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:57,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:59,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:60,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:63,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:66,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:68,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:69,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 71
    functionName: fu_ebitdo_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ebitdo_hdr_get_destination_addr
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_firmware_set_stream
    - fu_struct_ebitdo_hdr_get_destination_len
    - fu_firmware_parse_stream
    - fu_firmware_set_addr
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_ebitdo_hdr_parse_stream
    - fu_partial_input_stream_new
    - fu_input_stream_size
    - fu_firmware_new
    - fu_struct_ebitdo_hdr_get_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ebitdo_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:76,1
    - Dst: fu_struct_ebitdo_hdr_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:77,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:80,1
    - Dst: fu_struct_ebitdo_hdr_set_version
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:83,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:83,1
    - Dst: fu_struct_ebitdo_hdr_set_destination_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:84,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:84,1
    - Dst: fu_struct_ebitdo_hdr_set_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:85,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:85,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:86,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: fu_ebitdo_firmware_write
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_struct_ebitdo_hdr_set_destination_addr
    - g_bytes_get_size
    - fu_firmware_get_version_raw
    - fu_firmware_get_addr
    - fu_struct_ebitdo_hdr_new
    - g_autoptr
    - fu_struct_ebitdo_hdr_set_destination_len
    - fu_struct_ebitdo_hdr_set_version
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ebitdo_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: fu_ebitdo_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ebitdo_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:99,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEbitdoFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: fu_ebitdo_firmware_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_firmware_init(FuEbitdoFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: fu_ebitdo_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_firmware_class_init(FuEbitdoFirmwareClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:40,1
    - Dst: fu_struct_ebitdo_pkt_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:41,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:43,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:51,1
    - Dst: fu_struct_ebitdo_pkt_set_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:56,1
    - Dst: fu_struct_ebitdo_pkt_set_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:57,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:61,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:62,1
    - Dst: fu_struct_ebitdo_pkt_set_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:63,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:64,1
    - Dst: fu_struct_ebitdo_pkt_set_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:73,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:75,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:76,1
    - Dst: fu_struct_ebitdo_pkt_set_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:77,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:79,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:82,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:82,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 7
    argNames:
    - self
    - type
    - subtype
    - cmd
    - in
    - in_len
    - error
    argTypes:
    - FuEbitdoDevice*
    - FuEbitdoPktType
    - FuEbitdoPktCmd
    - FuEbitdoPktCmd
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 99
    functionName: fu_ebitdo_device_send
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ebitdo_pkt_set_cmd_len
    - fu_struct_ebitdo_pkt_new
    - g_set_error
    - fu_usb_device_interrupt_transfer
    - fu_struct_ebitdo_pkt_set_subtype
    - fu_struct_ebitdo_pkt_set_pkt_len
    - fu_struct_ebitdo_pkt_set_cmd
    - fu_struct_ebitdo_pkt_set_type
    - fu_memcpy_safe
    - fu_device_has_flag
    - FU_DEVICE
    - fu_struct_ebitdo_pkt_set_payload_len
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ebitdo_device_send(FuEbitdoDevice *self,\n\t\t      FuEbitdoPktType
      type,\n\t\t      FuEbitdoPktCmd subtype,\n\t\t      FuEbitdoPktCmd cmd,\n\t\t
      \     const guint8 *in,\n\t\t      gsize in_len,\n\t\t      GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:108,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:111,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:115,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:123,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:133,1
    - Dst: fu_struct_ebitdo_pkt_parse
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:134,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:139,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:140,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:141,1
    - Dst: fu_struct_ebitdo_pkt_get_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:144,1
    - Dst: fu_struct_ebitdo_pkt_get_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:150,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:153,1
    - Dst: fu_struct_ebitdo_pkt_get_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:167,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:170,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:177,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:191,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:192,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:195,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:201,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:204,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:210,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:218,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:219,1
    - Dst: fu_struct_ebitdo_pkt_get_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:220,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:221,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:222,1
    - Dst: fu_ebitdo_pkt_cmd_to_string
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:227,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:234,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - self
    - out
    - out_len
    - error
    argTypes:
    - FuEbitdoDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 236
    functionName: fu_ebitdo_device_receive
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - fu_struct_ebitdo_pkt_get_cmd
    - fu_memcpy_safe
    - fu_struct_ebitdo_pkt_get_payload_len
    - fu_device_has_flag
    - FU_DEVICE
    - fu_struct_ebitdo_pkt_parse
    - fu_struct_ebitdo_pkt_get_subtype
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_ebitdo_pkt_get_cmd_len
    - fu_dump_raw
    - fu_struct_ebitdo_pkt_get_type
    - fu_struct_ebitdo_pkt_get_pkt_len
    - fu_ebitdo_pkt_cmd_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_receive(FuEbitdoDevice *self, guint8 *out,
      gsize out_len, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: fu_ebitdo_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ebitdo_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:251,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:257,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEbitdoDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: fu_ebitdo_device_validate
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - fu_device_get_vid
    - FU_DEVICE
    - fu_device_get_vendor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_validate(FuEbitdoDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EBITDO_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:279,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:282,1
    - Dst: fu_ebitdo_device_validate
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:286,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:288,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 297
    functionName: fu_ebitdo_device_open
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - FU_EBITDO_DEVICE
    - FU_DEVICE_CLASS
    - fu_ebitdo_device_validate
    - FU_USB_DEVICE
    - fu_usb_device_claim_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_open(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_EBITDO_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:302,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:307,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:311,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:312,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:321,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:327,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:328,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:333,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:342,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:345,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:345,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:348,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:357,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:361,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 365
    functionName: fu_ebitdo_device_setup
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - FU_EBITDO_DEVICE
    - fu_ebitdo_device_send
    - FU_DEVICE_CLASS
    - fu_ebitdo_device_receive
    - fu_device_has_flag
    - FU_DEVICE
    - GUINT32_FROM_LE
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_setup(FuDevice *device, GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:370,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:370,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:373,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:378,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:378,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:379,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:380,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:386,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:392,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:397,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:406,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:412,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:417,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:422,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:425,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:426,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:430,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:433,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:434,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:435,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:435,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:436,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:436,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:437,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 367
    functionDepth: 6
    functionLinenumber: 367
    functionLinenumberEnd: 438
    functionName: fu_ebitdo_device_detach
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_update_image
    - fwupd_request_set_kind
    - g_string_new
    - fu_device_has_flag
    - fu_device_get_update_message
    - fu_device_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_autoptr
    - fwupd_request_set_image
    - fu_device_set_update_message
    - g_string_append
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_EBITDO_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:452,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:454,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:473,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:474,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:485,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:488,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:491,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:496,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:497,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:504,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:507,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:508,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:511,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:514,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:522,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:525,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:528,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:529,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:530,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:531,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:532,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:536,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:537,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:539,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:541,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:544,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:545,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:547,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:550,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:550,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:552,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:554,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:562,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:569,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:574,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:581,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:584,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:585,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:586,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:587,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:588,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:591,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:591,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:594,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 598
    functionName: fu_ebitdo_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - FU_EBITDO_DEVICE
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_device_has_flag
    - g_propagate_error
    - fu_device_set_remove_delay
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - fu_ebitdo_device_receive
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_ebitdo_device_send
    - g_steal_pointer
    - g_autoptr
    - fu_chunk_array_index
    - g_bytes_get_data
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ebitdo_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:603,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:607,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:607,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:608,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:609,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:610,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:611,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:614,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:614,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:619,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:620,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 600
    functionDepth: 6
    functionLinenumber: 600
    functionLinenumberEnd: 626
    functionName: fu_ebitdo_device_attach
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_prefix_error
    - fu_device_has_flag
    - fu_device_add_flag
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    - fu_device_set_remove_delay
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:632,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:633,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:636,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:637,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:640,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:643,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:644,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 628
    functionDepth: 6
    functionLinenumber: 628
    functionLinenumberEnd: 654
    functionName: fu_ebitdo_device_probe
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_set_summary
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_vendor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:659,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:660,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:661,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 666
    functionName: fu_ebitdo_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:671,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:672,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:673,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:674,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:675,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:676,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEbitdoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: fu_ebitdo_device_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_device_init(FuEbitdoDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 692
    functionName: fu_ebitdo_device_class_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_device_class_init(FuEbitdoDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEbitdoPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_ebitdo_plugin_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_plugin_init(FuEbitdoPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_ebitdo_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_ebitdo_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_plugin_class_init(FuEbitdoPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:27,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:29,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:32,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:34,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:36,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:40,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:42,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:42,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:43,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:44,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:45,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:46,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:48,1
    - Dst: fu_mei_issue_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: fu_pci_mei_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32
    - fwupd_codec_string_append_int
    - fu_mei_issue_to_string
    - g_strdup_printf
    - FU_PCI_MEI_PLUGIN
    - fu_mei_family_to_string
    - fu_device_get_id
    - fwupd_codec_string_append_hex
    - G_N_ELEMENTS
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:60,1
    - Dst: fu_mei_csme11_hfsts1_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:61,1
    - Dst: fu_mei_csme11_hfsts1_get_operation_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:67,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: fu_pci_mei_plugin_detect_family
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_MEI_PLUGIN
    - fu_mei_csme11_hfsts1_parse
    - fu_mei_csme11_hfsts1_get_operation_mode
    - g_autoptr
    linkageType: ''
    returnType: FuMeiFamily
    signature: FuMeiFamily fu_pci_mei_plugin_detect_family(FuPlugin *plugin)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:83,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:85,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:86,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:87,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:90,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:92,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:101,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:102,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:103,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:113,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:117,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:119,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:127,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:128,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:133,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:137,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:138,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:143,1
    - Dst: fu_pci_mei_plugin_detect_family
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:150,1
    - Dst: fu_mei_common_is_csme_vulnerable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:152,1
    - Dst: fu_mei_common_is_txe_vulnerable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:154,1
    - Dst: fu_mei_common_is_sps_vulnerable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:156,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:157,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:158,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 3
    argNames:
    - plugin
    - fwvers
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 163
    functionName: fu_pci_mei_plugin_parse_fwvers
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - g_debug
    - g_prefix_error
    - fu_pci_mei_plugin_detect_family
    - g_strsplit
    - FU_PCI_MEI_PLUGIN
    - fu_mei_common_is_csme_vulnerable
    - fu_mei_common_is_sps_vulnerable
    - g_strv_length
    - fu_mei_family_to_string
    - fu_mei_common_is_txe_vulnerable
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pci_mei_plugin_parse_fwvers(FuPlugin *plugin, const gchar
      *fwvers, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:175,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:178,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:183,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:183,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:183,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:184,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:184,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:185,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:185,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:186,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:191,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:192,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:193,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:193,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:198,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:204,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:204,1
    - Dst: fu_pci_mei_plugin_parse_fwvers
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 215
    functionName: fu_pci_mei_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_pci_mei_plugin_parse_fwvers
    - g_build_filename
    - g_prefix_error
    - fu_udev_device_add_open_flag
    - fu_device_locker_new
    - FU_PCI_MEI_PLUGIN
    - g_set_object
    - FU_IS_PCI_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_set_device_file
    - fu_udev_device_pread
    - G_N_ELEMENTS
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pci_mei_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \      FuDevice *device,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:223,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:226,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:227,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:228,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:232,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:237,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:237,1
    - Dst: fu_mei_csme11_hfsts1_get_mfg_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:238,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:239,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:240,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - plugin
    - hfsts1
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 246
    functionName: fu_pci_mei_plugin_add_attrs_csme11_manufacturing_mode
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - fu_mei_family_to_string
    - fu_mei_csme11_hfsts1_get_mfg_mode
    - g_autoptr
    - fwupd_security_attr_add_metadata
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_manufacturing_mode(FuPlugin
      *plugin,\n\t\t\t\t\t\t      FuMeiCsme11Hfsts1 *hfsts1,\n\t\t\t\t\t\t      FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:254,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:257,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:258,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:259,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:263,1
    - Dst: fu_mei_csme18_hfsts1_get_spi_protection_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:268,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:269,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:270,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:275,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:276,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:277,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:278,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - hfsts1
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme18Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 284
    functionName: fu_pci_mei_plugin_add_attrs_csme18_manufacturing_mode
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_mei_csme18_hfsts1_get_operation_mode
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme18_hfsts1_get_spi_protection_mode
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme18_manufacturing_mode(FuPlugin
      *plugin,\n\t\t\t\t\t\t      FuMeiCsme18Hfsts1 *hfsts1,\n\t\t\t\t\t\t      FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:292,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:295,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:296,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:297,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:301,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:306,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:306,1
    - Dst: fu_mei_csme11_hfsts1_get_operation_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:307,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:308,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:309,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - plugin
    - hfsts1
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: fu_pci_mei_plugin_add_attrs_csme11_override_strap
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts1_get_operation_mode
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - fu_mei_family_to_string
    - g_autoptr
    - fwupd_security_attr_add_metadata
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_override_strap(FuPlugin *plugin,\n\t\t\t\t\t\t
      \ FuMeiCsme11Hfsts1 *hfsts1,\n\t\t\t\t\t\t  FuSecurityAttrs *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:323,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:326,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:327,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:328,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:332,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:337,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:337,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:338,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:339,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:340,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - hfsts1
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme18Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: fu_pci_mei_plugin_add_attrs_csme18_override_strap
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_mei_csme18_hfsts1_get_operation_mode
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - fu_mei_family_to_string
    - g_autoptr
    - fwupd_security_attr_add_metadata
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme18_override_strap(FuPlugin *plugin,\n\t\t\t\t\t\t
      \ FuMeiCsme18Hfsts1 *hfsts1,\n\t\t\t\t\t\t  FuSecurityAttrs *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:354,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:357,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:358,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:359,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:363,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:368,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:369,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:370,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 376
    functionName: fu_pci_mei_plugin_add_attrs_csme11_bootguard_enabled
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_bootguard_enabled(FuPlugin
      *plugin,\n\t\t\t\t\t\t     FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t     FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:383,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:384,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:387,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:388,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:389,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:393,1
    - Dst: fu_mei_csme18_hfsts5_get_valid
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:398,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:399,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:400,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - plugin
    - hfsts5
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme18Hfsts5*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 406
    functionName: fu_pci_mei_plugin_add_attrs_csme18_bootguard_enabled
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme18_hfsts5_get_valid
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme18_bootguard_enabled(FuPlugin
      *plugin,\n\t\t\t\t\t\t     FuMeiCsme18Hfsts5 *hfsts5,\n\t\t\t\t\t\t     FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:414,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:417,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:418,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:419,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:423,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:428,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:429,1
    - Dst: fu_mei_csme11_hfsts6_get_verified_boot
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:434,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:435,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:436,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 442
    functionName: fu_pci_mei_plugin_add_attrs_csme11_bootguard_verified
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme11_hfsts6_get_verified_boot
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_bootguard_verified(FuPlugin
      *plugin,\n\t\t\t\t\t\t      FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t      FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:450,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:453,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:454,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:455,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:459,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:464,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:465,1
    - Dst: fu_mei_csme11_hfsts6_get_force_boot_guard_acm
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:470,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:471,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:472,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 478
    functionName: fu_pci_mei_plugin_add_attrs_csme11_bootguard_acm
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - fu_mei_csme11_hfsts6_get_force_boot_guard_acm
    - g_autoptr
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_bootguard_acm(FuPlugin *plugin,\n\t\t\t\t\t\t
      FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t FuSecurityAttrs *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:486,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:489,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:490,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:491,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:495,1
    - Dst: fu_mei_csme18_hfsts5_get_btg_acm_active
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:500,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:501,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:502,1
    - Dst: fu_mei_csme18_hfsts5_get_acm_done_sts
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:505,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:506,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:507,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - plugin
    - hfsts5
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme18Hfsts5*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 513
    functionName: fu_pci_mei_plugin_add_attrs_csme18_bootguard_acm
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme18_hfsts5_get_acm_done_sts
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme18_hfsts5_get_btg_acm_active
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme18_bootguard_acm(FuPlugin *plugin,\n\t\t\t\t\t\t
      FuMeiCsme18Hfsts5 *hfsts5,\n\t\t\t\t\t\t FuSecurityAttrs *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:521,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:524,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:525,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:526,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:530,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:535,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:536,1
    - Dst: fu_mei_csme11_hfsts6_get_error_enforce_policy
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:542,1
    - Dst: fu_mei_csme11_hfsts6_get_error_enforce_policy
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:544,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:546,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:547,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 553
    functionName: fu_pci_mei_plugin_add_attrs_csme11_bootguard_policy
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts6_get_error_enforce_policy
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_bootguard_policy(FuPlugin
      *plugin,\n\t\t\t\t\t\t    FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t    FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:561,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:564,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:565,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:566,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:570,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:575,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:576,1
    - Dst: fu_mei_csme11_hfsts6_get_fpf_soc_lock
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:581,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:582,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:583,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 589
    functionName: fu_pci_mei_plugin_add_attrs_csme11_bootguard_otp
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_mei_csme11_hfsts6_get_fpf_soc_lock
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme11_bootguard_otp(FuPlugin *plugin,\n\t\t\t\t\t\t
      FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t FuSecurityAttrs *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:596,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:597,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:600,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:601,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:602,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:606,1
    - Dst: fu_mei_csme18_hfsts6_get_fpf_soc_configuration_lock
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:611,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:612,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:613,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - plugin
    - hfsts6
    - attrs
    argTypes:
    - FuPlugin*
    - FuMeiCsme18Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 619
    functionName: fu_pci_mei_plugin_add_attrs_csme18_bootguard_otp
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_mei_csme18_hfsts6_get_fpf_soc_configuration_lock
    linkageType: ''
    returnType: void
    signature: "void fu_pci_mei_plugin_add_attrs_csme18_bootguard_otp(FuPlugin *plugin,\n\t\t\t\t\t\t
      FuMeiCsme18Hfsts6 *hfsts6,\n\t\t\t\t\t\t FuSecurityAttrs *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:626,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:629,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:630,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:631,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:635,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:640,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:647,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:650,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:651,1
    - Dst: fu_mei_family_to_string
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:651,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:655,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:656,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 662
    functionName: fu_pci_mei_plugin_add_attrs_mei_version
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - g_strdup_printf
    - fwupd_security_attr_set_result_success
    - FU_PCI_MEI_PLUGIN
    - fu_mei_family_to_string
    - fwupd_security_attr_set_result
    - g_autoptr
    - fwupd_security_attr_add_metadata
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_add_attrs_mei_version(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:667,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:668,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:671,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:675,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:679,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:684,1
    - Dst: fu_mei_csme11_hfsts1_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:687,1
    - Dst: fu_mei_csme11_hfsts6_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:693,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_manufacturing_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:699,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_override_strap
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:700,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_bootguard_enabled
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:701,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_bootguard_verified
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:702,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_bootguard_acm
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:703,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_bootguard_policy
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:704,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme11_bootguard_otp
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:705,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:709,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:710,1
    - Dst: fu_mei_csme18_hfsts1_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:713,1
    - Dst: fu_mei_csme18_hfsts5_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:719,1
    - Dst: fu_mei_csme18_hfsts6_parse
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:725,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme18_manufacturing_mode
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:731,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme18_override_strap
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:732,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme18_bootguard_enabled
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:733,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme18_bootguard_acm
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:734,1
    - Dst: fu_pci_mei_plugin_add_attrs_csme18_bootguard_otp
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:735,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:737,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:740,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:742,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:743,1
    - Dst: fu_pci_mei_plugin_add_attrs_mei_version
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:748,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 749
    functionName: fu_pci_mei_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_mei_csme11_hfsts1_parse
    - fu_pci_mei_plugin_add_attrs_csme18_override_strap
    - fu_pci_mei_plugin_add_attrs_csme18_bootguard_enabled
    - fu_pci_mei_plugin_add_attrs_csme11_bootguard_acm
    - fwupd_security_attr_set_result
    - fu_security_attrs_get_by_appstream_id
    - fu_pci_mei_plugin_add_attrs_csme18_bootguard_otp
    - fu_cpu_get_vendor
    - fu_mei_csme18_hfsts5_parse
    - fu_plugin_security_attr_new
    - FU_PCI_MEI_PLUGIN
    - g_autoptr
    - fu_mei_csme18_hfsts6_parse
    - fu_pci_mei_plugin_add_attrs_csme18_bootguard_acm
    - fu_pci_mei_plugin_add_attrs_mei_version
    - fu_pci_mei_plugin_add_attrs_csme11_bootguard_policy
    - fu_pci_mei_plugin_add_attrs_csme11_bootguard_verified
    - fu_mei_csme11_hfsts6_parse
    - fu_pci_mei_plugin_add_attrs_csme11_bootguard_otp
    - fu_pci_mei_plugin_add_attrs_csme11_bootguard_enabled
    - fu_pci_mei_plugin_add_attrs_csme11_manufacturing_mode
    - fu_mei_csme18_hfsts1_parse
    - fu_security_attrs_append
    - fu_pci_mei_plugin_add_attrs_csme18_manufacturing_mode
    - fu_pci_mei_plugin_add_attrs_csme11_override_strap
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciMeiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: fu_pci_mei_plugin_init
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_init(FuPciMeiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:759,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: fu_pci_mei_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_MEI_PLUGIN
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:766,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:768,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 770
    functionName: fu_pci_mei_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_MEI_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:775,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciMeiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: fu_pci_mei_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_mei_plugin_class_init(FuPciMeiPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - vers1
    - vers2
    argTypes:
    - FuMeiVersion*
    - FuMeiVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 34
    functionName: fu_mei_common_cmp_version
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_mei_common_cmp_version(FuMeiVersion *vers1, FuMeiVersion *vers2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - vers
    argTypes:
    - FuMeiVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: fu_mei_common_is_csme_vulnerable
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FuMeiIssue
    signature: FuMeiIssue fu_mei_common_is_csme_vulnerable(FuMeiVersion *vers)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - vers
    argTypes:
    - FuMeiVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: fu_mei_common_is_txe_vulnerable
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FuMeiIssue
    signature: FuMeiIssue fu_mei_common_is_txe_vulnerable(FuMeiVersion *vers)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:96,1
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:105,1
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:114,1
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:125,1
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:134,1
    - Dst: fu_mei_common_cmp_version
      Src: /src/fwupd/plugins/pci-mei/fu-mei-common.c:142,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - vers
    argTypes:
    - FuMeiVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 148
    functionName: fu_mei_common_is_sps_vulnerable
    functionSourceFile: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    functionUses: 1
    functionsReached:
    - fu_mei_common_cmp_version
    linkageType: ''
    returnType: FuMeiIssue
    signature: FuMeiIssue fu_mei_common_is_sps_vulnerable(FuMeiVersion *vers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_algoltek_product_identity_validate_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_algoltek_usb_firmware_validate
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_product_identity_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  gsize offset,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:38,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:39,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:42,1
    - Dst: fu_struct_algoltek_product_identity_parse_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:45,1
    - Dst: fu_struct_algoltek_product_identity_get_version
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:48,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:52,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:55,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:57,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:58,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:62,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:65,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:67,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:68,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: fu_algoltek_usb_firmware_parse
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_struct_algoltek_product_identity_parse_stream
    - fu_firmware_set_version
    - fu_firmware_parse_stream
    - fu_struct_algoltek_product_identity_get_version
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:78,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:80,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:82,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:85,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:87,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:90,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: fu_algoltek_usb_firmware_write
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_image_by_id_bytes
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usb_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: fu_algoltek_usb_firmware_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_firmware_init(FuAlgoltekUsbFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: fu_algoltek_usb_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_firmware_class_init(FuAlgoltekUsbFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_algoltek_usb_plugin_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_plugin_init(FuAlgoltekUsbPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_algoltek_usb_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_algoltek_usb_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_plugin_class_init(FuAlgoltekUsbPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:32,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - self
    - direction
    - algoltek_cmd
    - value
    - index
    - buf
    - len
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - FuUsbDirection
    - FuAlgoltekCmd
    - guint16
    - guint16
    - GByteArray*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: fu_algoltek_usb_device_ctrl_transfer
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_device_ctrl_transfer(FuAlgoltekUsbDevice
      *self,\n\t\t\t\t     FuUsbDirection direction,\n\t\t\t\t     FuAlgoltekCmd algoltek_cmd,\n\t\t\t\t
      \    guint16 value,\n\t\t\t\t     guint16 index,\n\t\t\t\t     GByteArray *buf,\n\t\t\t\t
      \    guint8 len,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:50,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:50,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:52,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:53,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:54,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:55,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:55,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:57,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: fu_algoltek_usb_device_rdr
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - g_steal_pointer
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usb_device_rdr(FuAlgoltekUsbDevice *self, int address, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:75,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:76,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:76,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:78,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:79,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:80,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:80,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:82,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:92,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:108,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 120
    functionName: fu_algoltek_usb_device_rdv
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_struct_algoltek_cmd_transfer_pkt_set_checksum
    - fu_sum8
    - fu_struct_algoltek_cmd_transfer_pkt_new
    - g_autoptr
    - fu_struct_algoltek_cmd_transfer_pkt_set_len
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_transfer_pkt_set_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usb_device_rdv(FuAlgoltekUsbDevice *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:125,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:125,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:127,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:128,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:129,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:129,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 144
    functionName: fu_algoltek_usb_device_en
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - g_prefix_error
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_en(FuAlgoltekUsbDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:149,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:149,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:151,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:152,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:153,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:154,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:154,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:157,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:165,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 178
    functionName: fu_algoltek_usb_device_rst
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - g_prefix_error
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_rst(FuAlgoltekUsbDevice *self, guint16
      address, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:183,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:183,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:185,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:186,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:187,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_value
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:188,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:189,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:192,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: fu_algoltek_usb_device_wrr
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_value
    - g_prefix_error
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_wrr(FuAlgoltekUsbDevice *self, int
      address, int value, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:223,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:225,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:232,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:233,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:233,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:237,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:237,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:239,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:242,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:244,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:245,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:246,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:246,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:247,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:248,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:251,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:254,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:257,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:265,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:273,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - self
    - stream
    - address
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GInputStream*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 280
    functionName: fu_algoltek_usb_device_isp
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_prefix_error
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_progress_set_steps
    - g_set_error
    - fu_struct_algoltek_cmd_transfer_pkt_set_checksum
    - fu_struct_algoltek_cmd_transfer_pkt_set_data
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_struct_algoltek_cmd_transfer_pkt_set_address
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_struct_algoltek_cmd_transfer_pkt_new
    - g_autoptr
    - fu_chunk_array_index
    - fu_struct_algoltek_cmd_transfer_pkt_set_cmd
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_sum8
    - fu_struct_algoltek_cmd_transfer_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_device_isp(FuAlgoltekUsbDevice *self,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   guint address,\n\t\t\t   FuProgress *progress,\n\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:285,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:285,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:287,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:288,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:289,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:290,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:290,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:293,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:301,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 314
    functionName: fu_algoltek_usb_device_bot
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - g_prefix_error
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_bot(FuAlgoltekUsbDevice *self, int
      address, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:323,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:323,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:325,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:326,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:327,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:327,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - erase_type
    - sector
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - guint
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 342
    functionName: fu_algoltek_usb_device_ers
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - g_prefix_error
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - fu_struct_algoltek_cmd_address_pkt_new
    - g_autoptr
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_address_pkt_set_len
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_device_ers(FuAlgoltekUsbDevice *self,\n\t\t\t
      \  guint erase_type,\n\t\t\t   guint8 sector,\n\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:348,1
    - Dst: fu_algoltek_usb_device_rdr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:351,1
    - Dst: FU_ALGOLTEK_USB_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:351,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 369
    functionName: fu_algoltek_usb_device_status_check_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_ALGOLTEK_USB_DEVICE
    - fu_algoltek_usb_device_rdr
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_status_check_cb(FuDevice *self, gpointer
      user_data, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:378,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:378,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:380,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:387,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:388,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:388,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:393,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:393,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:395,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:398,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:398,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:398,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:400,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:406,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:407,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:410,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:411,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:413,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:421,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:425,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:426,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 437
    functionName: fu_algoltek_usb_device_wrf
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_chunk_array_length
    - g_prefix_error
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_progress_set_steps
    - fu_memwrite_uint24
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_memread_uint16
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - FU_DEVICE
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_device_wrf(FuAlgoltekUsbDevice *self,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USB_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:444,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:447,1
    - Dst: fu_algoltek_usb_device_rdv
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:450,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:453,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: fu_algoltek_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - fu_algoltek_usb_device_rdv
    - g_autoptr
    - fu_strsafe
    - FU_ALGOLTEK_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_setup(FuDevice *device, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USB_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:470,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:474,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:475,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:476,1
    - Dst: fu_algoltek_usb_device_en
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:478,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:481,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:484,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:486,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:489,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:492,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:495,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:498,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:501,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:504,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:507,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:510,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:513,1
    - Dst: fu_algoltek_usb_device_isp
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:516,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:519,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:522,1
    - Dst: fu_algoltek_usb_device_bot
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:524,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:527,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:529,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:533,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:534,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:537,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:540,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:544,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:548,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:551,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:553,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:557,1
    - Dst: fu_algoltek_usb_device_wrf
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:560,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:562,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:566,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:568,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:572,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 461
    functionDepth: 6
    functionLinenumber: 461
    functionLinenumberEnd: 576
    functionName: fu_algoltek_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_algoltek_usb_device_isp
    - FU_ALGOLTEK_USB_DEVICE
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_firmware_get_image_by_id_stream
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_algoltek_usb_device_en
    - fu_algoltek_usb_device_wrf
    - fu_progress_step_done
    - g_autoptr
    - fu_algoltek_usb_device_ers
    - fu_algoltek_usb_device_wrr
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_algoltek_usb_device_bot
    - fu_algoltek_usb_device_rst
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usb_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:581,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:582,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:583,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:584,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:585,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: fu_algoltek_usb_device_set_progress
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:592,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:593,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:594,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:596,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:596,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:597,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:598,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:598,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:599,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:599,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 589
    functionDepth: 6
    functionLinenumber: 589
    functionLinenumberEnd: 601
    functionName: fu_algoltek_usb_device_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_device_init(FuAlgoltekUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: fu_algoltek_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usb_device_class_init(FuAlgoltekUsbDeviceClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:120,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:122,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:126,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:130,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:136,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:140,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:144,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:150,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:154,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:160,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:166,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:172,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:176,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 185
    functionName: fu_msr_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_MSR_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_to_string(FuPlugin *plugin, guint idt, GString *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:190,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:197,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:205,1
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:206,1
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:209,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:217,1
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:218,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 227
    functionName: fu_msr_plugin_startup
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_MSR_PLUGIN
    - g_debug
    - fu_cpuid
    - fu_cpu_get_vendor
    - g_set_error_literal
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:235,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:238,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:244,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:244,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:244,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:248,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:248,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:249,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:253,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:254,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:260,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:260,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:265,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:268,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:277,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:282,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:285,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:294,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:294,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:299,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:302,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:311,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:311,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:316,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:319,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:330,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:335,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:338,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:347,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:347,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:352,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:355,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:364,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:364,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:369,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:372,1
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:386,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:388,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:388,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:393,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:396,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:397,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:398,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:406,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 411
    functionName: fu_msr_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_memread_uint64_safe
    - fu_udev_device_get_sysfs_path
    - fu_cpuid
    - fu_udev_device_get_subsystem
    - FU_UDEV_DEVICE
    - fu_dump_raw
    - fu_device_set_physical_id
    - FU_MSR_PLUGIN
    - fu_cpu_get_vendor
    - fu_plugin_cache_lookup
    - g_autoptr
    - fu_device_locker_new
    - fu_device_set_version_raw
    - fu_udev_device_pread
    - g_path_get_basename
    - fu_memread_uint32_safe
    - FU_IS_UDEV_DEVICE
    - FU_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_msr_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \  FuDevice *device,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:416,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:416,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: fu_msr_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_plugin
    - fu_plugin_cache_add
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_device_registered(FuPlugin *plugin, FuDevice *dev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:425,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:427,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:430,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:434,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:436,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:436,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:437,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:438,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:442,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:443,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:447,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:448,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 454
    functionName: fu_msr_plugin_add_security_attr_dci_enabled
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_MSR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_dci_enabled(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:459,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:462,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:465,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:472,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:473,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:477,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:478,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:479,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:480,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:480,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:484,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:490,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:491,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:497,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:498,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:502,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:503,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 509
    functionName: fu_msr_plugin_add_security_attr_intel_gds
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata
    - FU_MSR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_device_get_guids
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_intel_gds(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:515,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:518,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:522,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:526,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:527,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:528,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:533,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:537,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:538,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:539,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:543,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:544,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:545,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:549,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:550,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 554
    functionName: fu_msr_plugin_add_security_attr_intel_tme_enabled
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_MSR_PLUGIN
    - fwupd_security_attr_remove_flag
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_security_attrs_get_by_appstream_id
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_intel_tme_enabled(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:559,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:561,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:564,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:568,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:570,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:570,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:571,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:572,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:576,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:577,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:581,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:582,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 588
    functionName: fu_msr_plugin_add_security_attr_dci_locked
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_MSR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_dci_locked(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:593,1
    - Dst: fu_kernel_check_version
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: fu_msr_plugin_safe_kernel_for_sme
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_check_version
    - fu_plugin_get_config_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_safe_kernel_for_sme(FuPlugin *plugin, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:601,1
    - Dst: fu_cpu_get_attrs
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:603,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:606,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:608,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:608,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:610,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 620
    functionName: fu_msr_plugin_kernel_enabled_sme
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_cpu_get_attrs
    - g_auto
    - g_strsplit
    - g_set_error_literal
    - g_autoptr
    - g_hash_table_lookup
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_kernel_enabled_sme(GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:625,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:626,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:628,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:631,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:635,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:637,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:637,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:638,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:639,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:643,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:648,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:649,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:650,1
    - Dst: fu_msr_plugin_safe_kernel_for_sme
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:654,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:655,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:656,1
    - Dst: fu_msr_plugin_kernel_enabled_sme
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:660,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:661,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:662,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:663,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:668,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 670
    functionName: fu_msr_plugin_add_security_attr_amd_sme_enabled
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_MSR_PLUGIN
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fwupd_security_attr_add_obsolete
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    - fu_msr_plugin_safe_kernel_for_sme
    - fu_msr_plugin_kernel_enabled_sme
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_amd_sme_enabled(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_MSR_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:675,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:678,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:679,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:682,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:691,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:693,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:698,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:699,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:702,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:704,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:706,1
    - Dst: g_info
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:707,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:715,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:717,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:717,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:718,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:719,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:722,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:723,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:726,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:727,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:729,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 730
    functionName: fu_msr_plugin_add_security_attr_amd_hwcr
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_add_guids
    - fu_device_get_metadata
    - g_debug
    - fwupd_security_attr_set_result
    - g_info
    - FU_MSR_PLUGIN
    - fu_cpu_get_vendor
    - fu_plugin_security_attr_new
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fu_device_get_metadata_integer
    - g_autoptr
    - g_strsplit
    - fu_device_get_guids
    - fu_security_attrs_append
    - g_strcmp0
    - fu_device_get_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attr_amd_hwcr(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_msr_plugin_add_security_attr_dci_enabled
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:735,1
    - Dst: fu_msr_plugin_add_security_attr_dci_locked
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:736,1
    - Dst: fu_msr_plugin_add_security_attr_amd_sme_enabled
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:737,1
    - Dst: fu_msr_plugin_add_security_attr_intel_tme_enabled
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:738,1
    - Dst: fu_msr_plugin_add_security_attr_intel_gds
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:739,1
    - Dst: fu_msr_plugin_add_security_attr_amd_hwcr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 732
    functionDepth: 5
    functionLinenumber: 732
    functionLinenumberEnd: 741
    functionName: fu_msr_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_msr_plugin_add_security_attr_amd_hwcr
    - fu_msr_plugin_add_security_attr_intel_gds
    - fu_msr_plugin_add_security_attr_dci_enabled
    - fu_msr_plugin_add_security_attr_amd_sme_enabled
    - fu_msr_plugin_add_security_attr_dci_locked
    - fu_msr_plugin_add_security_attr_intel_tme_enabled
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:747,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:748,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: fu_msr_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_modify_config(FuPlugin *plugin, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsrPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: fu_msr_plugin_init
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_init(FuMsrPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:766,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:767,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 4
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: fu_msr_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_set_config_default
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMsrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: fu_msr_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_msr_plugin_class_init(FuMsrPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:18,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:19,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:21,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:23,1
    - Dst: fu_uefi_mok_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:25,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:28,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:28,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:31,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:31,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:33,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:34,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:34,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 51
    functionName: fu_uefi_mok_nx_disabled_func
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_codec_to_string
    - g_assert_cmpint
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_test_build_filename
    - fu_plugin_new
    - FWUPD_CODEC
    - g_assert_no_error
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_autoptr
    - g_assert_false
    - fwupd_security_attr_set_created
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_nx_disabled_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:58,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:59,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:61,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:63,1
    - Dst: fu_uefi_mok_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:65,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:66,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:68,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:68,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:71,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:71,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:73,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:74,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:74,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: fu_uefi_mok_nx_invalid_func
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_codec_to_string
    - g_assert_cmpint
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_test_build_filename
    - fu_plugin_new
    - FWUPD_CODEC
    - g_assert_no_error
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_autoptr
    - g_assert_false
    - fwupd_security_attr_set_created
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_nx_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:99,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:100,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:102,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:104,1
    - Dst: fu_uefi_mok_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:106,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:109,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:109,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:112,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:112,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:114,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:115,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:115,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 132
    functionName: fu_uefi_mok_nx_valid_func
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_codec_to_string
    - g_assert_cmpint
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_test_build_filename
    - fu_plugin_new
    - g_assert_true
    - FWUPD_CODEC
    - g_assert_no_error
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_autoptr
    - fwupd_security_attr_set_created
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_nx_valid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:137,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:138,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:140,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:141,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:142,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:143,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_setenv
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:21,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_uefi_mok_plugin_get_filename
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_path_from_kind
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_mok_plugin_get_filename(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_mok_plugin_get_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:28,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:31,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: fu_uefi_mok_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_uefi_mok_plugin_get_filename
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_mok_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:44,1
    - Dst: fu_uefi_mok_plugin_get_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:45,1
    - Dst: fu_uefi_mok_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:47,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:49,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:50,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: fu_uefi_mok_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_error_matches
    - fu_security_attrs_append
    - fu_uefi_mok_plugin_get_filename
    - fu_uefi_mok_attr_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiMokPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: fu_uefi_mok_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_plugin_init(FuUefiMokPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiMokPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: fu_uefi_mok_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_mok_plugin_class_init(FuUefiMokPluginClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:18,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:21,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:22,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:23,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:26,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:29,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:31,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:35,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:36,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:38,1
    - Dst: fu_uefi_mok_hsi_key_from_string
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:39,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:40,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:47,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:48,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:53,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:54,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c:60,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - plugin
    - filename
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 61
    functionName: fu_uefi_mok_attr_new
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c
    functionUses: 4
    functionsReached:
    - g_auto
    - fwupd_security_attr_add_flag
    - g_steal_pointer
    - fu_plugin_security_attr_new
    - g_strsplit
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_set_plugin
    - g_strv_length
    - fwupd_security_attr_add_metadata
    - g_autoptr
    - fu_strsplit_bytes
    - g_strcmp0
    - fu_bytes_get_contents
    - fu_uefi_mok_hsi_key_from_string
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_uefi_mok_attr_new(FuPlugin *plugin, const gchar *filename, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_PSP_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fu_amd_gpu_psp_firmware_export
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_AMD_GPU_PSP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_psp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:55,1
    - Dst: fu_struct_efs_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:57,1
    - Dst: fu_struct_psp_dir_validate_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:60,1
    - Dst: fu_struct_efs_get_psp_dir_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: fu_amd_gpu_psp_firmware_validate
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_efs_parse_stream
    - fu_struct_efs_get_psp_dir_loc
    - g_autoptr
    - fu_struct_psp_dir_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:69,1
    - Dst: fu_struct_psp_dir_table_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:72,1
    - Dst: fu_struct_psp_dir_get_total_entries
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:77,1
    - Dst: fu_struct_psp_dir_table_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: fu_amd_gpu_psp_firmware_parse_l2
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_psp_dir_table_parse_stream
    - fu_struct_psp_dir_get_total_entries
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_parse_l2(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:95,1
    - Dst: fu_struct_psp_dir_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:98,1
    - Dst: fu_struct_psp_dir_get_total_entries
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:107,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:108,1
    - Dst: fu_amd_gpu_atom_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:109,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:110,1
    - Dst: fu_struct_psp_dir_table_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:112,1
    - Dst: fu_struct_psp_dir_table_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:116,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:118,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:124,1
    - Dst: fu_struct_psp_dir_table_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:128,1
    - Dst: fu_struct_psp_dir_table_get_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:133,1
    - Dst: fu_struct_image_slot_header_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:134,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:137,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:139,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:140,1
    - Dst: fu_struct_image_slot_header_get_loc_csm
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:143,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:144,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:145,1
    - Dst: fu_struct_image_slot_header_get_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:148,1
    - Dst: fu_struct_image_slot_header_get_slot_max_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:149,1
    - Dst: fu_struct_image_slot_header_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:150,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:152,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:153,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:156,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:157,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:160,1
    - Dst: fu_struct_image_slot_header_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:164,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:167,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:169,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:172,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:173,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:175,1
    - Dst: fu_amd_gpu_psp_firmware_parse_l2
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:178,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 186
    functionName: fu_amd_gpu_psp_firmware_parse_l1
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_image_slot_header_get_loc_csm
    - fu_struct_psp_dir_parse_stream
    - fu_struct_psp_dir_table_get_loc
    - g_set_error
    - fu_struct_psp_dir_table_get_fw_id
    - fu_struct_image_slot_header_get_loc
    - fu_struct_psp_dir_table_parse_stream
    - fu_firmware_set_addr
    - fu_struct_image_slot_header_parse_stream
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_struct_image_slot_header_get_slot_max_size
    - fu_amd_gpu_psp_firmware_parse_l2
    - fu_amd_gpu_atom_firmware_new
    - fu_struct_image_slot_header_get_fw_id
    - fu_struct_psp_dir_get_total_entries
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_parse_l1(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_PSP_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:195,1
    - Dst: fu_struct_efs_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:197,1
    - Dst: fu_struct_efs_get_psp_dir_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:200,1
    - Dst: fu_amd_gpu_psp_firmware_parse_l1
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: fu_amd_gpu_psp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_efs_parse_stream
    - fu_amd_gpu_psp_firmware_parse_l1
    - fu_struct_efs_get_psp_dir_loc
    - g_autoptr
    - FU_AMD_GPU_PSP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuPspFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: fu_amd_gpu_psp_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_psp_firmware_init(FuAmdGpuPspFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuPspFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: fu_amd_gpu_psp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_psp_firmware_class_init(FuAmdGpuPspFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:229,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: fu_amd_gpu_psp_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_gpu_psp_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:42,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:44,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: fu_amd_gpu_device_to_string
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_AMDGPU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:56,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:59,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:60,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:60,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:62,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:66,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:67,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:70,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:73,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:73,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:78,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:78,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:80,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:84,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:85,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:88,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:89,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:90,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:98,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:106,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:109,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - self
    - base
    - error
    argTypes:
    - FuAmdGpuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 111
    functionName: fu_amd_gpu_device_set_device_file
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_event_set_str
    - g_str_has_prefix
    - g_dir_read_name
    - g_build_filename
    - fu_device_event_get_str
    - fu_device_save_event
    - g_strdup_printf
    - fu_device_get_context
    - g_dir_open
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_load_event
    - FU_UDEV_DEVICE
    - fu_path_from_kind
    - g_autoptr
    - fu_udev_device_set_device_file
    - fu_context_has_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_set_device_file(FuAmdGpuDevice *self, const
      gchar *base, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:116,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:125,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:125,1
    - Dst: fu_amd_gpu_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:126,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:130,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:131,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:134,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:135,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:135,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:136,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:138,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:139,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:140,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:140,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:144,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:145,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:147,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:148,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:151,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:152,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:153,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:154,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:155,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:156,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:157,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 162
    functionName: fu_amd_gpu_device_probe
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_amd_gpu_device_set_device_file
    - FU_AMDGPU_DEVICE
    - fu_device_add_private_flag
    - g_build_filename
    - fu_udev_device_add_open_flag
    - fu_device_set_logical_id
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_device_set_install_duration
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:167,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:167,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:172,1
    - Dst: amdgpu_device_initialize
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:175,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:175,1
    - Dst: amdgpu_get_marketing_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:180,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:182,1
    - Dst: amdgpu_device_deinitialize
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:183,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:185,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: fu_amd_gpu_device_set_marketing_name
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_io_channel_unix_get_fd
    - amdgpu_device_initialize
    - amdgpu_get_marketing_name
    - fu_device_has_flag
    - fu_udev_device_get_io_channel
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - amdgpu_device_deinitialize
    - fwupd_strerror
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_set_marketing_name(FuAmdGpuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_SIZE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: fu_amd_gpu_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - GPOINTER_TO_SIZE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t\t
      \ gpointer ptr,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:204,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:204,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:204,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:211,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:212,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:213,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:214,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuAmdGpuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: fu_amd_gpu_device_ioctl_drm_info
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_ioctl_drm_info(FuAmdGpuDevice *self, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:234,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:236,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:237,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:238,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:238,1
    - Dst: g_info
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:241,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:242,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:243,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - str
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: fu_amd_gpu_device_parse_version_string
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - g_steal_pointer
    - fu_device_has_flag
    - g_propagate_error
    - g_autoptr
    - fu_device_set_version_raw
    - g_info
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_parse_version_string(FuDevice *device, const
      gchar *str, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:254,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:258,1
    - Dst: fu_amd_gpu_device_set_marketing_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:260,1
    - Dst: fu_amd_gpu_device_ioctl_drm_info
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:262,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:267,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:268,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:269,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:272,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:273,1
    - Dst: fu_amd_gpu_device_parse_version_string
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:274,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:278,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 251
    functionDepth: 6
    functionLinenumber: 251
    functionLinenumberEnd: 282
    functionName: fu_amd_gpu_device_setup
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - FU_AMDGPU_DEVICE
    - fu_strsplit
    - fu_device_set_summary
    - fu_amd_gpu_device_ioctl_drm_info
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_amd_gpu_device_set_marketing_name
    - g_strv_length
    - fu_amd_gpu_device_parse_version_string
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:287,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: fu_amd_gpu_device_convert_version
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_gpu_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:298,1
    - Dst: fu_amd_gpu_psp_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:301,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:304,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:308,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:311,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:314,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:318,1
    - Dst: fu_amd_gpu_atom_firmware_get_vbios_pn
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:318,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:321,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:329,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 335
    functionName: fu_amd_gpu_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - FU_AMDGPU_DEVICE
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_parse_stream
    - g_autoptr
    - g_strcmp0
    - fu_strsafe
    - fu_amd_gpu_atom_firmware_get_vbios_pn
    - fu_amd_gpu_psp_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_amd_gpu_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuFirmwareParseFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:340,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:340,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:346,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:347,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:349,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 362
    functionName: fu_amd_gpu_device_wait_for_completion_cb
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_get_contents
    - g_build_filename
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_wait_for_completion_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:374,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:378,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:381,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:381,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:382,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:385,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:391,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:394,1
    - Dst: fu_io_channel_write_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:397,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:401,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:408,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 417
    functionName: fu_amd_gpu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_debug
    - fu_io_channel_read_raw
    - g_build_filename
    - fu_io_channel_new_file
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_firmware_get_bytes
    - fu_io_channel_write_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:422,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:423,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:424,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:425,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:426,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: fu_amd_gpu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:433,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:434,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: fu_amd_gpu_device_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_add_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_init(FuAmdGpuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:441,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:442,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: fu_amd_gpu_device_finalize
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_AMDGPU_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:449,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: fu_amd_gpu_device_class_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_class_init(FuAmdGpuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_ATOM_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:51,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:53,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:55,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:56,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:57,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:58,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:59,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:60,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: fu_amd_gpu_atom_firmware_export
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - FU_AMD_GPU_ATOM_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_amd_gpu_atom_firmware_export(FuFirmware *firmware,\n\t\t\t\tFuFirmwareExportFlags
      flags,\n\t\t\t\tXbBuilderNode *bn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:70,1
    - Dst: fu_struct_atom_image_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:72,1
    - Dst: fu_struct_atom_rom21_header_validate_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:75,1
    - Dst: fu_struct_atom_image_get_rom_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: fu_amd_gpu_atom_firmware_validate
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_atom_rom21_header_validate_stream
    - fu_struct_atom_image_parse_stream
    - g_autoptr
    - fu_struct_atom_image_get_rom_loc
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  gsize offset,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_ATOM_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_amd_gpu_atom_firmware_get_vbios_pn
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 1
    functionsReached:
    - FU_AMD_GPU_ATOM_FIRMWARE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_gpu_atom_firmware_get_vbios_pn(FuFirmware *firmware)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:95,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:98,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:104,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:111,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:115,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 118
    functionName: fu_amd_gpu_atom_firmware_parse_vbios_version
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_firmware_set_version
    - FU_FIRMWARE
    - fu_memmem_safe
    - fu_memstrsafe
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse_vbios_version(FuAmdGpuAtomFirmware
      *self,\n\t\t\t\t\t     GBytes *blob,\n\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:125,1
    - Dst: fu_struct_atom_image_get_vbios_date
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:133,1
    - Dst: fu_struct_vbios_date_get_year
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:140,1
    - Dst: fu_struct_vbios_date_get_month
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:141,1
    - Dst: fu_struct_vbios_date_get_day
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:142,1
    - Dst: fu_struct_vbios_date_get_hours
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:143,1
    - Dst: fu_struct_vbios_date_get_minutes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:144,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - self
    - atom_image
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - FuStructAtomImage*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: fu_amd_gpu_atom_firmware_parse_vbios_date
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_atom_image_get_vbios_date
    - g_strdup_printf
    - fu_struct_vbios_date_get_year
    - fu_struct_vbios_date_get_hours
    - fu_struct_vbios_date_get_month
    - g_autoptr
    - fu_struct_vbios_date_get_minutes
    - fu_struct_vbios_date_get_day
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse_vbios_date(FuAmdGpuAtomFirmware
      *self,\n\t\t\t\t\t  FuStructAtomImage *atom_image,\n\t\t\t\t\t  GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:162,1
    - Dst: fu_struct_atom_image_get_num_strings
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:167,1
    - Dst: fu_struct_atom_image_get_str_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:175,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:183,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:183,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:185,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:196,1
    - Dst: strlen
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:204,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:207,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:210,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:213,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:216,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:230,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:237,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - self
    - blob
    - atom_image
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - GBytes*
    - FuStructAtomImage*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 243
    functionName: fu_amd_gpu_atom_firmware_parse_vbios_pn
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_atom_image_get_num_strings
    - fu_firmware_get_size
    - g_set_error
    - fu_struct_atom_image_get_str_loc
    - strlen
    - g_steal_pointer
    - fu_strstrip
    - FU_FIRMWARE
    - fu_memstrsafe
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse_vbios_pn(FuAmdGpuAtomFirmware
      *self,\n\t\t\t\t\tGBytes *blob,\n\t\t\t\t\tFuStructAtomImage *atom_image,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:252,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:256,1
    - Dst: fu_struct_atom_rom21_header_get_config_filename_offset
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:258,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - blob
    - atom_header
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - GBytes*
    - FuStructAtomRom21Header*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: fu_amd_gpu_atom_firmware_parse_config_filename
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_atom_rom21_header_get_config_filename_offset
    - g_bytes_get_data
    - fu_strstrip
    - fu_memstrsafe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse_config_filename(FuAmdGpuAtomFirmware
      *self,\n\t\t\t\t\t       GBytes *blob,\n\t\t\t\t\t       FuStructAtomRom21Header
      *atom_header,\n\t\t\t\t\t       GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_ATOM_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:281,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:283,1
    - Dst: fu_struct_atom_image_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:288,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:293,1
    - Dst: fu_struct_atom_image_get_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:293,1
    - Dst: fu_struct_atom_image_get_rom_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:296,1
    - Dst: fu_struct_atom_rom21_header_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:297,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:301,1
    - Dst: fu_amd_gpu_atom_firmware_parse_config_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:304,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_date
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:306,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_pn
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:308,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 314
    functionName: fu_amd_gpu_atom_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_amd_gpu_atom_firmware_parse_vbios_date
    - fu_firmware_set_size
    - FU_AMD_GPU_ATOM_FIRMWARE
    - fu_struct_atom_image_get_rom_loc
    - fu_struct_atom_rom21_header_parse_stream
    - fu_amd_gpu_atom_firmware_parse_vbios_pn
    - fu_amd_gpu_atom_firmware_parse_vbios_version
    - fu_struct_atom_image_get_size
    - FU_FIRMWARE_CLASS
    - fu_amd_gpu_atom_firmware_parse_config_filename
    - g_autoptr
    - fu_input_stream_read_bytes
    - fu_struct_atom_image_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuAtomFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: fu_amd_gpu_atom_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_atom_firmware_init(FuAmdGpuAtomFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_ATOM_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:324,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:325,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:326,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:327,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:328,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:329,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:330,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:331,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 333
    functionName: fu_amd_gpu_atom_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_AMD_GPU_ATOM_FIRMWARE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_atom_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:338,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuAtomFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: fu_amd_gpu_atom_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_atom_firmware_class_init(FuAmdGpuAtomFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:349,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: fu_amd_gpu_atom_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_gpu_atom_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: fu_amd_gpu_plugin_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_plugin_init(FuAmdGpuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:33,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:37,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: fu_amd_gpu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fu_amd_gpu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_plugin_class_init(FuAmdGpuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAtaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: fu_ata_device_get_transfer_mode
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_ata_device_get_transfer_mode(FuAtaDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAtaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: fu_ata_device_get_transfer_blocks
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_ata_device_get_transfer_blocks(FuAtaDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:96,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:96,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:98,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:99,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:104,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:108,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - start
    - end
    argTypes:
    - guint16*
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: fu_ata_device_get_string
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_strstrip
    - g_string_append_c
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ata_device_get_string(const guint16 *buf, guint start, guint end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:114,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:115,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:116,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:117,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:118,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: fu_ata_device_to_string
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_int
    - FU_ATA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:126,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:127,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:129,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: fu_ata_device_pad_string_for_id
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_c
    - g_string_free
    - g_string_new
    - g_string_replace
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ata_device_pad_string_for_id(const gchar *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:136,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - addr_start
    argTypes:
    - guint16*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: fu_ata_device_get_guid_safe
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_common_guid_is_plausible
    - fwupd_guid_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ata_device_get_guid_safe(const guint16 *buf, guint16 addr_start)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_ata_device_get_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:150,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:151,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:151,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:152,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:158,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:161,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:162,1
    - Dst: fu_ata_device_get_guid_safe
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:165,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:167,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:170,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - buf
    argTypes:
    - FuAtaDevice*
    - guint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 172
    functionName: fu_ata_device_parse_id_maybe_dell
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_str_is_ascii
    - g_debug
    - fu_device_add_private_flag
    - strlen
    - fu_ata_device_get_string
    - fu_ata_device_get_guid_safe
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_parse_id_maybe_dell(FuAtaDevice *self, const guint16
      *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:277,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:281,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:282,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:283,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:292,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:293,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:303,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:303,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:305,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:306,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:314,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:321,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:321,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:321,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:322,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuAtaDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 323
    functionName: fu_ata_device_parse_vendor_name
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_pattern_match_simple
    - fu_device_get_version
    - strlen
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - g_ascii_strup
    - g_strcmp0
    - fu_device_get_name
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_parse_vendor_name(FuAtaDevice *self, const gchar
      *name)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:328,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:338,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:348,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:352,1
    - Dst: fu_ata_device_parse_id_maybe_dell
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:359,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:363,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:363,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:383,1
    - Dst: fu_ata_device_get_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:385,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:387,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:389,1
    - Dst: fu_ata_device_get_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:391,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:393,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:400,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:401,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:402,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:405,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:406,1
    - Dst: fu_ata_device_get_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:410,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:414,1
    - Dst: fu_ata_device_parse_vendor_name
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:416,1
    - Dst: fu_ata_device_get_string
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:421,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:423,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:426,1
    - Dst: fu_ata_device_pad_string_for_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:427,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:428,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:430,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:430,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:431,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:435,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:436,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:440,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:444,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:444,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:445,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:446,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:446,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:447,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:448,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:448,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:449,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:449,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:450,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 4
    argNames:
    - self
    - buf
    - sz
    - error
    argTypes:
    - FuAtaDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 325
    functionDepth: 6
    functionLinenumber: 325
    functionLinenumberEnd: 455
    functionName: fu_ata_device_parse_id
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_ata_device_parse_id_maybe_dell
    - fu_device_get_vendor
    - g_set_error
    - fu_device_set_version
    - fu_ata_device_parse_vendor_name
    - fu_device_get_version
    - g_debug
    - fu_ata_device_pad_string_for_id
    - fu_device_add_flag
    - fu_memread_uint16
    - fu_device_add_instance_id
    - fu_device_set_serial
    - fu_device_add_instance_id_full
    - g_str_has_prefix
    - fu_ata_device_get_string
    - fu_device_get_guids
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_build_vendor_id
    - g_strcmp0
    - fu_device_get_serial
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_parse_id(FuAtaDevice *self, const guint8 *buf,
      gsize sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:461,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:464,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:467,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:467,1
    - Dst: fu_udev_device_get_subsystem_depth
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:470,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:470,1
    - Dst: fu_udev_device_get_subsystem_depth
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:471,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:471,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:473,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 478
    functionName: fu_ata_device_probe
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_backend_id
    - FU_ATA_DEVICE
    - fu_udev_device_get_subsystem_depth
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_set_physical_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tf
    argTypes:
    - struct ata_tf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: fu_ata_device_tf_to_pack_id
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_ata_device_tf_to_pack_id(struct ata_tf *tf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 495
    functionName: fu_ata_device_ioctl_buf_cb
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_ioctl_buf_cb(FuIoctl *self, gpointer ptr, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: fu_ata_device_ioctl_cdb_cb
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_ioctl_cdb_cb(FuIoctl *self, gpointer ptr, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: fu_ata_device_ioctl_sense_cb
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_ioctl_sense_cb(FuIoctl *self, gpointer ptr,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:527,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:527,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:527,1
    - Dst: fu_ata_device_tf_to_pack_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:559,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:563,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:564,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:565,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:566,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:567,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:568,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:569,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:578,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:583,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:587,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:595,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:603,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:619,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 7
    argNames:
    - self
    - tf
    - dxfer_direction
    - timeout_ms
    - dxferp
    - dxfer_len
    - error
    argTypes:
    - FuAtaDevice*
    - struct ata_tf*
    - gint
    - guint
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 644
    functionName: fu_ata_device_command
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_execute
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ata_device_tf_to_pack_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ata_device_command(FuAtaDevice *self,\n\t\t      struct
      ata_tf *tf,\n\t\t      gint dxfer_direction,\n\t\t      guint timeout_ms,\n\t\t
      \     guint8 *dxferp,\n\t\t      gsize dxfer_len,\n\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:649,1
    - Dst: fu_ata_device_command
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:657,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:658,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:661,1
    - Dst: fu_ata_device_parse_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 646
    functionDepth: 7
    functionLinenumber: 646
    functionLinenumberEnd: 667
    functionName: fu_ata_device_setup
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - FU_ATA_DEVICE
    - g_prefix_error
    - fu_ata_device_parse_id
    - fu_ata_device_command
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:672,1
    - Dst: fu_ata_device_command
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:678,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:685,1
    - Dst: fu_ata_device_command
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:689,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:696,1
    - Dst: fu_ata_device_command
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:704,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 669
    functionDepth: 5
    functionLinenumber: 669
    functionLinenumberEnd: 717
    functionName: fu_ata_device_activate
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_ata_device_command
    - FU_ATA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_activate(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_ata_device_command
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:739,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:746,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:760,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - self
    - idx
    - addr
    - data
    - data_sz
    - error
    argTypes:
    - FuAtaDevice*
    - guint32
    - guint32
    - guint8*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 774
    functionName: fu_ata_device_fw_download
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_set_error
    - g_prefix_error
    - fu_ata_device_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ata_device_fw_download(FuAtaDevice *self,\n\t\t\t  guint32
      idx,\n\t\t\t  guint32 addr,\n\t\t\t  const guint8 *data,\n\t\t\t  guint32 data_sz,\n\t\t\t
      \ GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:783,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:788,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:791,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:800,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:803,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:811,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:820,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:821,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:828,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:829,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:829,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:830,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:831,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:834,1
    - Dst: fu_ata_device_fw_download
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:837,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:838,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:839,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:840,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:841,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:843,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:846,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:850,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 776
    functionDepth: 6
    functionLinenumber: 776
    functionLinenumberEnd: 852
    functionName: fu_ata_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_chunk_get_idx
    - fu_progress_set_steps
    - g_set_error
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - FU_ATA_DEVICE
    - fu_input_stream_size
    - fu_ata_device_fw_download
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ata_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ATA_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:857,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:860,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:861,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:866,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:876,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:877,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 887
    functionName: fu_ata_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    - FU_ATA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ata_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:892,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:893,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:894,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:895,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:896,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:897,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 899
    functionName: fu_ata_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:908,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:908,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:909,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:909,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:910,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:911,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:911,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:912,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:912,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:913,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:913,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:914,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:915,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:916,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:916,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:917,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAtaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 901
    functionDepth: 6
    functionLinenumber: 901
    functionLinenumberEnd: 918
    functionName: fu_ata_device_init
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_init(FuAtaDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAtaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 931
    functionName: fu_ata_device_class_init
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_class_init(FuAtaDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:936,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:938,1
    - Dst: fu_ata_device_parse_id
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:939,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ata/fu-ata-device.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - buf
    - sz
    - error
    argTypes:
    - FuContext*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 933
    functionDepth: 7
    functionLinenumber: 933
    functionLinenumberEnd: 942
    functionName: fu_ata_device_new_from_blob
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - fu_ata_device_parse_id
    - g_steal_pointer
    - g_autoptr
    - g_object_new
    linkageType: ''
    returnType: FuAtaDevice
    signature: 'FuAtaDevice *

      fu_ata_device_new_from_blob(FuContext *ctx, const guint8 *buf, gsize sz, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAtaPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_ata_plugin_init
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ata_plugin_init(FuAtaPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ata/fu-ata-plugin.c:26,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/ata/fu-ata-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ata/fu-ata-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_ata_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ata_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ata/fu-ata-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAtaPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_ata_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ata_plugin_class_init(FuAtaPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:20,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/ata/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:22,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/ata/fu-self-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:25,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ata/fu-self-test.c:26,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ata/fu-self-test.c:28,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/ata/fu-self-test.c:29,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/ata/fu-self-test.c:30,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/ata/fu-self-test.c:33,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ata/fu-self-test.c:35,1
    - Dst: fu_ata_device_new_from_blob
      Src: /src/fwupd/plugins/ata/fu-self-test.c:36,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:37,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/ata/fu-self-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/ata/fu-self-test.c:39,1
    - Dst: fu_ata_device_get_transfer_mode
      Src: /src/fwupd/plugins/ata/fu-self-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/ata/fu-self-test.c:40,1
    - Dst: fu_ata_device_get_transfer_blocks
      Src: /src/fwupd/plugins/ata/fu-self-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:41,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/ata/fu-self-test.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:41,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:42,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/ata/fu-self-test.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:43,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-self-test.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 8
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: fu_ata_id_func
    functionSourceFile: /src/fwupd/plugins/ata/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_true
    - fu_context_load_quirks
    - fu_context_new
    - fu_device_get_version
    - g_assert_cmpint
    - fu_ata_device_get_transfer_mode
    - fu_device_get_name
    - fu_ata_device_new_from_blob
    - g_assert_nonnull
    - g_autoptr
    - g_file_test
    - fu_ata_device_get_transfer_blocks
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_no_error
    - FU_DEVICE
    - fu_device_get_serial
    linkageType: ''
    returnType: void
    signature: void fu_ata_id_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:54,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/ata/fu-self-test.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:56,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/ata/fu-self-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:59,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ata/fu-self-test.c:60,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ata/fu-self-test.c:62,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/ata/fu-self-test.c:63,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/ata/fu-self-test.c:64,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/ata/fu-self-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ata/fu-self-test.c:69,1
    - Dst: fu_ata_device_new_from_blob
      Src: /src/fwupd/plugins/ata/fu-self-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ata/fu-self-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/ata/fu-self-test.c:72,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/plugins/ata/fu-self-test.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:73,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/ata/fu-self-test.c:74,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ata/fu-self-test.c:75,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/ata/fu-self-test.c:76,1
    - Dst: fu_ata_device_get_transfer_mode
      Src: /src/fwupd/plugins/ata/fu-self-test.c:76,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/ata/fu-self-test.c:77,1
    - Dst: fu_ata_device_get_transfer_blocks
      Src: /src/fwupd/plugins/ata/fu-self-test.c:77,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:78,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/ata/fu-self-test.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:79,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/ata/fu-self-test.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ata/fu-self-test.c:80,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/ata/fu-self-test.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ata/fu-self-test.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: fu_ata_oui_func
    functionSourceFile: /src/fwupd/plugins/ata/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_true
    - fu_device_to_string
    - fu_context_load_quirks
    - fu_context_new
    - g_debug
    - fu_device_get_version
    - g_assert_cmpint
    - fu_ata_device_get_transfer_mode
    - fu_device_get_name
    - fu_device_convert_instance_ids
    - fu_ata_device_new_from_blob
    - g_assert_nonnull
    - g_autoptr
    - g_file_test
    - fu_ata_device_get_transfer_blocks
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_no_error
    - FU_DEVICE
    - fu_device_get_serial
    linkageType: ''
    returnType: void
    signature: void fu_ata_oui_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/ata/fu-self-test.c:87,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ata/fu-self-test.c:88,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/ata/fu-self-test.c:91,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/ata/fu-self-test.c:92,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ata/fu-self-test.c:94,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/ata/fu-self-test.c:95,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ata/fu-self-test.c:98,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ata/fu-self-test.c:99,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ata/fu-self-test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ata/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_usi_dock_child_device_get_chip_idx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuUsiDockFirmwareIdx
    signature: FuUsiDockFirmwareIdx fu_usi_dock_child_device_get_chip_idx(FuUsiDockChildDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chip_idx
    argTypes:
    - FuUsiDockChildDevice*
    - FuUsiDockFirmwareIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: fu_usi_dock_child_device_set_chip_idx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_child_device_set_chip_idx(FuUsiDockChildDevice *self,
      FuUsiDockFirmwareIdx chip_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:34,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:35,1
    - Dst: fu_usi_dock_firmware_idx_to_string
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: fu_usi_dock_child_device_to_string
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_firmware_idx_to_string
    - FU_USI_DOCK_CHILD_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_child_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:49,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:51,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: fu_usi_dock_child_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_prepare_firmware
    - fu_device_get_parent
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_usi_dock_child_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:65,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:68,1
    - Dst: fu_usi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:71,1
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: fu_usi_dock_child_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_write_firmware_with_idx
    - FU_USI_DOCK_CHILD_DEVICE
    - g_set_error_literal
    - fu_device_get_parent
    - FU_USI_DOCK_MCU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_child_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: fu_usi_dock_child_device_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_child_device_init(FuUsiDockChildDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: fu_usi_dock_child_device_class_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_child_device_class_init(FuUsiDockChildDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: fu_usi_dock_child_device_new
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_usi_dock_child_device_new(FuContext *ctx)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:22,1
    - Dst: g_info
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:26,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:27,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:27,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:28,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:28,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:29,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:29,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:32,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:32,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:33,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:40,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:45,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:45,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:46,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:55,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:60,1
    - Dst: strlen
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:61,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:64,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:66,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:69,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:77,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 85
    functionName: fu_usi_dock_dmc_device_parent_notify_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_device_get_version_format
    - fu_device_get_version
    - strlen
    - fu_device_build_instance_id
    - fu_device_build_instance_id_full
    - g_autoptr
    - fu_device_get_parent
    - fu_device_add_instance_str
    - fu_device_set_serial
    - fu_device_get_name
    - fu_device_get_serial
    - g_info
    - fu_device_set_name
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_dmc_device_parent_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:90,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockDmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: fu_usi_dock_dmc_device_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - FU_DEVICE
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_dmc_device_init(FuUsiDockDmcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockDmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: fu_usi_dock_dmc_device_class_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_dmc_device_class_init(FuUsiDockDmcDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:42,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:42,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:44,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_tag3
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:45,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_buf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:47,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:56,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - tag2
    - buf
    - bufsz
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuUsiDockTag2
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 63
    functionName: fu_usi_dock_mcu_device_tx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_struct_usi_dock_mcu_cmd_req_set_tag3
    - FU_HID_DEVICE
    - fu_struct_usi_dock_mcu_cmd_req_new
    - fu_struct_usi_dock_mcu_cmd_req_set_buf
    - g_autoptr
    - fu_struct_usi_dock_mcu_cmd_req_set_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_tx(FuUsiDockMcuDevice *self,\n\t\t\t
      \ FuUsiDockTag2 tag2,\n\t\t\t  const guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t
      \ GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:73,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:75,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:75,1
    - Dst: fu_struct_usi_dock_mcu_cmd_res_parse
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:85,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cmd
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 100
    functionName: fu_usi_dock_mcu_device_rx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - fu_struct_usi_dock_mcu_cmd_res_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_rx(FuUsiDockMcuDevice *self,\n\t\t\t
      \ guint8 cmd,\n\t\t\t  guint8 *outbuf,\n\t\t\t  gsize outbufsz,\n\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_tx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:112,1
    - Dst: fu_usi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - self
    - tag2
    - inbuf
    - inbufsz
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuUsiDockTag2
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: fu_usi_dock_mcu_device_txrx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_tx
    - fu_usi_dock_mcu_device_rx
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_txrx(FuUsiDockMcuDevice *self,\n\t\t\t
      \   FuUsiDockTag2 tag2,\n\t\t\t    const guint8 *inbuf,\n\t\t\t    gsize inbufsz,\n\t\t\t
      \   guint8 *outbuf,\n\t\t\t    gsize outbufsz,\n\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:128,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:135,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 7
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: fu_usi_dock_mcu_device_get_status
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_txrx
    - g_prefix_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_get_status(FuUsiDockMcuDevice *self,
      GError **error)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:190,1
    - Dst: fu_usi_dock_child_device_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:192,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:192,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:193,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:196,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:199,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:201,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:206,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:208,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:219,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:222,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:225,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:226,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:227,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:234,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:237,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:240,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:241,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:243,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:244,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:246,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:247,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:248,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:251,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:254,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:255,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:256,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:257,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:258,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:262,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:265,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:266,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:267,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:268,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:269,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:273,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:276,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:279,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:280,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:281,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:283,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:284,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:285,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:287,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:288,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:292,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:295,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:296,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:297,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:298,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:304,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:308,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:309,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:310,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:311,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:312,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:315,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:318,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:319,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:320,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:325,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:328,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:329,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:330,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:331,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:332,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:333,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:336,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:339,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:341,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:346,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:348,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:349,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:351,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:352,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:354,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:358,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:358,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:359,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:359,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:360,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:361,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:363,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:364,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:365,1
    - Dst: fu_usi_dock_child_device_set_chip_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:366,1
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:366,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:368,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 156
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 373
    functionName: fu_usi_dock_mcu_device_enumerate_children
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - FU_USI_DOCK_CHILD_DEVICE
    - fu_usi_dock_mcu_device_txrx
    - fu_device_set_version
    - fu_usi_dock_child_device_new
    - g_debug
    - fu_usi_dock_child_device_set_chip_idx
    - fu_device_get_context
    - fu_device_get_name
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_add_icon
    - g_warning
    - fu_device_set_version_format
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_enumerate_children(FuUsiDockMcuDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:378,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:381,1
    - Dst: fu_usi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:386,1
    - Dst: fu_usi_dock_mcu_device_enumerate_children
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:389,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 375
    functionDepth: 8
    functionLinenumber: 375
    functionLinenumberEnd: 396
    functionName: fu_usi_dock_mcu_device_setup
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_usi_dock_mcu_device_get_status
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_mcu_device_enumerate_children
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:401,1
    - Dst: fu_struct_usi_dock_hid_req_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:401,1
    - Dst: fu_struct_usi_dock_hid_req_set_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:403,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:403,1
    - Dst: fu_struct_usi_dock_hid_req_set_tag3
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:404,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:405,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:408,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:409,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:411,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:414,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:414,1
    - Dst: fu_usi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 398
    functionDepth: 6
    functionLinenumber: 398
    functionLinenumberEnd: 423
    functionName: fu_usi_dock_mcu_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_usi_dock_hid_req_set_length
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - fu_struct_usi_dock_hid_req_set_tag3
    - fu_struct_usi_dock_hid_req_new
    - fu_chunk_get_data
    - fu_usi_dock_mcu_device_rx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_write_chunk(FuUsiDockMcuDevice *self,
      FuChunk *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:429,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:429,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:431,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:435,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:436,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:439,1
    - Dst: fu_usi_dock_mcu_device_write_chunk
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - chk_page
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 446
    functionName: fu_usi_dock_mcu_device_write_page
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_array_index
    - fu_usi_dock_mcu_device_write_chunk
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_write_page(FuUsiDockMcuDevice *self,
      FuChunk *chk_page, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:454,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:455,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:455,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:457,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:460,1
    - Dst: fu_usi_dock_mcu_device_write_page
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:463,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:464,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 8
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: fu_usi_dock_mcu_device_write_pages
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_usi_dock_mcu_device_write_page
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_write_pages(FuUsiDockMcuDevice *self,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:475,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:479,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:488,1
    - Dst: fu_usi_dock_spi_state_to_string
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 472
    functionDepth: 7
    functionLinenumber: 472
    functionLinenumberEnd: 499
    functionName: fu_usi_dock_mcu_device_wait_for_spi_ready_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_txrx
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_spi_state_to_string
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_wait_for_spi_ready_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:506,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:510,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:519,1
    - Dst: fu_usi_dock_spi_state_to_string
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 530
    functionName: fu_usi_dock_mcu_device_wait_for_spi_initial_ready_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_txrx
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_spi_state_to_string
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_wait_for_spi_initial_ready_cb(FuDevice
      *device,\n\t\t\t\t\t\t     gpointer user_data,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:535,1
    - Dst: fu_usi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 546
    functionName: fu_usi_dock_mcu_device_wait_for_checksum_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_mcu_device_rx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_wait_for_checksum_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:557,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:558,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:562,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:563,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:564,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:565,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:566,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:567,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:570,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:570,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:575,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:578,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:582,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:590,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:595,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:598,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:602,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:611,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:614,1
    - Dst: fu_usi_dock_mcu_device_write_pages
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:621,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:623,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:626,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:630,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:640,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:645,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:650,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:657,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:661,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:669,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 6
    argNames:
    - self
    - firmware
    - chip_idx
    - progress
    - flags
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuFirmware*
    - guint8
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 673
    functionName: fu_usi_dock_mcu_device_write_firmware_with_idx
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_retry
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_firmware_get_stream
    - fu_progress_get_child
    - g_set_error
    - g_prefix_error
    - fu_progress_add_step
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_usi_dock_mcu_device_txrx
    - fu_usi_dock_mcu_device_write_pages
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_write_firmware_with_idx(FuUsiDockMcuDevice
      *self,\n\t\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t\t       guint8 chip_idx,\n\t\t\t\t\t
      \      FuProgress *progress,\n\t\t\t\t\t       FwupdInstallFlags flags,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:682,1
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 675
    functionDepth: 10
    functionLinenumber: 675
    functionLinenumberEnd: 688
    functionName: fu_usi_dock_mcu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_mcu_device_write_firmware_with_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:693,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:696,1
    - Dst: g_info
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:697,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 690
    functionDepth: 7
    functionLinenumber: 690
    functionLinenumberEnd: 709
    functionName: fu_usi_dock_mcu_device_reload
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_txrx
    - FU_USI_DOCK_MCU_DEVICE
    - g_info
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_reload(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:714,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 711
    functionDepth: 6
    functionLinenumber: 711
    functionLinenumberEnd: 719
    functionName: fu_usi_dock_mcu_device_attach
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:724,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:725,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:725,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:726,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:729,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:730,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:731,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:732,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 737
    functionName: fu_usi_dock_mcu_device_insert_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - FU_DEVICE
    - fwupd_request_set_id
    - g_critical
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_insert_cb(gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:744,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:745,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:746,1
    - Dst: g_timeout_add_seconds_full
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:747,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:750,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 754
    functionName: fu_usi_dock_mcu_device_internal_flags_notify_cb
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_debug
    - fu_device_remove_private_flag
    - g_timeout_add_seconds_full
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: "void fu_usi_dock_mcu_device_internal_flags_notify_cb(FuDevice *device,\n\t\t\t\t\t\tGParamSpec
      *pspec,\n\t\t\t\t\t\tgpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:762,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:762,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:765,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:766,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:767,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:768,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:771,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:772,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:773,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - device
    - progress
    - install_flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 775
    functionName: fu_usi_dock_mcu_device_cleanup
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fwupd_request_set_kind
    - fu_device_add_private_flag
    - fwupd_request_add_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - g_autoptr
    - fu_device_set_remove_delay
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_device_cleanup(FuDevice *device,\n\t\t\t
      \      FuProgress *progress,\n\t\t\t       FwupdInstallFlags install_flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:780,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: fu_usi_dock_mcu_device_replace
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_mcu_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:787,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:788,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:789,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:790,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:791,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 793
    functionName: fu_usi_dock_mcu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_mcu_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:798,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:799,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:800,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:800,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:801,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:801,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:803,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:803,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:804,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:804,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:805,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:805,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:806,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:806,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:808,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:811,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:812,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:813,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:815,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:815,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:816,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:817,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:818,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:819,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:820,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockMcuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 795
    functionDepth: 6
    functionLinenumber: 795
    functionLinenumberEnd: 821
    functionName: fu_usi_dock_mcu_device_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_icon
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_hid_device_add_flag
    - fu_device_set_remove_delay
    - FWUPD_DEVICE
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_mcu_device_init(FuUsiDockMcuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockMcuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 835
    functionName: fu_usi_dock_mcu_device_class_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_mcu_device_class_init(FuUsiDockMcuDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:27,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:29,1
    - Dst: fu_usi_dock_child_device_get_chip_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:30,1
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:30,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fu_usi_dock_plugin_find_tbt_device
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_device_get_children
    - FU_USI_DOCK_CHILD_DEVICE
    - g_ptr_array_index
    - fu_usi_dock_child_device_get_chip_idx
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_usi_dock_plugin_find_tbt_device(FuPlugin *plugin, FuDevice *device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:41,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:43,1
    - Dst: FU_IS_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:44,1
    - Dst: fu_usi_dock_plugin_find_tbt_device
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: fu_usi_dock_plugin_find_mcu_device
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_plugin_get_devices
    - fu_usi_dock_plugin_find_tbt_device
    - FU_IS_USI_DOCK_MCU_DEVICE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_usi_dock_plugin_find_mcu_device(FuPlugin *plugin)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:54,1
    - Dst: fu_usi_dock_plugin_find_mcu_device
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:57,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:60,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:60,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:61,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:61,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:62,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: fu_usi_dock_plugin_ensure_equivalent_id
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_PLUGIN
    - fu_device_get_priority
    - fu_usi_dock_plugin_find_mcu_device
    - fu_device_set_equivalent_id
    - fu_device_set_priority
    - g_autoptr
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_ensure_equivalent_id(FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_plugin_ensure_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: fu_usi_dock_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_plugin_ensure_equivalent_id
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_device_added(FuPlugin *plugin, FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:74,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:77,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:77,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:78,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:79,1
    - Dst: fu_usi_dock_plugin_ensure_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: fu_usi_dock_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_PLUGIN
    - fu_device_has_guid
    - g_set_object
    - fu_usi_dock_plugin_ensure_equivalent_id
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:87,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fu_usi_dock_plugin_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_init(FuUsiDockPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:93,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:94,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:95,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: fu_usi_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:102,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:103,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: fu_usi_dock_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_PLUGIN
    - G_OBJECT_CLASS
    - g_clear_object
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:110,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: fu_usi_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_class_init(FuUsiDockPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:60,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:62,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:62,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:72,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:76,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:78,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:79,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:84,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: fu_logitech_tap_touch_device_get_feature_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_memread_uint8_safe
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_dump_raw
    - fu_udev_device_pread
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_get_feature_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:101,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:102,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:102,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:107,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:113,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:114,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - st_req
    - delay
    - buf_res
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GByteArray*
    - guint
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 128
    functionName: fu_logitech_tap_touch_device_hid_transfer
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - g_prefix_error
    - FU_DEVICE
    - fu_byte_array_set_size
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_hid_transfer(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t\t  GByteArray *st_req,\n\t\t\t\t\t  guint delay,\n\t\t\t\t\t
      \ GByteArray *buf_res,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:134,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:134,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:137,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:138,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:139,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:142,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: fu_logitech_tap_touch_device_enable_tde
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_byte_array_append_uint8
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_enable_tde(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:150,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:150,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:152,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:153,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:154,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:157,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: fu_logitech_tap_touch_device_disable_tde
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_byte_array_append_uint8
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_disable_tde(FuDevice *device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:170,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:170,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:173,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:176,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:179,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:180,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:183,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:184,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:186,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:187,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:188,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:192,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - self
    - in_ap
    - write_ap
    - end
    - checksum
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - gboolean
    - gboolean
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: fu_logitech_tap_touch_device_write_enable
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_byte_array_append_uint24
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_byte_array_append_uint8
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - FU_DEVICE
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_write_enable(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t\t  gboolean in_ap,\n\t\t\t\t\t  gboolean write_ap,\n\t\t\t\t\t
      \ guint32 end,\n\t\t\t\t\t  guint32 checksum,\n\t\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:207,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:208,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:208,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:211,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:212,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:213,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:216,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:218,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 236
    functionName: fu_logitech_tap_touch_device_check_busy_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_set_error
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_memread_uint8_safe
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_check_busy_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:244,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:244,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:245,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:248,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:250,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:257,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:257,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:258,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:260,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - crc
    - datasz
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - guint16*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 274
    functionName: fu_logitech_tap_touch_device_get_crc
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_memread_uint16_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_get_crc(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t     guint16 *crc,\n\t\t\t\t     guint8 datasz,\n\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:281,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:282,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:282,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:284,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:285,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:286,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:291,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - mcu_mode
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 299
    functionName: fu_logitech_tap_touch_device_get_mcu_mode
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_memread_uint8_safe
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_get_mcu_mode(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t\t  guint8 *mcu_mode,\n\t\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:305,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:306,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:306,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:308,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:309,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:310,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:313,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 301
    functionDepth: 5
    functionLinenumber: 301
    functionLinenumberEnd: 333
    functionName: fu_logitech_tap_touch_device_check_ic_name
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_set_error
    - fu_memread_uint16_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_check_ic_name(FuLogitechTapTouchDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:339,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:340,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:340,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:351,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:352,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:353,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:356,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:358,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:360,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:363,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:363,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:365,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:367,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:374,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:383,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:390,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:391,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:393,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 398
    functionName: fu_logitech_tap_touch_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_set_error
    - fu_device_set_version_bootloader_raw
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_memread_uint8_safe
    - fu_device_set_version_raw
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_build_instance_id
    - fu_memread_uint64_safe
    - g_autoptr
    - fu_device_add_instance_str
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_ensure_version(FuLogitechTapTouchDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:404,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:405,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:405,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:412,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:413,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:414,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:417,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:419,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:429,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:430,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 444
    functionName: fu_logitech_tap_touch_device_check_protocol
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_set_error
    - g_debug
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_memcpy_safe
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_device_has_flag
    - FU_DEVICE
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_check_protocol(FuLogitechTapTouchDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:452,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:452,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:452,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:454,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:455,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:456,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:466,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:476,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:476,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:484,1
    - Dst: fu_logitech_tap_touch_device_check_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:487,1
    - Dst: fu_logitech_tap_touch_device_check_ic_name
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:489,1
    - Dst: fu_logitech_tap_touch_device_ensure_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 446
    functionDepth: 7
    functionLinenumber: 446
    functionLinenumberEnd: 494
    functionName: fu_logitech_tap_touch_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_ioctl_new
    - g_debug
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_logitech_tap_touch_device_check_ic_name
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_sleep
    - FU_UDEV_DEVICE
    - fu_logitech_tap_touch_device_check_protocol
    - g_autoptr
    - fu_logitech_tap_touch_device_ensure_version
    - fu_ioctl_execute
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:499,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:503,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:504,1
    - Dst: fu_logitech_tap_touch_device_enable_tde
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:509,1
    - Dst: fu_logitech_tap_touch_device_get_mcu_mode
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:517,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:518,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:519,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:521,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:522,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:523,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:526,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 534
    functionName: fu_logitech_tap_touch_device_detach
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_debug
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_logitech_tap_touch_device_write_enable
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - fu_logitech_tap_touch_device_enable_tde
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_logitech_tap_touch_device_get_mcu_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:540,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:540,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:543,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:544,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:549,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:551,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:552,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:553,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:556,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:560,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:560,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 536
    functionDepth: 6
    functionLinenumber: 536
    functionLinenumberEnd: 565
    functionName: fu_logitech_tap_touch_device_attach
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - g_debug
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_logitech_tap_touch_device_write_enable
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:571,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:575,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:575,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:575,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:576,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:580,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:580,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:585,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 586
    functionName: fu_logitech_tap_touch_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_set_physical_id
    - fu_udev_device_get_subsystem
    - FU_DEVICE_CLASS
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:597,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:598,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:600,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:603,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:612,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:614,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:616,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:617,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:617,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:620,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:623,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:627,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:629,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:630,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:632,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:632,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:633,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:633,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:637,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:637,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:637,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:640,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:641,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:642,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:645,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:647,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:648,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:649,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:650,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:652,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:652,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:654,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:660,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:665,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:668,1
    - Dst: fu_logitech_tap_touch_device_get_crc
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:671,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:673,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:679,1
    - Dst: fu_logitech_tap_touch_device_get_crc
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:682,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:685,1
    - Dst: g_info
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:694,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 6
    argNames:
    - self
    - img
    - firmware_checksum
    - in_ap
    - progress
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - FuFirmware*
    - guint16
    - gboolean
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 588
    functionDepth: 6
    functionLinenumber: 588
    functionLinenumberEnd: 698
    functionName: fu_logitech_tap_touch_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_device_retry_full
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_progress_set_steps
    - g_set_error
    - g_debug
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_byte_array_set_size
    - fu_logitech_tap_touch_device_get_crc
    - g_info
    - fu_firmware_get_offset
    - fu_progress_step_done
    - fu_logitech_tap_touch_device_write_enable
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_chunk_array_index
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - FU_DEVICE
    - g_byte_array_append
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_write_blocks(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t\t  FuFirmware *img,\n\t\t\t\t\t  guint16 firmware_checksum,\n\t\t\t\t\t
      \ gboolean in_ap,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:712,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:712,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:713,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:714,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:717,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:718,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:719,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:720,1
    - Dst: fu_logitech_tap_touch_firmware_get_ap_checksum
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:722,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:723,1
    - Dst: fu_logitech_tap_touch_firmware_get_df_checksum
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:724,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:725,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:728,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:731,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:736,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:738,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:738,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:741,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:742,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:743,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:746,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:750,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:752,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:752,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:755,1
    - Dst: fu_logitech_tap_touch_device_write_blocks
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:758,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:762,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:765,1
    - Dst: fu_logitech_tap_touch_device_write_blocks
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:768,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:772,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 705
    functionDepth: 7
    functionLinenumber: 705
    functionLinenumberEnd: 779
    functionName: fu_logitech_tap_touch_device_write_chunks_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_logitech_tap_touch_firmware_get_ap_checksum
    - fu_logitech_tap_touch_firmware_get_df_checksum
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_device_sleep
    - fu_progress_get_child
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_progress_add_step
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_logitech_tap_touch_device_write_blocks
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - fu_logitech_tap_touch_device_write_enable
    - fu_struct_logitech_tap_touch_hid_req_new
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - FU_DEVICE
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_write_chunks_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:788,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:790,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:794,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 808
    functionName: fu_logitech_tap_touch_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:813,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:814,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:815,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:816,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:817,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: fu_logitech_tap_touch_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_touch_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 835
    functionName: fu_logitech_tap_touch_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_tap_touch_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:840,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:841,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:842,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:843,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:844,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:844,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:845,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:845,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:846,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:847,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:847,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:848,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:849,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:850,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:850,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:851,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:851,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:852,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 837
    functionDepth: 6
    functionLinenumber: 837
    functionLinenumberEnd: 853
    functionName: fu_logitech_tap_touch_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_max
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_touch_device_init(FuLogitechTapTouchDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapTouchDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 866
    functionName: fu_logitech_tap_touch_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_touch_device_class_init(FuLogitechTapTouchDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: fu_logitech_tap_hdmi_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t\t\t
      \   gpointer ptr,\n\t\t\t\t\t    guint8 *buf,\n\t\t\t\t\t    gsize bufsz,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:75,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:75,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:77,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:80,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:81,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:82,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:83,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:84,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:89,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:100,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:102,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - self
    - unit_id
    - control_selector
    - data_size
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - guint8
    - guint8
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 110
    functionName: fu_logitech_tap_hdmi_device_query_data_size
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_memread_uint16_safe
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_query_data_size(FuLogitechTapHdmiDevice
      *self,\n\t\t\t\t\t    guint8 unit_id,\n\t\t\t\t\t    guint8 control_selector,\n\t\t\t\t\t
      \   guint16 *data_size,\n\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:125,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:125,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:125,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:128,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:129,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:130,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:131,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:132,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:147,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - self
    - unit_id
    - control_selector
    - buf
    - bufsz
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 155
    functionName: fu_logitech_tap_hdmi_device_get_xu_control
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_get_xu_control(FuLogitechTapHdmiDevice
      *self,\n\t\t\t\t\t   guint8 unit_id,\n\t\t\t\t\t   guint8 control_selector,\n\t\t\t\t\t
      \  guint8 *buf,\n\t\t\t\t\t   gsize bufsz,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:170,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:170,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:170,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:173,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:174,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:175,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:176,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:177,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - self
    - unit_id
    - control_selector
    - buf
    - bufsz
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 199
    functionName: fu_logitech_tap_hdmi_device_set_xu_control
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_set_xu_control(FuLogitechTapHdmiDevice
      *self,\n\t\t\t\t\t   guint8 unit_id,\n\t\t\t\t\t   guint8 control_selector,\n\t\t\t\t\t
      \  guint8 *buf,\n\t\t\t\t\t   gsize bufsz,\n\t\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:209,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:224,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:232,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:233,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 251
    functionName: fu_logitech_tap_hdmi_device_ait_initiate_update
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_logitech_tap_hdmi_device_set_xu_control
    - g_malloc0
    - fu_logitech_tap_hdmi_device_query_data_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_ait_initiate_update(FuLogitechTapHdmiDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:260,1
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:261,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:269,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:275,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:277,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:284,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:285,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:295,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 318
    functionName: fu_logitech_tap_hdmi_device_ait_finalize_update
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_logitech_tap_hdmi_device_set_xu_control
    - g_malloc0
    - FU_DEVICE
    - fu_logitech_tap_hdmi_device_query_data_size
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_ait_finalize_update(FuLogitechTapHdmiDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_tap_hdmi_device_ait_initiate_update
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:327,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:331,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:332,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:332,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:334,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:337,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:340,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:343,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:346,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:347,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:349,1
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:352,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:359,1
    - Dst: fu_logitech_tap_hdmi_device_ait_finalize_update
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:363,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 370
    functionName: fu_logitech_tap_hdmi_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_device_add_private_flag
    - fu_logitech_tap_hdmi_device_set_xu_control
    - fu_memcpy_safe
    - fu_logitech_tap_hdmi_device_ait_initiate_update
    - g_malloc0
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_logitech_tap_hdmi_device_ait_finalize_update
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_write_fw(FuLogitechTapHdmiDevice
      *self,\n\t\t\t\t     FuChunkArray *chunks,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_HDMI_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:382,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:385,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:385,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:386,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:389,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:390,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:393,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:398,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:399,1
    - Dst: fu_logitech_tap_hdmi_device_write_fw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:406,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:408,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 372
    functionDepth: 7
    functionLinenumber: 372
    functionLinenumberEnd: 415
    functionName: fu_logitech_tap_hdmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - g_debug
    - fu_device_get_version
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_add_step
    - FU_LOGITECH_TAP_HDMI_DEVICE
    - fu_logitech_tap_hdmi_device_write_fw
    - fu_progress_set_id
    - g_strdup
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_hdmi_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:427,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:436,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:443,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:451,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:452,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:461,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:463,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:465,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:467,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 471
    functionName: fu_logitech_tap_hdmi_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_memread_uint16_safe
    - fu_logitech_tap_hdmi_device_set_xu_control
    - g_strdup_printf
    - g_malloc0
    - FU_DEVICE
    - fu_logitech_tap_hdmi_device_query_data_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_ensure_version(FuLogitechTapHdmiDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_HDMI_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:476,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:479,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:483,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:483,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:485,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:485,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:486,1
    - Dst: fu_logitech_tap_hdmi_device_ensure_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: fu_logitech_tap_hdmi_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DEVICE_CLASS
    - FU_V4L_DEVICE
    - fu_v4l_device_get_caps
    - FU_LOGITECH_TAP_HDMI_DEVICE
    - fu_logitech_tap_hdmi_device_ensure_version
    - fu_v4l_cap_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:501,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:501,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 511
    functionName: fu_logitech_tap_hdmi_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_v4l_device_get_index
    - FU_V4L_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:516,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:517,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:518,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:519,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:520,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 522
    functionName: fu_logitech_tap_hdmi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_hdmi_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:527,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:528,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:528,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:529,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:530,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:531,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:531,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:532,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:532,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:533,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:533,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:534,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:534,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:535,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapHdmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 538
    functionName: fu_logitech_tap_hdmi_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_hdmi_device_init(FuLogitechTapHdmiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapHdmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: fu_logitech_tap_hdmi_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_hdmi_device_class_init(FuLogitechTapHdmiDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_PLUGIN
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:26,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:31,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:33,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:33,1
    - Dst: FU_IS_LOGITECH_TAP_HDMI_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:34,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:35,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:39,1
    - Dst: fu_logitech_tap_sensor_device_reboot_device
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:40,1
    - Dst: FU_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:41,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:41,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: fu_logitech_tap_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_LOGITECH_TAP_PLUGIN
    - g_debug
    - FU_IS_LOGITECH_TAP_HDMI_DEVICE
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_logitech_tap_sensor_device_reboot_device
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_plugin_composite_cleanup(FuPlugin *plugin,
      GPtrArray *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: fu_logitech_tap_plugin_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_plugin_init(FuLogitechTapPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:59,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:60,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:61,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:62,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:63,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: fu_logitech_tap_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_plugin_constructed(GObject *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_PLUGIN
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:70,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:71,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:71,1
    - Dst: FU_IS_LOGITECH_TAP_HDMI_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:73,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:74,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:76,1
    - Dst: FU_IS_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:78,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:79,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: fu_logitech_tap_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_PLUGIN
    - fu_device_set_proxy
    - FU_IS_LOGITECH_TAP_HDMI_DEVICE
    - FU_IS_LOGITECH_TAP_SENSOR_DEVICE
    - g_set_object
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_PLUGIN
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:88,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:90,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:92,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:94,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: fu_logitech_tap_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:101,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: fu_logitech_tap_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_plugin_class_init(FuLogitechTapPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:37,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_logitech_tap_touch_firmware_get_ap_checksum
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 1
    functionsReached:
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_tap_touch_firmware_get_ap_checksum(FuLogitechTapTouchFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:44,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_logitech_tap_touch_firmware_get_df_checksum
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 1
    functionsReached:
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_tap_touch_firmware_get_df_checksum(FuLogitechTapTouchFirmware
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:53,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:54,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:55,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:57,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:58,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: fu_logitech_tap_touch_firmware_export
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: "void fu_logitech_tap_touch_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \     FuFirmwareExportFlags flags,\n\t\t\t\t      XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: fu_logitech_tap_touch_firmware_validate
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_firmware_validate(FuFirmware *firmware,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tgsize offset,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: fu_logitech_tap_touch_firmware_calculate_ap_crc_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_firmware_calculate_ap_crc_cb(const
      guint8 *buf,\n\t\t\t\t\t\t   gsize bufsz,\n\t\t\t\t\t\t   gpointer user_data,\n\t\t\t\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - bufsz
    - user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: fu_logitech_tap_touch_firmware_calculate_basic_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_firmware_calculate_basic_cb(const guint8
      *buf,\n\t\t\t\t\t\t  gsize bufsz,\n\t\t\t\t\t\t  gpointer user_data,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:139,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:140,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:144,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:148,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:152,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:154,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:157,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:160,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:166,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:174,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:184,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:196,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:198,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:201,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:207,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:211,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:214,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:219,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:220,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:221,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:223,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:226,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:229,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:234,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:235,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:236,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:238,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 242
    functionName: fu_logitech_tap_touch_firmware_parse
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_input_stream_read_u32
    - strlen
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_input_stream_read_u8
    - g_set_error
    - fu_firmware_set_offset
    - fu_input_stream_find
    - fu_firmware_add_image
    - fu_input_stream_read_u24
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_input_stream_chunkify
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: fu_logitech_tap_touch_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_tap_touch_firmware_convert_version(FuFirmware *firmware, guint64
      version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:263,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: fu_logitech_tap_touch_firmware_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_touch_firmware_init(FuLogitechTapTouchFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapTouchFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: fu_logitech_tap_touch_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_touch_firmware_class_init(FuLogitechTapTouchFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: HIDIOCGINPUT
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIDIOCGINPUT(len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:41,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:44,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:49,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:49,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:50,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:51,1
    - Dst: HIDIOCGINPUT
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: fu_logitech_tap_sensor_device_get_feature
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - HIDIOCGINPUT
    - fu_hidraw_device_get_feature
    - fu_udev_device_ioctl_new
    - g_debug
    - FU_HIDRAW_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_sensor_device_get_feature(FuLogitechTapSensorDevice
      *self,\n\t\t\t\t\t  guint8 *data,\n\t\t\t\t\t  guint datasz,\n\t\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:70,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:70,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:72,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:73,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:76,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:80,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: fu_logitech_tap_sensor_device_enable_tde
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_enable_tde(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:91,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:91,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:93,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:94,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:97,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:101,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 106
    functionName: fu_logitech_tap_sensor_device_disable_tde
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_disable_tde(FuDevice *device,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:112,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:113,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:113,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:116,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:117,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:118,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:121,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:126,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:134,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:136,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:139,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:142,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:142,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:149,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:152,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:152,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:159,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:161,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:164,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:167,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:167,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:174,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:176,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:179,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:179,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 190
    functionName: fu_logitech_tap_sensor_device_reboot_device
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_status
    - fu_progress_step_done
    - fu_progress_new
    - fu_hidraw_device_set_feature
    - fu_device_open
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_progress_add_step
    - fu_struct_logitech_tap_sensor_hid_req_new
    - FU_DEVICE
    - fu_device_sleep
    - fu_progress_set_id
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_reboot_device(FuLogitechTapSensorDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:196,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:198,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:199,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:201,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:203,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:206,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:209,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:209,1
    - Dst: fu_logitech_tap_sensor_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:215,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:222,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 233
    functionName: fu_logitech_tap_sensor_device_set_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_logitech_tap_sensor_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_res_new
    - fu_memread_uint32_safe
    - fu_device_set_version_raw
    - fu_struct_logitech_tap_sensor_hid_req_new
    - FU_DEVICE
    - fu_struct_logitech_tap_sensor_hid_res_set_cmd
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_set_version(FuLogitechTapSensorDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:239,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:240,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:241,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:243,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:246,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:249,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte3
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:252,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte4
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:255,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:261,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:269,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:269,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:279,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:280,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:282,1
    - Dst: fu_logitech_tap_sensor_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:286,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:291,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 302
    functionName: fu_logitech_tap_sensor_device_set_serial
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte4
    - g_string_new
    - fu_hidraw_device_set_feature
    - fu_logitech_tap_sensor_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_struct_logitech_tap_sensor_hid_res_new
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte3
    - FU_DEVICE
    - fu_device_sleep
    - fu_struct_logitech_tap_sensor_hid_res_set_cmd
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - fu_device_set_serial
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_set_serial(FuLogitechTapSensorDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:307,1
    - Dst: fu_logitech_tap_sensor_device_set_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:309,1
    - Dst: fu_logitech_tap_sensor_device_set_serial
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 6
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: fu_logitech_tap_sensor_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_sensor_device_set_serial
    - fu_logitech_tap_sensor_device_set_version
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:319,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:320,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:321,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:322,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:323,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: fu_logitech_tap_sensor_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_sensor_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:330,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: fu_logitech_tap_sensor_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_tap_sensor_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:336,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:337,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:338,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:339,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:340,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:341,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:341,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:342,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:342,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:343,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapSensorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: fu_logitech_tap_sensor_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_sensor_device_init(FuLogitechTapSensorDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapSensorDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: fu_logitech_tap_sensor_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_tap_sensor_device_class_init(FuLogitechTapSensorDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:23,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:25,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: fu_bcm57xx_dict_image_export
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DICT_IMAGE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:36,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:42,1
    - Dst: fu_bcm57xx_verify_crc
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:49,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:52,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: fu_bcm57xx_dict_image_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_stream
    - g_set_error_literal
    - fu_bcm57xx_verify_crc
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_dict_image_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:63,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:66,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:71,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:71,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:72,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:75,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: fu_bcm57xx_dict_image_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint32
    - g_byte_array_sized_new
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_crc32_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bcm57xx_dict_image_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:83,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:87,1
    - Dst: fu_bcm57xx_dict_image_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:89,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:90,1
    - Dst: fu_bcm57xx_dict_image_set_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: fu_bcm57xx_dict_image_build
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_dict_image_set_target
    - xb_node_query_text_as_uint
    - fu_bcm57xx_dict_image_set_kind
    - FU_BCM57XX_DICT_IMAGE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_dict_image_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:118,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:119,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:119,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:123,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:124,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:125,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:126,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDictImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: fu_bcm57xx_dict_image_ensure_id
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_firmware_set_id
    - g_strdup_printf
    - FU_FIRMWARE
    - g_getenv
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_ensure_id(FuBcm57xxDictImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_dict_image_ensure_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - target
    argTypes:
    - FuBcm57xxDictImage*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: fu_bcm57xx_dict_image_set_target
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 1
    functionsReached:
    - fu_bcm57xx_dict_image_ensure_id
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_set_target(FuBcm57xxDictImage *self, guint8
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDictImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: fu_bcm57xx_dict_image_get_target
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_bcm57xx_dict_image_get_target(FuBcm57xxDictImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_dict_image_ensure_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuBcm57xxDictImage*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: fu_bcm57xx_dict_image_set_kind
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 1
    functionsReached:
    - fu_bcm57xx_dict_image_ensure_id
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_set_kind(FuBcm57xxDictImage *self, guint8
      kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDictImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: fu_bcm57xx_dict_image_get_kind
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_bcm57xx_dict_image_get_kind(FuBcm57xxDictImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDictImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: fu_bcm57xx_dict_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_init(FuBcm57xxDictImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxDictImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: fu_bcm57xx_dict_image_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_dict_image_class_init(FuBcm57xxDictImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:175,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: fu_bcm57xx_dict_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_dict_image_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:25,1
    - Dst: fu_bcm57xx_verify_crc
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:27,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:33,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:39,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - image
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: fu_bcm57xx_stage2_image_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_stream
    - g_set_error_literal
    - fu_bcm57xx_verify_crc
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_stage2_image_parse(FuFirmware *image,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:49,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:52,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:57,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:57,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:58,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:59,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:60,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:62,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:65,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:66,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - image
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: fu_bcm57xx_stage2_image_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - fu_crc32_bytes
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bcm57xx_stage2_image_write(FuFirmware *image, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxStage2Image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: fu_bcm57xx_stage2_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_stage2_image_init(FuBcm57xxStage2Image *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxStage2ImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: fu_bcm57xx_stage2_image_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_stage2_image_class_init(FuBcm57xxStage2ImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:87,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fu_bcm57xx_stage2_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_stage2_image_new(void)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:26,1
    - Dst: fu_bcm57xx_verify_crc
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:30,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:35,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:42,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:57,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:65,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:73,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:75,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:81,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:84,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:90,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:93,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - image
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 94
    functionName: fu_bcm57xx_stage1_image_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u32
    - fu_firmware_set_stream
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_bcm57xx_verify_crc
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_input_stream_size
    - fu_bcm57xx_veritem_new
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_stage1_image_parse(FuFirmware *image,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:100,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:101,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:105,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:109,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:114,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:119,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:120,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:123,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:126,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:129,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:135,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:137,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:137,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:137,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:141,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:142,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 144
    functionName: fu_bcm57xx_stage1_image_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint32
    - fu_firmware_get_alignment
    - g_set_error
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - g_bytes_get_size
    - fu_firmware_get_version_raw
    - fu_memwrite_uint32_safe
    - g_autoptr
    - fu_common_align_up
    - fu_crc32
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bcm57xx_stage1_image_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:149,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: fu_bcm57xx_stage1_image_convert_version
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bcm57xx_stage1_image_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:155,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxStage1Image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: fu_bcm57xx_stage1_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_set_alignment
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_stage1_image_init(FuBcm57xxStage1Image *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxStage1ImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: fu_bcm57xx_stage1_image_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_stage1_image_class_init(FuBcm57xxStage1ImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:171,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: fu_bcm57xx_stage1_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_stage1_image_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:22,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:32,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bufver
    - bufsz
    - version
    argTypes:
    - guint8*
    - gsize
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: fu_bcm57xx_create_verbuf
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_assert_true
    - fu_memcpy_safe
    - g_assert_no_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_create_verbuf(guint8 *bufver, gsize bufsz, const gchar
      *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:41,1
    - Dst: fu_bcm57xx_create_verbuf
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:44,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:46,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:47,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:48,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:49,1
    - Dst: fu_bcm57xx_create_verbuf
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:51,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:53,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:54,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:56,1
    - Dst: fu_bcm57xx_create_verbuf
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:58,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:61,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:62,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: fu_bcm57xx_common_veritem_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_bcm57xx_create_verbuf
    - g_assert_nonnull
    - g_autoptr
    - fu_bcm57xx_veritem_new
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_common_veritem_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:76,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:76,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:79,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:80,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:81,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:84,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:85,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:86,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:94,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:95,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:96,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:98,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:99,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:100,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:101,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:102,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:103,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:104,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: fu_bcm57xx_firmware_talos_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_firmware_write
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - fu_bcm57xx_firmware_new
    - fu_bytes_compare
    - fu_firmware_get_images
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_bytes_set_contents
    - fu_bytes_get_contents
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_firmware_talos_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:119,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:120,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:121,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:124,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:125,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:126,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:127,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:128,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:129,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:130,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:132,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:133,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:136,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:137,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:139,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:140,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:141,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 143
    functionName: fu_bcm57xx_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_bcm57xx_firmware_new
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:148,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:149,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:151,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:152,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:153,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:154,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:157,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:160,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:161,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:162,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 164
    functionName: main
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: BARRIER
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARRIER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: BARRIER
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARRIER()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:149,1
    - Dst: BARRIER
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:157,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - bar
    - offset
    - val
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - guint
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: fu_bcm57xx_recovery_device_bar_read
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - g_set_error
    - BARRIER
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_recovery_device_bar_read(FuBcm57xxRecoveryDevice
      *self,\n\t\t\t\t    guint bar,\n\t\t\t\t    gsize offset,\n\t\t\t\t    guint32
      *val,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:177,1
    - Dst: BARRIER
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:185,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:186,1
    - Dst: BARRIER
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - bar
    - offset
    - val
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - guint
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: fu_bcm57xx_recovery_device_bar_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - g_set_error
    - BARRIER
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_recovery_device_bar_write(FuBcm57xxRecoveryDevice
      *self,\n\t\t\t\t     guint bar,\n\t\t\t\t     gsize offset,\n\t\t\t\t     guint32
      val,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:203,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: fu_bcm57xx_recovery_device_nvram_disable
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_bar_read
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_disable(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:222,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: fu_bcm57xx_recovery_device_nvram_enable
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_bar_read
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_enable(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:241,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: fu_bcm57xx_recovery_device_nvram_enable_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_bar_read
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_enable_write(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:260,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:260,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:262,1
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:269,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:277,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 287
    functionName: fu_bcm57xx_recovery_device_nvram_acquire_lock
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_timer_new
    - fu_bcm57xx_recovery_device_bar_read
    - g_timer_elapsed
    - g_set_error_literal
    - g_autoptr
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_acquire_lock(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: fu_bcm57xx_recovery_device_nvram_release_lock
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_release_lock(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:306,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:306,1
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:308,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:316,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 323
    functionName: fu_bcm57xx_recovery_device_nvram_wait_done
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_timer_new
    - fu_bcm57xx_recovery_device_bar_read
    - g_timer_elapsed
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_wait_done(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: fu_bcm57xx_recovery_device_nvram_clear_done
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_nvram_clear_done(FuBcm57xxRecoveryDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:345,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:346,1
    - Dst: fu_bcm57xx_recovery_device_nvram_clear_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:350,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:352,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:362,1
    - Dst: fu_bcm57xx_recovery_device_nvram_wait_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:368,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:369,1
    - Dst: fu_bcm57xx_recovery_device_bar_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:372,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:378,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - guint32
    - guint32*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 385
    functionName: fu_bcm57xx_recovery_device_nvram_read
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_bcm57xx_recovery_device_bar_read
    - GUINT32_FROM_BE
    - g_prefix_error
    - fu_bcm57xx_recovery_device_nvram_clear_done
    - fu_progress_set_id
    - fu_bcm57xx_recovery_device_nvram_wait_done
    - fu_progress_set_steps
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_recovery_device_nvram_read(FuBcm57xxRecoveryDevice
      *self,\n\t\t\t\t      guint32 address,\n\t\t\t\t      guint32 *buf,\n\t\t\t\t
      \     gsize bufsz,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:400,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:408,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:409,1
    - Dst: fu_bcm57xx_recovery_device_nvram_clear_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:412,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:414,1
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:418,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:421,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:431,1
    - Dst: fu_bcm57xx_recovery_device_nvram_wait_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:437,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:438,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - bufsz_dwrds
    - progress
    - error
    argTypes:
    - FuBcm57xxRecoveryDevice*
    - guint32
    - guint32*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 387
    functionDepth: 4
    functionLinenumber: 387
    functionLinenumberEnd: 447
    functionName: fu_bcm57xx_recovery_device_nvram_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - g_prefix_error
    - fu_bcm57xx_recovery_device_nvram_clear_done
    - GUINT32_TO_BE
    - fu_progress_set_id
    - fu_bcm57xx_recovery_device_nvram_wait_done
    - fu_progress_set_steps
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_recovery_device_nvram_write(FuBcm57xxRecoveryDevice
      *self,\n\t\t\t\t       guint32 address,\n\t\t\t\t       const guint32 *buf,\n\t\t\t\t
      \      gsize bufsz_dwrds,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: fu_bcm57xx_recovery_device_detach
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_device_unbind_driver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:459,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:462,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:463,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:464,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:466,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: fu_bcm57xx_recovery_device_attach
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_device_bind_driver
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:481,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:486,1
    - Dst: fu_bcm57xx_recovery_device_bar_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 502
    functionName: fu_bcm57xx_recovery_device_activate
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_RECOVERY_DEVICE
    - fu_bcm57xx_recovery_device_bar_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:507,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:508,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:508,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:511,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:514,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:515,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:523,1
    - Dst: fu_bcm57xx_recovery_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:529,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:536,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 539
    functionName: fu_bcm57xx_recovery_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_BCM57XX_RECOVERY_DEVICE
    - g_new0
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_close
    - g_bytes_new
    - fu_bcm57xx_recovery_device_nvram_read
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bcm57xx_recovery_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:548,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:548,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:549,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:549,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:552,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:553,1
    - Dst: fu_bcm57xx_firmware_is_backup
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:556,1
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:557,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:563,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 566
    functionName: fu_bcm57xx_recovery_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - fu_bcm57xx_firmware_new
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_bcm57xx_firmware_is_backup
    - g_autoptr
    - fu_firmware_new
    - FU_BCM57XX_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bcm57xx_recovery_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t    GInputStream *stream,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t
      \   FuFirmwareParseFlags flags,\n\t\t\t\t\t    GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:582,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:585,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:586,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:587,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:588,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:589,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:592,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:595,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:598,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:600,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:601,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:612,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:619,1
    - Dst: fu_bcm57xx_recovery_device_nvram_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:626,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:630,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:633,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:635,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:637,1
    - Dst: fu_device_activate
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:640,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:640,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:642,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 646
    functionName: fu_bcm57xx_recovery_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_recovery_device_nvram_write
    - fu_firmware_write
    - fu_progress_step_done
    - fu_progress_get_child
    - FU_BCM57XX_RECOVERY_DEVICE
    - fu_device_activate
    - g_new0
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_memcpy_safe
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_close
    - g_bytes_get_data
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_recovery_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:653,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:654,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:655,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:655,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:658,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:659,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:660,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:661,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:663,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:665,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:673,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:679,1
    - Dst: fu_bcm57xx_recovery_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:682,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:686,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:689,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:692,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:693,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:693,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:694,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:695,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:700,1
    - Dst: fu_bcm57xx_recovery_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:703,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:708,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:711,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:712,1
    - Dst: fu_bcm57xx_recovery_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:715,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:719,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:722,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:723,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:725,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:726,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 732
    functionName: fu_bcm57xx_recovery_device_setup
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_new
    - FU_BCM57XX_RECOVERY_DEVICE
    - fu_device_set_branch
    - GUINT32_FROM_BE
    - fu_device_set_version
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - g_autoptr
    - fu_device_set_version_raw
    - fu_bcm57xx_recovery_device_nvram_read
    - fu_bcm57xx_veritem_new
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:738,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:739,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:740,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:746,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:763,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:764,1
    - Dst: open
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:765,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:767,1
    - Dst: fstat
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:774,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:775,1
    - Dst: close
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:780,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:785,1
    - Dst: mmap
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:787,1
    - Dst: close
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:789,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:791,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:796,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 810
    functionName: fu_bcm57xx_recovery_device_open
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - mmap
    - g_debug
    - FU_BCM57XX_RECOVERY_DEVICE
    - open
    - g_build_filename
    - g_strdup_printf
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fstat
    - fu_udev_device_get_sysfs_path
    - close
    - fwupd_strerror
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_RECOVERY_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:816,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:822,1
    - Dst: munmap
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:823,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 837
    functionName: fu_bcm57xx_recovery_device_close
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - munmap
    - g_set_error_literal
    - g_debug
    - FU_BCM57XX_RECOVERY_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_close(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:842,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:843,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:844,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:845,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:846,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:847,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 849
    functionName: fu_bcm57xx_recovery_device_set_progress
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_recovery_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:854,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 855
    functionName: fu_bcm57xx_recovery_device_convert_version
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bcm57xx_recovery_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:860,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:860,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:861,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:861,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:862,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:862,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:863,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:863,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:864,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:864,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:865,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:865,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:866,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:867,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:867,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxRecoveryDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 857
    functionDepth: 6
    functionLinenumber: 857
    functionLinenumberEnd: 877
    functionName: fu_bcm57xx_recovery_device_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_recovery_device_init(FuBcm57xxRecoveryDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:882,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: fu_bcm57xx_recovery_device_probe
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_physical_id
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_recovery_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxRecoveryDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 902
    functionName: fu_bcm57xx_recovery_device_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_recovery_device_class_init(FuBcm57xxRecoveryDeviceClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:38,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:39,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:40,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:42,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: fu_bcm57xx_firmware_export
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - FU_BCM57XX_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bcm57xx_verify_magic
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:51,1
    - Dst: fu_bcm57xx_verify_crc
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:53,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: fu_bcm57xx_firmware_parse_header
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_verify_magic
    - fu_bcm57xx_verify_crc
    - fu_input_stream_read_u32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_firmware_parse_header(FuBcm57xxFirmware *self,
      GInputStream *stream, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:71,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:71,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:74,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:83,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:89,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:97,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 101
    functionName: fu_bcm57xx_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_firmware_set_id
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bcm57xx_firmware_parse_info(FuBcm57xxFirmware *self,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:114,1
    - Dst: fu_bcm57xx_stage1_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:115,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:117,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:119,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:142,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:152,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:155,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:167,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:168,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - self
    - stream
    - out_stage1_sz
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - guint32*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 170
    functionName: fu_bcm57xx_firmware_parse_stage1
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_firmware_set_offset
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_bcm57xx_stage1_image_new
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bcm57xx_firmware_parse_stage1(FuBcm57xxFirmware *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t guint32 *out_stage1_sz,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:182,1
    - Dst: fu_bcm57xx_stage2_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:183,1
    - Dst: fu_bcm57xx_verify_magic
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:186,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:188,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:197,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:207,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:210,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:218,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:219,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - self
    - stream
    - stage1_sz
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - guint32
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: fu_bcm57xx_firmware_parse_stage2
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_firmware_set_offset
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_bcm57xx_verify_magic
    - fu_bcm57xx_stage2_image_new
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bcm57xx_firmware_parse_stage2(FuBcm57xxFirmware *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t guint32 stage1_sz,\n\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:236,1
    - Dst: fu_bcm57xx_dict_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:237,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:240,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:246,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:252,1
    - Dst: fu_bcm57xx_dict_image_set_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:265,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:265,1
    - Dst: fu_bcm57xx_dict_image_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:267,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:267,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:268,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:269,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:274,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:274,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:275,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:276,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:276,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:284,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:292,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:295,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:303,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:303,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - self
    - stream
    - idx
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - guint
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 305
    functionName: fu_bcm57xx_firmware_parse_dict
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_bcm57xx_dict_image_set_kind
    - fu_bcm57xx_dict_image_new
    - fu_firmware_set_offset
    - fu_input_stream_read_u32
    - fu_firmware_add_image
    - FU_BCM57XX_DICT_IMAGE
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_firmware_set_addr
    - fu_bcm57xx_dict_image_set_target
    - g_autoptr
    - fu_firmware_set_idx
    - g_bytes_new
    - fu_input_stream_size
    - fu_firmware_set_bytes
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_firmware_parse_dict(FuBcm57xxFirmware *self,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       guint idx,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:315,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:316,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 331
    functionName: fu_bcm57xx_firmware_validate
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_input_stream_read_u32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     gsize offset,\n\t\t\t     GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:343,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:347,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:351,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:359,1
    - Dst: fu_bcm57xx_dict_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:359,1
    - Dst: fu_bcm57xx_dict_image_set_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:360,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:360,1
    - Dst: fu_bcm57xx_dict_image_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:361,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:361,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:362,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:363,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:370,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:370,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:371,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:373,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:374,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:380,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:389,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:392,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:397,1
    - Dst: fu_bcm57xx_firmware_parse_header
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:400,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:401,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:407,1
    - Dst: fu_bcm57xx_firmware_parse_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:412,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:415,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:416,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:420,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:423,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:424,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:427,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:428,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:429,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:433,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:436,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:437,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:440,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:441,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:442,1
    - Dst: fu_bcm57xx_firmware_parse_stage1
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:445,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:447,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:450,1
    - Dst: fu_bcm57xx_firmware_parse_stage2
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:453,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:455,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:458,1
    - Dst: fu_bcm57xx_firmware_parse_dict
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:462,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:463,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 98
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 470
    functionName: fu_bcm57xx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u32
    - g_prefix_error
    - fu_firmware_set_stream
    - fu_input_stream_read_u8
    - fu_bcm57xx_firmware_parse_header
    - fu_bcm57xx_firmware_parse_stage2
    - g_set_error
    - fu_bcm57xx_dict_image_set_kind
    - fu_firmware_set_offset
    - fu_firmware_set_addr
    - FU_BCM57XX_FIRMWARE
    - fu_bcm57xx_dict_image_new
    - fu_firmware_add_image
    - FU_BCM57XX_DICT_IMAGE
    - fu_firmware_parse_stream
    - fu_bcm57xx_dict_image_set_target
    - g_autoptr
    - fu_bcm57xx_firmware_parse_info
    - fu_bcm57xx_firmware_parse_dict
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_bcm57xx_firmware_parse_stage1
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_firmware_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:475,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:475,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:477,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sz
    argTypes:
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: _g_bytes_new_sized
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_bytes_new
    - g_autoptr
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      _g_bytes_new_sized(gsize sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:484,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:488,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 497
    functionName: fu_bcm57xx_firmware_build
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_BCM57XX_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:504,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:513,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:515,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:518,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:521,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:524,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:525,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:528,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:531,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:534,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:535,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:536,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:537,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:539,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:540,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:541,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:548,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:550,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:552,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:557,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:557,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:558,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:560,1
    - Dst: fu_bcm57xx_dict_image_get_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:561,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:562,1
    - Dst: fu_bcm57xx_dict_image_get_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:564,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:564,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:567,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:568,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:569,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:571,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:574,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:576,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:578,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:578,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:582,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:584,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:588,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:588,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:590,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:591,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:592,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:593,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:595,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:598,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:600,1
    - Dst: _g_bytes_new_sized
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:604,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:606,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:609,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:611,1
    - Dst: _g_bytes_new_sized
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:615,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:617,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:620,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:621,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:625,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:626,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:631,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:634,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 102
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 635
    functionName: fu_bcm57xx_firmware_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - fu_firmware_get_addr
    - fu_memwrite_uint16
    - fu_firmware_get_image_by_idx
    - fu_byte_array_append_uint32
    - fu_byte_array_append_bytes
    - fu_bcm57xx_dict_image_get_kind
    - _g_bytes_new_sized
    - g_ptr_array_index
    - FU_BCM57XX_FIRMWARE
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_byte_array_append_uint8
    - FU_BCM57XX_DICT_IMAGE
    - g_autoptr
    - g_bytes_new
    - fu_crc32
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - fu_firmware_write
    - g_bytes_get_size
    - fu_bcm57xx_dict_image_get_target
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bcm57xx_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: fu_bcm57xx_firmware_get_vendor
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_bcm57xx_firmware_get_vendor(FuBcm57xxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: fu_bcm57xx_firmware_get_model
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_bcm57xx_firmware_get_model(FuBcm57xxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: fu_bcm57xx_firmware_is_backup
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_firmware_is_backup(FuBcm57xxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:661,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:661,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:662,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:662,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:663,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:663,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:664,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:665,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: fu_bcm57xx_firmware_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_firmware_init(FuBcm57xxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: fu_bcm57xx_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_firmware_class_init(FuBcm57xxFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:683,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: fu_bcm57xx_firmware_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:44,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_bcm57xx_device_to_string
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:51,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: fu_bcm57xx_device_probe
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_physical_id
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: fu_bcm57xx_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t\t
      \ gpointer ptr,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:71,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:71,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:73,1
    - Dst: strncpy
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:76,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:77,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:78,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:79,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuBcm57xxDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: fu_bcm57xx_device_submit_ifreq
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - strncpy
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_submit_ifreq(FuBcm57xxDevice *self, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:109,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:117,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:118,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:122,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:128,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:133,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:134,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:134,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - self
    - address
    - buf
    - bufsz
    - error
    argTypes:
    - FuBcm57xxDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 151
    functionName: fu_bcm57xx_device_nvram_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_BCM57XX_DEVICE
    - memcpy
    - g_prefix_error
    - g_malloc0
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_bcm57xx_device_submit_ifreq
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_device_nvram_write(FuBcm57xxDevice *self,\n\t\t\t
      \     guint32 address,\n\t\t\t      const guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:166,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:175,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:179,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:185,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:189,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:189,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:193,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:198,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:203,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - self
    - address
    - buf
    - bufsz
    - error
    argTypes:
    - FuBcm57xxDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 217
    functionName: fu_bcm57xx_device_nvram_read
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - G_STRUCT_OFFSET
    - FU_BCM57XX_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - g_malloc0
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_bcm57xx_device_submit_ifreq
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_device_nvram_read(FuBcm57xxDevice *self,\n\t\t\t
      \    guint32 address,\n\t\t\t     guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t
      \    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:227,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:235,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:235,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:239,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:242,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:245,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:247,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:248,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:248,1
    - Dst: fu_pci_device_get_subsystem_pid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:249,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:250,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:251,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:252,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:253,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:258,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 271
    functionName: fu_bcm57xx_device_nvram_check
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_BCM57XX_DEVICE
    - g_debug
    - FU_PCI_DEVICE
    - g_prefix_error
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_device_set_firmware_size
    - fu_bcm57xx_device_submit_ifreq
    - fu_pci_device_get_subsystem_vid
    - fu_pci_device_get_subsystem_pid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_nvram_check(FuBcm57xxDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:276,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:277,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:279,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:281,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:282,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:283,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:284,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:286,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:287,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:288,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:289,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:290,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:293,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:297,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: fu_bcm57xx_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_bcm57xx_device_nvram_read
    - fu_chunk_get_data_sz
    - FU_BCM57XX_DEVICE
    - fu_chunk_get_data_out
    - fu_progress_step_done
    - g_steal_pointer
    - g_bytes_new_take
    - fu_chunk_array_mutable_new
    - g_malloc0
    - g_ptr_array_index
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_bcm57xx_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:303,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:304,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:307,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:310,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:314,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:316,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:318,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 300
    functionDepth: 7
    functionLinenumber: 300
    functionLinenumberEnd: 321
    functionName: fu_bcm57xx_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_bcm57xx_device_dump_firmware
    - fu_bcm57xx_firmware_new
    - g_autoptr
    - fu_firmware_remove_image_by_id
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_device_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:334,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:335,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:339,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:342,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:343,1
    - Dst: fu_bcm57xx_firmware_get_vendor
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:349,1
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:349,1
    - Dst: fu_bcm57xx_firmware_get_model
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:350,1
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:350,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:352,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:353,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:360,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:361,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:367,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:368,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:371,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:376,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:379,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:380,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:383,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:385,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:386,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:388,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:389,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:391,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:396,1
    - Dst: FU_IS_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:397,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:398,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:402,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:403,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:406,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 407
    functionName: fu_bcm57xx_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_prefix_error
    - fu_bcm57xx_device_dump_firmware
    - fu_firmware_to_string
    - fu_firmware_get_images
    - g_set_error
    - g_ptr_array_index
    - FU_IS_BCM57XX_DICT_IMAGE
    - g_info
    - FU_BCM57XX_FIRMWARE
    - fu_device_get_pid
    - fu_bcm57xx_firmware_get_vendor
    - fu_firmware_add_image
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_bcm57xx_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_device_get_vid
    - fu_bcm57xx_firmware_get_model
    - fu_firmware_set_idx
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_bcm57xx_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuFirmwareParseFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:415,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:416,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:416,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:418,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:421,1
    - Dst: fu_bcm57xx_device_nvram_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:424,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:425,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:426,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:427,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuBcm57xxDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 409
    functionDepth: 6
    functionLinenumber: 409
    functionLinenumberEnd: 433
    functionName: fu_bcm57xx_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_bcm57xx_device_nvram_write
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_device_write_chunks(FuBcm57xxDevice *self,\n\t\t\t
      \      FuChunkArray *chunks,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:445,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:448,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:449,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:451,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:452,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:455,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:458,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:461,1
    - Dst: fu_bcm57xx_device_write_chunks
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:465,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:465,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:467,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:471,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:471,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:474,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 480
    functionName: fu_bcm57xx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - FU_BCM57XX_DEVICE
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_bcm57xx_device_write_chunks
    - fu_progress_get_child
    - fu_bcm57xx_device_dump_firmware
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_bytes_compare
    - fu_progress_set_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:485,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:485,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:488,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:489,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:490,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 498
    functionName: fu_bcm57xx_device_attach
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_message
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:503,1
    - Dst: fu_bcm57xx_device_nvram_check
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:507,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:511,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:519,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:520,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:520,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:525,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:528,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:534,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:537,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:543,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:545,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:546,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:547,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:552,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:553,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:554,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:555,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 500
    functionDepth: 6
    functionLinenumber: 500
    functionLinenumberEnd: 557
    functionName: fu_bcm57xx_device_setup
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_device_nvram_read
    - fu_device_set_version_format
    - fu_device_set_branch
    - FU_BCM57XX_DEVICE
    - fu_bcm57xx_device_nvram_check
    - fu_device_set_version
    - GUINT32_FROM_BE
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_device_set_version_raw
    - fu_bcm57xx_veritem_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:563,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:565,1
    - Dst: socket
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:567,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:569,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:574,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:580,1
    - Dst: fu_udev_device_set_io_channel
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:581,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:581,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 590
    functionName: fu_bcm57xx_device_open
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_BCM57XX_DEVICE
    - fu_io_channel_unix_new
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - socket
    - fwupd_strerror
    - fu_udev_device_set_io_channel
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:595,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:596,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:597,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:598,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 602
    functionName: fu_bcm57xx_device_set_progress
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:607,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: fu_bcm57xx_device_convert_version
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bcm57xx_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:613,1
    - Dst: g_value_set_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:616,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: fu_bcm57xx_device_get_property
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - FU_BCM57XX_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:630,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:633,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:634,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 640
    functionName: fu_bcm57xx_device_set_property
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_value_dup_string
    - FU_BCM57XX_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_free
    linkageType: ''
    returnType: void
    signature: "void fu_bcm57xx_device_set_property(GObject *object,\n\t\t\t       guint
      prop_id,\n\t\t\t       const GValue *value,\n\t\t\t       GParamSpec *pspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:645,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:645,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:646,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:646,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:647,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:647,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:648,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:648,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:649,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:649,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:652,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 653
    functionName: fu_bcm57xx_device_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_init(FuBcm57xxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:658,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:659,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: fu_bcm57xx_device_finalize
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:666,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:669,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:687,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 693
    functionName: fu_bcm57xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_class_init(FuBcm57xxDeviceClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:20,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:23,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:26,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:32,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:40,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:43,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 60
    functionName: fu_bcm57xx_verify_crc
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u32
    - fu_input_stream_compute_crc32
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_size
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_verify_crc(GInputStream *stream, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:68,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - stream
    - offset
    - error
    argTypes:
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: fu_bcm57xx_verify_magic
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_verify_magic(GInputStream *stream, gsize offset,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:86,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:87,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - veritem
    argTypes:
    - Bcm57xxVeritem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: fu_bcm57xx_veritem_free
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_veritem_free(Bcm57xxVeritem *veritem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:95,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:95,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:105,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:111,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:112,1
    - Dst: strlen
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:112,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:113,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:115,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: fu_bcm57xx_veritem_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 4
    functionsReached:
    - g_str_has_prefix
    - strlen
    - g_steal_pointer
    - g_new0
    - g_strdup
    - g_autoptr
    - g_strndup
    linkageType: ''
    returnType: Bcm57xxVeritem
    signature: 'Bcm57xxVeritem *

      fu_bcm57xx_veritem_new(const guint8 *buf, gsize bufsz)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:33,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:36,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:40,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:40,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:41,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:49,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:50,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:52,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:52,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:52,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:55,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:58,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:59,1
    - Dst: fu_path_glob
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:61,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:63,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:66,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:66,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:67,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:70,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:71,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 76
    functionName: fu_bcm57xx_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - g_debug
    - fu_plugin_device_add
    - g_build_filename
    - g_path_get_basename
    - g_object_new
    - fu_udev_device_get_number
    - fu_device_has_flag
    - FU_IS_UDEV_DEVICE
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_path_glob
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_ptr_array_index
    - fu_device_locker_new
    - fu_device_query_file_exists
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bcm57xx_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \      FuDevice *device,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57XxPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: fu_bcm57xx_plugin_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_plugin_init(FuBcm57XxPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:86,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: fu_bcm57xx_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:93,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:94,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:95,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:96,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:97,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:98,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:99,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: fu_bcm57xx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:106,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57XxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: fu_bcm57xx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_plugin_class_init(FuBcm57XxPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: fu_amd_kria_plugin_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_init(FuAmdKriaPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:39,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:39,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:41,1
    - Dst: fu_amd_kria_image_firmware_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:44,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:46,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:49,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: fu_amd_kria_plugin_process_image
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_progress_new
    - fu_amd_kria_image_firmware_new
    - fu_firmware_get_version
    - fu_device_dump_firmware
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_plugin_process_image(FuPlugin *plugin, FuDevice
      *dev, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:60,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:60,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:62,1
    - Dst: fu_amd_kria_persistent_firmware_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:65,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:67,1
    - Dst: fu_amd_kria_persistent_firmware_booted_image_a
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:70,1
    - Dst: FU_AMD_KRIA_PERSISTENT_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: fu_amd_kria_plugin_process_persistent
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - FU_AMD_KRIA_PLUGIN
    - fu_device_dump_firmware
    - FU_AMD_KRIA_PERSISTENT_FIRMWARE
    - fu_amd_kria_persistent_firmware_booted_image_a
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_amd_kria_persistent_firmware_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_plugin_process_persistent(FuPlugin *plugin, FuDevice
      *dev, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:86,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:86,1
    - Dst: FU_AMD_KRIA_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:89,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:91,1
    - Dst: fu_amd_kria_plugin_process_image
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:92,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:93,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:94,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:94,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:95,1
    - Dst: fu_amd_kria_plugin_process_image
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:96,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:97,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:98,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:98,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:99,1
    - Dst: fu_amd_kria_plugin_process_persistent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:100,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:101,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:105,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:106,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:107,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:107,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:108,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:109,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:109,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:110,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:110,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 114
    functionName: fu_amd_kria_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_version
    - fu_device_get_version
    - fu_amd_kria_plugin_process_persistent
    - FU_AMD_KRIA_PLUGIN
    - fu_device_add_flag
    - fu_device_remove_flag
    - fu_device_get_name
    - g_strdup
    - g_autoptr
    - fu_amd_kria_plugin_process_image
    - g_strcmp0
    - fu_device_get_plugin
    - fu_device_get_parent
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_device_registered(FuPlugin *plugin, FuDevice
      *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:119,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:121,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:122,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: fu_amd_kria_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_PLUGIN
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:130,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:131,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:134,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:135,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: fu_amd_kria_plugin_startup
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_path_from_kind
    - g_file_test
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:148,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:151,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:152,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:155,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:156,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: fu_amd_kria_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:163,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:165,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:166,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: fu_amd_kria_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_PLUGIN
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:173,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: fu_amd_kria_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_class_init(FuAmdKriaPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:33,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:36,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:40,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:44,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:51,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: fu_amd_kria_image_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_read_bytes
    - fu_strsafe
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_image_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:59,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaImageFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fu_amd_kria_image_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_image_firmware_init(FuAmdKriaImageFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaImageFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: fu_amd_kria_image_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_image_firmware_class_init(FuAmdKriaImageFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:72,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: fu_amd_kria_image_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_kria_image_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 1321
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:32,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:33,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: fu_amd_kria_device_to_string
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_AMD_KRIA_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:44,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: fu_amd_kria_device_prepare
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_volume_locker
    - GET_PRIVATE
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_device_prepare(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:59,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:60,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:62,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: fu_amd_kria_device_cleanup
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_close
    - GET_PRIVATE
    - FU_AMD_KRIA_DEVICE
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_device_cleanup(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:76,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:79,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:81,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:84,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:89,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:90,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 96
    functionName: fu_amd_kria_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_path_mkdir_parent
    - g_build_filename
    - fu_volume_get_mount_point
    - GET_PRIVATE
    - g_autoptr
    - FU_AMD_KRIA_DEVICE
    - fu_bytes_set_contents
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:104,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:107,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:108,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: fu_amd_kria_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - GET_PRIVATE
    - g_strdup
    - g_strcmp0
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:121,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:122,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:125,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:128,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:136,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:136,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:139,1
    - Dst: strlen
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:139,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:141,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:148,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 159
    functionName: fu_amd_kria_device_probe
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - fu_strsplit
    - FU_DEVICE_CLASS
    - strlen
    - fu_udev_device_read_property
    - g_set_error_literal
    - g_strv_length
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_strcmp0
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:164,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:164,1
    - Dst: g_build_path
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:170,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:172,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:176,1
    - Dst: fu_amd_kria_som_eeprom_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:177,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:178,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:182,1
    - Dst: fu_amd_kria_som_eeprom_get_manufacturer
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:184,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:184,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:185,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:185,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:186,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:186,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:187,1
    - Dst: fu_amd_kria_som_eeprom_get_product_name
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:190,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:190,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:191,1
    - Dst: fu_amd_kria_som_eeprom_get_serial_number
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:193,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:193,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:194,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: fu_amd_kria_device_setup
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_amd_kria_som_eeprom_get_manufacturer
    - fu_amd_kria_som_eeprom_get_serial_number
    - g_file_get_contents
    - fu_amd_kria_som_eeprom_new
    - fu_device_build_vendor_id
    - fu_device_set_vendor
    - fu_device_build_instance_id
    - g_build_path
    - FU_AMD_KRIA_SOM_EEPROM
    - FU_UDEV_DEVICE
    - fu_device_get_vendor
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_bytes_new
    - fu_device_add_instance_str
    - fu_device_set_serial
    - fu_firmware_parse_bytes
    - fu_amd_kria_som_eeprom_get_product_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:205,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:208,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:211,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:212,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: fu_amd_kria_device_constructed
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_device_get_context
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_context_get_default_esp
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:220,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:221,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:222,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:224,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:225,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:226,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:227,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:228,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 230
    functionName: fu_amd_kria_device_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_set_logical_id
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_init(FuAmdKriaDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:235,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:236,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:239,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:241,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:242,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 245
    functionName: fu_amd_kria_device_finalize
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:250,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: fu_amd_kria_device_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_class_init(FuAmdKriaDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LENGTH
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LENGTH(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: TYPE_CODE
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_CODE(data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:43,1
    - Dst: fu_struct_ipmi_common_parse_stream
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:46,1
    - Dst: fu_struct_ipmi_common_get_board_offset
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:49,1
    - Dst: fu_struct_board_info_parse_stream
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:52,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:56,1
    - Dst: fu_struct_board_info_get_length
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:58,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:63,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:69,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:71,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:74,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:76,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:79,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 84
    functionName: fu_amd_kria_som_eeprom_parse
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - fu_struct_board_info_get_length
    - fu_bytes_get_data_safe
    - fu_struct_ipmi_common_get_board_offset
    - LENGTH
    - fu_struct_board_info_parse_stream
    - FU_AMD_KRIA_SOM_EEPROM
    - fu_struct_ipmi_common_parse_stream
    - g_autoptr
    - fu_input_stream_read_bytes
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_som_eeprom_parse(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaSomEeprom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: fu_amd_kria_som_eeprom_get_manufacturer
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_kria_som_eeprom_get_manufacturer(FuAmdKriaSomEeprom *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaSomEeprom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: fu_amd_kria_som_eeprom_get_product_name
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_kria_som_eeprom_get_product_name(FuAmdKriaSomEeprom *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaSomEeprom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: fu_amd_kria_som_eeprom_get_serial_number
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_kria_som_eeprom_get_serial_number(FuAmdKriaSomEeprom *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:107,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:109,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:110,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: fu_amd_kria_som_eeprom_export
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_SOM_EEPROM
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_som_eeprom_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:117,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaSomEeprom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: fu_amd_kria_som_eeprom_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_som_eeprom_init(FuAmdKriaSomEeprom *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:123,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:125,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:126,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:127,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: fu_amd_kria_som_eeprom_finalize
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_SOM_EEPROM
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_som_eeprom_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:134,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaSomEepromClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: fu_amd_kria_som_eeprom_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_som_eeprom_class_init(FuAmdKriaSomEepromClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:144,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: fu_amd_kria_som_eeprom_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_kria_som_eeprom_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_PERSISTENT_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:31,1
    - Dst: fu_struct_amd_kria_persist_reg_parse_stream
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:33,1
    - Dst: fu_struct_amd_kria_persist_reg_get_last_booted_img
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: fu_amd_kria_persistent_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_PERSISTENT_FIRMWARE
    - fu_struct_amd_kria_persist_reg_get_last_booted_img
    - fu_struct_amd_kria_persist_reg_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_kria_persistent_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaPersistentFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: fu_amd_kria_persistent_firmware_booted_image_a
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_kria_persistent_firmware_booted_image_a(FuAmdKriaPersistentFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaPersistentFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: fu_amd_kria_persistent_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_persistent_firmware_init(FuAmdKriaPersistentFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_PERSISTENT_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:57,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: fu_amd_kria_persistent_firmware_export
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 0
    functionsReached:
    - FU_AMD_KRIA_PERSISTENT_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_amd_kria_persistent_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \      FuFirmwareExportFlags flags,\n\t\t\t\t       XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaPersistentFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fu_amd_kria_persistent_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_persistent_firmware_class_init(FuAmdKriaPersistentFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:75,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: fu_amd_kria_persistent_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_kria_persistent_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:22,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:26,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:29,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:30,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:31,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:34,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:35,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:36,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:37,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:40,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:41,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:42,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:43,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 49
    functionName: fu_linux_sleep_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fwupd_security_attr_add_flag
    - g_file_new_for_path
    - g_build_filename
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - g_strstr_len
    - g_file_load_contents
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_path_from_kind
    linkageType: ''
    returnType: void
    signature: void fu_linux_sleep_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSleepPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: fu_linux_sleep_plugin_init
    functionSourceFile: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_sleep_plugin_init(FuLinuxSleepPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxSleepPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_linux_sleep_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_sleep_plugin_class_init(FuLinuxSleepPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:26,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:27,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:27,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:34,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:36,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:38,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:40,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:42,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:42,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:44,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:46,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:47,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:48,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:49,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:51,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:53,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:55,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 59
    functionName: fu_nordic_hid_firmware_mcuboot_write
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - fu_firmware_get_bytes_with_patches
    - g_bytes_get_size
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_nordic_hid_firmware_mcuboot_write(FuFirmware *firmware, GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:75,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:78,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:85,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:88,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:94,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:101,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:109,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:111,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:113,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:115,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:117,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - stream
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 122
    functionName: fu_nordic_hid_firmware_mcuboot_validate
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_input_stream_read_u32
    - g_strdup_printf
    - fu_firmware_set_version
    - fu_input_stream_read_u8
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_firmware_mcuboot_validate(FuFirmware *firmware,
      GInputStream *stream, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:130,1
    - Dst: fu_nordic_hid_firmware_mcuboot_validate
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: fu_nordic_hid_firmware_mcuboot_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_firmware_mcuboot_validate
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_firmware_mcuboot_parse(FuFirmware *firmware,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidFirmwareMcuboot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: fu_nordic_hid_firmware_mcuboot_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_mcuboot_init(FuNordicHidFirmwareMcuboot
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidFirmwareMcubootClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: fu_nordic_hid_firmware_mcuboot_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_mcuboot_class_init(FuNordicHidFirmwareMcubootClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 1329
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:21,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:22,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: fu_nordic_hid_firmware_export
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_NORDIC_HID_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:29,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:30,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:31,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:32,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: fu_nordic_hid_firmware_get_checksum
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - FU_NORDIC_HID_FIRMWARE
    - g_set_error_literal
    - fu_firmware_has_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nordic_hid_firmware_get_checksum(FuFirmware *firmware, GChecksumType csum_kind,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:47,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:48,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: fu_nordic_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_NORDIC_HID_FIRMWARE
    - fu_input_stream_compute_crc32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:61,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: fu_nordic_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_init(FuNordicHidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: fu_nordic_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_class_init(FuNordicHidFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_nordic_hid_plugin_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_plugin_init(FuNordicHidPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:29,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:31,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:33,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:34,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: fu_nordic_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: fu_nordic_hid_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_plugin_class_init(FuNordicHidPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:25,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:26,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:27,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:28,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:29,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:30,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:31,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:33,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:34,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:37,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: fu_nordic_hid_firmware_b0_write
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_nordic_hid_firmware_b0_write(FuFirmware *firmware, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:56,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:58,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:64,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:70,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:77,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:91,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:96,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - firmware
    - stream
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 108
    functionName: fu_nordic_hid_firmware_b0_read_fwinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u32
    - fu_firmware_set_version
    - g_strdup_printf
    - g_set_error_literal
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_firmware_b0_read_fwinfo(FuFirmware *firmware,
      GInputStream *stream, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:116,1
    - Dst: fu_nordic_hid_firmware_b0_read_fwinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: fu_nordic_hid_firmware_b0_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - fu_nordic_hid_firmware_b0_read_fwinfo
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_firmware_b0_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidFirmwareB0*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: fu_nordic_hid_firmware_b0_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_b0_init(FuNordicHidFirmwareB0 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidFirmwareB0Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: fu_nordic_hid_firmware_b0_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_firmware_b0_class_init(FuNordicHidFirmwareB0Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:114,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opt
    argTypes:
    - FuNordicCfgChannelModuleOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: fu_nordic_hid_cfg_channel_module_option_free
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_module_option_free(FuNordicCfgChannelModuleOption
      *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:125,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:126,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - FuNordicCfgChannelModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: fu_nordic_hid_cfg_channel_module_free
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_module_free(FuNordicCfgChannelModule
      *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:137,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: fu_nordic_hid_cfg_channel_get_udev_device
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: FuUdevDevice
    signature: 'FuUdevDevice *

      fu_nordic_hid_cfg_channel_get_udev_device(FuNordicHidCfgChannel *self, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_get_udev_device
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:158,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:161,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: fu_nordic_hid_cfg_channel_send
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_nordic_hid_cfg_channel_get_udev_device
    - fu_hidraw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_send(FuNordicHidCfgChannel *self,\n\t\t\t
      \      guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:174,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:174,1
    - Dst: fu_nordic_hid_cfg_channel_get_udev_device
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:175,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:181,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:181,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:192,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:194,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 214
    functionName: fu_nordic_hid_cfg_channel_receive
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - g_new0
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - FU_DEVICE
    - g_autoptr
    - fu_dump_raw
    - fu_nordic_hid_cfg_channel_get_udev_device
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_receive(FuNordicHidCfgChannel *self,\n\t\t\t\t
      \ guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:220,1
    - Dst: fu_nordic_hid_cfg_channel_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:223,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: fu_nordic_hid_cfg_channel_receive_cb
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_set_error
    - fu_nordic_hid_cfg_channel_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_receive_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:265,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:266,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:279,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - self
    - module_name
    - option_name
    - event_id
    argTypes:
    - FuNordicHidCfgChannel*
    - gchar*
    - gchar*
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 288
    functionName: fu_nordic_hid_cfg_channel_get_event_id
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_get_event_id(FuNordicHidCfgChannel
      *self,\n\t\t\t\t       const gchar *module_name,\n\t\t\t\t       const gchar
      *option_name,\n\t\t\t\t       guint8 *event_id)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:298,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:308,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:316,1
    - Dst: fu_nordic_hid_cfg_channel_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:328,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - self
    - event_id
    - status
    - data
    - data_len
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    - guint8
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 335
    functionName: fu_nordic_hid_cfg_channel_cmd_send_by_id
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_nordic_hid_cfg_channel_send
    - g_new0
    - g_prefix_error
    - fu_memcpy_safe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_cmd_send_by_id(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t guint8 event_id,\n\t\t\t\t\t guint8 status,\n\t\t\t\t\t guint8
      *data,\n\t\t\t\t\t guint8 data_len,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_get_event_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:348,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:349,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send_by_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:358,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - self
    - module_name
    - option_name
    - status
    - data
    - data_len
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - gchar*
    - gchar*
    - guint8
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 337
    functionDepth: 6
    functionLinenumber: 337
    functionLinenumberEnd: 370
    functionName: fu_nordic_hid_cfg_channel_cmd_send
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_nordic_hid_cfg_channel_get_event_id
    - fu_nordic_hid_cfg_channel_cmd_send_by_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_cmd_send(FuNordicHidCfgChannel
      *self,\n\t\t\t\t   const gchar *module_name,\n\t\t\t\t   const gchar *option_name,\n\t\t\t\t
      \  guint8 status,\n\t\t\t\t   guint8 *data,\n\t\t\t\t   guint8 data_len,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:384,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - status
    - res
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    - FuNordicCfgChannelMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: fu_nordic_hid_cfg_channel_cmd_receive
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_cmd_receive(FuNordicHidCfgChannel
      *self,\n\t\t\t\t      guint8 status,\n\t\t\t\t      FuNordicCfgChannelMsg *res,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer_cache_val
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: fu_nordic_hid_cfg_channel_is_cached_peer_connected
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_is_cached_peer_connected(guint8
      peer_cache_val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:408,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:409,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:413,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:414,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:420,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 424
    functionName: fu_nordic_hid_cfg_channel_check_children_update_pending_cb
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_device_remove_problem
    - fu_device_get_children
    - fu_device_has_private_flag
    - g_ptr_array_index
    - FU_DEVICE
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: "void fu_nordic_hid_cfg_channel_check_children_update_pending_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t   GParamSpec *pspec,\n\t\t\t\t\t\t\t   gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:430,1
    - Dst: fu_nordic_hid_cfg_channel_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:432,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:435,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:439,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:440,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:444,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:447,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:449,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:452,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - self
    - peer_id
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 455
    functionName: fu_nordic_hid_cfg_channel_add_peer
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_add_child
    - g_debug
    - fu_device_add_private_flag
    - fu_device_setup
    - FU_DEVICE
    - g_autoptr
    - g_signal_connect
    - fu_nordic_hid_cfg_channel_new
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_add_peer(FuNordicHidCfgChannel *self,
      guint8 peer_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:460,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:464,1
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:465,1
    - Dst: fu_device_remove_child
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - peer_id
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 472
    functionName: fu_nordic_hid_cfg_channel_remove_peer
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_device_get_children
    - fu_device_remove_child
    - g_ptr_array_index
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_remove_peer(FuNordicHidCfgChannel *self,
      guint8 peer_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_is_cached_peer_connected
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:482,1
    - Dst: fu_nordic_hid_cfg_channel_remove_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - peers_cache
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: fu_nordic_hid_cfg_channel_remove_disconnected_peers
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_is_cached_peer_connected
    - fu_nordic_hid_cfg_channel_remove_peer
    linkageType: ''
    returnType: void
    signature: "void fu_nordic_hid_cfg_channel_remove_disconnected_peers(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t\t    guint8 peers_cache[PEERS_CACHE_LEN])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:495,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:496,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:500,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:507,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:511,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:520,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - cmd_supported
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 527
    functionName: fu_nordic_hid_cfg_channel_index_peers_cmd
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - g_prefix_error
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_index_peers_cmd(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t  gboolean *cmd_supported,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:534,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:534,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:536,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:543,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - peer_id
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 529
    functionDepth: 7
    functionLinenumber: 529
    functionLinenumberEnd: 555
    functionName: fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - g_prefix_error
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_get_next_peer_id_cmd(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t       guint8 *peer_id,\n\t\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:563,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:563,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:564,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:568,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:575,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:579,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:588,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:589,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - self
    - cmd_supported
    - peers_cache
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - gboolean*
    - guint8[]
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 557
    functionDepth: 7
    functionLinenumber: 557
    functionLinenumberEnd: 606
    functionName: fu_nordic_hid_cfg_channel_read_peers_cache_cmd
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - g_prefix_error
    - fu_memcpy_safe
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_read_peers_cache_cmd(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t       gboolean *cmd_supported,\n\t\t\t\t\t       guint8 peers_cache[PEERS_CACHE_LEN],\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_index_peers_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:617,1
    - Dst: fu_nordic_hid_cfg_channel_remove_disconnected_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:626,1
    - Dst: fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:629,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:636,1
    - Dst: fu_nordic_hid_cfg_channel_add_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:640,1
    - Dst: fu_nordic_hid_cfg_channel_is_cached_peer_connected
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:645,1
    - Dst: fu_nordic_hid_cfg_channel_remove_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:646,1
    - Dst: fu_nordic_hid_cfg_channel_add_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:647,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - peers_cache
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8[]
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 608
    functionDepth: 8
    functionLinenumber: 608
    functionLinenumberEnd: 662
    functionName: fu_nordic_hid_cfg_channel_update_peers
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
    - g_debug
    - fu_nordic_hid_cfg_channel_is_cached_peer_connected
    - fu_nordic_hid_cfg_channel_add_peer
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_index_peers_cmd
    - fu_nordic_hid_cfg_channel_remove_peer
    - fu_nordic_hid_cfg_channel_remove_disconnected_peers
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_update_peers(FuNordicHidCfgChannel
      *self,\n\t\t\t\t       guint8 peers_cache[PEERS_CACHE_LEN],\n\t\t\t\t       GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_index_peers_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:679,1
    - Dst: fu_nordic_hid_cfg_channel_read_peers_cache_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:685,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:692,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:695,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:699,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:704,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 664
    functionDepth: 9
    functionLinenumber: 664
    functionLinenumberEnd: 709
    functionName: fu_nordic_hid_cfg_channel_setup_peers
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_device_open
    - fu_nordic_hid_cfg_channel_update_peers
    - FU_DEVICE
    - fu_nordic_hid_cfg_channel_read_peers_cache_cmd
    - fu_nordic_hid_cfg_channel_index_peers_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_setup_peers(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:714,1
    - Dst: fu_nordic_hid_cfg_channel_read_peers_cache_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:718,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:725,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:733,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 711
    functionDepth: 9
    functionLinenumber: 711
    functionLinenumberEnd: 740
    functionName: fu_nordic_hid_cfg_channel_poll_peers
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_update_peers
    - g_set_error_literal
    - memcmp
    - fu_nordic_hid_cfg_channel_read_peers_cache_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_poll_peers(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:745,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:746,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:746,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:748,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:756,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 742
    functionDepth: 7
    functionLinenumber: 742
    functionLinenumberEnd: 764
    functionName: fu_nordic_hid_cfg_channel_get_board_name_cb
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - fu_memstrsafe
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_board_name_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:770,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:770,1
    - Dst: fu_nordic_hid_cfg_channel_get_event_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:773,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:774,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:782,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:787,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:789,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:792,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:794,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:798,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:802,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 766
    functionDepth: 7
    functionLinenumber: 766
    functionLinenumberEnd: 815
    functionName: fu_nordic_hid_cfg_channel_get_bl_name
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_debug
    - g_new0
    - g_set_error_literal
    - fu_memstrsafe
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_strndup
    - g_free
    - fu_nordic_hid_cfg_channel_get_event_id
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_bl_name(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:821,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:821,1
    - Dst: fu_nordic_hid_cfg_channel_get_event_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:824,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:827,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:835,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:838,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:845,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:853,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:859,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:862,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:866,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 817
    functionDepth: 7
    functionLinenumber: 817
    functionLinenumberEnd: 879
    functionName: fu_nordic_hid_cfg_channel_get_devinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_memread_uint16_safe
    - g_debug
    - g_new0
    - g_set_error_literal
    - fu_memstrsafe
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_free
    - fu_nordic_hid_cfg_channel_get_event_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_devinfo(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:891,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:891,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:893,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:901,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:904,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:908,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:918,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:918,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:922,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 886
    functionDepth: 7
    functionLinenumber: 886
    functionLinenumberEnd: 926
    functionName: fu_nordic_hid_cfg_channel_get_hwid
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - fu_memcpy_safe
    - g_strdup_printf
    - FU_DEVICE
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    - fu_device_set_physical_id
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_hwid(FuNordicHidCfgChannel *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:934,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:935,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:935,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send_by_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:937,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:944,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:950,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:951,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:955,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:955,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - mod
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - FuNordicCfgChannelModule*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 928
    functionDepth: 6
    functionLinenumber: 928
    functionLinenumberEnd: 960
    functionName: fu_nordic_hid_cfg_channel_load_module_opts
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_new0
    - fu_memstrsafe
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_send_by_id
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_load_module_opts(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t   FuNordicCfgChannelModule *mod,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:967,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:967,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:970,1
    - Dst: fu_nordic_hid_cfg_channel_load_module_opts
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:972,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:976,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:977,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:978,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:979,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:988,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - module_idx
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 962
    functionDepth: 7
    functionLinenumber: 962
    functionLinenumberEnd: 990
    functionName: fu_nordic_hid_cfg_channel_load_module_info
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_new0
    - fu_nordic_hid_cfg_channel_load_module_opts
    - g_ptr_array_index
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - g_ptr_array_remove_index
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_load_module_info(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t   guint8 module_idx,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:995,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:995,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:997,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1005,1
    - Dst: fu_nordic_hid_cfg_channel_load_module_info
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 992
    functionDepth: 8
    functionLinenumber: 992
    functionLinenumberEnd: 1016
    functionName: fu_nordic_hid_cfg_channel_get_modinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_load_module_info
    - g_new0
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_modinfo(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1024,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1024,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1026,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1034,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1040,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1049,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1056,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1058,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1065,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1066,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1018
    functionDepth: 7
    functionLinenumber: 1018
    functionLinenumberEnd: 1070
    functionName: fu_nordic_hid_cfg_channel_dfu_fwinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_device_set_version
    - fu_memread_uint16_safe
    - g_new0
    - fu_memread_uint32_safe
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_dfu_fwinfo(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1075,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1075,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1077,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1085,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1072
    functionDepth: 7
    functionLinenumber: 1072
    functionLinenumberEnd: 1097
    functionName: fu_nordic_hid_cfg_channel_dfu_reboot
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - g_set_error_literal
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_dfu_reboot(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1104,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1104,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1109,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1119,1
    - Dst: fu_nordic_hid_cfg_channel_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1120,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1127,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1140,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1099
    functionDepth: 7
    functionLinenumber: 1099
    functionLinenumberEnd: 1157
    functionName: fu_nordic_hid_cfg_channel_dfu_sync_cb
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_set_error
    - g_new0
    - fu_memcpy_safe
    - g_set_error_literal
    - g_autoptr
    - fu_nordic_hid_cfg_channel_receive
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_dfu_sync_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1166,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1166,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1178,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1182,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1189,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1196,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - dfu_info
    - expecting_state
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - FuNordicCfgChannelDfuInfo*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1212
    functionName: fu_nordic_hid_cfg_channel_dfu_sync
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_memread_uint16_safe
    - g_new0
    - g_prefix_error
    - fu_memread_uint32_safe
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_dfu_sync(FuNordicHidCfgChannel
      *self,\n\t\t\t\t   FuNordicCfgChannelDfuInfo *dfu_info,\n\t\t\t\t   guint8 expecting_state,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1222,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1222,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1226,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1233,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1240,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1247,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1255,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - self
    - img_length
    - img_crc
    - offset
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - gsize
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1214
    functionDepth: 7
    functionLinenumber: 1214
    functionLinenumberEnd: 1264
    functionName: fu_nordic_hid_cfg_channel_dfu_start
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - g_set_error_literal
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_dfu_start(FuNordicHidCfgChannel
      *self,\n\t\t\t\t    gsize img_length,\n\t\t\t\t    guint32 img_crc,\n\t\t\t\t
      \   guint32 offset,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1269,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1272,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1273,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1274,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1281,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1282,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1288,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1289,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1297,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1302,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1316
    functionName: fu_nordic_hid_cfg_channel_generate_ids
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_strsafe
    - g_strcmp0
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_generate_ids(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1321,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1323,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1343,1
    - Dst: fu_nordic_hid_cfg_channel_get_hwid
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1354,1
    - Dst: fu_nordic_hid_cfg_channel_get_modinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1357,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1361,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1363,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1364,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_fwinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1368,1
    - Dst: fu_nordic_hid_cfg_channel_get_bl_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1373,1
    - Dst: fu_nordic_hid_cfg_channel_get_devinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1376,1
    - Dst: fu_nordic_hid_cfg_channel_generate_ids
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1380,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1384,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1318
    functionDepth: 9
    functionLinenumber: 1318
    functionLinenumberEnd: 1388
    functionName: fu_nordic_hid_cfg_channel_direct_discovery
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error
    - fu_nordic_hid_cfg_channel_generate_ids
    - fu_nordic_hid_cfg_channel_get_hwid
    - fu_nordic_hid_cfg_channel_dfu_fwinfo
    - fu_nordic_hid_cfg_channel_get_bl_name
    - FU_DEVICE
    - fu_nordic_hid_cfg_channel_get_modinfo
    - fu_device_get_physical_id
    - fu_device_add_flag
    - g_autoptr
    - fu_device_get_name
    - fu_nordic_hid_cfg_channel_get_devinfo
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_direct_discovery(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1393,1
    - Dst: fu_nordic_hid_cfg_channel_direct_discovery
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1395,1
    - Dst: fu_nordic_hid_cfg_channel_setup_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1390
    functionDepth: 10
    functionLinenumber: 1390
    functionLinenumberEnd: 1402
    functionName: fu_nordic_hid_cfg_channel_setup
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_setup_peers
    - fu_nordic_hid_cfg_channel_direct_discovery
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1407,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1408,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1409,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1410,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1411,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1404
    functionDepth: 3
    functionLinenumber: 1404
    functionLinenumberEnd: 1413
    functionName: fu_nordic_hid_cfg_channel_set_progress
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1419,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1420,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mod
    - idt
    - str
    argTypes:
    - FuNordicCfgChannelModule*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1415
    functionDepth: 2
    functionLinenumber: 1415
    functionLinenumberEnd: 1423
    functionName: fu_nordic_hid_cfg_channel_module_to_string
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_strdup_printf
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_module_to_string(FuNordicCfgChannelModule
      *mod, guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1428,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1430,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1431,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1432,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1433,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1436,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1437,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1438,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1439,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1443,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1444,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1445,1
    - Dst: fu_nordic_hid_cfg_channel_module_to_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1425
    functionDepth: 3
    functionLinenumber: 1425
    functionLinenumberEnd: 1448
    functionName: fu_nordic_hid_cfg_channel_to_string
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_strdup_printf
    - g_ptr_array_index
    - fu_nordic_hid_cfg_channel_module_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1459,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1459,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1461,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1465,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1465,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1471,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1474,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1482,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1490,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chk
    - is_last
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - FuChunk*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1450
    functionDepth: 7
    functionLinenumber: 1450
    functionLinenumberEnd: 1500
    functionName: fu_nordic_hid_cfg_channel_write_firmware_chunk
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_new0
    - fu_memcpy_safe
    - fu_nordic_hid_cfg_channel_dfu_sync
    - g_autoptr
    - fu_chunk_get_data
    - fu_nordic_hid_cfg_channel_cmd_receive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_write_firmware_chunk(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t       FuChunk *chk,\n\t\t\t\t\t       gboolean is_last,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1508,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1509,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1511,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1514,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1521,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1524,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1526,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1529,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1532,1
    - Dst: fu_nordic_hid_cfg_channel_write_firmware_chunk
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1533,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1534,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1534,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1502
    functionDepth: 8
    functionLinenumber: 1502
    functionLinenumberEnd: 1542
    functionName: fu_nordic_hid_cfg_channel_write_firmware_blob
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_nordic_hid_cfg_channel_write_firmware_chunk
    - g_new0
    - g_prefix_error
    - fu_chunk_get_idx
    - fu_progress_set_id
    - fu_nordic_hid_cfg_channel_dfu_sync
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_write_firmware_blob(FuNordicHidCfgChannel
      *self,\n\t\t\t\t\t      GInputStream *stream,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1551,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1557,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1558,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1558,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1562,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1563,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1568,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1572,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1577,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1578,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1579,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1580,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1583,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1586,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1588,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_start
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1590,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1592,1
    - Dst: fu_nordic_hid_cfg_channel_write_firmware_blob
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1595,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1597,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1600,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_reboot
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1603,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1544
    functionDepth: 9
    functionLinenumber: 1544
    functionLinenumberEnd: 1607
    functionName: fu_nordic_hid_cfg_channel_write_firmware
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_firmware_get_checksum
    - fu_firmware_get_stream
    - fu_progress_step_done
    - fu_nordic_hid_cfg_channel_dfu_start
    - fu_progress_get_child
    - fu_firmware_get_image_by_id
    - g_new0
    - fu_progress_add_step
    - g_strdup_printf
    - fu_nordic_hid_cfg_channel_write_firmware_blob
    - fu_progress_set_id
    - fu_nordic_hid_cfg_channel_dfu_sync
    - g_autoptr
    - fu_input_stream_size
    - fu_nordic_hid_cfg_channel_dfu_reboot
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1615,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1617,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1618,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1619,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1625,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1629,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1630,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1631,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1637,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1647
    functionName: fu_nordic_hid_cfg_channel_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_strcmp0
    - g_set_error_literal
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_cfg_channel_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \      const gchar *key,\n\t\t\t\t       const gchar *value,\n\t\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1652,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1653,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1654,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1655,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1656,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1658
    functionName: fu_nordic_hid_cfg_channel_finalize
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_ptr_array_unref
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1663,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidCfgChannelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1673
    functionName: fu_nordic_hid_cfg_channel_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_class_init(FuNordicHidCfgChannelClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1679,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1681,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1682,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1683,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1683,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1684,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1685,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1686,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1686,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1687,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidCfgChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1675
    functionDepth: 3
    functionLinenumber: 1675
    functionLinenumberEnd: 1688
    functionName: fu_nordic_hid_cfg_channel_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - g_ptr_array_new_with_free_func
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_init(FuNordicHidCfgChannel *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1693,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1695,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1695,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1697,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1697,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1698,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - id
    - parent
    argTypes:
    - guint8
    - FuNordicHidCfgChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1690
    functionDepth: 9
    functionLinenumber: 1690
    functionLinenumberEnd: 1703
    functionName: fu_nordic_hid_cfg_channel_new
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: FuNordicHidCfgChannel
    signature: 'FuNordicHidCfgChannel *

      fu_nordic_hid_cfg_channel_new(guint8 id, FuNordicHidCfgChannel *parent)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:27,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:29,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:31,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - error
    argTypes:
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: fu_nordic_hid_archive_parse_file_get_bootloader_name
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - json_object_has_member
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nordic_hid_archive_parse_file_get_bootloader_name(JsonObject *obj, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:44,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:45,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:46,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:47,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bootloader_name
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: fu_nordic_hid_archive_parse_file_image_create
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_nordic_hid_archive_parse_file_image_create(const gchar *bootloader_name,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:62,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:66,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:75,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:86,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:94,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - obj
    - manifest_ver
    - error
    argTypes:
    - JsonObject*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 99
    functionName: fu_nordic_hid_archive_parse_file_get_board_name
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - json_object_get_string_member
    - g_auto
    - g_strsplit
    - g_set_error_literal
    - g_strdup
    - json_object_has_member
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_nordic_hid_archive_parse_file_get_board_name(JsonObject
      *obj,\n\t\t\t\t\t\tgint64 manifest_ver,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:116,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:122,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:130,1
    - Dst: fu_strtoll
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:142,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:147,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:153,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:155,1
    - Dst: fu_strtoll
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:167,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - obj
    - flash_area_id
    - bootloader_name
    - files_cnt
    - error
    argTypes:
    - JsonObject*
    - guint*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 183
    functionName: fu_nordic_hid_archive_parse_file_get_flash_area_id_v1
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - json_object_get_string_member
    - g_prefix_error
    - g_set_error_literal
    - fu_strtoll
    - json_object_has_member
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_archive_parse_file_get_flash_area_id_v1(JsonObject
      *obj,\n\t\t\t\t\t\t      guint *flash_area_id,\n\t\t\t\t\t\t      const gchar
      *bootloader_name,\n\t\t\t\t\t\t      guint files_cnt,\n\t\t\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_archive_parse_file_get_flash_area_id_v1
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:201,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - obj
    - flash_area_id
    - manifest_ver
    - file_idx
    - bootloader_name
    - files_cnt
    - error
    argTypes:
    - JsonObject*
    - guint*
    - gint64
    - guint
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: fu_nordic_hid_archive_parse_file_get_flash_area_id
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_nordic_hid_archive_parse_file_get_flash_area_id_v1
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_archive_parse_file_get_flash_area_id(JsonObject
      *obj,\n\t\t\t\t\t\t   guint *flash_area_id,\n\t\t\t\t\t\t   gint64 manifest_ver,\n\t\t\t\t\t\t
      \  guint file_idx,\n\t\t\t\t\t\t   const gchar *bootloader_name,\n\t\t\t\t\t\t
      \  guint files_cnt,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:228,1
    - Dst: json_parser_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:228,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:231,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:234,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:239,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:240,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:241,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:243,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:246,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:247,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:248,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:255,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:258,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:266,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:273,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:275,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:282,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:284,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:300,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:302,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:303,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:309,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:310,1
    - Dst: fu_nordic_hid_archive_parse_file_get_bootloader_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:314,1
    - Dst: fu_nordic_hid_archive_parse_file_image_create
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:318,1
    - Dst: fu_nordic_hid_archive_parse_file_get_board_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:323,1
    - Dst: fu_nordic_hid_archive_parse_file_get_flash_area_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:327,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:338,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:340,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:347,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:348,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:350,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:351,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:352,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:355,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 361
    functionName: fu_nordic_hid_archive_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - json_parser_load_from_data
    - g_prefix_error
    - json_parser_get_root
    - fu_archive_lookup_by_fn
    - fu_nordic_hid_archive_parse_file_get_flash_area_id
    - json_array_get_object_element
    - json_parser_new
    - fu_firmware_add_image_full
    - fu_firmware_set_addr
    - json_object_get_array_member
    - json_object_get_string_member
    - fu_nordic_hid_archive_parse_file_get_board_name
    - fu_nordic_hid_archive_parse_file_get_bootloader_name
    - JSON_NODE_HOLDS_OBJECT
    - g_autoptr
    - json_node_get_object
    - fu_nordic_hid_archive_parse_file_image_create
    - fu_firmware_parse_bytes
    - fu_archive_new_stream
    - json_object_get_int_member
    - g_bytes_get_data
    - fu_firmware_set_id
    - g_bytes_get_size
    - g_strdup_printf
    - g_set_error_literal
    - fu_firmware_set_idx
    - json_object_has_member
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_archive_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:366,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidArchive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: fu_nordic_hid_archive_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_archive_init(FuNordicHidArchive *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidArchiveClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: fu_nordic_hid_archive_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_archive_class_init(FuNordicHidArchiveClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: fu_synaptics_vmm9_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_SYNAPTICS_VMM9_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:70,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:73,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:73,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:80,1
    - Dst: fu_struct_hid_get_command_parse
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:83,1
    - Dst: fu_struct_hid_get_command_get_payload
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:88,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:89,1
    - Dst: fu_struct_hid_payload_get_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:91,1
    - Dst: fu_synaptics_vmm9_rc_sts_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:93,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:93,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:94,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:99,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:100,1
    - Dst: fu_synaptics_vmm9_rc_sts_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:105,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:105,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:106,1
    - Dst: fu_struct_hid_payload_get_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:112,1
    - Dst: fu_struct_hid_payload_get_fifo
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:119,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 133
    functionName: fu_synaptics_vmm9_device_command_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - g_set_error
    - g_debug
    - FU_HID_DEVICE
    - fu_struct_hid_get_command_parse
    - fu_struct_hid_payload_get_ctrl
    - g_prefix_error
    - fu_synaptics_vmm9_rc_sts_to_string
    - fu_memcpy_safe
    - g_set_error_literal
    - fu_struct_hid_get_command_get_payload
    - g_autoptr
    - fu_struct_hid_payload_get_sts
    - fu_struct_hid_payload_get_fifo
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_command_cb(FuDevice *self, gpointer
      user_data, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:149,1
    - Dst: fu_struct_hid_payload_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:150,1
    - Dst: fu_struct_hid_set_command_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:151,1
    - Dst: fu_struct_hid_payload_set_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:154,1
    - Dst: fu_struct_hid_payload_set_offset
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:155,1
    - Dst: fu_struct_hid_payload_set_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:156,1
    - Dst: fu_struct_hid_payload_set_fifo
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:158,1
    - Dst: fu_struct_hid_set_command_set_size
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:163,1
    - Dst: fu_struct_hid_set_command_set_payload
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:164,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:166,1
    - Dst: fu_struct_hid_set_command_set_checksum
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:168,1
    - Dst: fu_memwrite_uint8_safe
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:172,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:175,1
    - Dst: fu_struct_hid_set_command_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:178,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:179,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:180,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:187,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:197,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:200,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:207,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:210,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 9
    argNames:
    - self
    - ctrl
    - offset
    - src_buf
    - src_bufsz
    - dst_buf
    - dst_bufsz
    - flags
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuSynapticsVmm9RcCtrl
    - guint32
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuSynapticsVmm9DeviceCommandFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 218
    functionName: fu_synaptics_vmm9_device_command
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_struct_hid_set_command_set_size
    - FU_HID_DEVICE
    - fu_struct_hid_payload_set_offset
    - g_prefix_error
    - fu_struct_hid_set_command_new
    - g_debug
    - g_propagate_prefixed_error
    - fu_struct_hid_payload_new
    - fu_struct_hid_payload_set_ctrl
    - fu_byte_array_set_size
    - fu_struct_hid_payload_set_length
    - g_steal_pointer
    - fu_struct_hid_payload_set_fifo
    - g_autoptr
    - fu_hid_device_set_report
    - fu_sum8
    - fu_struct_hid_set_command_set_checksum
    - FU_DEVICE
    - fu_struct_hid_set_command_set_payload
    - fu_struct_hid_set_command_to_string
    - fu_memwrite_uint8_safe
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_vmm9_device_command(FuSynapticsVmm9Device *self,\n\t\t\t\t
      FuSynapticsVmm9RcCtrl ctrl,\n\t\t\t\t guint32 offset,\n\t\t\t\t const guint8
      *src_buf,\n\t\t\t\t gsize src_bufsz,\n\t\t\t\t guint8 *dst_buf,\n\t\t\t\t gsize
      dst_bufsz,\n\t\t\t\t FuSynapticsVmm9DeviceCommandFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:228,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:231,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:241,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:242,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:245,1
    - Dst: fu_struct_synaptics_upd_get_id_parse
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:255,1
    - Dst: fu_struct_synaptics_upd_get_id_get_bid
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:258,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:259,1
    - Dst: fu_struct_synaptics_upd_get_id_get_cid
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:260,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:261,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:262,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:263,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:267,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:269,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:270,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:274,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:284,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:284,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:287,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:297,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:299,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:301,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:304,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:305,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:308,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:310,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:311,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 318
    functionName: fu_synaptics_vmm9_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_memread_uint32
    - fu_struct_synaptics_upd_get_id_get_bid
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_synaptics_vmm9_device_command
    - fu_device_add_flag
    - fu_device_remove_flag
    - fu_struct_synaptics_upd_get_id_parse
    - fu_struct_synaptics_upd_get_id_get_cid
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_device_set_version_raw
    - fu_device_set_serial
    - g_strdup_printf
    - fu_device_add_instance_u8
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:323,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:327,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:331,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:340,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:343,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:344,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 359
    functionName: fu_synaptics_vmm9_device_open
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_synaptics_vmm9_device_command
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:364,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:367,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:376,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 386
    functionName: fu_synaptics_vmm9_device_close
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_prefix_error
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_synaptics_vmm9_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_close(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:396,1
    - Dst: fu_synaptics_vmm9_firmware_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:397,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:400,1
    - Dst: fu_device_get_firmware_size_min
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:402,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:406,1
    - Dst: fu_synaptics_vmm9_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:412,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:412,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:413,1
    - Dst: fu_synaptics_vmm9_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:417,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:418,1
    - Dst: fu_synaptics_vmm9_firmware_get_customer_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:422,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:423,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:424,1
    - Dst: fu_synaptics_vmm9_firmware_get_customer_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:428,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 437
    functionName: fu_synaptics_vmm9_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_device_get_firmware_size_min
    - g_steal_pointer
    - fu_synaptics_vmm9_firmware_get_board_id
    - fu_firmware_parse_stream
    - FU_SYNAPTICS_VMM9_FIRMWARE
    - fu_synaptics_vmm9_firmware_new
    - g_autoptr
    - fu_synaptics_vmm9_firmware_get_customer_id
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_vmm9_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:446,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:447,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:447,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:449,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:452,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:456,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:458,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:459,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:460,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:465,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:467,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:468,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 478
    functionName: fu_synaptics_vmm9_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_synaptics_vmm9_device_command
    - g_prefix_error
    - fu_chunk_get_idx
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_vmm9_device_write_blocks(FuSynapticsVmm9Device
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:484,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 497
    functionName: fu_synaptics_vmm9_device_erase
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_synaptics_vmm9_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_erase(FuSynapticsVmm9Device *self,
      FuProgress *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:502,1
    - Dst: fu_device_get_firmware_size_min
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:503,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:505,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:507,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:509,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:512,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:513,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:515,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:516,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:518,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:520,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:521,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:525,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:527,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:528,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:533,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:537,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:537,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:538,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 499
    functionDepth: 6
    functionLinenumber: 499
    functionLinenumberEnd: 543
    functionName: fu_synaptics_vmm9_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_VMM9_DEVICE
    - g_prefix_error
    - fu_chunk_get_idx
    - fu_progress_set_steps
    - fu_chunk_get_data_out
    - fu_device_get_firmware_size_min
    - fu_synaptics_vmm9_device_command
    - g_bytes_new_take
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_steal_pointer
    - fu_chunk_array_mutable_new
    - g_autoptr
    - fu_firmware_new
    - fu_firmware_parse_bytes
    - fu_chunk_get_data_sz
    - g_malloc0
    - FU_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_vmm9_device_read_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:554,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:557,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:558,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:559,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:560,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:561,1
    - Dst: fu_synaptics_vmm9_device_erase
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:564,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:565,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:568,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:571,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:571,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:572,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:575,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:578,1
    - Dst: fu_synaptics_vmm9_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:585,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:587,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:589,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:592,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:593,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:596,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:605,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:608,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:611,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:612,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:613,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:618,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:620,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:620,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:621,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:622,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:623,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:624,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:629,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:640,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 648
    functionName: fu_synaptics_vmm9_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_synaptics_vmm9_device_write_blocks
    - g_prefix_error
    - fwupd_request_add_flag
    - fu_device_emit_request
    - fu_progress_get_child
    - g_debug
    - fu_synaptics_vmm9_device_command
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - fwupd_request_new
    - fu_device_sleep_full
    - fu_progress_step_done
    - fwupd_request_set_kind
    - fu_synaptics_vmm9_device_erase
    - g_autoptr
    - fu_chunk_array_new_from_stream
    - fu_device_has_private_flag
    - fwupd_request_set_id
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_vmm9_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:654,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:655,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:656,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:657,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: fu_synaptics_vmm9_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 668
    functionName: fu_synaptics_vmm9_device_convert_version
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_synaptics_vmm9_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:673,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:674,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:675,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:676,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:677,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:678,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:679,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:680,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 683
    functionName: fu_synaptics_vmm9_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_device_init(FuSynapticsVmm9Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 698
    functionName: fu_synaptics_vmm9_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_device_class_init(FuSynapticsVmm9DeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_synaptics_vmm9_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_plugin_init(FuSynapticsVmm9Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: fu_synaptics_vmm9_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_synaptics_vmm9_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_plugin_class_init(FuSynapticsVmm9PluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:31,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:32,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: fu_synaptics_vmm9_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_SYNAPTICS_VMM9_FIRMWARE
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_vmm9_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_synaptics_vmm9_validate_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: fu_synaptics_vmm9_firmware_validate
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_vmm9_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_vmm9_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    gsize offset,\n\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:52,1
    - Dst: fu_struct_synaptics_vmm9_parse_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:59,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:64,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:69,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:74,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:80,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:81,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:84,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: fu_synaptics_vmm9_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - g_strdup_printf
    - fu_firmware_set_version
    - FU_SYNAPTICS_VMM9_FIRMWARE
    - fu_input_stream_read_u8
    - g_autoptr
    - fu_struct_synaptics_vmm9_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_vmm9_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:102,1
    - Dst: FU_IS_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: fu_synaptics_vmm9_firmware_get_board_id
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_VMM9_FIRMWARE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_synaptics_vmm9_firmware_get_board_id(FuSynapticsVmm9Firmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:109,1
    - Dst: FU_IS_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: fu_synaptics_vmm9_firmware_get_customer_id
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_VMM9_FIRMWARE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_synaptics_vmm9_firmware_get_customer_id(FuSynapticsVmm9Firmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:116,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: fu_synaptics_vmm9_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_firmware_init(FuSynapticsVmm9Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: fu_synaptics_vmm9_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_vmm9_firmware_class_init(FuSynapticsVmm9FirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:131,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: fu_synaptics_vmm9_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_vmm9_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcFirehoseImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: fu_qc_firehose_impl_default_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_impl_default_init(FuQcFirehoseImplInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:26,1
    - Dst: FU_IS_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:26,1
    - Dst: FU_QC_FIREHOSE_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:28,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: fu_qc_firehose_impl_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - FU_IS_QC_FIREHOSE_IMPL
    - g_return_val_if_fail
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - g_set_error_literal
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_impl_read(FuQcFirehoseImpl *self, guint timeout_ms, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:48,1
    - Dst: FU_IS_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:48,1
    - Dst: FU_QC_FIREHOSE_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: fu_qc_firehose_impl_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - FU_IS_QC_FIREHOSE_IMPL
    - g_return_val_if_fail
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_write(FuQcFirehoseImpl *self,\n\t\t\t
      \ const guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  guint timeout_ms,\n\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:66,1
    - Dst: FU_IS_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:66,1
    - Dst: FU_QC_FIREHOSE_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: fu_qc_firehose_impl_has_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - FU_IS_QC_FIREHOSE_IMPL
    - g_return_val_if_fail
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_impl_has_function(FuQcFirehoseImpl *self, FuQcFirehoseFunctions
      func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:79,1
    - Dst: FU_IS_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:79,1
    - Dst: FU_QC_FIREHOSE_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: fu_qc_firehose_impl_add_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - FU_IS_QC_FIREHOSE_IMPL
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_impl_add_function(FuQcFirehoseImpl *self, FuQcFirehoseFunctions
      func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:98,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:102,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:103,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:103,1
    - Dst: fu_qc_firehose_impl_add_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:105,1
    - Dst: fu_qc_firehose_functions_from_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - xn
    - done
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: fu_qc_firehose_impl_read_xml_init_log
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_str_has_prefix
    - xb_node_get_attr
    - g_strsplit
    - fu_qc_firehose_functions_from_string
    - fu_qc_firehose_impl_add_function
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml_init_log(FuQcFirehoseImpl *self,\n\t\t\t\t
      \     XbNode *xn,\n\t\t\t\t      gboolean *done,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:121,1
    - Dst: xb_node_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:124,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:127,1
    - Dst: fu_qc_firehose_impl_read_xml_init_log
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - xn
    - done
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: fu_qc_firehose_impl_read_xml_init_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - xb_node_query
    - g_ptr_array_index
    - fu_qc_firehose_impl_read_xml_init_log
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml_init_cb(FuQcFirehoseImpl *self,\n\t\t\t\t
      \    XbNode *xn,\n\t\t\t\t     gboolean *done,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:143,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:146,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:147,1
    - Dst: fu_qc_firehose_impl_add_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:151,1
    - Dst: fu_qc_firehose_functions_from_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - xn
    - done
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: fu_qc_firehose_impl_read_xml_nop_log
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_functions_from_string
    - fu_qc_firehose_impl_add_function
    - g_str_has_prefix
    - xb_node_get_attr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml_nop_log(FuQcFirehoseImpl *self,\n\t\t\t\t
      \    XbNode *xn,\n\t\t\t\t     gboolean *done,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:165,1
    - Dst: xb_node_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:168,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:171,1
    - Dst: fu_qc_firehose_impl_read_xml_nop_log
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - xn
    - done
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: fu_qc_firehose_impl_read_xml_nop_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - xb_node_query
    - g_ptr_array_index
    - fu_qc_firehose_impl_read_xml_nop_log
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml_nop_cb(FuQcFirehoseImpl *self,\n\t\t\t\t
      \   XbNode *xn,\n\t\t\t\t    gboolean *done,\n\t\t\t\t    GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:203,1
    - Dst: fu_qc_firehose_impl_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:205,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:213,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:214,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:216,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:221,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:223,1
    - Dst: FuQcFirehoseImplHelper*::read_func
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:229,1
    - Dst: xb_node_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:232,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:235,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:236,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:236,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:241,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:246,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:250,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:253,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:263,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:263,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:264,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:267,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:270,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:276,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:280,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:285,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:286,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:290,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 5
    argNames:
    - self
    - done
    - timeout_ms
    - user_data
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gboolean*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 297
    functionName: fu_qc_firehose_impl_read_xml_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - FuQcFirehoseImplHelper*::read_func
    - g_set_error
    - g_debug
    - xb_silo_query_first
    - xb_node_get_attr
    - g_prefix_error
    - fu_qc_firehose_impl_read
    - xb_silo_new_from_xml
    - xb_node_query
    - g_set_error_literal
    - g_ptr_array_index
    - g_autoptr
    - xb_node_query_first
    - g_strndup
    - fwupd_error_convert
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml_cb(FuQcFirehoseImpl *self,\n\t\t\t\tgboolean
      *done,\n\t\t\t\tguint timeout_ms,\n\t\t\t\tgpointer user_data,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - timeout_ms
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 311
    functionName: fu_qc_firehose_impl_read_xml
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_retry
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_read_xml(FuQcFirehoseImpl *self,\n\t\t\t
      \    guint timeout_ms,\n\t\t\t     FuQcFirehoseImplHelper *helper,\n\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_qc_firehose_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - done
    - timeout_ms
    - user_data
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gboolean*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: fu_qc_firehose_impl_write_xml_xb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_write_xml_xb(FuQcFirehoseImpl *self,\n\t\t\t\t
      gboolean *done,\n\t\t\t\t guint timeout_ms,\n\t\t\t\t gpointer user_data,\n\t\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:334,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:337,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:344,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:346,1
    - Dst: xb_version_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:346,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:347,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:348,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:349,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:350,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:351,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:352,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:353,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:355,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - bn
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbBuilderNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 363
    functionName: fu_qc_firehose_impl_write_xml
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_string_new
    - xb_builder_node_export
    - g_string_replace
    - fu_version_compare
    - g_autoptr
    - fu_qc_firehose_impl_retry
    - xb_version_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_impl_write_xml(FuQcFirehoseImpl *self, XbBuilderNode
      *bn, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:373,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:374,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:377,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:378,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:396,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:398,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:401,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:402,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - storage
    - ignore_nak
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gchar*
    - gboolean
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 411
    functionName: fu_qc_firehose_impl_send_configure
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - g_steal_pointer
    - g_error_matches
    - g_strdup_printf
    - g_propagate_error
    - g_autoptr
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_send_configure(FuQcFirehoseImpl *self,\n\t\t\t\t
      \  const gchar *storage,\n\t\t\t\t   gboolean ignore_nak,\n\t\t\t\t   FuQcFirehoseImplHelper
      *helper,\n\t\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:422,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:423,1
    - Dst: fu_qc_firehose_impl_send_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:431,1
    - Dst: fu_qc_firehose_impl_send_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - self
    - storage
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gchar*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 440
    functionName: fu_qc_firehose_impl_configure
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_has_function
    - g_set_error_literal
    - fu_qc_firehose_impl_send_configure
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_configure(FuQcFirehoseImpl *self,\n\t\t\t
      \     const gchar *storage,\n\t\t\t      FuQcFirehoseImplHelper *helper,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:448,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:449,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:449,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:449,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:458,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:459,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:465,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:466,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:468,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:470,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - xn
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 473
    functionName: fu_qc_firehose_impl_erase
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - xb_node_get_attr
    - xb_builder_node_set_attr
    - fu_qc_firehose_impl_has_function
    - g_set_error_literal
    - xb_node_get_element
    - g_autoptr
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_erase(FuQcFirehoseImpl *self,\n\t\t\t
      \ XbNode *xn,\n\t\t\t  FuQcFirehoseImplHelper *helper,\n\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:482,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:483,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:483,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:485,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:488,1
    - Dst: fu_qc_firehose_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:491,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:492,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:493,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 504
    functionName: fu_qc_firehose_impl_write_blocks
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_qc_firehose_impl_write
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_write_blocks(FuQcFirehoseImpl *self,\n\t\t\t\t
      FuChunkArray *chunks,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:513,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:519,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:520,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: fu_qc_firehose_impl_convert_to_image_id
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_path_get_basename
    - g_set_error_literal
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_qc_firehose_impl_convert_to_image_id(const gchar *filename, GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:531,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:532,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:535,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:538,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:538,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:539,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:539,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:539,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:551,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:552,1
    - Dst: fu_qc_firehose_impl_convert_to_image_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:560,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:563,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:568,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:569,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:571,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:573,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:576,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:582,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:590,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:593,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:594,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:598,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:599,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:600,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:604,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:605,1
    - Dst: fu_qc_firehose_impl_write_blocks
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:606,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:608,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 5
    argNames:
    - self
    - xn
    - helper
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 622
    functionName: fu_qc_firehose_impl_program
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_set_attr
    - xb_builder_node_insert
    - g_debug
    - fu_qc_firehose_impl_write_xml
    - fu_bytes_pad
    - xb_node_get_element
    - fu_chunk_array_new_from_bytes
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fu_qc_firehose_impl_write_blocks
    - fu_qc_firehose_impl_has_function
    - g_autoptr
    - G_N_ELEMENTS
    - fu_qc_firehose_impl_convert_to_image_id
    - xb_builder_node_new
    - g_bytes_get_size
    - g_strdup_printf
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_program(FuQcFirehoseImpl *self,\n\t\t\t
      \   XbNode *xn,\n\t\t\t    FuQcFirehoseImplHelper *helper,\n\t\t\t    FuProgress
      *progress,\n\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:630,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:630,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:631,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:631,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:631,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:643,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:644,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:650,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:651,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:653,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:655,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - xn
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 658
    functionName: fu_qc_firehose_impl_apply_patch
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - xb_node_get_attr
    - xb_builder_node_set_attr
    - fu_qc_firehose_impl_has_function
    - g_set_error_literal
    - xb_node_get_element
    - g_autoptr
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_apply_patch(FuQcFirehoseImpl *self,\n\t\t\t\tXbNode
      *xn,\n\t\t\t\tFuQcFirehoseImplHelper *helper,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:666,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:666,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:667,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:670,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:671,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:673,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:674,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - part
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 679
    functionName: fu_qc_firehose_impl_set_bootable
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - g_prefix_error
    - g_strdup_printf
    - g_autoptr
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_set_bootable(FuQcFirehoseImpl *self,\n\t\t\t\t
      guint part,\n\t\t\t\t FuQcFirehoseImplHelper *helper,\n\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:685,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:685,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:689,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:690,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:692,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:693,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:694,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:696,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 703
    functionName: fu_qc_firehose_impl_reset
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - fu_qc_firehose_impl_read_xml
    - g_autoptr
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_impl_reset(FuQcFirehoseImpl *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:713,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:714,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:718,1
    - Dst: fu_qc_firehose_impl_erase
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:719,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - xns
    - helper
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GPtrArray*
    - FuQcFirehoseImplHelper*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 705
    functionDepth: 6
    functionLinenumber: 705
    functionLinenumberEnd: 726
    functionName: fu_qc_firehose_impl_erase_targets
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_qc_firehose_impl_erase
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_erase_targets(FuQcFirehoseImpl *self,\n\t\t\t\t
      \ GPtrArray *xns,\n\t\t\t\t  FuQcFirehoseImplHelper *helper,\n\t\t\t\t  FuProgress
      *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:736,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:737,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:741,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:742,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:743,1
    - Dst: fu_qc_firehose_impl_program
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:744,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:747,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:751,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - self
    - xns
    - helper
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GPtrArray*
    - FuQcFirehoseImplHelper*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 728
    functionDepth: 6
    functionLinenumber: 728
    functionLinenumberEnd: 758
    functionName: fu_qc_firehose_impl_program_targets
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - g_debug
    - fu_progress_step_done
    - xb_node_get_attr
    - g_ptr_array_index
    - fu_progress_set_id
    - g_strcmp0
    - fu_qc_firehose_impl_program
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_program_targets(FuQcFirehoseImpl *self,\n\t\t\t\t
      \   GPtrArray *xns,\n\t\t\t\t    FuQcFirehoseImplHelper *helper,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:768,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:769,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:773,1
    - Dst: fu_qc_firehose_impl_apply_patch
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:774,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - xns
    - helper
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GPtrArray*
    - FuQcFirehoseImplHelper*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 781
    functionName: fu_qc_firehose_impl_patch_targets
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_qc_firehose_impl_apply_patch
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_patch_targets(FuQcFirehoseImpl *self,\n\t\t\t\t
      \ GPtrArray *xns,\n\t\t\t\t  FuQcFirehoseImplHelper *helper,\n\t\t\t\t  FuProgress
      *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:787,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:788,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:791,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:792,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:793,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:794,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - self
    - xns
    argTypes:
    - FuQcFirehoseImpl*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 798
    functionName: fu_qc_firehose_impl_find_bootable
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_pattern_match_simple
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_qc_firehose_impl_find_bootable(FuQcFirehoseImpl *self, GPtrArray
      *xns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:803,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:803,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:806,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:807,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 810
    functionName: fu_qc_firehose_impl_send_nop
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - xb_builder_node_new
    - fu_qc_firehose_impl_read_xml
    - g_autoptr
    - xb_builder_node_insert_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_impl_send_nop(FuQcFirehoseImpl *self, FuQcFirehoseImplHelper
      *helper, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:818,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:821,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:822,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:823,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:823,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:826,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:830,1
    - Dst: fu_qc_firehose_impl_send_nop
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:832,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 812
    functionDepth: 6
    functionLinenumber: 812
    functionLinenumberEnd: 840
    functionName: fu_qc_firehose_impl_setup
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_qc_firehose_impl_send_nop
    - g_prefix_error
    - fu_qc_firehose_impl_has_function
    - g_propagate_error
    - fu_qc_firehose_impl_read_xml
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_impl_setup(FuQcFirehoseImpl *self, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:850,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:851,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:852,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:853,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:854,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:854,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:855,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:855,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:856,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:865,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:866,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:867,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:868,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:869,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:870,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:873,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:875,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:878,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:879,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:880,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:883,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:884,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:886,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:887,1
    - Dst: fu_qc_firehose_impl_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:892,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:893,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:896,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:899,1
    - Dst: fu_qc_firehose_impl_erase_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:901,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:904,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:906,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:910,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:913,1
    - Dst: fu_qc_firehose_impl_program_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:915,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:918,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:920,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:924,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:927,1
    - Dst: fu_qc_firehose_impl_patch_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:929,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:932,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:934,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:938,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:942,1
    - Dst: fu_qc_firehose_impl_find_bootable
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:944,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:946,1
    - Dst: fu_qc_firehose_impl_set_bootable
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:947,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:951,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 5
    argNames:
    - self
    - firmware
    - no_zlp
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuFirmware*
    - gboolean
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 959
    functionName: fu_qc_firehose_impl_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - xb_builder_new
    - g_prefix_error
    - xb_builder_import_source
    - xb_silo_query
    - fwupd_error_convert
    - fu_qc_firehose_impl_patch_targets
    - fu_qc_firehose_impl_find_bootable
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_qc_firehose_impl_set_bootable
    - fu_progress_step_done
    - fu_qc_firehose_impl_erase_targets
    - fu_qc_firehose_impl_has_function
    - xb_builder_source_new
    - g_autoptr
    - xb_builder_source_load_bytes
    - fu_qc_firehose_impl_program_targets
    - xb_builder_compile
    - fu_qc_firehose_impl_configure
    - fu_firmware_get_image_by_id_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_write_firmware(FuQcFirehoseImpl *self,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   gboolean no_zlp,\n\t\t\t\t   FuProgress
      *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - self
    - done
    - timeout_ms
    - user_data
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gboolean*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: fu_qc_firehose_retry_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_retry_cb(FuQcFirehoseImpl *self,\n\t\t\tgboolean
      *done,\n\t\t\tguint timeout_ms,\n\t\t\tgpointer user_data,\n\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:35,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:39,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:40,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: fu_qc_firehose_retry_true_func
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_false
    - fu_qc_firehose_impl_retry
    - g_assert_error
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_retry_true_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:48,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: fu_qc_firehose_retry_done_func
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - fu_qc_firehose_impl_retry
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_retry_done_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - done
    - timeout_ms
    - user_data
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gboolean*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: fu_qc_firehose_retry_error_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_retry_error_cb(FuQcFirehoseImpl *self,\n\t\t\t
      \     gboolean *done,\n\t\t\t      guint timeout_ms,\n\t\t\t      gpointer user_data,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:76,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:81,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:82,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:83,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: fu_qc_firehose_retry_timeout_func
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_false
    - g_assert_error
    - fu_qc_firehose_impl_retry
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_retry_timeout_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:91,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:96,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:97,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:98,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: fu_qc_firehose_retry_invalid_func
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_false
    - g_assert_error
    - fu_qc_firehose_impl_retry
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_retry_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:105,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:106,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:108,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:109,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:110,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:111,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:112,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: main
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_setenv
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcFirehosePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_qc_firehose_plugin_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_plugin_init(FuQcFirehosePlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:29,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_qc_firehose_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehosePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_qc_firehose_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_plugin_class_init(FuQcFirehosePluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:32,1
    - Dst: fu_qc_firehose_functions_to_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:33,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: fu_qc_firehose_raw_device_to_string
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_functions_to_string
    - FU_QC_FIREHOSE_RAW_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - impl
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_qc_firehose_raw_device_impl_has_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_RAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_raw_device_impl_has_function(FuQcFirehoseImpl
      *impl, FuQcFirehoseFunctions func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - impl
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_qc_firehose_raw_device_impl_add_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_RAW_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_impl_add_function(FuQcFirehoseImpl *impl,
      FuQcFirehoseFunctions func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:58,1
    - Dst: fu_qc_firehose_impl_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:60,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:60,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:61,1
    - Dst: fu_qc_firehose_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:65,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: fu_qc_firehose_raw_device_impl_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_firmware
    - FU_QC_FIREHOSE_IMPL
    - FU_QC_FIREHOSE_RAW_DEVICE
    - g_prefix_error
    - fu_qc_firehose_impl_setup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_raw_device_impl_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     FwupdInstallFlags flags,\n\t\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:75,1
    - Dst: fu_qc_firehose_impl_reset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:80,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:80,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: fu_qc_firehose_raw_device_attach
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_reset
    - fu_device_add_flag
    - FU_QC_FIREHOSE_IMPL
    - FU_QC_FIREHOSE_RAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_raw_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:93,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:96,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:96,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:98,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:105,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:113,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:116,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:118,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: fu_qc_firehose_raw_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_backend_parent_with_subsystem
    - FU_DEVICE_CLASS
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_probe
    - g_pattern_match_simple
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_raw_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:131,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:134,1
    - Dst: fu_qc_firehose_impl_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:136,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: fu_qc_firehose_raw_device_setup
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_setup
    - fu_device_has_flag
    - FU_QC_FIREHOSE_IMPL
    - FU_QC_FIREHOSE_RAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_raw_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:142,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:143,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:144,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:145,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:146,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: fu_qc_firehose_raw_device_set_progress
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:155,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:155,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:157,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:158,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:158,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:165,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:169,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:170,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 172
    functionName: fu_qc_firehose_raw_device_impl_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_RAW_DEVICE
    - fu_udev_device_read
    - g_steal_pointer
    - g_prefix_error
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_raw_device_impl_read(FuQcFirehoseImpl *impl, guint timeout_ms,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_RAW_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:181,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:182,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - impl
    - buf
    - bufsz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: fu_qc_firehose_raw_device_impl_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write
    - FU_QC_FIREHOSE_RAW_DEVICE
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_raw_device_impl_write(FuQcFirehoseImpl *impl,\n\t\t\t\t
      \    const guint8 *buf,\n\t\t\t\t     gsize bufsz,\n\t\t\t\t     guint timeout_ms,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcFirehoseImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: fu_qc_firehose_raw_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_impl_iface_init(FuQcFirehoseImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:202,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:203,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:204,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:205,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:206,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:207,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:208,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:209,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:210,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:211,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:212,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:213,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:214,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcFirehoseRawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: fu_qc_firehose_raw_device_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_init(FuQcFirehoseRawDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehoseRawDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: fu_qc_firehose_raw_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_raw_device_class_init(FuQcFirehoseRawDeviceClass
      *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:38,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:44,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:48,1
    - Dst: func
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:55,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:56,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:57,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - self
    - timeout_ms
    - func
    - user_data
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - FuQcFirehoseImplRetryFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 68
    functionName: fu_qc_firehose_impl_retry
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c
    functionUses: 6
    functionsReached:
    - g_set_error
    - func
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_impl_retry(FuQcFirehoseImpl *self,\n\t\t\t
      \ guint timeout_ms,\n\t\t\t  FuQcFirehoseImplRetryFunc func,\n\t\t\t  gpointer
      user_data,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:45,1
    - Dst: fu_qc_firehose_functions_to_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:50,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: fu_qc_firehose_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_functions_to_string
    - FU_QC_FIREHOSE_USB_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - impl
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fu_qc_firehose_usb_device_impl_has_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_usb_device_impl_has_function(FuQcFirehoseImpl
      *impl, FuQcFirehoseFunctions func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - impl
    - func
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseFunctions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: fu_qc_firehose_usb_device_impl_add_function
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_impl_add_function(FuQcFirehoseImpl *impl,
      FuQcFirehoseFunctions func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:72,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:72,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:74,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:75,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:83,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:87,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:88,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseUsbDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: fu_qc_firehose_usb_device_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - fu_dump_raw
    - FU_USB_DEVICE
    - g_autoptr
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_usb_device_read(FuQcFirehoseUsbDevice *self, guint timeout_ms,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:101,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:101,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:104,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:105,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:107,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:109,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:111,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:113,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:114,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:115,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:115,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:117,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:118,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:123,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:127,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:137,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:139,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:139,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - self
    - buf
    - sz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseUsbDevice*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 154
    functionName: fu_qc_firehose_usb_device_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - g_debug
    - g_byte_array_sized_new
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_usb_device_bulk_transfer
    - FU_DEVICE
    - g_autoptr
    - fu_chunk_get_data
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_usb_device_write(FuQcFirehoseUsbDevice *self,\n\t\t\t\tconst
      guint8 *buf,\n\t\t\t\tgsize sz,\n\t\t\t\tguint timeout_ms,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:160,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:161,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:162,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:163,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:165,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - endpoints
    argTypes:
    - FuQcFirehoseUsbDevice*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: fu_qc_firehose_usb_device_parse_eps
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_endpoint_get_maximum_packet_size
    - g_ptr_array_index
    - fu_usb_endpoint_get_direction
    - fu_usb_endpoint_get_address
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_parse_eps(FuQcFirehoseUsbDevice *self,
      GPtrArray *endpoints)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:175,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:179,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:182,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:186,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:190,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:191,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:192,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:193,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:195,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:195,1
    - Dst: fu_qc_firehose_usb_device_parse_eps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:198,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:199,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:199,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:200,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 8
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: fu_qc_firehose_usb_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_usb_interface_get_number
    - fu_usb_interface_get_subclass
    - FU_DEVICE_CLASS
    - fu_usb_interface_get_protocol
    - fu_usb_device_add_interface
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - fu_usb_interface_get_endpoints
    - g_autoptr
    - FU_USB_DEVICE
    - fu_qc_firehose_usb_device_parse_eps
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_usb_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:211,1
    - Dst: fu_qc_firehose_impl_reset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:216,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:216,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: fu_qc_firehose_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_QC_FIREHOSE_USB_DEVICE
    - FU_QC_FIREHOSE_IMPL
    - fu_qc_firehose_impl_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_usb_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:232,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:237,1
    - Dst: fu_qc_firehose_sahara_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:240,1
    - Dst: FU_QC_FIREHOSE_SAHARA_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:240,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:245,1
    - Dst: fu_qc_firehose_impl_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:248,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:248,1
    - Dst: fu_qc_firehose_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:250,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:251,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:253,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:254,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 261
    functionName: fu_qc_firehose_usb_device_impl_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_firmware
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_QC_FIREHOSE_IMPL
    - FU_QC_FIREHOSE_SAHARA_IMPL
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_progress_add_step
    - fu_qc_firehose_sahara_impl_write_firmware
    - fu_device_has_private_flag
    - fu_qc_firehose_impl_setup
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_usb_device_impl_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     FwupdInstallFlags flags,\n\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:266,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: fu_qc_firehose_usb_device_replace
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:273,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:274,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:275,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:276,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:277,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: fu_qc_firehose_usb_device_set_progress
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:286,1
    - Dst: fu_qc_firehose_usb_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: fu_qc_firehose_usb_device_sahara_impl_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_usb_device_read
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_qc_firehose_usb_device_sahara_impl_read(FuQcFirehoseSaharaImpl
      *impl,\n\t\t\t\t\t   guint timeout_ms,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:293,1
    - Dst: fu_qc_firehose_usb_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: fu_qc_firehose_usb_device_impl_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_usb_device_read
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_usb_device_impl_read(FuQcFirehoseImpl *impl, guint timeout_ms,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:304,1
    - Dst: fu_qc_firehose_usb_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - impl
    - buf
    - sz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: fu_qc_firehose_usb_device_sahara_impl_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_usb_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_usb_device_sahara_impl_write(FuQcFirehoseSaharaImpl
      *impl,\n\t\t\t\t\t    const guint8 *buf,\n\t\t\t\t\t    gsize sz,\n\t\t\t\t\t
      \   guint timeout_ms,\n\t\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:315,1
    - Dst: fu_qc_firehose_usb_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - impl
    - buf
    - sz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: fu_qc_firehose_usb_device_impl_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_usb_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_usb_device_impl_write(FuQcFirehoseImpl *impl,\n\t\t\t\t
      \    const guint8 *buf,\n\t\t\t\t     gsize sz,\n\t\t\t\t     guint timeout_ms,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcFirehoseImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: fu_qc_firehose_usb_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_impl_iface_init(FuQcFirehoseImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcFirehoseSaharaImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: fu_qc_firehose_usb_device_sahara_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_sahara_impl_iface_init(FuQcFirehoseSaharaImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:338,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:339,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:340,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:341,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:341,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:342,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:343,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:344,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:345,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:346,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:347,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcFirehoseUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: fu_qc_firehose_usb_device_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_init(FuQcFirehoseUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehoseUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: fu_qc_firehose_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_usb_device_class_init(FuQcFirehoseUsbDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcFirehoseSaharaImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_qc_firehose_sahara_impl_default_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_firehose_sahara_impl_default_init(FuQcFirehoseSaharaImplInterface
      *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:28,1
    - Dst: FU_IS_QC_FIREHOSE_SAHARA_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:28,1
    - Dst: FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: fu_qc_firehose_sahara_impl_read
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_QC_FIREHOSE_SAHARA_IMPL
    - FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_sahara_impl_read(FuQcFirehoseSaharaImpl *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:49,1
    - Dst: FU_IS_QC_FIREHOSE_SAHARA_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:49,1
    - Dst: FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:51,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: fu_qc_firehose_sahara_impl_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_QC_FIREHOSE_SAHARA_IMPL
    - FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_sahara_impl_write(FuQcFirehoseSaharaImpl *self,\n\t\t\t\t
      const guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:66,1
    - Dst: fu_qc_firehose_sahara_pkt_hello_resp_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:67,1
    - Dst: fu_qc_firehose_sahara_pkt_hello_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:70,1
    - Dst: fu_qc_firehose_sahara_pkt_hello_resp_set_mode
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:73,1
    - Dst: fu_qc_firehose_sahara_pkt_hello_get_mode
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:74,1
    - Dst: fu_qc_firehose_sahara_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: fu_qc_firehose_sahara_impl_hello
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_sahara_pkt_hello_resp_new
    - fu_qc_firehose_sahara_pkt_hello_get_mode
    - g_autoptr
    - fu_qc_firehose_sahara_pkt_hello_resp_set_mode
    - fu_qc_firehose_sahara_impl_write
    - fu_qc_firehose_sahara_pkt_hello_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_sahara_impl_hello(FuQcFirehoseSaharaImpl *self,
      GByteArray *buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:85,1
    - Dst: fu_qc_firehose_sahara_pkt_read_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:88,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:91,1
    - Dst: fu_qc_firehose_sahara_pkt_read_get_offset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:92,1
    - Dst: fu_qc_firehose_sahara_pkt_read_get_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:93,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:96,1
    - Dst: fu_qc_firehose_sahara_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:99,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:100,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - blob
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GByteArray*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: fu_qc_firehose_sahara_impl_read32
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_qc_firehose_sahara_pkt_read_parse
    - g_prefix_error
    - g_bytes_get_size
    - fu_qc_firehose_sahara_pkt_read_get_offset
    - g_autoptr
    - fu_qc_firehose_sahara_pkt_read_get_length
    - fu_qc_firehose_sahara_impl_write
    - fu_bytes_new_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_sahara_impl_read32(FuQcFirehoseSaharaImpl
      *self,\n\t\t\t\t  GByteArray *buf,\n\t\t\t\t  GBytes *blob,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:112,1
    - Dst: fu_qc_firehose_sahara_pkt_read64_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:115,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:118,1
    - Dst: fu_qc_firehose_sahara_pkt_read64_get_offset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:119,1
    - Dst: fu_qc_firehose_sahara_pkt_read64_get_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:120,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:123,1
    - Dst: fu_qc_firehose_sahara_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:126,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:127,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - blob
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GByteArray*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: fu_qc_firehose_sahara_impl_read64
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_qc_firehose_sahara_pkt_read64_parse
    - g_prefix_error
    - g_bytes_get_size
    - fu_qc_firehose_sahara_pkt_read64_get_offset
    - fu_qc_firehose_sahara_pkt_read64_get_length
    - g_autoptr
    - fu_bytes_new_offset
    - fu_qc_firehose_sahara_impl_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_sahara_impl_read64(FuQcFirehoseSaharaImpl
      *self,\n\t\t\t\t  GByteArray *buf,\n\t\t\t\t  GBytes *blob,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:137,1
    - Dst: fu_qc_firehose_sahara_pkt_done_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:137,1
    - Dst: fu_qc_firehose_sahara_pkt_end_of_image_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:140,1
    - Dst: fu_qc_firehose_sahara_pkt_end_of_image_get_status
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:145,1
    - Dst: fu_qc_firehose_sahara_status_to_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:150,1
    - Dst: fu_qc_firehose_sahara_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: fu_qc_firehose_sahara_impl_eoi
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_qc_firehose_sahara_pkt_end_of_image_get_status
    - fu_qc_firehose_sahara_pkt_end_of_image_parse
    - fu_qc_firehose_sahara_pkt_done_new
    - g_autoptr
    - fu_qc_firehose_sahara_status_to_string
    - fu_qc_firehose_sahara_impl_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_sahara_impl_eoi(FuQcFirehoseSaharaImpl *self,
      GByteArray *buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:160,1
    - Dst: fu_qc_firehose_sahara_pkt_done_resp_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:163,1
    - Dst: fu_qc_firehose_sahara_pkt_done_resp_get_status
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:168,1
    - Dst: fu_qc_firehose_sahara_status_to_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: fu_qc_firehose_sahara_impl_done
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_qc_firehose_sahara_pkt_done_resp_parse
    - g_autoptr
    - fu_qc_firehose_sahara_status_to_string
    - fu_qc_firehose_sahara_pkt_done_resp_get_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_sahara_impl_done(FuQcFirehoseSaharaImpl *self,
      GByteArray *buf, GError **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:187,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:189,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:197,1
    - Dst: fu_qc_firehose_sahara_impl_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:199,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:201,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:207,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:208,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:209,1
    - Dst: fu_qc_firehose_sahara_pkt_parse
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:213,1
    - Dst: fu_qc_firehose_sahara_pkt_get_hdr_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:216,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:217,1
    - Dst: fu_qc_firehose_sahara_pkt_get_command_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:225,1
    - Dst: fu_qc_firehose_sahara_impl_hello
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:228,1
    - Dst: fu_qc_firehose_sahara_impl_read32
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:232,1
    - Dst: fu_qc_firehose_sahara_impl_eoi
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:236,1
    - Dst: fu_qc_firehose_sahara_impl_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:240,1
    - Dst: fu_qc_firehose_sahara_impl_read64
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:245,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:249,1
    - Dst: fu_qc_firehose_sahara_command_id_to_string
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:254,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c:259,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 268
    functionName: fu_qc_firehose_sahara_impl_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_debug
    - g_str_has_prefix
    - fu_qc_firehose_sahara_impl_hello
    - g_prefix_error
    - fu_qc_firehose_sahara_command_id_to_string
    - fu_qc_firehose_sahara_impl_read32
    - fu_qc_firehose_sahara_impl_eoi
    - fu_firmware_get_image_by_id_bytes
    - fu_qc_firehose_sahara_impl_read
    - fu_qc_firehose_sahara_pkt_parse
    - g_set_error_literal
    - g_autoptr
    - fu_qc_firehose_sahara_pkt_get_command_id
    - fu_qc_firehose_sahara_impl_done
    - fu_qc_firehose_sahara_impl_read64
    - fu_strsafe
    - fu_qc_firehose_sahara_pkt_get_hdr_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_firehose_sahara_impl_write_firmware(FuQcFirehoseSaharaImpl
      *self,\n\t\t\t\t\t  FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_algoltek_usbcr_plugin_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_plugin_init(FuAlgoltekUsbcrPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:27,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_algoltek_usbcr_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_algoltek_usbcr_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_plugin_class_init(FuAlgoltekUsbcrPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:26,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_algoltek_usbcr_firmware_export
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: "void fu_algoltek_usbcr_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:36,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:45,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:51,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:57,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:68,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:70,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:74,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 92
    functionName: fu_algoltek_usbcr_firmware_parse
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - fu_input_stream_read_u16
    - fu_firmware_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:97,1
    - Dst: FU_IS_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: fu_algoltek_usbcr_firmware_get_boot_ver
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ALGOLTEK_USBCR_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_algoltek_usbcr_firmware_get_boot_ver(FuAlgoltekUsbcrFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16_hex
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:104,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: fu_algoltek_usbcr_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint16_hex
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_algoltek_usbcr_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:110,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: fu_algoltek_usbcr_firmware_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_firmware_init(FuAlgoltekUsbcrFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: fu_algoltek_usbcr_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_firmware_class_init(FuAlgoltekUsbcrFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:125,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: fu_algoltek_usbcr_firmware_new
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_algoltek_usbcr_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:31,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:31,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:34,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:35,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:35,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: fu_algoltek_usbcr_device_cmd_get_ver
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usbcr_device_cmd_get_ver(FuAlgoltekUsbcrDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:53,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:53,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:55,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:56,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_ramdest
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:57,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:58,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_val
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:59,1
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:61,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - self
    - addr
    - value
    - ram_dest
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: fu_algoltek_usbcr_device_write_reg
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_reg_cdb_new
    - fu_struct_ag_usbcr_reg_cdb_set_val
    - fu_block_device_sg_io_cmd_none
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_reg_cdb_set_addr
    - fu_struct_ag_usbcr_reg_cdb_set_subcmd
    - fu_struct_ag_usbcr_reg_cdb_set_cmd
    - g_autoptr
    - fu_struct_ag_usbcr_reg_cdb_set_ramdest
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_write_reg(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t   guint16 addr,\n\t\t\t\t   guint8 value,\n\t\t\t\t   guint8
      ram_dest,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:72,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:72,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:74,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:75,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_ramdest
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:76,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:77,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:79,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - ram_dest
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: fu_algoltek_usbcr_device_read_reg
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_reg_cdb_new
    - fu_block_device_sg_io_cmd_read
    - fu_struct_ag_usbcr_reg_cdb_set_addr
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_reg_cdb_set_subcmd
    - fu_struct_ag_usbcr_reg_cdb_set_cmd
    - g_autoptr
    - fu_struct_ag_usbcr_reg_cdb_set_ramdest
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_read_reg(FuAlgoltekUsbcrDevice *self,\n\t\t\t\t
      \ guint16 addr,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  guint16 bufsz,\n\t\t\t\t
      \ guint8 ram_dest,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:91,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:91,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:93,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:94,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:95,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:96,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:97,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spisig1
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:98,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spisig2
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:99,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spicmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:100,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:102,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - self
    - cmd
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: fu_algoltek_usbcr_device_send_spi_cmd
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_spi_cdb_new
    - fu_struct_ag_usbcr_spi_cdb_set_spisig2
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_struct_ag_usbcr_spi_cdb_set_spisig1
    - fu_struct_ag_usbcr_spi_cdb_set_tag
    - fu_block_device_sg_io_cmd_write
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - g_autoptr
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    - fu_struct_ag_usbcr_spi_cdb_set_spicmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_send_spi_cmd(FuAlgoltekUsbcrDevice
      *self, guint8 cmd, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:118,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:118,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:120,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:123,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:124,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:125,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:126,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:127,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:129,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - access_sz
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 135
    functionName: fu_algoltek_usbcr_device_do_write_spi
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_spi_cdb_new
    - fu_algoltek_usbcr_device_send_spi_cmd
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_block_device_sg_io_cmd_write
    - fu_struct_ag_usbcr_spi_cdb_set_tag
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - g_autoptr
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_do_write_spi(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t      guint16 addr,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t
      \     guint8 bufsz,\n\t\t\t\t      guint8 access_sz,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:144,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:144,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:146,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:147,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:148,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:149,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:150,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:152,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 158
    functionName: fu_algoltek_usbcr_device_do_read_spi
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_spi_cdb_new
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - fu_block_device_sg_io_cmd_read
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_struct_ag_usbcr_spi_cdb_set_tag
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - g_autoptr
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_do_read_spi(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t     guint16 addr,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     guint8
      bufsz,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:163,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: fu_algoltek_usbcr_device_verify_reg_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_ALGOLTEK_USBCR_DEVICE
    - g_set_error_literal
    - fu_algoltek_usbcr_device_read_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_verify_reg_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:180,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:190,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:191,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:199,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 217
    functionName: fu_algoltek_usbcr_device_check_status_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_ALGOLTEK_USBCR_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - fu_algoltek_usbcr_device_write_reg
    - fu_algoltek_usbcr_device_read_reg
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_check_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:231,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:232,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 249
    functionName: fu_algoltek_usbcr_device_command_wren
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_command_wren(FuAlgoltekUsbcrDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:266,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:267,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - en
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 251
    functionDepth: 6
    functionLinenumber: 251
    functionLinenumberEnd: 284
    functionName: fu_algoltek_usbcr_device_command_wrsr
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_command_wrsr(FuAlgoltekUsbcrDevice
      *self, gboolean en, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:300,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:301,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 318
    functionName: fu_algoltek_usbcr_device_command_rdsr
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_command_rdsr(FuAlgoltekUsbcrDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:325,1
    - Dst: GPOINTER_TO_INT
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:327,1
    - Dst: fu_algoltek_usbcr_device_command_wren
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:330,1
    - Dst: fu_algoltek_usbcr_device_command_wrsr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:334,1
    - Dst: fu_algoltek_usbcr_device_command_rdsr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:338,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:342,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:351,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 320
    functionDepth: 7
    functionLinenumber: 320
    functionLinenumberEnd: 370
    functionName: fu_algoltek_usbcr_device_spi_flash_block_mode_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_algoltek_usbcr_device_command_wrsr
    - FU_ALGOLTEK_USBCR_DEVICE
    - fu_algoltek_usbcr_device_command_rdsr
    - GPOINTER_TO_INT
    - fu_algoltek_usbcr_device_command_wren
    - fu_algoltek_usbcr_device_read_reg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_spi_flash_block_mode_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:377,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:377,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:379,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:380,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_val
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:381,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_val2
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:382,1
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:384,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 5
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: fu_algoltek_usbcr_device_set_clear_soft_reset_flag
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_none
    - fu_struct_ag_usbcr_reset_cdb_set_subcmd
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_reset_cdb_set_val2
    - g_autoptr
    - fu_struct_ag_usbcr_reset_cdb_set_cmd
    - fu_struct_ag_usbcr_reset_cdb_new
    - fu_struct_ag_usbcr_reset_cdb_set_val
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_set_clear_soft_reset_flag(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t\t\t   guint8 val,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:390,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:390,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:392,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:393,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_val
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:394,1
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:396,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: fu_algoltek_usbcr_device_reset_chip
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_none
    - fu_struct_ag_usbcr_reset_cdb_set_subcmd
    - FU_BLOCK_DEVICE
    - g_autoptr
    - fu_struct_ag_usbcr_reset_cdb_set_cmd
    - fu_struct_ag_usbcr_reset_cdb_new
    - fu_struct_ag_usbcr_reset_cdb_set_val
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_reset_chip(FuAlgoltekUsbcrDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:404,1
    - Dst: fu_algoltek_usbcr_device_cmd_get_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:406,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:408,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:411,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:418,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:419,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 399
    functionDepth: 6
    functionLinenumber: 399
    functionLinenumberEnd: 428
    functionName: fu_algoltek_usbcr_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_device_set_version_bootloader_raw
    - g_prefix_error
    - FU_DEVICE
    - fu_algoltek_usbcr_device_cmd_get_ver
    - g_autoptr
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_ensure_version(FuAlgoltekUsbcrDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:434,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:436,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:437,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:441,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:446,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 447
    functionName: fu_algoltek_usbcr_device_probe
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_udev_device_set_physical_id
    - FU_DEVICE_CLASS
    - fu_device_get_vid
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:452,1
    - Dst: fu_algoltek_usbcr_device_ensure_version
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:454,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:456,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 7
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: fu_algoltek_usbcr_device_setup
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_ALGOLTEK_USBCR_DEVICE
    - fu_device_get_vid
    - fu_algoltek_usbcr_device_ensure_version
    - fu_device_build_vendor_id_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:469,1
    - Dst: fu_algoltek_usbcr_firmware_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:469,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:472,1
    - Dst: fu_algoltek_usbcr_firmware_get_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:474,1
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:474,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:475,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:476,1
    - Dst: fu_algoltek_usbcr_firmware_get_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:481,1
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:481,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:482,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 488
    functionName: fu_algoltek_usbcr_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_algoltek_usbcr_firmware_new
    - g_steal_pointer
    - fu_device_get_version_bootloader_raw
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_algoltek_usbcr_firmware_get_boot_ver
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_algoltek_usbcr_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_algoltek_usbcr_device_do_write_spi
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:495,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:496,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:497,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:498,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:499,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 512
    functionName: fu_algoltek_usbcr_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - fu_chunk_get_address
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_algoltek_usbcr_device_do_write_spi
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_write_chunk(FuAlgoltekUsbcrDevice
      *self, FuChunk *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:521,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:524,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:525,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:527,1
    - Dst: fu_algoltek_usbcr_device_write_chunk
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:530,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 514
    functionDepth: 8
    functionLinenumber: 514
    functionLinenumberEnd: 537
    functionName: fu_algoltek_usbcr_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_algoltek_usbcr_device_write_chunk
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_write_chunks(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:546,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:547,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:547,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:549,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:551,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:553,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:556,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:556,1
    - Dst: fu_algoltek_usbcr_device_do_read_spi
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:557,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:558,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:560,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:563,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:563,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:564,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:567,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:569,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 539
    functionDepth: 6
    functionLinenumber: 539
    functionLinenumberEnd: 578
    functionName: fu_algoltek_usbcr_device_verify_chunks
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_malloc0
    - fu_algoltek_usbcr_device_do_read_spi
    - fu_progress_set_id
    - fu_memcmp_safe
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_verify_chunks(FuAlgoltekUsbcrDevice
      *self,\n\t\t\t\t       FuChunkArray *chunks,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:588,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:589,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:592,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:593,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:594,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:595,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:597,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:601,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:605,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:607,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:609,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:612,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:615,1
    - Dst: fu_algoltek_usbcr_device_write_chunks
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:624,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:626,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:629,1
    - Dst: fu_algoltek_usbcr_device_verify_chunks
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:632,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:634,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:637,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:638,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:638,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:642,1
    - Dst: fu_algoltek_usbcr_device_set_clear_soft_reset_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:647,1
    - Dst: fu_algoltek_usbcr_device_reset_chip
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:649,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 580
    functionDepth: 9
    functionLinenumber: 580
    functionLinenumberEnd: 654
    functionName: fu_algoltek_usbcr_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_device_retry_full
    - fu_progress_step_done
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_algoltek_usbcr_device_set_clear_soft_reset_flag
    - FU_ALGOLTEK_USBCR_DEVICE
    - GINT_TO_POINTER
    - fu_algoltek_usbcr_device_send_spi_cmd
    - fu_progress_add_step
    - fu_algoltek_usbcr_device_reset_chip
    - fu_algoltek_usbcr_device_write_chunks
    - FU_DEVICE
    - fu_progress_set_id
    - fu_algoltek_usbcr_device_verify_chunks
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:659,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:660,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:661,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 666
    functionName: fu_algoltek_usbcr_device_set_progress
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:671,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: fu_algoltek_usbcr_device_convert_version
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_algoltek_usbcr_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:677,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:678,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:679,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:680,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:681,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:682,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:683,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:683,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:684,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 6
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: fu_algoltek_usbcr_device_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_device_init(FuAlgoltekUsbcrDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 697
    functionName: fu_algoltek_usbcr_device_class_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_device_class_init(FuAlgoltekUsbcrDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_cros_ec_plugin_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_plugin_init(FuCrosEcPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_cros_ec_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_cros_ec_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_plugin_class_init(FuCrosEcPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:27,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - writeable_offset
    - error
    argTypes:
    - FuCrosEcFirmware*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: fu_cros_ec_firmware_pick_sections
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_firmware_pick_sections(FuCrosEcFirmware *self,
      guint32 writeable_offset, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:53,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:53,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:56,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:62,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: fu_cros_ec_firmware_get_needed_sections
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_new
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_cros_ec_firmware_get_needed_sections(FuCrosEcFirmware *self, GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:87,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:90,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:95,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:102,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:104,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:108,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:110,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:113,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:115,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:118,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:121,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:122,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:124,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:128,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:130,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:133,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:134,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:135,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:136,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:138,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:147,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:148,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:150,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 161
    functionName: fu_cros_ec_firmware_ensure_version
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_get_image_by_id
    - g_prefix_error
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_firmware_set_version
    - fu_cros_ec_version_parse
    - FU_FIRMWARE
    - fu_firmware_get_addr
    - g_ptr_array_index
    - g_set_error_literal
    - fu_firmware_get_idx
    - g_autoptr
    - g_strcmp0
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_firmware_ensure_version(FuCrosEcFirmware *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:168,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:169,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:171,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:172,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: fu_cros_ec_firmware_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_firmware_init(FuCrosEcFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:180,1
    - Dst: g_ptr_array_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:181,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: fu_cros_ec_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_FIRMWARE
    - g_ptr_array_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: fu_cros_ec_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_firmware_class_init(FuCrosEcFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: fu_cros_ec_firmware_new
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_cros_ec_firmware_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_get_configuration_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:61,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:64,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:64,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:67,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:68,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:69,1
    - Dst: g_strlcpy
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:72,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 55
    functionDepth: 9
    functionLinenumber: 55
    functionLinenumberEnd: 84
    functionName: fu_cros_ec_usb_device_get_configuration
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_usb_device_get_string_descriptor
    - fu_usb_device_get_configuration_index
    - FU_DEVICE
    - g_set_error_literal
    - FU_USB_DEVICE
    - fu_device_get_id
    - g_strlcpy
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_get_configuration(FuCrosEcUsbDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:90,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:93,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:97,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:98,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:99,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:102,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:102,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:105,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:106,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:107,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:108,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: fu_cros_ec_usb_device_find_interface
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_interface_get_subclass
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - FU_CROS_EC_USB_DEVICE
    - g_ptr_array_index
    - fu_usb_interface_get_endpoints
    - g_set_error_literal
    - g_autoptr
    - fu_usb_endpoint_get_address
    - fu_usb_device_get_interfaces
    - fu_usb_endpoint_get_maximum_packet_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_find_interface(FuUsbDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:119,1
    - Dst: fu_cros_ec_usb_device_find_interface
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:122,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:123,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:126,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 9
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: fu_cros_ec_usb_device_probe
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_add_interface
    - g_prefix_error
    - FU_CROS_EC_USB_DEVICE
    - FU_USB_DEVICE
    - fu_cros_ec_usb_device_find_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_probe(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:158,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:162,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:172,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:185,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:185,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:193,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:197,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 8
    argNames:
    - self
    - outbuf
    - outlen
    - inbuf
    - inlen
    - allow_less
    - rxed_count
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gboolean
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 211
    functionName: fu_cros_ec_usb_device_do_xfer
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memdup_safe
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_do_xfer(FuCrosEcUsbDevice *self,\n\t\t\t
      \     const guint8 *outbuf,\n\t\t\t      gsize outlen,\n\t\t\t      guint8 *inbuf,\n\t\t\t
      \     gsize inlen,\n\t\t\t      gboolean allow_less,\n\t\t\t      gsize *rxed_count,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:216,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:218,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:223,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:223,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:231,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 242
    functionName: fu_cros_ec_usb_device_flush
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_malloc0
    - FU_CROS_EC_USB_DEVICE
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_flush(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: fu_cros_ec_usb_device_recovery
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_recovery(FuCrosEcUsbDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:279,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:280,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:281,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_cmd_block_base
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:282,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:285,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:287,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - self
    - subcommand
    - cmd_body
    - body_size
    - resp
    - resp_size
    - allow_less
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - guint16
    - guint8*
    - gsize
    - guint8*
    - gsize*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 296
    functionName: fu_cros_ec_usb_device_ext_cmd
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_struct_cros_ec_update_frame_header_set_cmd_block_base
    - g_autoptr
    - g_byte_array_append
    - fu_cros_ec_usb_device_do_xfer
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - fu_struct_cros_ec_update_frame_header_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_ext_cmd(FuCrosEcUsbDevice *self,\n\t\t\t
      \     guint16 subcommand,\n\t\t\t      guint8 *cmd_body,\n\t\t\t      gsize
      body_size,\n\t\t\t      guint8 *resp,\n\t\t\t      gsize *resp_size,\n\t\t\t
      \     gboolean allow_less,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:304,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:305,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:307,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 330
    functionName: fu_cros_ec_usb_device_start_request_cb
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_CROS_EC_USB_DEVICE
    - g_autoptr
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - fu_cros_ec_usb_device_do_xfer
    - fu_struct_cros_ec_update_frame_header_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_start_request_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:335,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:338,1
    - Dst: fu_struct_cros_ec_first_response_pdu_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:342,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:345,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:348,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:352,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:357,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_protocol_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:361,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:363,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_return_value
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:371,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:373,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_offset
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:381,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:382,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:383,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_maximum_pdu_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:384,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_flash_protection
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:385,1
    - Dst: fu_cros_ec_usb_device_get_configuration
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:388,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:390,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:391,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:394,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:396,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:402,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:405,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:413,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:416,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:417,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:424,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:425,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:427,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:429,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:435,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:436,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:437,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:439,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:440,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:441,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:445,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:446,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 332
    functionDepth: 10
    functionLinenumber: 332
    functionLinenumberEnd: 457
    functionName: fu_cros_ec_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_auto
    - g_new0
    - fu_struct_cros_ec_first_response_pdu_get_version
    - g_prefix_error
    - fu_cros_ec_version_parse
    - g_set_error
    - fu_struct_cros_ec_first_response_pdu_get_flash_protection
    - fu_device_set_version
    - g_propagate_prefixed_error
    - g_strndup
    - FU_DEVICE_CLASS
    - fu_cros_ec_usb_device_get_configuration
    - fu_struct_cros_ec_first_response_pdu_get_maximum_pdu_size
    - fu_device_add_flag
    - g_strv_length
    - fu_device_remove_flag
    - g_free
    - fu_struct_cros_ec_first_response_pdu_get_protocol_version
    - g_steal_pointer
    - fu_struct_cros_ec_first_response_pdu_get_return_value
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_struct_cros_ec_first_response_pdu_get_offset
    - fu_cros_ec_usb_device_recovery
    - g_strsplit
    - fu_device_build_instance_id
    - FU_CROS_EC_USB_DEVICE
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_struct_cros_ec_first_response_pdu_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:462,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:463,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 468
    functionName: fu_cros_ec_usb_device_reload
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_flag
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_reload(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:473,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:477,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:479,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:482,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:484,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_cmd_block_base
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:485,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:487,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:488,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:496,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:498,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:499,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:500,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:505,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:508,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:508,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:509,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:513,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:514,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:516,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:518,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:519,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:526,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:527,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:530,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:531,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:534,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:538,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:546,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:547,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:549,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:550,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:554,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 567
    functionName: fu_cros_ec_usb_device_transfer_block_cb
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_progress_set_steps
    - fu_struct_cros_ec_update_frame_header_new
    - g_set_error
    - g_debug
    - fu_struct_cros_ec_update_frame_header_set_cmd_block_base
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - fu_progress_step_done
    - g_autoptr
    - fu_cros_ec_usb_device_recovery
    - fu_chunk_get_data_sz
    - fu_progress_reset
    - FU_CROS_EC_USB_DEVICE
    - g_set_error_literal
    - fu_chunk_array_new
    - fu_cros_ec_usb_device_do_xfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_transfer_block_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:579,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:581,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:583,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:585,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:589,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:591,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:604,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:605,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:609,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:610,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:611,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:614,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:615,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:617,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:622,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - self
    - firmware
    - section
    - progress
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - FuFirmware*
    - FuCrosEcFirmwareSection*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 630
    functionName: fu_cros_ec_usb_device_transfer_section
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_step_done
    - g_prefix_error
    - fu_firmware_get_image_by_idx_bytes
    - g_ptr_array_index
    - fu_progress_set_steps
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_new
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_transfer_section(FuCrosEcUsbDevice
      *self,\n\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t       FuCrosEcFirmwareSection
      *section,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:636,1
    - Dst: fu_struct_cros_ec_update_done_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:636,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:637,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:640,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 650
    functionName: fu_cros_ec_usb_device_send_done
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_cros_ec_update_done_new
    - g_debug
    - fu_cros_ec_usb_device_do_xfer
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_send_done(FuCrosEcUsbDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cros_ec_usb_device_send_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:662,1
    - Dst: fu_cros_ec_usb_device_ext_cmd
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:664,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - self
    - subcommand
    - cmd_body
    - body_size
    - resp
    - resp_size
    - allow_less
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - guint16
    - guint8*
    - gsize
    - guint8*
    - gsize*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 652
    functionDepth: 5
    functionLinenumber: 652
    functionLinenumberEnd: 680
    functionName: fu_cros_ec_usb_device_send_subcommand
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_cros_ec_usb_device_ext_cmd
    - fu_cros_ec_usb_device_send_done
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_send_subcommand(FuCrosEcUsbDevice *self,\n\t\t\t\t
      \     guint16 subcommand,\n\t\t\t\t      guint8 *cmd_body,\n\t\t\t\t      gsize
      body_size,\n\t\t\t\t      guint8 *resp,\n\t\t\t\t      gsize *resp_size,\n\t\t\t\t
      \     gboolean allow_less,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:690,1
    - Dst: fu_cros_ec_usb_device_send_subcommand
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:692,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 682
    functionDepth: 6
    functionLinenumber: 682
    functionLinenumberEnd: 703
    functionName: fu_cros_ec_usb_device_reset_to_ro
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_send_subcommand
    - g_debug
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_reset_to_ro(FuCrosEcUsbDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:713,1
    - Dst: fu_cros_ec_usb_device_send_subcommand
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:715,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:724,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 705
    functionDepth: 7
    functionLinenumber: 705
    functionLinenumberEnd: 734
    functionName: fu_cros_ec_usb_device_jump_to_rw
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_send_subcommand
    - g_debug
    - fu_cros_ec_usb_device_reset_to_ro
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_jump_to_rw(FuCrosEcUsbDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cros_ec_usb_device_send_subcommand
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 736
    functionDepth: 6
    functionLinenumber: 736
    functionLinenumberEnd: 757
    functionName: fu_cros_ec_usb_device_stay_in_ro
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_send_subcommand
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_stay_in_ro(FuCrosEcUsbDevice *self,
      GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:766,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:767,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:768,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:770,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:773,1
    - Dst: fu_struct_cros_ec_first_response_pdu_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:774,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:776,1
    - Dst: fu_cros_ec_usb_device_stay_in_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:777,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:778,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:783,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:784,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:789,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:794,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:799,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:815,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:816,1
    - Dst: fu_cros_ec_firmware_get_needed_sections
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:820,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:825,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:826,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:827,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:830,1
    - Dst: fu_cros_ec_usb_device_transfer_section
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:832,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:835,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:837,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:838,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:841,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:843,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:846,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:846,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:851,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:853,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:856,1
    - Dst: fu_cros_ec_usb_device_send_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:860,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:863,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:865,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:868,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:869,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:870,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 759
    functionDepth: 7
    functionLinenumber: 759
    functionLinenumberEnd: 874
    functionName: fu_cros_ec_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_FIRMWARE
    - fu_device_retry
    - fu_progress_set_status
    - fu_device_remove_private_flag
    - fu_cros_ec_usb_device_transfer_section
    - g_prefix_error
    - fu_cros_ec_firmware_get_needed_sections
    - g_propagate_error
    - fu_progress_set_steps
    - fu_device_set_version
    - fu_progress_get_child
    - g_debug
    - fu_device_add_private_flag
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_progress_finished
    - fu_progress_step_done
    - g_steal_pointer
    - g_error_matches
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_cros_ec_usb_device_send_done
    - fu_cros_ec_usb_device_recovery
    - fu_device_has_private_flag
    - FU_CROS_EC_USB_DEVICE
    - fu_cros_ec_usb_device_stay_in_ro
    - fu_struct_cros_ec_first_response_pdu_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:883,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:884,1
    - Dst: fu_cros_ec_firmware_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:884,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:886,1
    - Dst: fu_cros_ec_firmware_ensure_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:888,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:888,1
    - Dst: fu_cros_ec_firmware_pick_sections
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:892,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:892,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:895,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 876
    functionDepth: 5
    functionLinenumber: 876
    functionLinenumberEnd: 899
    functionName: fu_cros_ec_usb_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_FIRMWARE
    - g_steal_pointer
    - g_prefix_error
    - fu_cros_ec_firmware_new
    - fu_firmware_parse_stream
    - FU_CROS_EC_USB_DEVICE
    - g_autoptr
    - fu_cros_ec_firmware_pick_sections
    - fu_cros_ec_firmware_ensure_version
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_cros_ec_usb_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FuFirmwareParseFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:904,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:907,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:915,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:916,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:920,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:921,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:922,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:922,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:924,1
    - Dst: fu_cros_ec_usb_device_jump_to_rw
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:926,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 901
    functionDepth: 8
    functionLinenumber: 901
    functionLinenumberEnd: 932
    functionName: fu_cros_ec_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_reset_to_ro
    - fu_device_add_private_flag
    - fu_device_remove_private_flag
    - fu_cros_ec_usb_device_jump_to_rw
    - fu_device_has_private_flag
    - FU_CROS_EC_USB_DEVICE
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:937,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:939,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:940,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:945,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:946,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:953,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:954,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:955,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 934
    functionDepth: 7
    functionLinenumber: 934
    functionLinenumberEnd: 961
    functionName: fu_cros_ec_usb_device_detach
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_reset_to_ro
    - g_debug
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    - FU_CROS_EC_USB_DEVICE
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:966,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:967,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:968,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:969,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:970,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:971,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:972,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 974
    functionName: fu_cros_ec_usb_device_replace
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:982,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:983,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:984,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 989
    functionName: fu_cros_ec_usb_device_cleanup
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_private_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cros_ec_usb_device_cleanup(FuDevice *device,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      FwupdInstallFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:994,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:994,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:995,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:995,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:996,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:996,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:997,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:998,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:998,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:999,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:999,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1000,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1000,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1001,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1001,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1002,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1003,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1003,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1004,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1004,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1005,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1006,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1006,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1008,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 991
    functionDepth: 6
    functionLinenumber: 991
    functionLinenumberEnd: 1009
    functionName: fu_cros_ec_usb_device_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_acquiesce_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_init(FuCrosEcUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1014,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1015,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1016,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1017,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1018,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: fu_cros_ec_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_USB_DEVICE
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1025,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1026,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1027,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1028,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1029,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1031
    functionName: fu_cros_ec_usb_device_set_progress
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1036,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1037,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    functionName: fu_cros_ec_usb_device_finalize
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_USB_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1044,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1058
    functionName: fu_cros_ec_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_usb_device_class_init(FuCrosEcUsbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:15,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:16,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:17,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - FuCrosEcVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: fu_cros_ec_version_free
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_cros_ec_version_free(FuCrosEcVersion *version)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:25,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:26,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:28,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:28,1
    - Dst: strlen
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:31,1
    - Dst: g_strrstr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:41,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:49,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:50,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:51,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:58,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:59,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:60,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:69,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:72,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:78,1
    - Dst: g_strrstr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:81,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - version_raw
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 83
    functionName: fu_cros_ec_version_parse
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_auto
    - strlen
    - g_steal_pointer
    - g_new0
    - g_set_error_literal
    - g_strrstr
    - g_strv_length
    - g_strdup
    - g_autoptr
    - fu_strsafe
    - g_strsplit_set
    linkageType: ''
    returnType: FuCrosEcVersion
    signature: 'FuCrosEcVersion *

      fu_cros_ec_version_parse(const gchar *version_raw, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1332
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:34,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: fu_logitech_hidpp_bootloader_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_logitech_hidpp_bootloader_request_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - g_new0
    linkageType: ''
    returnType: FuLogitechHidppBootloaderRequest
    signature: 'FuLogitechHidppBootloaderRequest *

      fu_logitech_hidpp_bootloader_request_new(void)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:55,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:58,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:59,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:62,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:67,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:74,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:75,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:77,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:84,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:89,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:139,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:151,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:151,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_hi
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:156,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:157,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_lo
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:162,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:163,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:169,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:175,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:178,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:184,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 185
    functionName: fu_logitech_hidpp_bootloader_parse_requests
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - fu_logitech_hidpp_bootloader_request_new
    - g_debug
    - strlen
    - g_steal_pointer
    - fu_logitech_hidpp_buffer_read_uint8
    - fu_logitech_hidpp_bootloader_get_addr_hi
    - g_set_error_literal
    - fu_firmware_strparse_uint16_safe
    - g_autoptr
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - fu_logitech_hidpp_bootloader_get_addr_lo
    - g_strsplit_set
    - g_bytes_get_data
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_logitech_hidpp_bootloader_parse_requests(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t    GBytes *fw,\n\t\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:191,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: fu_logitech_hidpp_bootloader_get_addr_lo
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1
    functionsReached:
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_bootloader_get_addr_lo(FuLogitechHidppBootloader
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:198,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:199,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: fu_logitech_hidpp_bootloader_get_addr_hi
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1
    functionsReached:
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_bootloader_get_addr_hi(FuLogitechHidppBootloader
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:207,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fu_logitech_hidpp_bootloader_get_blocksize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_bootloader_get_blocksize(FuLogitechHidppBootloader
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:215,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:216,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:218,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:219,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: fu_logitech_hidpp_bootloader_attach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request_new
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - fu_device_add_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:233,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:234,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:238,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:239,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:245,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:246,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:247,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:248,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:251,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:254,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:257,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:259,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:259,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 264
    functionName: fu_logitech_hidpp_bootloader_set_bl_version
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request_new
    - fu_device_add_private_flag
    - g_prefix_error
    - fu_logitech_hidpp_buffer_read_uint8
    - fu_device_add_protocol
    - fu_device_set_version_bootloader
    - fu_logitech_hidpp_bootloader_request
    - FU_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_format_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_set_bl_version(FuLogitechHidppBootloader
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:269,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:271,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:272,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:275,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:280,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:285,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:294,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:295,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:296,1
    - Dst: fu_logitech_hidpp_bootloader_set_bl_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 300
    functionName: fu_logitech_hidpp_bootloader_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_bootloader_request_new
    - FU_DEVICE_CLASS
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_set_bl_version
    - fu_logitech_hidpp_bootloader_request
    - GET_PRIVATE
    - g_autoptr
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_setup(FuDevice *device, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:312,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:317,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:328,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:329,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:329,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:342,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:343,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:351,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:353,1
    - Dst: memset
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:359,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:360,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:360,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:368,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:371,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:375,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:387,1
    - Dst: memset
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:394,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:396,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - FuLogitechHidppBootloaderRequest*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 398
    functionName: fu_logitech_hidpp_bootloader_request
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 3
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - fu_hid_device_set_report
    - g_debug
    - FU_HID_DEVICE
    - memcpy
    - g_prefix_error
    - fu_memcpy_safe
    - g_autoptr
    - FU_USB_DEVICE
    - memset
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_request(FuLogitechHidppBootloader
      *self,\n\t\t\t\t     FuLogitechHidppBootloaderRequest *req,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:403,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 7
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: fu_logitech_hidpp_bootloader_replace
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate_flag
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_replace(FuDevice *device, FuDevice
      *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:410,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:411,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:412,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:413,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:414,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:415,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:416,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:417,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:418,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:420,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 421
    functionName: fu_logitech_hidpp_bootloader_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_set_summary
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_register_private_flag
    - FU_USB_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_init(FuLogitechHidppBootloader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: fu_logitech_hidpp_bootloader_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_class_init(FuLogitechHidppBootloaderClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:24,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:25,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:29,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: fu_logitech_hidpp_bootloader_texas_erase_all
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request
    - fu_logitech_hidpp_bootloader_request_new
    - g_autoptr
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_texas_erase_all(FuLogitechHidppBootloader
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:40,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:41,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:45,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request_new
    - g_prefix_error
    - g_set_error_literal
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_texas_compute_and_test_crc(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:64,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:65,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:75,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 99
    functionName: fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_bootloader_request_new
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_texas_flash_ram_buffer(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t\t    guint16 addr,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:104,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:105,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request
    - fu_logitech_hidpp_bootloader_request_new
    - g_autoptr
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_texas_clear_ram_buffer(FuLogitechHidppBootloader
      *self, GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:128,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:129,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:132,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:133,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:134,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:135,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:136,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:137,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:139,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:140,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:141,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:142,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:146,1
    - Dst: fu_logitech_hidpp_bootloader_parse_requests
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:151,1
    - Dst: fu_logitech_hidpp_bootloader_texas_erase_all
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:156,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:158,1
    - Dst: fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:161,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:163,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:167,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:171,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:190,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:199,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:204,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:212,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:225,1
    - Dst: fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:226,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:229,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:237,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:237,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:239,1
    - Dst: fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:244,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 117
    functionDepth: 7
    functionLinenumber: 117
    functionLinenumberEnd: 248
    functionName: fu_logitech_hidpp_bootloader_texas_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_parse_requests
    - g_prefix_error
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
    - fu_progress_set_id
    - fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
    - fu_progress_step_done
    - fu_logitech_hidpp_bootloader_texas_erase_all
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_logitech_hidpp_bootloader_request_new
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_texas_write_firmware(FuDevice
      *device,\n\t\t\t\t\t\t  FuFirmware *firmware,\n\t\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t\t
      \ FwupdInstallFlags flags,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:254,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: fu_logitech_hidpp_bootloader_texas_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_texas_setup(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderTexasClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: fu_logitech_hidpp_bootloader_texas_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_texas_class_init(FuLogitechHidppBootloaderTexasClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloaderTexas*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: fu_logitech_hidpp_bootloader_texas_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_texas_init(FuLogitechHidppBootloaderTexas
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 1337
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:27,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:28,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:39,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:39,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:43,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:45,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:47,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:48,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:48,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: fu_logitech_hidpp_runtime_unifying_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - FU_HIDPP_RUNTIME
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_logitech_hidpp_send
    - g_prefix_error
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_detach(FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:59,1
    - Dst: memset
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:66,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:66,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:79,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:79,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:80,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:83,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:95,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:99,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:102,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:104,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:106,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:109,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:112,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:114,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:116,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:117,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:120,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:121,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:122,1
    - Dst: fu_logitech_hidpp_runtime_enable_notifications
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:126,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:127,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 133
    functionName: fu_logitech_hidpp_runtime_unifying_setup_internal
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_logitech_hidpp_msg_new
    - FU_HIDPP_RUNTIME
    - g_prefix_error
    - fu_memcpy_safe
    - fu_logitech_hidpp_format_version
    - fu_device_add_protocol
    - fu_logitech_hidpp_runtime_enable_notifications
    - fu_device_set_version_bootloader
    - fu_device_has_flag
    - fu_logitech_hidpp_runtime_get_version_bl_major
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - memset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_setup_internal(FuDevice
      *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:138,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:140,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:144,1
    - Dst: fu_logitech_hidpp_runtime_unifying_setup_internal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:145,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:147,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:148,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:152,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: fu_logitech_hidpp_runtime_unifying_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_runtime_unifying_setup_internal
    - g_steal_pointer
    - g_error_matches
    - g_clear_error
    - g_propagate_error
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_setup(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: fu_logitech_hidpp_runtime_unifying_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_unifying_set_progress(FuDevice *self,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeUnifyingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: fu_logitech_hidpp_runtime_unifying_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_unifying_class_init(FuLogitechHidppRuntimeUnifyingClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntimeUnifying*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: fu_logitech_hidpp_runtime_unifying_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_unifying_init(FuLogitechHidppRuntimeUnifying
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:18,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:19,1
    - Dst: fu_logitech_hidpp_buffer_read_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:20,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:21,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:23,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_logitech_hidpp_common
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_buffer_read_uint16
    - g_assert_cmpstr
    - g_assert_cmpint
    - fu_logitech_hidpp_buffer_read_uint8
    - fu_logitech_hidpp_format_version
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_common(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:31,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:34,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:37,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: main
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 1337
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:26,1
    - Dst: FU_IS_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:26,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: fu_logitech_hidpp_runtime_get_version_bl_major
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_HIDPP_RUNTIME
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_logitech_hidpp_runtime_get_version_bl_major(FuLogitechHidppRuntime
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:34,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:34,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:44,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: fu_logitech_hidpp_runtime_enable_notifications
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 1
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_enable_notifications(FuLogitechHidppRuntime
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:50,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:53,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:56,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:60,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:65,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:67,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:67,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:71,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:72,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:74,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:84,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:85,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:87,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:97,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:103,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:103,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:108,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:109,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:116,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:117,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:119,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:125,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:126,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 131
    functionName: fu_logitech_hidpp_runtime_probe
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_instance_id_full
    - g_set_error
    - FU_HIDPP_RUNTIME
    - fu_device_get_backend_parent_with_subsystem
    - FU_DEVICE_CLASS
    - fu_usb_device_get_release
    - fu_device_get_vid
    - fu_udev_device_read_property
    - g_strdup_printf
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_probe
    - FU_USB_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:136,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:140,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:140,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:141,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:141,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:142,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: fu_logitech_hidpp_runtime_vid_pid_notify_cb
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_device_build_instance_id
    - fu_device_build_instance_id_full
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_vid_pid_notify_cb(FuDevice *device,
      GParamSpec *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: fu_logitech_hidpp_runtime_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_class_init(FuLogitechHidppRuntimeClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:163,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:164,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:165,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:166,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:167,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:168,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:169,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:170,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:171,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:172,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:173,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:173,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:174,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:174,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:175,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:177,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:179,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: fu_logitech_hidpp_runtime_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_vid
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - G_CALLBACK
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - g_signal_connect
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_init(FuLogitechHidppRuntime *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRdfuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: fu_logitech_rdfu_firmware_get_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_rdfu_firmware_get_model_id(FuLogitechRdfuFirmware *self, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRdfuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: fu_logitech_rdfu_firmware_get_magic
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_ref
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_logitech_rdfu_firmware_get_magic(FuLogitechRdfuFirmware *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRdfuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: fu_logitech_rdfu_firmware_get_blocks
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_ref
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_logitech_rdfu_firmware_get_blocks(FuLogitechRdfuFirmware *self, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:49,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:51,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:52,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:59,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:61,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:71,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:80,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:85,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:89,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:91,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - node
    - error
    argTypes:
    - FuLogitechRdfuFirmware*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 101
    functionName: fu_logitech_rdfu_firmware_block_add
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - g_set_error
    - strlen
    - g_steal_pointer
    - JSON_NODE_HOLDS_OBJECT
    - g_set_error_literal
    - json_object_get_string_member_with_default
    - json_node_get_object
    - g_autoptr
    - json_object_has_member
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rdfu_firmware_block_add(FuLogitechRdfuFirmware
      *self, JsonNode *node, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RDFU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:122,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:124,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:125,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:132,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:134,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:137,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:138,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:141,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:141,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:143,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:145,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:149,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:158,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:161,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:164,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:167,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:169,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:171,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:175,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:176,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:179,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:182,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:188,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:189,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:193,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:196,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:198,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:203,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:207,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:208,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:209,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:210,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:211,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 3
    argNames:
    - firmware
    - node
    - error
    argTypes:
    - FuFirmware*
    - JsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 215
    functionName: fu_logitech_rdfu_firmware_entry_add
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - strlen
    - FU_FIRMWARE
    - FU_LOGITECH_RDFU_FIRMWARE
    - g_debug
    - fu_byte_array_to_string
    - JSON_NODE_HOLDS_OBJECT
    - json_object_get_string_member_with_default
    - g_ascii_strup
    - json_node_get_object
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_strtoull
    - fu_firmware_set_id
    - g_str_has_prefix
    - g_strdup_printf
    - fu_firmware_set_version
    - g_set_error_literal
    - g_strdup
    - json_object_has_member
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rdfu_firmware_entry_add(FuFirmware *firmware,
      JsonNode *node, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - item
    - payload
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: fu_logitech_rdfu_firmware_compare_payload
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_rdfu_firmware_compare_payload(gconstpointer item,
      gconstpointer payload)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:241,1
    - Dst: json_parser_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:242,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:244,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:246,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:246,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:247,1
    - Dst: json_parser_load_from_stream
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:251,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:252,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:255,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:257,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:263,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:265,1
    - Dst: json_object_get_string_member_with_default
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:271,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:272,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:280,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:281,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:287,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:288,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:289,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:296,1
    - Dst: json_array_get_element
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:298,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:299,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:299,1
    - Dst: fu_logitech_rdfu_firmware_entry_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:300,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:301,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:304,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:307,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:308,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:315,1
    - Dst: json_object_get_members
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:316,1
    - Dst: g_list_next
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:322,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:322,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:324,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:331,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:333,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:333,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:335,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:338,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:345,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:346,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:347,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:355,1
    - Dst: json_array_get_element
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:356,1
    - Dst: fu_logitech_rdfu_firmware_block_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:358,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:362,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 369
    functionName: fu_logitech_rdfu_firmware_parse
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_ptr_array_find_with_equal_func
    - FU_FIRMWARE
    - g_object_new
    - g_list_next
    - fu_firmware_get_images
    - fu_logitech_rdfu_firmware_entry_add
    - json_parser_get_root
    - json_parser_load_from_stream
    - fu_firmware_get_id
    - json_object_get_object_member
    - g_set_error
    - g_debug
    - G_SEEKABLE
    - json_parser_new
    - json_object_get_array_member
    - json_array_get_element
    - fu_firmware_add_image
    - g_seekable_seek
    - JSON_NODE_HOLDS_OBJECT
    - json_object_get_string_member_with_default
    - g_autoptr
    - json_node_get_object
    - json_object_get_members
    - fu_strtoull
    - fu_logitech_rdfu_firmware_block_add
    - g_set_error_literal
    - json_object_has_member
    - fu_input_stream_size
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rdfu_firmware_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RDFU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:376,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:379,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:381,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:383,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:384,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 388
    functionName: fu_logitech_rdfu_firmware_export
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_RDFU_FIRMWARE
    - fu_byte_array_to_string
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_logitech_rdfu_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      FuFirmwareExportFlags flags,\n\t\t\t\t XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RDFU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:393,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:395,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:396,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:398,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:400,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: fu_logitech_rdfu_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_LOGITECH_RDFU_FIRMWARE
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: fu_logitech_rdfu_firmware_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_firmware_init(FuLogitechRdfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:413,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRdfuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: fu_logitech_rdfu_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_firmware_class_init(FuLogitechRdfuFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:20,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: fu_logitech_hidpp_buffer_read_uint8
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 3
    functionsReached:
    - memcpy
    - g_ascii_strtoull
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_logitech_hidpp_buffer_read_uint8(const gchar *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:30,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: fu_logitech_hidpp_buffer_read_uint16
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 1
    functionsReached:
    - memcpy
    - g_ascii_strtoull
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_buffer_read_uint16(const gchar *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:38,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:40,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:42,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:44,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - name
    - major
    - minor
    - build
    argTypes:
    - gchar*
    - guint8
    - guint8
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: fu_logitech_hidpp_format_version
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 3
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_free
    - g_string_append_c
    - g_ascii_isspace
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_format_version(const gchar *name, guint8 major, guint8 minor,
      guint16 build)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:27,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:28,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:30,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:31,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request_new
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    - g_strndup
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_logitech_hidpp_bootloader_nordic_get_hw_platform_id(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:42,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:43,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:45,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:46,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:52,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:53,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:54,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:56,1
    - Dst: fu_logitech_hidpp_buffer_read_uint8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: fu_logitech_hidpp_bootloader_nordic_get_fw_version
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_request_new
    - g_prefix_error
    - fu_logitech_hidpp_buffer_read_uint8
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    - fu_logitech_hidpp_format_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_bootloader_nordic_get_fw_version(FuLogitechHidppBootloader
      *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:67,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:70,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:78,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_get_fw_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:81,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:83,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:84,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 7
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: fu_logitech_hidpp_bootloader_nordic_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_set_version
    - g_debug
    - fu_logitech_hidpp_bootloader_nordic_get_fw_version
    - FU_DEVICE_CLASS
    - fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_nordic_setup(FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:99,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:100,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:104,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:105,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - self
    - addr
    - len
    - data
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: fu_logitech_hidpp_bootloader_nordic_write_signature
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_bootloader_request_new
    - memcpy
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_write_signature(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t\t    guint16 addr,\n\t\t\t\t\t\t    guint8 len,\n\t\t\t\t\t\t
      \   const guint8 *data,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:127,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:128,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:133,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:141,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:147,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:167,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 5
    argNames:
    - self
    - addr
    - len
    - data
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 183
    functionName: fu_logitech_hidpp_bootloader_nordic_write
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_logitech_hidpp_bootloader_request_new
    - memcpy
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_write(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t  guint16 addr,\n\t\t\t\t\t  guint8 len,\n\t\t\t\t\t  const
      guint8 *data,\n\t\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:190,1
    - Dst: fu_logitech_hidpp_bootloader_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:191,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:196,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 185
    functionDepth: 6
    functionLinenumber: 185
    functionLinenumberEnd: 216
    functionName: fu_logitech_hidpp_bootloader_nordic_erase
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_bootloader_request_new
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_erase(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t  guint16 addr,\n\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:229,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:232,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:237,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:241,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:242,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:246,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:251,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_lo
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:252,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_hi
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:253,1
    - Dst: fu_logitech_hidpp_bootloader_get_blocksize
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:254,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_erase
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:255,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:258,1
    - Dst: fu_logitech_hidpp_bootloader_parse_requests
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:261,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:267,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write_signature
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:270,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:276,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:285,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:287,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:290,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:291,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:297,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:300,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 218
    functionDepth: 7
    functionLinenumber: 218
    functionLinenumberEnd: 306
    functionName: fu_logitech_hidpp_bootloader_nordic_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_logitech_hidpp_bootloader_get_blocksize
    - fu_progress_step_done
    - fu_logitech_hidpp_bootloader_parse_requests
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_progress_add_step
    - fu_logitech_hidpp_bootloader_get_addr_hi
    - fu_device_has_private_flag
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_logitech_hidpp_bootloader_nordic_erase
    - fu_logitech_hidpp_bootloader_nordic_write
    - fu_logitech_hidpp_bootloader_nordic_write_signature
    - fu_logitech_hidpp_bootloader_get_addr_lo
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_write_firmware(FuDevice
      *device,\n\t\t\t\t\t\t   FuFirmware *firmware,\n\t\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t\t
      \  FwupdInstallFlags flags,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderNordicClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: fu_logitech_hidpp_bootloader_nordic_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_nordic_class_init(FuLogitechHidppBootloaderNordicClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloaderNordic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: fu_logitech_hidpp_bootloader_nordic_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_bootloader_nordic_init(FuLogitechHidppBootloaderNordic
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: fu_logitech_hidpp_msg_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 3
    functionsReached:
    - g_new0
    linkageType: ''
    returnType: FuLogitechHidppHidppMsg
    signature: 'FuLogitechHidppHidppMsg *

      fu_logitech_hidpp_msg_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: fu_logitech_hidpp_msg_get_payload_length
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gsize
    signature: gsize fu_logitech_hidpp_msg_get_payload_length(FuLogitechHidppHidppMsg
      *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:38,1
    - Dst: fu_logitech_hidpp_register_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: fu_logitech_hidpp_msg_fcn_id_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_register_to_string
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_msg_fcn_id_to_string(FuLogitechHidppHidppMsg *msg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - msg1
    - msg2
    argTypes:
    - FuLogitechHidppHidppMsg*
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: fu_logitech_hidpp_msg_is_reply
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_is_reply(FuLogitechHidppHidppMsg *msg1,
      FuLogitechHidppHidppMsg *msg2)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:80,1
    - Dst: fu_logitech_hidpp_err_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:87,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:93,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:96,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:112,1
    - Dst: fu_logitech_hidpp_err2_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:123,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:142,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - msg
    - error
    argTypes:
    - FuLogitechHidppHidppMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 151
    functionName: fu_logitech_hidpp_msg_is_error
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_err2_to_string
    - g_set_error_literal
    - g_return_val_if_fail
    - fu_logitech_hidpp_err_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_is_error(FuLogitechHidppHidppMsg *msg,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:156,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:157,1
    - Dst: memset
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:158,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - msg_dst
    - msg_src
    argTypes:
    - FuLogitechHidppHidppMsg*
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: fu_logitech_hidpp_msg_copy
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_msg_copy(FuLogitechHidppHidppMsg *msg_dst, const
      FuLogitechHidppHidppMsg *msg_src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: fu_logitech_hidpp_msg_is_hidpp10_compat
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_is_hidpp10_compat(FuLogitechHidppHidppMsg
      *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: fu_logitech_hidpp_msg_verify_swid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_verify_swid(FuLogitechHidppHidppMsg
      *msg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:17,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:18,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:18,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:20,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:23,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:26,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:28,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:30,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:32,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:34,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:36,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:37,1
    - Dst: fu_logitech_hidpp_report_id_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:40,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:41,1
    - Dst: fu_logitech_hidpp_device_idx_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:44,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:45,1
    - Dst: fu_logitech_hidpp_subid_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:48,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:49,1
    - Dst: fu_logitech_hidpp_msg_fcn_id_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:52,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:53,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:54,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:57,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - msg
    argTypes:
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 59
    functionName: fu_logitech_hidpp_msg_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_logitech_hidpp_device_idx_to_string
    - g_string_new
    - fu_logitech_hidpp_subid_to_string
    - fu_logitech_hidpp_msg_fcn_id_to_string
    - g_steal_pointer
    - g_string_free
    - g_string_truncate
    - fu_logitech_hidpp_report_id_to_string
    - g_autoptr
    - g_return_val_if_fail
    - g_string_append
    - fu_logitech_hidpp_msg_is_error
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_msg_to_string(FuLogitechHidppHidppMsg *msg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:67,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:80,1
    - Dst: fu_logitech_hidpp_msg_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:83,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:84,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - udev_device
    - msg
    - timeout
    - error
    argTypes:
    - FuUdevDevice*
    - FuLogitechHidppHidppMsg*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 103
    functionName: fu_logitech_hidpp_send
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_udev_device_write
    - fu_logitech_hidpp_msg_get_payload_length
    - g_prefix_error
    - fu_dump_raw
    - fu_logitech_hidpp_msg_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_send(FuUdevDevice *udev_device,\n\t\t       FuLogitechHidppHidppMsg
      *msg,\n\t\t       guint timeout,\n\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:114,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:121,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:126,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:127,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:128,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:134,1
    - Dst: fu_logitech_hidpp_msg_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:139,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - udev_device
    - msg
    - timeout
    - error
    argTypes:
    - FuUdevDevice*
    - FuLogitechHidppHidppMsg*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 144
    functionName: fu_logitech_hidpp_receive
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_udev_device_read
    - g_prefix_error
    - fu_logitech_hidpp_msg_get_payload_length
    - fu_dump_raw
    - fu_logitech_hidpp_msg_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_receive(FuUdevDevice *udev_device,\n\t\t\t
      \ FuLogitechHidppHidppMsg *msg,\n\t\t\t  guint timeout,\n\t\t\t  GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:151,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:151,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:166,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:168,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:169,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:175,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:181,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:187,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:188,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:195,1
    - Dst: fu_logitech_hidpp_msg_is_reply
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:199,1
    - Dst: fu_logitech_hidpp_msg_is_hidpp10_compat
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:207,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:208,1
    - Dst: fu_logitech_hidpp_msg_verify_swid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:214,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:232,1
    - Dst: fu_logitech_hidpp_msg_copy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c:236,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 3
    argNames:
    - udev_device
    - msg
    - error
    argTypes:
    - FuUdevDevice*
    - FuLogitechHidppHidppMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 238
    functionName: fu_logitech_hidpp_transfer
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_msg_new
    - g_debug
    - fu_logitech_hidpp_msg_is_hidpp10_compat
    - fu_logitech_hidpp_msg_verify_swid
    - fu_logitech_hidpp_send
    - g_prefix_error
    - fu_logitech_hidpp_msg_get_payload_length
    - fu_logitech_hidpp_msg_copy
    - fu_logitech_hidpp_msg_is_reply
    - fu_logitech_hidpp_receive
    - g_autoptr
    - fu_logitech_hidpp_msg_is_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_transfer(FuUdevDevice *udev_device, FuLogitechHidppHidppMsg
      *msg, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RADIO
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:22,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: fu_logitech_hidpp_radio_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_HIDPP_RADIO
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_radio_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RADIO
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:29,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:31,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:34,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:38,1
    - Dst: fu_logitech_hidpp_device_attach
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:39,1
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: fu_logitech_hidpp_radio_attach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - FU_HIDPP_DEVICE
    - fu_device_add_flag
    - FU_HIDPP_RADIO
    - g_autoptr
    - fu_device_locker_new
    - fu_logitech_hidpp_device_attach
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_radio_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:49,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:52,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:56,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:57,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: fu_logitech_hidpp_radio_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - fu_device_detach_full
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_radio_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:69,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:72,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: fu_logitech_hidpp_radio_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_write_firmware
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_radio_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:82,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:83,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:84,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:85,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: fu_logitech_hidpp_radio_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_radio_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:92,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:93,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:94,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:95,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:96,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:97,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:98,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:99,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRadio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: fu_logitech_hidpp_radio_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_radio_init(FuLogitechHidppRadio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRadioClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: fu_logitech_hidpp_radio_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_radio_class_init(FuLogitechHidppRadioClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - entity
    argTypes:
    - FuContext*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: fu_logitech_hidpp_radio_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuLogitechHidppRadio
    signature: 'FuLogitechHidppRadio *

      fu_logitech_hidpp_radio_new(FuContext *ctx, guint8 entity)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:27,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:28,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:40,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:40,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:44,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:45,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:46,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:48,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:49,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:49,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: fu_logitech_hidpp_runtime_bolt_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - FU_HIDPP_RUNTIME
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - fu_logitech_hidpp_send
    - g_prefix_error
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:60,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: fu_logitech_hidpp_runtime_bolt_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_HIDPP_RUNTIME_BOLT
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:67,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:70,1
    - Dst: FU_IS_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:71,1
    - Dst: fu_logitech_hidpp_device_get_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:72,1
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:72,1
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:73,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - device
    - hidpp_pid
    argTypes:
    - FuDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: fu_logitech_hidpp_runtime_bolt_find_paired_device
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_device_get_children
    - FU_HIDPP_DEVICE
    - g_ptr_array_index
    - FU_IS_HIDPP_DEVICE
    - fu_logitech_hidpp_device_get_hidpp_pid
    linkageType: ''
    returnType: FuLogitechHidppDevice
    signature: 'FuLogitechHidppDevice *

      fu_logitech_hidpp_runtime_bolt_find_paired_device(FuDevice *device, guint16
      hidpp_pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:84,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:85,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:85,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:95,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:95,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:96,1
    - Dst: g_string_append_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:100,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - self
    - slot
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: fu_logitech_hidpp_runtime_bolt_query_device_name
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - g_string_new
    - g_steal_pointer
    - g_string_free
    - g_prefix_error
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - g_string_append_len
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_logitech_hidpp_runtime_bolt_query_device_name(FuLogitechHidppRuntime
      *self,\n\t\t\t\t\t\t guint8 slot,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:113,1
    - Dst: fu_logitech_hidpp_runtime_bolt_find_paired_device
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:121,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:122,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:126,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:129,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:130,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:132,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:135,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:139,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:142,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:143,1
    - Dst: fu_logitech_hidpp_runtime_bolt_query_device_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:150,1
    - Dst: fu_logitech_hidpp_device_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:155,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:155,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:156,1
    - Dst: fu_logitech_hidpp_device_set_device_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:157,1
    - Dst: fu_logitech_hidpp_device_set_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:158,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:159,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:161,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:163,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:165,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - self
    - msg
    - error
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    - FuLogitechHidppHidppMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 105
    functionDepth: 7
    functionLinenumber: 105
    functionLinenumberEnd: 174
    functionName: fu_logitech_hidpp_runtime_bolt_update_paired_device
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_prefix_error
    - fu_device_probe
    - g_debug
    - fu_device_open
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_device_remove_flag
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_logitech_hidpp_runtime_bolt_find_paired_device
    - fu_device_get_children
    - fu_device_setup
    - fu_device_probe_invalidate
    - fu_logitech_hidpp_device_set_hidpp_pid
    - g_autoptr
    - fu_device_locker_new
    - g_warning
    - fu_logitech_hidpp_runtime_bolt_query_device_name
    - FU_HIDPP_RUNTIME
    - FU_DEVICE
    - fu_logitech_hidpp_device_new
    - fu_logitech_hidpp_device_set_device_idx
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_runtime_bolt_update_paired_device(FuLogitechHidppRuntimeBolt
      *self,\n\t\t\t\t\t\t    FuLogitechHidppHidppMsg *msg,\n\t\t\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:179,1
    - Dst: FU_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:184,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:185,1
    - Dst: fu_logitech_hidpp_runtime_bolt_query_device_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:188,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:190,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:200,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:205,1
    - Dst: fu_logitech_hidpp_device_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:206,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:206,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:207,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:208,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:210,1
    - Dst: fu_logitech_hidpp_device_set_device_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:211,1
    - Dst: fu_logitech_hidpp_device_set_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:212,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:213,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:215,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:217,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:219,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 222
    functionName: fu_logitech_hidpp_runtime_bolt_poll_peripherals
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_probe
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_msg_new
    - g_debug
    - fu_device_add_private_flag
    - fu_device_open
    - FU_UDEV_DEVICE
    - FU_HIDPP_RUNTIME_BOLT
    - fu_device_setup
    - fu_logitech_hidpp_device_set_hidpp_pid
    - g_autoptr
    - fu_logitech_hidpp_runtime_bolt_query_device_name
    - FU_HIDPP_RUNTIME
    - FU_DEVICE
    - fu_logitech_hidpp_device_new
    - fu_logitech_hidpp_device_set_device_idx
    - fu_device_set_install_duration
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_poll_peripherals(FuDevice *device)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:228,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:231,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:232,1
    - Dst: fu_logitech_hidpp_runtime_bolt_update_paired_device
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:242,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:245,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:254,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    - FuLogitechHidppHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 224
    functionDepth: 8
    functionLinenumber: 224
    functionLinenumberEnd: 263
    functionName: fu_logitech_hidpp_runtime_bolt_process_notification
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_logitech_hidpp_runtime_bolt_update_paired_device
    - g_autoptr
    - fu_logitech_hidpp_msg_is_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_runtime_bolt_process_notification(FuLogitechHidppRuntimeBolt
      *self,\n\t\t\t\t\t\t    FuLogitechHidppHidppMsg *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - msgs
    - device_id
    - sub_id
    argTypes:
    - GPtrArray*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: fu_logitech_hidpp_runtime_bolt_find_newest_msg
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    linkageType: ''
    returnType: FuLogitechHidppHidppMsg
    signature: 'FuLogitechHidppHidppMsg *

      fu_logitech_hidpp_runtime_bolt_find_newest_msg(GPtrArray *msgs, guint8 device_id,
      guint8 sub_id)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:279,1
    - Dst: FU_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:282,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:282,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:290,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:291,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:293,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:293,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:297,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:300,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:303,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:304,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:308,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:308,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:313,1
    - Dst: fu_logitech_hidpp_runtime_bolt_find_newest_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:317,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:321,1
    - Dst: fu_logitech_hidpp_device_idx_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:323,1
    - Dst: fu_logitech_hidpp_subid_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:325,1
    - Dst: fu_logitech_hidpp_runtime_bolt_process_notification
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 332
    functionName: fu_logitech_hidpp_runtime_bolt_poll
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_idx_to_string
    - fu_logitech_hidpp_msg_new
    - FU_HIDPP_RUNTIME
    - FU_HIDPP_RUNTIME_BOLT
    - g_debug
    - g_propagate_prefixed_error
    - fu_device_open
    - g_error_matches
    - g_steal_pointer
    - fu_logitech_hidpp_subid_to_string
    - fu_logitech_hidpp_runtime_bolt_find_newest_msg
    - fu_logitech_hidpp_runtime_bolt_process_notification
    - g_ptr_array_index
    - fu_logitech_hidpp_receive
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_poll(FuDevice *device, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:337,1
    - Dst: FU_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:338,1
    - Dst: FU_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:340,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:340,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:348,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:348,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:362,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:370,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:370,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:371,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:378,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:385,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:389,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:393,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:400,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:404,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:408,1
    - Dst: fu_logitech_hidpp_radio_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:409,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:410,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:412,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:413,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:415,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:416,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:418,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:420,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:421,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:429,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:436,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:437,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:438,1
    - Dst: fu_logitech_hidpp_runtime_enable_notifications
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:446,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:447,1
    - Dst: fu_logitech_hidpp_runtime_bolt_poll_peripherals
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:450,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 334
    functionDepth: 9
    functionLinenumber: 334
    functionLinenumberEnd: 454
    functionName: fu_logitech_hidpp_runtime_bolt_setup_internal
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_memread_uint16_safe
    - g_string_new
    - g_prefix_error
    - fu_logitech_hidpp_transfer
    - g_string_append_printf
    - fu_device_set_version
    - fu_logitech_hidpp_msg_new
    - fu_device_get_context
    - fu_logitech_hidpp_runtime_enable_notifications
    - fu_logitech_hidpp_runtime_bolt_poll_peripherals
    - FU_UDEV_DEVICE
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_device_incorporate
    - FU_HIDPP_RUNTIME_BOLT
    - fu_logitech_hidpp_radio_new
    - fu_device_set_logical_id
    - fu_device_set_version_bootloader
    - g_autoptr
    - FU_HIDPP_RUNTIME
    - fu_device_get_vid
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_logitech_hidpp_format_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_setup_internal(FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:459,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:461,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:465,1
    - Dst: fu_logitech_hidpp_runtime_bolt_setup_internal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:466,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:468,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:469,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:473,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 10
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: fu_logitech_hidpp_runtime_bolt_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_runtime_bolt_setup_internal
    - g_steal_pointer
    - g_error_matches
    - g_clear_error
    - g_propagate_error
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeBoltClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: fu_logitech_hidpp_runtime_bolt_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_class_init(FuLogitechHidppRuntimeBoltClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:491,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:492,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:493,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:494,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: fu_logitech_hidpp_runtime_bolt_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_init(FuLogitechHidppRuntimeBolt
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:27,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: fu_logitech_hidpp_plugin_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_plugin_init(FuLogitechHidppPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:33,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:34,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:35,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:36,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:37,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:40,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:41,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:42,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: fu_logitech_hidpp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_add_udev_subsystem
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: fu_logitech_hidpp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_plugin_class_init(FuLogitechHidppPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 1339
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:66,1
    - Dst: FU_IS_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:66,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - device_idx
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: fu_logitech_hidpp_device_set_device_idx
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_HIDPP_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_device_idx(FuLogitechHidppDevice
      *self, guint8 device_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:75,1
    - Dst: FU_IS_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: fu_logitech_hidpp_device_get_hidpp_pid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_HIDPP_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_device_get_hidpp_pid(FuLogitechHidppDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:82,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:83,1
    - Dst: FU_IS_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hidpp_pid
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: fu_logitech_hidpp_device_set_hidpp_pid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_HIDPP_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_hidpp_pid(FuLogitechHidppDevice *self,
      guint16 hidpp_pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:90,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:91,1
    - Dst: FU_IS_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:92,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:94,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - model_id
    argTypes:
    - FuLogitechHidppDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: fu_logitech_hidpp_device_set_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - FU_IS_HIDPP_DEVICE
    - g_free
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_model_id(FuLogitechHidppDevice *self,
      const gchar *model_id)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FuLogitechHidppDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: fu_logitech_hidpp_device_get_icon
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_device_get_icon(FuLogitechHidppDeviceKind kind)'
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FuLogitechHidppDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 140
    functionName: fu_logitech_hidpp_device_get_summary
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_device_get_summary(FuLogitechHidppDeviceKind kind)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:147,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:147,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:159,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:159,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:160,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:164,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:165,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:168,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:168,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:173,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:176,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:177,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 195
    functionName: fu_logitech_hidpp_device_ping
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - g_debug
    - fu_device_get_children
    - g_steal_pointer
    - g_error_matches
    - g_ptr_array_index
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - g_propagate_error
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_ping(FuLogitechHidppDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:200,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:204,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:205,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:208,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:215,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:215,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:216,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:217,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:221,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:225,1
    - Dst: fu_logitech_hidpp_device_ping
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:226,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:227,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:228,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:236,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 243
    functionName: fu_logitech_hidpp_device_poll
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_logitech_hidpp_msg_new
    - g_error_matches
    - g_clear_error
    - fu_logitech_hidpp_device_ping
    - fu_device_probe_invalidate
    - FU_HIDPP_DEVICE
    - fu_device_setup
    - fu_device_has_private_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_logitech_hidpp_receive
    - g_autoptr
    - fu_device_locker_new
    - FU_UDEV_DEVICE
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_poll(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:248,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:249,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:250,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - idt
    - str
    argTypes:
    - FuLogitechHidppHidppMap*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: fu_logitech_hidpp_device_map_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_feature_to_string
    - g_strdup_printf
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_map_to_string(FuLogitechHidppHidppMap
      *map, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:258,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:259,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:260,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:261,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:262,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:263,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:265,1
    - Dst: fu_logitech_hidpp_device_map_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: fu_logitech_hidpp_device_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_map_to_string
    - fwupd_codec_string_append_int
    - FU_HIDPP_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:273,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - feature
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: fu_logitech_hidpp_device_feature_get_idx
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_logitech_hidpp_device_feature_get_idx(FuLogitechHidppDevice
      *self, guint16 feature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:289,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:294,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:299,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:306,1
    - Dst: fu_logitech_hidpp_radio_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:307,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:309,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:318,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:318,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:319,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:320,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:321,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:321,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:323,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:324,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:324,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:325,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:330,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:331,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:331,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:331,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:332,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:333,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:333,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:333,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:334,1
    - Dst: fu_device_remove_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:335,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - self
    - entity
    - build
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 283
    functionDepth: 9
    functionLinenumber: 283
    functionLinenumberEnd: 341
    functionName: fu_logitech_hidpp_device_create_radio_child
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_physical_id
    - fu_device_set_version
    - fu_device_get_logical_id
    - fu_device_get_context
    - g_ptr_array_index
    - fu_device_incorporate
    - fu_device_get_children
    - fu_logitech_hidpp_radio_new
    - fu_device_remove_child
    - fu_device_setup
    - fu_device_add_instance_id
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_get_vid
    - g_strdup_printf
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_create_radio_child(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t    guint8 entity,\n\t\t\t\t\t    guint16 build,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:349,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:349,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:354,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:365,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:365,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:366,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:377,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:377,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:385,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:386,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:391,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:398,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:401,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:403,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:404,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:407,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:408,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:410,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:412,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:414,1
    - Dst: fu_logitech_hidpp_device_create_radio_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:416,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:417,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:425,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:426,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:428,1
    - Dst: fu_logitech_hidpp_device_create_radio_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:429,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:430,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 343
    functionDepth: 10
    functionLinenumber: 343
    functionLinenumberEnd: 437
    functionName: fu_logitech_hidpp_device_fetch_firmware_info
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_CLEAR
    - fu_device_set_version
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_msg_new
    - g_debug
    - fu_device_set_metadata
    - g_prefix_error
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_set_version_bootloader
    - FU_BIT_IS_SET
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_format_version
    - fu_logitech_hidpp_device_create_radio_child
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_fetch_firmware_info(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:445,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:446,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:446,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:449,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:459,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:459,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:460,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:466,1
    - Dst: fu_logitech_hidpp_device_set_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:467,1
    - Dst: g_string_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:470,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:471,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:472,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:475,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:475,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:478,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:478,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:479,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 481
    functionName: fu_logitech_hidpp_device_fetch_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_set_size
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_msg_new
    - g_string_new
    - fu_device_get_vid
    - g_prefix_error
    - fu_device_set_pid
    - fu_device_build_instance_id
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_device_set_model_id
    - fu_device_add_instance_str
    - fu_strtoull
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_fetch_model_id(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:486,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:498,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:498,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:504,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:504,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:505,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:511,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:511,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:512,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:516,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:516,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:520,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:523,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:526,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:526,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:529,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:532,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:544,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:544,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:550,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:550,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:551,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:555,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:562,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:562,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:568,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:568,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:570,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:570,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:572,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:578,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:578,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:581,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:581,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:584,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:587,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:590,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:593,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 98
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 483
    functionDepth: 7
    functionLinenumber: 483
    functionLinenumberEnd: 602
    functionName: fu_logitech_hidpp_device_fetch_battery_level
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_msg_new
    - fu_device_set_battery_level
    - g_prefix_error
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_fetch_battery_level(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:608,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:611,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:615,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:620,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:620,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - msg
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 636
    functionName: fu_logitech_hidpp_device_transfer_msg
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_logitech_hidpp_transfer
    - g_return_val_if_fail
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_transfer_msg(FuLogitechHidppDevice
      *self, GByteArray *msg, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:641,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:643,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:644,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:645,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:650,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:654,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:655,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:657,1
    - Dst: fu_logitech_hidpp_device_transfer_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:658,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:659,1
    - Dst: fu_struct_logitech_hidpp_rdfu_capabilities_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:663,1
    - Dst: fu_struct_logitech_hidpp_rdfu_capabilities_get_capabilities
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 638
    functionDepth: 7
    functionLinenumber: 638
    functionLinenumberEnd: 669
    functionName: fu_logitech_hidpp_device_rdfu_get_capabilities
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_capabilities_parse
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_set_sub_id
    - g_prefix_error
    - fu_logitech_hidpp_device_transfer_msg
    - GET_PRIVATE
    - fu_struct_logitech_hidpp_rdfu_capabilities_get_capabilities
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_set_device_id
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_rdfu_get_capabilities(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:679,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:681,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:683,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:685,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:692,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:693,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:694,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_magic
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:695,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:698,1
    - Dst: fu_logitech_hidpp_device_transfer_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:699,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:700,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:705,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:708,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:710,1
    - Dst: fu_logitech_hidpp_rdfu_response_code_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - magic
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 671
    functionDepth: 7
    functionLinenumber: 671
    functionLinenumberEnd: 723
    functionName: fu_logitech_hidpp_device_rdfu_start_dfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
    - g_prefix_error
    - fu_logitech_hidpp_device_transfer_msg
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_sub_id
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_fw_entity
    - g_set_error_literal
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_magic
    - GET_PRIVATE
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_device_id
    - g_autoptr
    - fu_logitech_hidpp_rdfu_response_code_to_string
    - fu_struct_logitech_hidpp_rdfu_start_dfu_new
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_start_dfu(FuLogitechHidppDevice
      *self,\n\t\t\t\t\tGByteArray *magic,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - FuLogitechHidppDevice*
    - FuLogitechHidppRdfuState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: fu_logitech_hidpp_device_rdfu_set_state
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_rdfu_set_state(FuLogitechHidppDevice
      *self, FuLogitechHidppRdfuState state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:746,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_ready_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:749,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_ready_get_block_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:757,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - response
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 768
    functionName: fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_autoptr
    - fu_logitech_hidpp_device_rdfu_set_state
    - fu_struct_logitech_hidpp_rdfu_data_transfer_ready_parse
    - fu_struct_logitech_hidpp_rdfu_data_transfer_ready_get_block_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_data_transfer_ready(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t\t GByteArray *response,\n\t\t\t\t\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:777,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_wait_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:779,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_wait_get_delay_ms
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:788,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:797,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:798,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:798,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:799,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:804,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:804,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:808,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:809,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:811,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:816,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:816,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:820,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:822,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:829,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:834,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - self
    - response
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 843
    functionName: fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_data_transfer_wait_parse
    - g_steal_pointer
    - g_error_matches
    - fu_logitech_hidpp_device_rdfu_check_status
    - fu_logitech_hidpp_msg_get_payload_length
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_struct_logitech_hidpp_rdfu_data_transfer_wait_get_delay_ms
    - g_set_error_literal
    - GET_PRIVATE
    - fu_logitech_hidpp_receive
    - g_autoptr
    - FU_UDEV_DEVICE
    - g_propagate_error
    - fu_logitech_hidpp_device_rdfu_set_state
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_data_transfer_wait(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t\tGByteArray *response,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:850,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:852,1
    - Dst: fu_struct_logitech_hidpp_rdfu_dfu_transfer_pkt_ack_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:855,1
    - Dst: fu_struct_logitech_hidpp_rdfu_dfu_transfer_pkt_ack_get_pkt_number
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:863,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:868,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:871,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - response
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 889
    functionName: fu_logitech_hidpp_device_rdfu_status_pkt_ack
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_logitech_hidpp_rdfu_dfu_transfer_pkt_ack_get_pkt_number
    - fu_struct_logitech_hidpp_rdfu_dfu_transfer_pkt_ack_parse
    - GET_PRIVATE
    - g_autoptr
    - fu_logitech_hidpp_device_rdfu_set_state
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_pkt_ack(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t     GByteArray *response,\n\t\t\t\t\t     GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:896,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:900,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:905,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:912,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_pkt_ack
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:917,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:922,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:927,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:935,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:937,1
    - Dst: fu_logitech_hidpp_rdfu_response_code_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:942,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - response
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 891
    functionDepth: 6
    functionLinenumber: 891
    functionLinenumberEnd: 947
    functionName: fu_logitech_hidpp_device_rdfu_check_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 1
    functionsReached:
    - fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
    - g_set_error
    - fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
    - fu_logitech_hidpp_rdfu_response_code_to_string
    - fu_logitech_hidpp_device_rdfu_status_pkt_ack
    - fu_logitech_hidpp_device_rdfu_set_state
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_check_status(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t   GByteArray *response,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:952,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:954,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:955,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:956,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:957,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:959,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:961,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:968,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:969,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:970,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:972,1
    - Dst: fu_logitech_hidpp_device_transfer_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:973,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:974,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:978,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 7
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: fu_logitech_hidpp_device_rdfu_get_dfu_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_logitech_hidpp_device_rdfu_check_status
    - g_prefix_error
    - fu_logitech_hidpp_device_transfer_msg
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_sub_id
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_fw_entity
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_device_id
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_rdfu_get_dfu_status(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:990,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:993,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:996,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:998,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1000,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1008,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1015,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1017,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1018,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1019,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_flags
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1020,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1026,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - self
    - fw_entity
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1034
    functionName: fu_logitech_hidpp_device_rdfu_apply_dfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_fw_entity
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_new
    - fu_logitech_hidpp_send
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_device_id
    - g_set_error_literal
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_flags
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_sub_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_apply_dfu(FuLogitechHidppDevice
      *self,\n\t\t\t\t\tguint8 fw_entity,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1042,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1044,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1045,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1047,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1049,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1051,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1058,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1059,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1060,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1063,1
    - Dst: fu_logitech_hidpp_device_transfer_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1064,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1065,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1069,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1036
    functionDepth: 7
    functionLinenumber: 1036
    functionLinenumberEnd: 1074
    functionName: fu_logitech_hidpp_device_rdfu_transfer_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_device_id
    - fu_logitech_hidpp_device_rdfu_check_status
    - g_prefix_error
    - fu_logitech_hidpp_device_transfer_msg
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_sub_id
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_data
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_transfer_pkt(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t   const guint8 *data,\n\t\t\t\t\t   const gsize datasz,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1081,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1083,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1085,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1088,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1097,1
    - Dst: fu_logitech_hidpp_device_rdfu_transfer_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - blocks
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1076
    functionDepth: 8
    functionLinenumber: 1076
    functionLinenumberEnd: 1112
    functionName: fu_logitech_hidpp_device_rdfu_transfer_data
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_logitech_hidpp_device_rdfu_transfer_pkt
    - fu_memcpy_safe
    - g_malloc0
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_transfer_data(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t    GPtrArray *blocks,\n\t\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1121,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1121,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1132,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1133,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1135,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1142,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1146,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1152,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1156,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - self
    - feature
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1114
    functionDepth: 6
    functionLinenumber: 1114
    functionLinenumberEnd: 1161
    functionName: fu_logitech_hidpp_device_feature_search
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_feature_to_string
    - fu_logitech_hidpp_msg_new
    - g_set_error
    - g_debug
    - g_new0
    - g_prefix_error
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_feature_search(FuLogitechHidppDevice
      *self,\n\t\t\t\t\tguint16 feature,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1166,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1167,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1179,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1179,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1180,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1186
    functionName: fu_logitech_hidpp_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - FU_HIDPP_DEVICE
    - fu_device_set_logical_id
    - fu_device_build_vendor_id_u16
    - GET_PRIVATE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1191,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1195,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1195,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1196,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1196,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1188
    functionDepth: 6
    functionLinenumber: 1188
    functionLinenumberEnd: 1198
    functionName: fu_logitech_hidpp_device_vid_pid_notify_cb
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_device_build_instance_id
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_vid_pid_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1210,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1211,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1224,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1231,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1233,1
    - Dst: fu_logitech_hidpp_device_ping
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1237,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1242,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1247,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1249,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1257,1
    - Dst: fu_logitech_hidpp_device_feature_search
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1258,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1259,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1260,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1261,1
    - Dst: fu_logitech_hidpp_device_fetch_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1269,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1278,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1278,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1284,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1285,1
    - Dst: fu_logitech_hidpp_device_get_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1290,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1292,1
    - Dst: fu_logitech_hidpp_device_get_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1293,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1295,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1297,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1299,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1300,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1301,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1302,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1304,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1312,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1312,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1318,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1318,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1319,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1323,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1325,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1327,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1328,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1328,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1329,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1329,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1331,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1333,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1333,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1334,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1335,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1336,1
    - Dst: g_info
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1337,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1338,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1342,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1343,1
    - Dst: fu_logitech_hidpp_device_fetch_firmware_info
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1347,1
    - Dst: fu_logitech_hidpp_device_fetch_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1351,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1354,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_capabilities
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1357,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1359,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1360,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1361,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1361,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1362,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1365,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1207
    functionDepth: 11
    functionLinenumber: 1207
    functionLinenumberEnd: 1367
    functionName: fu_logitech_hidpp_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_get_summary
    - g_new0
    - g_prefix_error
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_device_feature_search
    - fu_device_set_poll_interval
    - fu_logitech_hidpp_device_fetch_model_id
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_logitech_hidpp_msg_new
    - fu_device_get_version
    - fu_device_set_version
    - FU_HIDPP_DEVICE
    - fu_device_add_flag
    - fu_device_remove_flag
    - FU_UDEV_DEVICE
    - fu_logitech_hidpp_device_get_icon
    - g_info
    - fu_logitech_hidpp_device_fetch_battery_level
    - fu_logitech_hidpp_device_rdfu_get_capabilities
    - fu_logitech_hidpp_device_ping
    - g_error_matches
    - fu_device_set_summary
    - g_autoptr
    - fu_device_add_icon
    - fu_logitech_hidpp_device_fetch_firmware_info
    - g_ptr_array_add
    - g_warning
    - fu_device_add_protocol
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - g_ptr_array_set_size
    - fu_device_set_firmware_gtype
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_setup(FuDevice *device, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1372,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1375,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1375,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1377,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1379,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1384,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1385,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1390,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1398,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1399,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1414,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1414,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1415,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1418,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1419,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1422,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1423,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1427,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1430,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1432,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1435,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1438,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1440,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1443,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1444,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1446,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1446,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1447,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1448,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1449,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1450,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1458,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1473,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1473,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1474,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1477,1
    - Dst: fu_logitech_hidpp_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1478,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 82
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1369
    functionDepth: 12
    functionLinenumber: 1369
    functionLinenumberEnd: 1484
    functionName: fu_logitech_hidpp_device_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fwupd_request_add_flag
    - fu_device_has_flag
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_device_setup
    - fu_device_emit_request
    - fu_device_set_poll_interval
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_msg_new
    - g_debug
    - g_propagate_prefixed_error
    - FU_HIDPP_DEVICE
    - fu_device_get_update_message
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_get_parent
    - fu_device_get_name
    - fwupd_request_new
    - fwupd_request_set_kind
    - g_steal_pointer
    - fwupd_request_set_message
    - g_autoptr
    - fu_device_set_update_message
    - g_strdup_printf
    - fu_device_has_private_flag
    - FU_DEVICE
    - fwupd_request_set_id
    - GET_PRIVATE
    - g_set_error_literal
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_status_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1490,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1497,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1503,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1509,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1516,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1531,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1534,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - status_raw
    - error
    argTypes:
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1542
    functionName: fu_logitech_hidpp_device_check_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_debug
    - fu_logitech_hidpp_status_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_check_status(guint8 status_raw, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1551,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1553,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1554,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1566,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1575,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1576,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1581,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1588,1
    - Dst: fu_logitech_hidpp_device_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1589,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1593,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1594,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1594,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1599,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1601,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1601,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1603,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1603,1
    - Dst: fu_logitech_hidpp_msg_is_reply
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1605,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1606,1
    - Dst: fu_logitech_hidpp_device_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1607,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1608,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1613,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1617,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - self
    - idx
    - cmd
    - data
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1544
    functionDepth: 6
    functionLinenumber: 1544
    functionLinenumberEnd: 1622
    functionName: fu_logitech_hidpp_device_write_firmware_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_new
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_prefix_error
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - fu_logitech_hidpp_device_check_status
    - fu_logitech_hidpp_msg_is_reply
    - g_set_error_literal
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    - g_propagate_error
    - fu_logitech_hidpp_receive
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_pkt(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t    guint8 idx,\n\t\t\t\t\t    guint8 cmd,\n\t\t\t\t\t    const
      guint8 *data,\n\t\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1631,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1632,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1637,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1640,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1642,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1650,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1655,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1657,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1660,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1663,1
    - Dst: fu_logitech_hidpp_device_write_firmware_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1664,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1669,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1624
    functionDepth: 7
    functionLinenumber: 1624
    functionLinenumberEnd: 1681
    functionName: fu_logitech_hidpp_device_write_firmware_dfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_progress_set_percentage_full
    - g_prefix_error
    - FU_HIDPP_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_logitech_hidpp_device_write_firmware_pkt
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_dfu(FuDevice *device,\n\t\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t\t    GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1690,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1691,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1695,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1697,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1698,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1699,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1702,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1704,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1712,1
    - Dst: fu_logitech_rdfu_firmware_get_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1716,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1720,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1721,1
    - Dst: fu_logitech_rdfu_firmware_get_magic
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1730,1
    - Dst: fu_logitech_rdfu_firmware_get_blocks
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1734,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1738,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1739,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_dfu_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1742,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1744,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1746,1
    - Dst: fu_logitech_hidpp_device_rdfu_start_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1751,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1757,1
    - Dst: fu_logitech_hidpp_device_rdfu_transfer_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1760,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_dfu_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1765,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1770,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1779,1
    - Dst: fu_logitech_hidpp_device_rdfu_apply_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1780,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1783,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1683
    functionDepth: 9
    functionLinenumber: 1683
    functionLinenumberEnd: 1786
    functionName: fu_logitech_hidpp_device_write_firmware_rdfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_logitech_hidpp_device_rdfu_get_dfu_status
    - fu_logitech_hidpp_device_rdfu_transfer_data
    - fu_logitech_rdfu_firmware_get_magic
    - fu_logitech_hidpp_device_rdfu_set_state
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_logitech_hidpp_device_feature_get_idx
    - g_debug
    - fu_logitech_hidpp_device_rdfu_apply_dfu
    - FU_HIDPP_DEVICE
    - fu_logitech_hidpp_device_rdfu_start_dfu
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_firmware_get_image_by_id
    - fu_logitech_rdfu_firmware_get_blocks
    - g_autoptr
    - g_strdup_printf
    - g_set_error_literal
    - fu_logitech_rdfu_firmware_get_model_id
    - GET_PRIVATE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_rdfu(FuDevice *device,\n\t\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    FwupdInstallFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1795,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1797,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1800,1
    - Dst: fu_logitech_hidpp_device_write_firmware_rdfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1802,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1810,1
    - Dst: fu_logitech_hidpp_device_write_firmware_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1812,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1788
    functionDepth: 10
    functionLinenumber: 1788
    functionLinenumberEnd: 1824
    functionName: fu_logitech_hidpp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_hidpp_device_feature_get_idx
    - FU_HIDPP_DEVICE
    - fu_logitech_hidpp_device_write_firmware_dfu
    - fu_logitech_hidpp_device_write_firmware_rdfu
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1826
    functionDepth: 12
    functionLinenumber: 1826
    functionLinenumberEnd: 1830
    functionName: fu_logitech_hidpp_device_reprobe_cb
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_reprobe_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1838,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1839,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1841,1
    - Dst: fu_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1841,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1842,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1844,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1847,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1848,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1853,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1855,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1872,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1872,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1873,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1874,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1875,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1877,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1878,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1885,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1886,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1887,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1890,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - self
    - entity
    - progress
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1832
    functionDepth: 6
    functionLinenumber: 1832
    functionLinenumberEnd: 1896
    functionName: fu_logitech_hidpp_device_attach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 1
    functionsReached:
    - fu_device_set_poll_interval
    - g_set_error
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_msg_new
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_device_retry
    - fu_device_has_private_flag
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_add_flag
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_logitech_hidpp_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_attach(FuLogitechHidppDevice *self,\n\t\t\t\tguint8
      entity,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1901,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1902,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1904,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1905,1
    - Dst: fu_logitech_hidpp_device_attach
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1898
    functionDepth: 7
    functionLinenumber: 1898
    functionLinenumberEnd: 1907
    functionName: fu_logitech_hidpp_device_attach_cached
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_HIDPP_DEVICE
    - fu_device_has_private_flag
    - fu_device_add_flag
    - GET_PRIVATE
    - fu_logitech_hidpp_device_attach
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_attach_cached(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1915,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1916,1
    - Dst: fu_logitech_hidpp_device_set_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1917,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1925
    functionName: fu_logitech_hidpp_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_HIDPP_DEVICE
    - fu_logitech_hidpp_device_set_model_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1930,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1931,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1932,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1933,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1934,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1927
    functionDepth: 3
    functionLinenumber: 1927
    functionLinenumberEnd: 1936
    functionName: fu_logitech_hidpp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1941,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1942,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1943,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1944,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1946
    functionName: fu_logitech_hidpp_device_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_HIDPP_DEVICE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_finalize(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1954,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1959
    functionName: fu_logitech_hidpp_device_cleanup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_cleanup(FuDevice *device,\n\t\t\t\t
      FuProgress *progress,\n\t\t\t\t FwupdInstallFlags flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1964,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1978
    functionName: fu_logitech_hidpp_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_class_init(FuLogitechHidppDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1983,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1985,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1986,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1987,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1988,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1988,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1989,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1989,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1990,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1990,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1991,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1991,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1992,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1992,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1993,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1993,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1994,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1994,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1995,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1995,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1997,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1998,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1998,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2000,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2000,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2002,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2003,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2003,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2004,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2004,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2005,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2007,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2009,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2009,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 1980
    functionDepth: 7
    functionLinenumber: 1980
    functionLinenumberEnd: 2013
    functionName: fu_logitech_hidpp_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_logitech_hidpp_device_rdfu_set_state
    - fu_device_set_vid
    - fu_device_set_battery_threshold
    - fu_udev_device_add_open_flag
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - g_ptr_array_new_with_free_func
    - g_signal_connect
    - fu_device_set_vendor
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_init(FuLogitechHidppDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2018,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2024
    functionName: fu_logitech_hidpp_device_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - fu_udev_device_get_device_file
    - g_object_new
    linkageType: ''
    returnType: FuLogitechHidppDevice
    signature: 'FuLogitechHidppDevice *

      fu_logitech_hidpp_device_new(FuUdevDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiPkPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_uefi_pk_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_plugin_init(FuUefiPkPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:26,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_uefi_pk_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_plugin_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:33,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:35,1
    - Dst: fu_uefi_pk_device_get_key_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:37,1
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: fu_uefi_pk_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_PK_DEVICE
    - fu_uefi_pk_device_get_key_id
    - fu_plugin_add_report_metadata
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_pk_plugin_device_created(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiPkPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: fu_uefi_pk_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_plugin_class_init(FuUefiPkPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:24,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_uefi_pk_device_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_UEFI_PK_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:39,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:40,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - str
    - error
    argTypes:
    - FuUefiPkDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: fu_uefi_pk_device_check
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_strstr_len
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_pk_device_check(FuUefiPkDevice *self, const gchar
      *str, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:54,1
    - Dst: FU_IS_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiPkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_uefi_pk_device_get_key_id
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_PK_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_pk_device_get_key_id(FuUefiPkDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:61,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - key_id
    argTypes:
    - FuUefiPkDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: fu_uefi_pk_device_set_key_id
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_set_key_id(FuUefiPkDevice *self, const gchar
      *key_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_x509_signature_get_subject_name
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:68,1
    - Dst: fu_efi_x509_signature_get_subject_vendor
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:69,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:72,1
    - Dst: fu_uefi_pk_device_check
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:73,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:73,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:76,1
    - Dst: fu_uefi_pk_device_check
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:77,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:77,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:82,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:83,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:84,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:85,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:86,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:87,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:87,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:87,1
    - Dst: fu_uefi_pk_device_set_key_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:88,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:88,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:88,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:91,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - sig
    - error
    argTypes:
    - FuUefiPkDevice*
    - FuEfiX509Signature*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: fu_uefi_pk_device_parse_certificate
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_efi_x509_signature_get_subject_vendor
    - fu_efi_x509_signature_get_issuer
    - fu_uefi_pk_device_check
    - fu_firmware_get_version_raw
    - fu_uefi_pk_device_set_key_id
    - FU_FIRMWARE
    - fu_device_build_instance_id
    - fu_device_set_vendor
    - FU_DEVICE
    - fu_firmware_get_id
    - fu_device_add_instance_strsafe
    - fu_device_add_instance_strup
    - fu_device_set_version_raw
    - fu_efi_x509_signature_get_subject_name
    - fu_efi_x509_signature_get_subject
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_pk_device_parse_certificate(FuUefiPkDevice *self,
      FuEfiX509Signature *sig, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:101,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:102,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:105,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:113,1
    - Dst: fu_firmware_get_image_by_checksum
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:118,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:123,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:125,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:126,1
    - Dst: fu_uefi_pk_device_parse_certificate
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:128,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 7
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: fu_uefi_pk_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - FU_EFI_X509_SIGNATURE
    - fu_progress_new
    - FU_DEVICE_CLASS
    - fu_uefi_pk_device_parse_certificate
    - g_prefix_error
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - fu_firmware_get_image_by_checksum
    - fu_efi_signature_get_kind
    - FU_UEFI_PK_DEVICE
    - fu_device_read_firmware
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_pk_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:140,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:143,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:144,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:145,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:149,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:150,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:151,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: fu_uefi_pk_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_device_security_attr_new
    - FU_UEFI_PK_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:162,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: fu_uefi_pk_device_convert_version
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_pk_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:168,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:169,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:170,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:171,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:172,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:173,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiPkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: fu_uefi_pk_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_add_icon
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_init(FuUefiPkDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:180,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:181,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: fu_uefi_pk_device_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_UEFI_PK_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:188,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiPkDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: fu_uefi_pk_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_class_init(FuUefiPkDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:26,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_acpi_phat_export
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_PHAT
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:41,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:44,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:49,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:56,1
    - Dst: fu_acpi_phat_version_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:61,1
    - Dst: fu_acpi_phat_health_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:68,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:69,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:72,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:73,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:74,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:75,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:77,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 83
    functionName: fu_acpi_phat_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_firmware_set_size
    - fu_firmware_parse_stream
    - fu_acpi_phat_version_record_new
    - fu_input_stream_read_u8
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_acpi_phat_health_record_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_record_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  gsize *offset,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - oem_id
    argTypes:
    - FuAcpiPhat*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: fu_acpi_phat_set_oem_id
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_set_oem_id(FuAcpiPhat *self, const gchar *oem_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_acpi_phat_hdr_validate_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: fu_acpi_phat_validate
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_phat_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_validate(FuFirmware *firmware, GInputStream *stream,
      gsize offset, GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:104,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:114,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:119,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:147,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:148,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:154,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:164,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:172,1
    - Dst: fu_acpi_phat_set_oem_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:173,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:176,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:184,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:185,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:186,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:188,1
    - Dst: fu_acpi_phat_record_parse
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:192,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 198
    functionName: fu_acpi_phat_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_input_stream_read_u32
    - fu_input_stream_read_safe
    - fu_acpi_phat_set_oem_id
    - fu_input_stream_read_u8
    - fu_input_stream_compute_sum8
    - g_autoptr
    - fu_firmware_set_version_raw
    - fu_acpi_phat_record_parse
    - fu_input_stream_size
    - fu_strsafe
    - FU_ACPI_PHAT
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:203,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:210,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:211,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:212,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:217,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:217,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:220,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:224,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:225,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:226,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:226,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:227,1
    - Dst: strlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:229,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:230,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:240,1
    - Dst: strlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:242,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:243,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:253,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:254,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:254,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:255,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:256,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:257,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:260,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 264
    functionName: fu_acpi_phat_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - strlen
    - fu_byte_array_append_uint8
    - g_steal_pointer
    - fu_memcpy_safe
    - fu_firmware_get_version_raw
    - fu_sum8
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_byte_array_append
    - FU_ACPI_PHAT
    - g_byte_array_new
    - fu_firmware_get_id
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_acpi_phat_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:269,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:273,1
    - Dst: fu_acpi_phat_set_oem_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: fu_acpi_phat_build
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_ACPI_PHAT
    - fu_acpi_phat_set_oem_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:284,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:285,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:286,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:286,1
    - Dst: xb_builder_node_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - bn
    - user_data
    argTypes:
    - XbBuilderNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: fu_acpi_phat_to_report_string_cb
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_builder_node_get_element
    - xb_builder_node_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_to_report_string_cb(XbBuilderNode *bn, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:294,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:294,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:295,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:295,1
    - Dst: xb_builder_node_traverse
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:296,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: fu_acpi_phat_to_report_string
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_new
    - xb_builder_node_export
    - xb_builder_node_traverse
    - FU_FIRMWARE
    - fu_firmware_export
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_acpi_phat_to_report_string(FuAcpiPhat *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:311,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:311,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:312,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:312,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:313,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: fu_acpi_phat_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_init(FuAcpiPhat *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:320,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:321,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: fu_acpi_phat_finalize
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_ACPI_PHAT
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:328,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: fu_acpi_phat_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_class_init(FuAcpiPhatClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:341,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: fu_acpi_phat_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:28,1
    - Dst: fu_struct_acpi_phat_version_record_parse_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:30,1
    - Dst: fu_struct_acpi_phat_version_record_get_record_count
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:35,1
    - Dst: fu_acpi_phat_version_element_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:36,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:37,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:43,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:44,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:50,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 55
    functionName: fu_acpi_phat_version_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_firmware_set_offset
    - fu_firmware_add_image_full
    - fu_acpi_phat_version_element_new
    - fu_firmware_parse_stream
    - fu_struct_acpi_phat_version_record_get_record_count
    - fu_struct_acpi_phat_version_record_parse_stream
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_version_record_parse(FuFirmware *firmware,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:60,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:61,1
    - Dst: fu_struct_acpi_phat_version_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:62,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:62,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:67,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:67,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:70,1
    - Dst: fu_struct_acpi_phat_version_record_set_rcdlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:74,1
    - Dst: fu_struct_acpi_phat_version_record_set_version
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:75,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:75,1
    - Dst: fu_struct_acpi_phat_version_record_set_record_count
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:76,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:79,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: fu_acpi_phat_version_record_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_struct_acpi_phat_version_record_set_version
    - fu_struct_acpi_phat_version_record_set_record_count
    - fu_struct_acpi_phat_version_record_new
    - fu_firmware_get_version_raw
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_struct_acpi_phat_version_record_set_rcdlen
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_acpi_phat_version_record_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:86,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:86,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:87,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:87,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatVersionRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: fu_acpi_phat_version_record_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_record_init(FuAcpiPhatVersionRecord *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatVersionRecordClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: fu_acpi_phat_version_record_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_record_class_init(FuAcpiPhatVersionRecordClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:102,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: fu_acpi_phat_version_record_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_version_record_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:27,1
    - Dst: fu_acpi_phat_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:29,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:31,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:32,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:33,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:36,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:42,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:42,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:45,1
    - Dst: fu_acpi_phat_to_report_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:47,1
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:47,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: fu_acpi_phat_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_error_matches
    - g_build_filename
    - FU_ACPI_PHAT
    - g_set_error_literal
    - g_propagate_error
    - fu_bytes_get_contents
    - g_autoptr
    - fu_acpi_phat_to_report_string
    - fu_plugin_add_report_metadata
    - fu_path_from_kind
    - fu_firmware_parse_bytes
    - fu_acpi_phat_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: fu_acpi_phat_plugin_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_plugin_init(FuAcpiPhatPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:60,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:61,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:62,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:63,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: fu_acpi_phat_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: fu_acpi_phat_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_plugin_class_init(FuAcpiPhatPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:15,1
    - Dst: fu_acpi_phat_new
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:17,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:21,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:22,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:23,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:27,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:28,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:35,1
    - Dst: fu_acpi_phat_to_report_string
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:36,1
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:36,1
    - Dst: g_print
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: fu_acpi_phat_parse_func
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_test_build_filename
    - g_assert_true
    - FU_ACPI_PHAT
    - g_print
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_acpi_phat_to_report_string
    - fu_bytes_get_contents
    - fu_firmware_parse_bytes
    - fu_acpi_phat_new
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_parse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:43,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:44,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:47,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:48,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:51,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_VERSION_ELEMENT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:25,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:27,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: fu_acpi_phat_version_element_export
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kv
    - FU_ACPI_PHAT_VERSION_ELEMENT
    linkageType: ''
    returnType: void
    signature: "void fu_acpi_phat_version_element_export(FuFirmware *firmware,\n\t\t\t\t
      \   FuFirmwareExportFlags flags,\n\t\t\t\t    XbBuilderNode *bn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_VERSION_ELEMENT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:39,1
    - Dst: fu_struct_acpi_phat_version_element_parse_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:42,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:45,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:46,1
    - Dst: fu_struct_acpi_phat_version_element_get_component_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:46,1
    - Dst: fu_struct_acpi_phat_version_element_get_producer_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:48,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:49,1
    - Dst: fu_struct_acpi_phat_version_element_get_version_value
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: fu_acpi_phat_version_element_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_phat_version_element_get_producer_id
    - FU_ACPI_PHAT_VERSION_ELEMENT
    - fu_struct_acpi_phat_version_element_get_version_value
    - fu_firmware_set_size
    - fwupd_guid_to_string
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_acpi_phat_version_element_parse_stream
    - fu_struct_acpi_phat_version_element_get_component_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_version_element_parse(FuFirmware *firmware,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_VERSION_ELEMENT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:58,1
    - Dst: fu_struct_acpi_phat_version_element_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:58,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:63,1
    - Dst: fu_struct_acpi_phat_version_element_set_component_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:65,1
    - Dst: fu_struct_acpi_phat_version_element_set_version_value
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:67,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:69,1
    - Dst: fu_struct_acpi_phat_version_element_set_producer_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:70,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: fu_acpi_phat_version_element_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_phat_version_element_set_version_value
    - g_steal_pointer
    - FU_ACPI_PHAT_VERSION_ELEMENT
    - fu_struct_acpi_phat_version_element_new
    - fu_struct_acpi_phat_version_element_set_producer_id
    - fu_firmware_get_version_raw
    - fu_struct_acpi_phat_version_element_set_component_id
    - g_autoptr
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_acpi_phat_version_element_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:80,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuAcpiPhatVersionElement*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fu_acpi_phat_version_element_set_guid
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_element_set_guid(FuAcpiPhatVersionElement
      *self, const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - producer_id
    argTypes:
    - FuAcpiPhatVersionElement*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: fu_acpi_phat_version_element_set_producer_id
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: "void fu_acpi_phat_version_element_set_producer_id(FuAcpiPhatVersionElement
      *self,\n\t\t\t\t\t     const gchar *producer_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_VERSION_ELEMENT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:95,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:99,1
    - Dst: fu_acpi_phat_version_element_set_producer_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:101,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:102,1
    - Dst: fu_acpi_phat_version_element_set_guid
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: fu_acpi_phat_version_element_build
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - fu_acpi_phat_version_element_set_producer_id
    - xb_node_query_text
    - fu_acpi_phat_version_element_set_guid
    - FU_ACPI_PHAT_VERSION_ELEMENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_version_element_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:113,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:113,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatVersionElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fu_acpi_phat_version_element_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_element_init(FuAcpiPhatVersionElement *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_VERSION_ELEMENT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:120,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:121,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:122,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: fu_acpi_phat_version_element_finalize
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_ACPI_PHAT_VERSION_ELEMENT
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_element_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:129,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatVersionElementClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: fu_acpi_phat_version_element_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_version_element_class_init(FuAcpiPhatVersionElementClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:141,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: fu_acpi_phat_version_element_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_version_element_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_HEALTH_RECORD
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:27,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:29,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:31,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: fu_acpi_phat_health_record_export
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_PHAT_HEALTH_RECORD
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_acpi_phat_health_record_export(FuFirmware *firmware,\n\t\t\t\t
      \ FuFirmwareExportFlags flags,\n\t\t\t\t  XbBuilderNode *bn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_HEALTH_RECORD
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:46,1
    - Dst: fu_struct_acpi_phat_health_record_parse_stream
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:49,1
    - Dst: fu_struct_acpi_phat_health_record_get_rcdlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:52,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:56,1
    - Dst: fu_struct_acpi_phat_health_record_get_flags
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:63,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:65,1
    - Dst: fu_struct_acpi_phat_health_record_get_device_signature
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:65,1
    - Dst: fu_struct_acpi_phat_health_record_get_device_specific_data
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:81,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:90,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 100
    functionName: fu_acpi_phat_health_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_acpi_phat_health_record_parse_stream
    - fu_input_stream_read_bytes
    - FU_ACPI_PHAT_HEALTH_RECORD
    - fu_struct_acpi_phat_health_record_get_flags
    - fu_struct_acpi_phat_health_record_get_rcdlen
    - fwupd_guid_to_string
    - fu_struct_acpi_phat_health_record_get_device_specific_data
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - fu_input_stream_size
    - fu_struct_acpi_phat_health_record_get_device_signature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_health_record_parse(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_HEALTH_RECORD
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:106,1
    - Dst: fu_struct_acpi_phat_health_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:110,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:110,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:116,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:122,1
    - Dst: fu_struct_acpi_phat_health_record_set_device_signature
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:124,1
    - Dst: fu_struct_acpi_phat_health_record_set_rcdlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:126,1
    - Dst: fu_struct_acpi_phat_health_record_set_version
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:127,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:127,1
    - Dst: fu_struct_acpi_phat_health_record_set_flags
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:128,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 132
    functionName: fu_acpi_phat_health_record_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - fu_utf8_to_utf16_byte_array
    - fu_struct_acpi_phat_health_record_new
    - g_steal_pointer
    - fu_struct_acpi_phat_health_record_set_flags
    - fu_struct_acpi_phat_health_record_set_version
    - FU_ACPI_PHAT_HEALTH_RECORD
    - fu_firmware_get_version_raw
    - fu_struct_acpi_phat_health_record_set_device_signature
    - fu_struct_acpi_phat_health_record_set_rcdlen
    - g_autoptr
    - g_byte_array_append
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_acpi_phat_health_record_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:137,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuAcpiPhatHealthRecord*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: fu_acpi_phat_health_record_set_guid
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_health_record_set_guid(FuAcpiPhatHealthRecord *self,
      const gchar *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:144,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device_path
    argTypes:
    - FuAcpiPhatHealthRecord*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fu_acpi_phat_health_record_set_device_path
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_health_record_set_device_path(FuAcpiPhatHealthRecord
      *self, const gchar *device_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_HEALTH_RECORD
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:151,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:156,1
    - Dst: fu_acpi_phat_health_record_set_device_path
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:158,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:159,1
    - Dst: fu_acpi_phat_health_record_set_guid
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:161,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: fu_acpi_phat_health_record_build
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_query_text_as_uint
    - FU_ACPI_PHAT_HEALTH_RECORD
    - fu_acpi_phat_health_record_set_guid
    - fu_acpi_phat_health_record_set_device_path
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_phat_health_record_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:182,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:182,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:183,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatHealthRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: fu_acpi_phat_health_record_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_health_record_init(FuAcpiPhatHealthRecord *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_PHAT_HEALTH_RECORD
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:189,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:190,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:191,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: fu_acpi_phat_health_record_finalize
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_PHAT_HEALTH_RECORD
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_health_record_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:198,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatHealthRecordClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: fu_acpi_phat_health_record_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_phat_health_record_class_init(FuAcpiPhatHealthRecordClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:210,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: fu_acpi_phat_health_record_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_health_record_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:27,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:29,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_pci_bcr_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_bool
    - FU_PCI_BCR_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:36,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:38,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: fu_pci_bcr_plugin_set_updatable
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fu_device_uninhibit
    - fu_device_inhibit
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_set_updatable(FuPlugin *plugin, FuDevice *dev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:47,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:48,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:48,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:49,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:49,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:50,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:52,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:56,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:56,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:57,1
    - Dst: fu_pci_bcr_plugin_set_updatable
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:60,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: fu_pci_bcr_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fu_plugin_cache_add
    - fu_pci_bcr_plugin_set_updatable
    - fu_device_has_private_flag
    - fu_device_get_metadata_integer
    - g_strcmp0
    - fu_device_get_plugin
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_device_registered(FuPlugin *plugin, FuDevice
      *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:70,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:72,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:75,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:77,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:77,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:78,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:79,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:83,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:89,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:90,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 96
    functionName: fu_pci_bcr_plugin_add_security_attr_bioswe
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attr_bioswe(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:101,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:103,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:106,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:108,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:108,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:109,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:110,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:114,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:120,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 126
    functionName: fu_pci_bcr_plugin_add_security_attr_ble
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attr_ble(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:131,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:133,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:136,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:138,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:138,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:139,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:140,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:144,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:150,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: fu_pci_bcr_plugin_add_security_attr_smm_bwp
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_plugin_cache_lookup
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attr_smm_bwp(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:167,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:171,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:179,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:184,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:184,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:184,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:185,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:185,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:186,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:186,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:187,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:192,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:192,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:193,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:198,1
    - Dst: fu_pci_bcr_plugin_set_updatable
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 205
    functionName: fu_pci_bcr_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PCI_BCR_PLUGIN
    - fu_pci_bcr_plugin_set_updatable
    - g_build_filename
    - g_prefix_error
    - fu_udev_device_add_open_flag
    - fu_device_locker_new
    - fu_plugin_cache_lookup
    - g_set_error_literal
    - FU_IS_PCI_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_set_device_file
    - fu_udev_device_pread
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pci_bcr_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \      FuDevice *device,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:211,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_bioswe
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:215,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_ble
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:216,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_smm_bwp
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: fu_pci_bcr_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_pci_bcr_plugin_add_security_attr_ble
    - fu_pci_bcr_plugin_add_security_attr_bioswe
    - fu_pci_bcr_plugin_add_security_attr_smm_bwp
    - fu_cpu_get_vendor
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciBcrPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: fu_pci_bcr_plugin_init
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_init(FuPciBcrPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:230,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:231,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:232,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: fu_pci_bcr_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciBcrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: fu_pci_bcr_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_class_init(FuPciBcrPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:46,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:47,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:48,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: fu_rts54hub_device_to_string
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:60,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: fu_rts54hub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_strtoull
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:90,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:90,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - target_addr
    - sub_length
    - speed
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint8
    - guint8
    - FuRts54HubI2cSpeed
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: fu_rts54hub_device_i2c_config
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_i2c_config(FuRts54HubDevice *self,\n\t\t\t
      \     guint8 target_addr,\n\t\t\t      guint8 sub_length,\n\t\t\t      FuRts54HubI2cSpeed
      speed,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:116,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:119,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:119,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 136
    functionName: fu_rts54hub_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_memdup_safe
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_i2c_write(FuRts54HubDevice *self,\n\t\t\t
      \    guint32 sub_addr,\n\t\t\t     const guint8 *data,\n\t\t\t     gsize datasz,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:145,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:145,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 162
    functionName: fu_rts54hub_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_i2c_read(FuRts54HubDevice *self,\n\t\t\t
      \   guint32 sub_addr,\n\t\t\t    guint8 *data,\n\t\t\t    gsize datasz,\n\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:167,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: fu_rts54hub_device_highclockmode
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_highclockmode(FuRts54HubDevice *self, guint16
      value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:189,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:189,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54HubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: fu_rts54hub_device_reset_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_reset_flash(FuRts54HubDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:219,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:223,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:223,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:236,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 248
    functionName: fu_rts54hub_device_write_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_write_flash(FuRts54HubDevice *self,\n\t\t\t
      \      guint32 addr,\n\t\t\t       const guint8 *data,\n\t\t\t       gsize datasz,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:259,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:259,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:270,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 279
    functionName: fu_rts54hub_device_read_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_read_flash (FuRts54HubDevice *self,\n\t\t\t
      \      guint32 addr,\n\t\t\t       guint8 *data,\n\t\t\t       gsize datasz,\n\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:285,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:285,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54HubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 302
    functionName: fu_rts54hub_device_flash_authentication
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_flash_authentication(FuRts54HubDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:307,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:307,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - erase_type
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 324
    functionName: fu_rts54hub_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_erase_flash(FuRts54HubDevice *self, guint8
      erase_type, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:331,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:334,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuRts54HubDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 352
    functionName: fu_rts54hub_device_vendor_cmd
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_debug
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_vendor_cmd(FuRts54HubDevice *self, guint8
      value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:360,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:360,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:373,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54HubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 391
    functionName: fu_rts54hub_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_ensure_status(FuRts54HubDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:396,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:399,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:404,1
    - Dst: fu_rts54hub_device_ensure_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:407,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:412,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:416,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:420,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 5
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: fu_rts54hub_device_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_device_inhibit
    - g_prefix_error
    - fu_rts54hub_device_vendor_cmd
    - fu_device_uninhibit
    - fu_rts54hub_device_ensure_status
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:434,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:438,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:439,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 446
    functionName: fu_rts54hub_device_close
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_rts54hub_device_vendor_cmd
    - FU_DEVICE_CLASS
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_device_close(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:457,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:460,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:461,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:462,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:463,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:464,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:467,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:472,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:476,1
    - Dst: fu_rts54hub_device_erase_flash
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:481,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:483,1
    - Dst: fu_rts54hub_device_highclockmode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:486,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:487,1
    - Dst: fu_rts54hub_device_highclockmode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:492,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:493,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:498,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:506,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:509,1
    - Dst: fu_rts54hub_device_write_flash
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:514,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:515,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:516,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:517,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:522,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:526,1
    - Dst: fu_rts54hub_device_flash_authentication
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:529,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:531,1
    - Dst: fu_rts54hub_device_reset_flash
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:534,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:536,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:542,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 448
    functionDepth: 6
    functionLinenumber: 448
    functionLinenumberEnd: 544
    functionName: fu_rts54hub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - fu_rts54hub_device_reset_flash
    - g_prefix_error
    - fu_rts54hub_device_erase_flash
    - fu_rts54hub_device_write_flash
    - fu_rts54hub_device_highclockmode
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_rts54hub_device_flash_authentication
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_rts54hub_device_vendor_cmd
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:554,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:554,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:559,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:565,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 568
    functionName: fu_rts54hub_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_input_stream_read_u8
    - g_set_error_literal
    - g_autoptr
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_rts54hub_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:573,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:574,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:575,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:576,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:577,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 579
    functionName: fu_rts54hub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:584,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:585,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:586,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54HubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: fu_rts54hub_device_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_device_init(FuRts54HubDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54HubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 602
    functionName: fu_rts54hub_device_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_device_class_init(FuRts54HubDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:44,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:44,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:50,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:55,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:56,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:56,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:62,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:66,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxForeground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_prefix_error
    - g_strdup_printf
    - fu_rts54hub_rtd21xx_device_i2c_read
    - FU_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked(FuRts54hubRtd21xxForeground
      *self,\n\t\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:75,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:81,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxForeground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: fu_rts54hub_rtd21xx_foreground_detach_raw
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_prefix_error
    - FU_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_detach_raw(FuRts54hubRtd21xxForeground
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:92,1
    - Dst: fu_rts54hub_rtd21xx_foreground_detach_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:95,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:97,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: fu_rts54hub_rtd21xx_foreground_detach_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    - fu_rts54hub_rtd21xx_device_read_status_raw
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_foreground_detach_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_detach_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:117,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:118,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:121,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: fu_rts54hub_rtd21xx_foreground_detach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:130,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:130,1
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:133,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:136,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:141,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:141,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:143,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:149,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 159
    functionName: fu_rts54hub_rtd21xx_foreground_attach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_rts54hub_rtd21xx_device_i2c_write
    - fu_rts54hub_rtd21xx_device_read_status
    - g_prefix_error
    - g_autoptr
    - fu_device_locker_new
    - FU_RTS54HUB_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_get_parent
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:164,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:164,1
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:167,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:170,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:174,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:174,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 186
    functionName: fu_rts54hub_rtd21xx_foreground_exit
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_prefix_error
    - g_autoptr
    - fu_device_locker_new
    - FU_RTS54HUB_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_get_parent
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_exit(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:192,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:195,1
    - Dst: fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: fu_rts54hub_rtd21xx_foreground_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
    - fu_device_locker_new_full
    - g_autoptr
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:211,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:212,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:215,1
    - Dst: fu_rts54hub_rtd21xx_foreground_setup
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: fu_rts54hub_rtd21xx_foreground_reload
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_device_locker_new
    - fu_rts54hub_rtd21xx_foreground_setup
    - fu_device_get_parent
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_reload(FuDevice *device, GError
      **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:235,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:238,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:241,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:242,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:245,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:250,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:257,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:263,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:266,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:266,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:271,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:271,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:277,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:282,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:283,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:283,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:293,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:302,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:305,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:312,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:315,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:315,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:321,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:324,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:324,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:329,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:330,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:339,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:342,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:350,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:353,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:356,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:356,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:360,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:360,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:363,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:364,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:366,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:368,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:373,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:373,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:375,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:377,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:380,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:380,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:383,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:383,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:389,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:392,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 83
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 396
    functionName: fu_rts54hub_rtd21xx_foreground_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_memread_uint32
    - fu_chunk_array_length
    - g_prefix_error
    - fu_memwrite_uint16
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    - fu_progress_step_done
    - g_autoptr
    - fu_device_locker_new
    - fu_chunk_array_index
    - fu_input_stream_read_safe
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_rts54hub_rtd21xx_device_i2c_write
    - fu_rts54hub_rtd21xx_device_read_status
    - fu_rts54hub_rtd21xx_device_i2c_read
    - FU_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_foreground_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     FwupdInstallFlags flags,\n\t\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxForeground*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: fu_rts54hub_rtd21xx_foreground_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_foreground_init(FuRts54hubRtd21xxForeground
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxForegroundClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 412
    functionName: fu_rts54hub_rtd21xx_foreground_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_foreground_class_init(FuRts54hubRtd21xxForegroundClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:45,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:45,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:51,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:54,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:54,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:60,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:65,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxBackground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: fu_rts54hub_rtd21xx_background_ensure_version_unlocked
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_prefix_error
    - g_strdup_printf
    - fu_rts54hub_rtd21xx_device_i2c_read
    - FU_DEVICE
    - FU_RTS54HUB_RTD21XX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_background_ensure_version_unlocked(FuRts54hubRtd21xxBackground
      *self,\n\t\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:75,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxBackground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: fu_rts54hub_rtd21xx_background_detach_raw
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_rts54hub_rtd21xx_device_i2c_write
    - FU_RTS54HUB_RTD21XX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_detach_raw(FuRts54hubRtd21xxBackground
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_BACKGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:90,1
    - Dst: fu_rts54hub_rtd21xx_background_detach_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:93,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:95,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: fu_rts54hub_rtd21xx_background_detach_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_rts54hub_rtd21xx_device_read_status_raw
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - fu_rts54hub_rtd21xx_background_detach_raw
    - FU_RTS54HUB_RTD21XX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_detach_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:115,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:116,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:119,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: fu_rts54hub_rtd21xx_background_detach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:133,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:133,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:135,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:139,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:148,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: fu_rts54hub_rtd21xx_background_attach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_prefix_error
    - fu_device_get_parent
    - g_autoptr
    - fu_device_locker_new
    - FU_RTS54HUB_RTD21XX_DEVICE
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_BACKGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:161,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:164,1
    - Dst: fu_rts54hub_rtd21xx_background_ensure_version_unlocked
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 175
    functionName: fu_rts54hub_rtd21xx_background_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_background_ensure_version_unlocked
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:180,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:181,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:184,1
    - Dst: fu_rts54hub_rtd21xx_background_setup
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: fu_rts54hub_rtd21xx_background_reload
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_background_setup
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    - FU_RTS54HUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_reload(FuDevice *device, GError
      **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_BACKGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:204,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:207,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:208,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:209,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:210,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:211,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:214,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:219,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:225,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:225,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:231,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:236,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:237,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:237,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:243,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:247,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:256,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:259,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:266,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:269,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:269,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:275,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:278,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:278,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:283,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:284,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:290,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:293,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:296,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:304,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:307,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:310,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:310,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:314,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:314,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:317,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:318,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:320,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:322,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:327,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:327,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:329,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:331,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:334,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:334,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:337,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:337,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:343,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:348,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:348,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:350,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 354
    functionName: fu_rts54hub_rtd21xx_background_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_memread_uint32
    - fu_chunk_array_length
    - g_prefix_error
    - fu_memwrite_uint16
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_device_locker_new
    - fu_chunk_array_index
    - fu_input_stream_read_safe
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_rts54hub_rtd21xx_device_i2c_write
    - fu_rts54hub_rtd21xx_device_read_status
    - fu_rts54hub_rtd21xx_device_i2c_read
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_background_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     FwupdInstallFlags flags,\n\t\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxBackground*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: fu_rts54hub_rtd21xx_background_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_background_init(FuRts54hubRtd21xxBackground
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxBackgroundClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: fu_rts54hub_rtd21xx_background_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_background_class_init(FuRts54hubRtd21xxBackgroundClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54HubPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_rts54hub_plugin_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_plugin_init(FuRts54HubPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:28,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_rts54hub_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:35,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:36,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:37,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:38,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:39,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:40,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:41,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:42,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: fu_rts54hub_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:49,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54HubPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: fu_rts54hub_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_plugin_class_init(FuRts54HubPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 1373
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:32,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: fu_rts54hub_rtd21xx_device_to_string
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    - FU_RTS54HUB_RTD21XX_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_to_string(FuDevice *module, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:44,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: fu_rts54hub_rtd21xx_device_get_parent
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_DEVICE
    - FU_RTS54HUB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: FuRts54HubDevice
    signature: 'FuRts54HubDevice *

      fu_rts54hub_rtd21xx_device_get_parent(FuRts54hubRtd21xxDevice *self, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:56,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:57,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:61,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:62,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:69,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:70,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:82,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:83,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: fu_rts54hub_rtd21xx_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t\tconst
      gchar *key,\n\t\t\t\t\tconst gchar *value,\n\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:106,1
    - Dst: fu_rts54hub_rtd21xx_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:108,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:111,1
    - Dst: fu_rts54hub_device_i2c_config
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:115,1
    - Dst: fu_rts54hub_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:123,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:124,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 129
    functionName: fu_rts54hub_rtd21xx_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 9
    functionsReached:
    - fu_rts54hub_rtd21xx_device_get_parent
    - g_prefix_error
    - fu_rts54hub_device_vendor_cmd
    - fu_rts54hub_device_i2c_config
    - FU_DEVICE
    - GET_PRIVATE
    - fu_rts54hub_device_i2c_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_i2c_write(FuRts54hubRtd21xxDevice
      *self,\n\t\t\t\t     guint8 target_addr,\n\t\t\t\t     guint8 sub_addr,\n\t\t\t\t
      \    const guint8 *data,\n\t\t\t\t     gsize datasz,\n\t\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:140,1
    - Dst: fu_rts54hub_rtd21xx_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:142,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:145,1
    - Dst: fu_rts54hub_device_i2c_config
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:148,1
    - Dst: fu_rts54hub_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 161
    functionName: fu_rts54hub_rtd21xx_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 4
    functionsReached:
    - fu_rts54hub_rtd21xx_device_get_parent
    - g_prefix_error
    - fu_rts54hub_device_vendor_cmd
    - fu_rts54hub_device_i2c_read
    - fu_rts54hub_device_i2c_config
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_i2c_read(FuRts54hubRtd21xxDevice
      *self,\n\t\t\t\t    guint8 target_addr,\n\t\t\t\t    guint8 sub_addr,\n\t\t\t\t
      \   guint8 *data,\n\t\t\t\t    gsize datasz,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 179
    functionName: fu_rts54hub_rtd21xx_device_read_status_raw
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 2
    functionsReached:
    - fu_rts54hub_rtd21xx_device_i2c_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_read_status_raw(FuRts54hubRtd21xxDevice
      *self,\n\t\t\t\t\t   guint8 *status,\n\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:184,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: fu_rts54hub_rtd21xx_device_read_status_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_device_read_status_raw
    - FU_RTS54HUB_RTD21XX_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_device_read_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: fu_rts54hub_rtd21xx_device_read_status
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 3
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_read_status(FuRts54hubRtd21xxDevice
      *self,\n\t\t\t\t       guint8 *status,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:210,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:211,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:212,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:213,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:214,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:215,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:216,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:217,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:218,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: fu_rts54hub_rtd21xx_device_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_init(FuRts54hubRtd21xxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: fu_rts54hub_rtd21xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_class_init(FuRts54hubRtd21xxDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:80,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: fu_dell_dock_hid_set_report_cb
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_set_report_cb(FuDevice *self, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - outbuffer
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: fu_dell_dock_hid_set_report
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_set_report(FuDevice *self, guint8 *outbuffer,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:103,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: fu_dell_dock_hid_get_report_cb
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_get_report_cb(FuDevice *self, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - inbuffer
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: fu_dell_dock_hid_get_report
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_get_report(FuDevice *self, guint8 *inbuffer,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:133,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:138,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:139,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:143,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:147,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:148,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 151
    functionName: fu_dell_dock_hid_get_hub_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_dell_dock_hid_get_report
    - g_prefix_error
    - g_strdup_printf
    - fu_dell_dock_hid_set_report
    - GUINT16_TO_LE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_get_hub_version(FuDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:168,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: fu_dell_dock_hid_raise_mcu_clock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hid_set_report
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_raise_mcu_clock(FuDevice *self, gboolean
      enable, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:191,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 197
    functionName: fu_dell_dock_hid_erase_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hid_set_report
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_erase_bank(FuDevice *self, guint8 idx, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:209,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:215,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:217,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:218,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - dwAddr
    - input
    - write_size
    - error
    argTypes:
    - FuDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: fu_dell_dock_hid_write_flash
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - memcpy
    - g_prefix_error
    - GUINT32_TO_LE
    - fu_dell_dock_hid_set_report
    - GUINT16_TO_LE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_write_flash(FuDevice *self,\n\t\t\t     guint32
      dwAddr,\n\t\t\t     const guint8 *input,\n\t\t\t     gsize write_size,\n\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:239,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:244,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:245,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - result
    - error
    argTypes:
    - FuDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 255
    functionName: fu_dell_dock_hid_verify_update
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - GUINT16_TO_LE
    - fu_dell_dock_hid_set_report
    - fu_dell_dock_hid_get_report
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_verify_update(FuDevice *self, gboolean *result,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:268,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:275,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:277,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - input
    - write_size
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 280
    functionName: fu_dell_dock_hid_i2c_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GUINT16_TO_LE
    - g_return_val_if_fail
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_i2c_write(FuDevice *self,\n\t\t\t   const
      guint8 *input,\n\t\t\t   gsize write_size,\n\t\t\t   const FuHIDI2CParameters
      *parameters,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:293,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:303,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:304,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:306,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:308,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - cmd
    - read_size
    - bytes
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint32
    - gsize
    - GBytes**
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 314
    functionName: fu_dell_dock_hid_i2c_read
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hid_get_report
    - GUINT32_TO_LE
    - fu_dell_dock_hid_set_report
    - g_bytes_new
    - GUINT16_TO_LE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_i2c_read(FuDevice *self,\n\t\t\t  guint32
      cmd,\n\t\t\t  gsize read_size,\n\t\t\t  GBytes **bytes,\n\t\t\t  const FuHIDI2CParameters
      *parameters,\n\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:331,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - parameters
    - error
    argTypes:
    - FuDevice*
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 341
    functionName: fu_dell_dock_hid_tbt_wake
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hid_set_report
    - g_prefix_error
    - fu_dell_dock_hid_get_report
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_tbt_wake(FuDevice *self, const FuHIDI2CParameters
      *parameters, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:347,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:349,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - code
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: fu_dell_dock_hid_tbt_map_error
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - fwupd_strerror
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_hid_tbt_map_error(guint32 code)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:373,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:374,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:376,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:379,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:380,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:383,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:384,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:393,1
    - Dst: fu_dell_dock_hid_tbt_map_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - self
    - start_addr
    - input
    - write_size
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint32
    - guint8*
    - gsize
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 403
    functionName: fu_dell_dock_hid_tbt_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dell_dock_hid_get_report
    - g_debug
    - memcpy
    - g_prefix_error
    - GUINT32_TO_LE
    - fu_dell_dock_hid_set_report
    - fu_dell_dock_hid_tbt_map_error
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_tbt_write(FuDevice *self,\n\t\t\t   guint32
      start_addr,\n\t\t\t   const guint8 *input,\n\t\t\t   gsize write_size,\n\t\t\t
      \  const FuHIDI2CParameters *parameters,\n\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:415,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:421,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:422,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:427,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:429,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:431,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:432,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:435,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:442,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:446,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:449,1
    - Dst: fu_dell_dock_hid_tbt_map_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - parameters
    - error
    argTypes:
    - FuDevice*
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 458
    functionName: fu_dell_dock_hid_tbt_authenticate
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dell_dock_hid_get_report
    - g_debug
    - g_prefix_error
    - GUINT32_TO_LE
    - fu_dell_dock_hid_set_report
    - fu_dell_dock_hid_tbt_map_error
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_tbt_authenticate(FuDevice *self,\n\t\t\t\t
      \ const FuHIDI2CParameters *parameters,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:34,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:36,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: fu_dell_dock_plugin_create_node
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_add
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_plugin_create_node(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:50,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:53,1
    - Dst: fu_dell_dock_ec_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:56,1
    - Dst: fu_dell_dock_plugin_create_node
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:57,1
    - Dst: fu_dell_dock_hid_get_hub_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:61,1
    - Dst: fu_dell_dock_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:65,1
    - Dst: fu_dell_dock_mst_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:68,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:69,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:71,1
    - Dst: fu_dell_dock_plugin_create_node
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:72,1
    - Dst: fu_dell_dock_ec_module_is_usb4
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:76,1
    - Dst: fu_dell_dock_status_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:77,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:78,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:80,1
    - Dst: fu_dell_dock_plugin_create_node
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:81,1
    - Dst: fu_dell_dock_ec_needs_tbt
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:86,1
    - Dst: fu_dell_dock_tbt_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:86,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:87,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:88,1
    - Dst: fu_dell_dock_plugin_create_node
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - plugin
    - proxy
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 94
    functionName: fu_dell_dock_plugin_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_get_context
    - fu_dell_dock_ec_new
    - fu_device_add_instance_id
    - fu_dell_dock_ec_needs_tbt
    - FU_DEVICE
    - fu_dell_dock_mst_new
    - fu_dell_dock_ec_module_is_usb4
    - fu_dell_dock_tbt_new
    - g_autoptr
    - fu_dell_dock_hid_get_hub_version
    - fu_dell_dock_plugin_create_node
    - fu_device_probe
    - fu_dell_dock_status_new
    - fu_dell_dock_ec_get_dock_type
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_plugin_probe(FuPlugin *plugin, FuDevice *proxy,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:102,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:104,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:106,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: fu_dell_dock_plugin_get_ec
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - FU_IS_DELL_DOCK_EC
    - fu_device_get_parent
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_dell_dock_plugin_get_ec(GPtrArray *devices)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:121,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:129,1
    - Dst: fu_dell_dock_hub_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:132,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:132,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:133,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:138,1
    - Dst: fu_dell_dock_plugin_probe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:139,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:144,1
    - Dst: fu_dell_dock_plugin_get_ec
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:145,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:147,1
    - Dst: fu_dell_dock_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:152,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:154,1
    - Dst: fu_dell_dock_hub_add_instance
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:160,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:161,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:164,1
    - Dst: fu_dell_dock_hub_add_instance
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:166,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:167,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 171
    functionName: fu_dell_dock_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hub_add_instance
    - g_set_error
    - fu_plugin_get_devices
    - fu_dell_dock_plugin_get_ec
    - fu_dell_dock_plugin_probe
    - fu_plugin_cache_add
    - fu_plugin_device_add
    - fu_dell_dock_hub_new
    - fu_plugin_cache_lookup
    - fu_device_has_private_flag
    - fu_plugin_cache_remove
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - fu_dell_dock_ec_get_dock_type
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t\t
      FuDevice *device,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:176,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:177,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:181,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:182,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:183,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:185,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:186,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 190
    functionName: fu_dell_dock_plugin_separate_activation
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_cache_lookup
    - fu_device_has_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_get_name
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_separate_activation(FuPlugin *plugin)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:196,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:197,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:198,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:200,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:201,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:202,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:204,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:205,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:208,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:208,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:209,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:211,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:212,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:213,1
    - Dst: fu_dell_dock_plugin_separate_activation
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 219
    functionName: fu_dell_dock_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - fu_dell_dock_plugin_separate_activation
    - fu_device_has_guid
    - fu_plugin_cache_add
    - fu_device_add_private_flag
    - fu_device_inhibit
    - g_strdup_printf
    - FU_IS_DELL_DOCK_EC
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:226,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:229,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:230,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:231,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:231,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:231,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 236
    functionName: fu_dell_dock_plugin_backend_device_removed
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_get_id
    - fu_plugin_device_remove
    - FU_IS_USB_DEVICE
    - FU_IS_DELL_DOCK_EC
    - fu_device_get_parent
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_plugin_backend_device_removed(FuPlugin *plugin,
      FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_plugin_get_ec
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:241,1
    - Dst: fu_dell_dock_ec_get_module_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:245,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: fu_dell_dock_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_plugin_get_ec
    - fu_dell_dock_ec_get_module_type
    - fu_plugin_add_report_metadata
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_plugin_composite_prepare(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_plugin_get_ec
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:257,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:265,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:266,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:266,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:267,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:267,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:268,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:268,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:269,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:272,1
    - Dst: fu_dell_dock_ec_tbt_passive
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:273,1
    - Dst: fu_dell_dock_plugin_separate_activation
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:282,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:284,1
    - Dst: fu_dell_dock_ec_reboot_dock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:288,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:296,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:296,1
    - Dst: fu_device_activate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:297,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 302
    functionName: fu_dell_dock_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_plugin_get_ec
    - fu_dell_dock_plugin_separate_activation
    - fu_progress_new
    - fu_device_activate
    - fu_dell_dock_ec_tbt_passive
    - fu_dell_dock_ec_reboot_dock
    - g_ptr_array_index
    - fu_device_has_flag
    - g_autoptr
    - fu_device_locker_new
    - g_strcmp0
    - fu_device_get_plugin
    - fu_device_locker_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:307,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: fu_dell_dock_plugin_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_init(FuDellDockPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:313,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:314,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:315,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:316,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:317,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:318,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:319,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:320,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:321,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:322,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:323,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:326,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:327,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:328,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:329,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:330,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:331,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: fu_dell_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: fu_dell_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_class_init(FuDellDockPluginClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - bank
    - out
    - error
    argTypes:
    - MSTBank
    - MSTBankAttributes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: fu_dell_dock_mst_get_bank_attribs
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_get_bank_attribs(MSTBank bank, const MSTBankAttributes
      **out, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:201,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:204,1
    - Dst: fu_dell_dock_hid_i2c_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - proxy
    - address
    - length
    - bytes
    - error
    argTypes:
    - FuDevice*
    - guint32
    - gsize
    - GBytes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 212
    functionName: fu_dell_dock_mst_read_register
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_dell_dock_hid_i2c_read
    - fu_dell_dock_hid_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_read_register(FuDevice *proxy,\n\t\t\t       guint32
      address,\n\t\t\t       gsize length,\n\t\t\t       GBytes **bytes,\n\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:224,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:226,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:227,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - address
    - data
    - length
    - error
    argTypes:
    - FuDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: fu_dell_dock_mst_write_register
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - memcpy
    - g_return_val_if_fail
    - fu_dell_dock_hid_i2c_write
    - g_malloc0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_register(FuDevice *proxy,\n\t\t\t\tguint32
      address,\n\t\t\t\tguint8 *data,\n\t\t\t\tgsize length,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:236,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:240,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:245,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - proxy
    - active
    - error
    argTypes:
    - FuDevice*
    - MSTBank*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: fu_dell_dock_mst_query_active_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - fu_dell_dock_mst_read_register
    - g_autoptr
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_query_active_bank(FuDevice *proxy, MSTBank
      *active, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:262,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: fu_dell_dock_mst_disable_remote_control
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_disable_remote_control(FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:277,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:284,1
    - Dst: fu_dell_dock_mst_disable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:286,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: fu_dell_dock_mst_enable_remote_control
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_dell_dock_mst_rc_command
    - g_autoptr
    - fu_dell_dock_mst_enable_remote_control
    - fu_dell_dock_mst_disable_remote_control
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_enable_remote_control(FuDevice *device, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:297,1
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:298,1
    - Dst: fu_dell_dock_mst_write_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:303,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:314,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:315,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:320,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:323,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:329,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:329,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:334,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:337,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:340,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:346,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 363
    functionName: fu_dell_dock_mst_trigger_rc_command
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - g_prefix_error
    - fu_dell_dock_mst_write_register
    - fu_dell_dock_mst_read_register
    - FU_DELL_DOCK_MST
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_dell_dock_mst_enable_remote_control
    - g_bytes_get_data
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_trigger_rc_command(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:374,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:375,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:377,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:380,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:384,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:386,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:388,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:391,1
    - Dst: fu_dell_dock_mst_write_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:394,1
    - Dst: fu_dell_dock_mst_trigger_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - device
    - cmd
    - length
    - offset
    - data
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint32
    - guint32
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 402
    functionName: fu_dell_dock_mst_rc_command
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 2
    functionsReached:
    - fu_device_get_proxy
    - memcpy
    - fu_dell_dock_mst_trigger_rc_command
    - fu_dell_dock_mst_write_register
    - g_malloc0
    - FU_DELL_DOCK_MST
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_rc_command(FuDevice *device,\n\t\t\t    guint8
      cmd,\n\t\t\t    guint32 length,\n\t\t\t    guint32 offset,\n\t\t\t    const
      guint8 *data,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: fu_dell_dock_mst_get_module_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_MST
    linkageType: ''
    returnType: MSTType
    signature: MSTType fu_dell_dock_mst_get_module_type(FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - byte
    - offset
    argTypes:
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: fu_dell_dock_mst_check_offset
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_check_offset(guint8 byte, guint8 offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:423,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:427,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:427,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:433,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:435,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:435,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:436,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:437,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:437,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:438,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:438,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:440,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:441,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:443,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:444,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:445,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 449
    functionName: fu_dell_dock_mst_d19_check_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_debug
    - fu_dell_dock_mst_read_register
    - FU_DELL_DOCK_MST
    - fu_dell_dock_mst_check_offset
    - g_autoptr
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_d19_check_fw(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - length
    - payload_data
    argTypes:
    - guint8
    - guint32
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 516
    functionName: fu_dell_dock_mst_get_crc
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dell_dock_mst_get_crc(guint8 type, guint32 length, const
      guint8 *payload_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:526,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:529,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:533,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:534,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:536,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:541,1
    - Dst: fu_dell_dock_mst_get_crc
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:553,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:559,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:562,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:568,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:572,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:572,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:578,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:579,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - device
    - blob_fw
    - bank
    - checksum
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - MSTBank
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 518
    functionDepth: 8
    functionLinenumber: 518
    functionLinenumberEnd: 586
    functionName: fu_dell_dock_mst_checksum_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_proxy
    - g_debug
    - fu_dell_dock_mst_rc_command
    - g_prefix_error
    - fu_dell_dock_mst_read_register
    - FU_DELL_DOCK_MST
    - GUINT32_FROM_LE
    - g_autoptr
    - fu_dell_dock_mst_get_bank_attribs
    - g_return_val_if_fail
    - fu_dell_dock_mst_get_crc
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_checksum_bank(FuDevice *device,\n\t\t\t
      \      GBytes *blob_fw,\n\t\t\t       MSTBank bank,\n\t\t\t       gboolean *checksum,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:594,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:599,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:600,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:606,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:610,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - bank
    - error
    argTypes:
    - FuDevice*
    - MSTBank
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 588
    functionDepth: 8
    functionLinenumber: 588
    functionLinenumberEnd: 614
    functionName: fu_dell_dock_mst_erase_panamera_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_dell_dock_mst_rc_command
    - g_prefix_error
    - fu_dell_dock_mst_get_bank_attribs
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_erase_panamera_bank(FuDevice *device, MSTBank
      bank, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:623,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:629,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:633,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 616
    functionDepth: 8
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: fu_dell_dock_mst_erase_cayenne
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - g_debug
    - fu_device_sleep
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_erase_cayenne(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:649,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:651,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:653,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:657,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:659,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:665,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - device
    - blob_fw
    - bank
    - progress
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - MSTBank
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 639
    functionDepth: 8
    functionLinenumber: 639
    functionLinenumberEnd: 675
    functionName: fu_dell_dock_mst_write_flash_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - g_debug
    - fu_dell_dock_mst_rc_command
    - g_prefix_error
    - fu_dell_dock_mst_get_bank_attribs
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_flash_bank(FuDevice *device,\n\t\t\t\t
      \ GBytes *blob_fw,\n\t\t\t\t  MSTBank bank,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:681,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:688,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:697,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:700,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:708,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:708,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:715,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:716,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:718,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:727,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:735,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:735,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:742,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:743,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:745,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 677
    functionDepth: 8
    functionLinenumber: 677
    functionLinenumberEnd: 754
    functionName: fu_dell_dock_mst_stop_esm
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - memcpy
    - fu_dell_dock_mst_rc_command
    - fu_dell_dock_mst_read_register
    - g_autoptr
    - g_bytes_get_data
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_stop_esm(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:760,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:766,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:767,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:774,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:775,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:778,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:778,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:785,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:786,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:789,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:794,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:798,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:804,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:810,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:813,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:819,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:824,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:830,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:833,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:833,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:840,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:841,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:849,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - device
    - bank_in_use
    - error
    argTypes:
    - FuDevice*
    - MSTBank
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 756
    functionDepth: 8
    functionLinenumber: 756
    functionLinenumberEnd: 860
    functionName: fu_dell_dock_mst_invalidate_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_dell_dock_mst_rc_command
    - fu_dell_dock_mst_read_register
    - g_autoptr
    - fu_dell_dock_mst_get_bank_attribs
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_invalidate_bank(FuDevice *device, MSTBank
      bank_in_use, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:874,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:875,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:876,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:877,1
    - Dst: fu_dell_dock_mst_erase_panamera_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:879,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:881,1
    - Dst: fu_dell_dock_mst_write_flash_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:883,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:886,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:889,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:891,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:894,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:895,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:898,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:900,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - device
    - fw
    - bank
    - progress
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 862
    functionDepth: 9
    functionLinenumber: 862
    functionLinenumberEnd: 907
    functionName: fu_dell_dock_mst_write_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - fu_progress_get_child
    - g_debug
    - fu_dell_dock_mst_checksum_bank
    - fu_progress_reset
    - fu_progress_add_step
    - fu_dell_dock_mst_erase_panamera_bank
    - fu_dell_dock_mst_write_flash_bank
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_bank(FuDevice *device,\n\t\t\t    GBytes
      *fw,\n\t\t\t    guint8 bank,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:913,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:914,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - progress
    - steps
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 909
    functionDepth: 4
    functionLinenumber: 909
    functionLinenumberEnd: 918
    functionName: fu_dell_dock_mst_set_local_progress
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_progress_set_steps
    linkageType: ''
    returnType: FuProgress
    signature: 'FuProgress *

      fu_dell_dock_mst_set_local_progress(FuProgress *progress, guint steps)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:932,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:933,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:934,1
    - Dst: fu_dell_dock_mst_query_active_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:936,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:936,1
    - Dst: fu_dell_dock_mst_stop_esm
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:942,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:944,1
    - Dst: fu_dell_dock_mst_set_local_progress
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:946,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:949,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:950,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:953,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:954,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:957,1
    - Dst: fu_dell_dock_mst_write_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:958,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:961,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:964,1
    - Dst: fu_dell_dock_mst_invalidate_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:967,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:968,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - device
    - fw
    - flags
    - progress
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - FwupdInstallFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 920
    functionDepth: 10
    functionLinenumber: 920
    functionLinenumberEnd: 974
    functionName: fu_dell_dock_mst_write_panamera
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_dell_dock_mst_query_active_bank
    - fu_progress_step_done
    - g_debug
    - fu_progress_get_child
    - fu_dell_dock_mst_checksum_bank
    - g_prefix_error
    - fu_progress_add_step
    - fu_dell_dock_mst_set_local_progress
    - fu_dell_dock_mst_write_bank
    - fu_dell_dock_mst_invalidate_bank
    - fu_progress_set_id
    - fu_dell_dock_mst_stop_esm
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_panamera(FuDevice *device,\n\t\t\t\tGBytes
      *fw,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:986,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:987,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:988,1
    - Dst: fu_dell_dock_mst_erase_cayenne
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:991,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:993,1
    - Dst: fu_dell_dock_mst_write_flash_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:994,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:997,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1000,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1002,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1004,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1005,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1012,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1016,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1018,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - device
    - fw
    - flags
    - progress
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - FwupdInstallFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 976
    functionDepth: 9
    functionLinenumber: 976
    functionLinenumberEnd: 1026
    functionName: fu_dell_dock_mst_write_cayenne
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - fu_progress_get_child
    - g_debug
    - fu_dell_dock_mst_checksum_bank
    - fu_progress_reset
    - fu_dell_dock_mst_rc_command
    - fu_progress_add_step
    - g_bytes_get_size
    - fu_dell_dock_mst_erase_cayenne
    - g_prefix_error
    - fu_dell_dock_mst_write_flash_bank
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_cayenne(FuDevice *device,\n\t\t\t
      \      GBytes *fw,\n\t\t\t       FwupdInstallFlags flags,\n\t\t\t       FuProgress
      *progress,\n\t\t\t       GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1035,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1038,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1041,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1042,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1042,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1043,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1043,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1046,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1046,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1050,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1054,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1057,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1059,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1063,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1066,1
    - Dst: fu_dell_dock_mst_get_module_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1069,1
    - Dst: fu_dell_dock_mst_write_panamera
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1071,1
    - Dst: fu_dell_dock_mst_write_cayenne
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1074,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1077,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1082,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1083,1
    - Dst: fu_dell_dock_mst_disable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1086,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1028
    functionDepth: 11
    functionLinenumber: 1028
    functionLinenumberEnd: 1087
    functionName: fu_dell_dock_mst_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - g_return_val_if_fail
    - fu_device_get_proxy
    - fu_dell_dock_mst_write_panamera
    - g_set_error
    - fu_device_set_version
    - fu_device_open
    - FU_DELL_DOCK_MST
    - FU_IS_FIRMWARE
    - fu_dell_dock_mst_write_cayenne
    - fu_dell_dock_mst_disable_remote_control
    - g_info
    - fu_dell_dock_mst_get_module_type
    - g_autoptr
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_device_set_version_format
    - g_strdup_printf
    - fu_dell_dock_mst_enable_remote_control
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_fw(FuDevice *device,\n\t\t\t  FuFirmware
      *firmware,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1095,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1098,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1099,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1104,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1110,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1111,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1116,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1122,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1123,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1125,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1135
    functionName: fu_dell_dock_mst_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_MST
    - g_set_error_literal
    - g_strcmp0
    - fu_device_set_install_duration
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_set_quirk_kv(FuDevice *device,\n\t\t\t      const
      gchar *key,\n\t\t\t      const gchar *value,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_mst_d19_check_fw
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1144,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1148,1
    - Dst: fu_dell_dock_ec_get_mst_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1149,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1151,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1137
    functionDepth: 7
    functionLinenumber: 1137
    functionLinenumberEnd: 1156
    functionName: fu_dell_dock_mst_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_format
    - fu_dell_dock_mst_d19_check_fw
    - fu_dell_dock_ec_get_mst_version
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1161,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1164,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1173,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1174,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1181,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1182,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1158
    functionDepth: 6
    functionLinenumber: 1158
    functionLinenumberEnd: 1193
    functionName: fu_dell_dock_mst_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_add_instance_id
    - fu_device_set_logical_id
    - FU_DELL_DOCK_MST
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1198,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1202,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1204,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1205,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1205,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1207,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1207,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1195
    functionDepth: 7
    functionLinenumber: 1195
    functionLinenumberEnd: 1215
    functionName: fu_dell_dock_mst_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - fu_device_get_proxy
    - fu_device_set_proxy
    - fu_device_open
    - FU_DELL_DOCK_MST
    - fu_device_get_parent
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1220,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1223,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1226,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1217
    functionDepth: 5
    functionLinenumber: 1217
    functionLinenumberEnd: 1227
    functionName: fu_dell_dock_mst_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - fu_device_get_proxy
    - fu_device_close
    - FU_DELL_DOCK_MST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1232,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1238
    functionName: fu_dell_dock_mst_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_mst_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1243,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockMst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 6
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: fu_dell_dock_mst_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_mst_init(FuDellDockMst *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockMstClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1258
    functionName: fu_dell_dock_mst_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_mst_class_init(FuDellDockMstClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - dock_type
    argTypes:
    - FuContext*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1267
    functionName: fu_dell_dock_mst_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDellDockMst
    signature: 'FuDellDockMst *

      fu_dell_dock_mst_new(FuContext *ctx, guint8 dock_type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:35,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:36,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:37,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:39,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:40,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:41,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - dock_type
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: fu_dell_dock_hub_add_instance
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 1
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_device_get_vid
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_hub_add_instance(FuDevice *device, guint8 dock_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:49,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: fu_dell_dock_hub_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_device_set_logical_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hub_probe(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_HUB
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:73,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:73,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:76,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:77,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:78,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:79,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:82,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:85,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:88,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:91,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:93,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:96,1
    - Dst: fu_dell_dock_hid_erase_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:100,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:102,1
    - Dst: fu_dell_dock_hid_write_flash
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:110,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:115,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:115,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:117,1
    - Dst: fu_dell_dock_hid_verify_update
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:120,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:123,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:129,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:132,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 135
    functionName: fu_dell_dock_hub_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - fu_dell_dock_hid_verify_update
    - g_return_val_if_fail
    - fu_progress_set_percentage_full
    - fu_device_set_version
    - fu_progress_get_child
    - fu_dell_dock_hid_erase_bank
    - fu_progress_add_step
    - FU_IS_FIRMWARE
    - fu_progress_set_id
    - fu_dell_dock_hid_raise_mcu_clock
    - g_info
    - fu_progress_step_done
    - g_autoptr
    - FU_DELL_DOCK_HUB
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_device_set_version_format
    - g_strdup_printf
    - g_set_error_literal
    - fu_dell_dock_hid_write_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hub_write_fw(FuDevice *device,\n\t\t\t  FuFirmware
      *firmware,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:141,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:145,1
    - Dst: fu_dell_dock_hid_get_hub_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: fu_dell_dock_hub_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_hid_get_hub_version
    - FU_DEVICE_CLASS
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hub_setup(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_HUB
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:157,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:160,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:166,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:167,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:172,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: fu_dell_dock_hub_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_strtoull
    - FU_DELL_DOCK_HUB
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hub_set_quirk_kv(FuDevice *device,\n\t\t\t      const
      gchar *key,\n\t\t\t      const gchar *value,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:190,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:191,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:192,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:193,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:194,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: fu_dell_dock_hub_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_hub_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:201,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:202,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:203,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockHub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: fu_dell_dock_hub_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_hub_init(FuDellDockHub *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockHubClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: fu_dell_dock_hub_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_hub_class_init(FuDellDockHubClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:221,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: fu_dell_dock_hub_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDellDockHub
    signature: 'FuDellDockHub *

      fu_dell_dock_hub_new(FuUsbDevice *device)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:25,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:27,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:29,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:29,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:32,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:36,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:40,1
    - Dst: fu_dell_dock_ec_modify_lock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - device
    - target
    - enabled
    - error
    argTypes:
    - FuDevice*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: fu_dell_dock_set_power
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - fu_device_locker_new
    - fu_dell_dock_ec_modify_lock
    - fu_device_get_name
    - FU_IS_DELL_DOCK_EC
    - g_autoptr
    - g_return_val_if_fail
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_set_power(FuDevice *device, guint8 target, gboolean
      enabled, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - index
    argTypes:
    - guint8*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: fu_dell_dock_ec_test_valid_byte
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_test_valid_byte(const guint8 *str, gint index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:163,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:167,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:168,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: fu_dell_dock_ec_set_board
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - fu_device_get_metadata
    - FU_DELL_DOCK_EC
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_set_board(FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fu_dell_dock_ec_module_is_usb4
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_module_is_usb4(FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: fu_dell_dock_ec_get_dock_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 2
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dell_dock_ec_get_dock_type(FuDevice *device)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: fu_dell_dock_ec_get_module_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_module_type(FuDevice *device)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:216,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: fu_dell_dock_ec_needs_tbt
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - g_info
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_needs_tbt(FuDevice *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: fu_dell_dock_ec_tbt_passive
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_tbt_passive(FuDevice *device)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - device_type
    - sub_type
    argTypes:
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: fu_dell_dock_ec_devicetype_to_str
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_devicetype_to_str(guint device_type, guint sub_type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:269,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:272,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:273,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:273,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:274,1
    - Dst: fu_dell_dock_hid_i2c_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:276,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:276,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:282,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:288,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - device
    - cmd
    - length
    - bytes
    - error
    argTypes:
    - FuDevice*
    - guint32
    - gsize
    - GBytes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 299
    functionName: fu_dell_dock_ec_read
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - fu_dell_dock_hid_i2c_read
    - g_prefix_error
    - g_autoptr
    - g_bytes_new
    - g_return_val_if_fail
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_read(FuDevice *device, guint32 cmd, gsize
      length, GBytes **bytes, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:304,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:305,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:306,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:308,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:308,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - device
    - length
    - data
    - error
    argTypes:
    - FuDevice*
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 301
    functionDepth: 5
    functionLinenumber: 301
    functionLinenumberEnd: 318
    functionName: fu_dell_dock_ec_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_return_val_if_fail
    - fu_dell_dock_hid_i2c_write
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_write(FuDevice *device, gsize length, guint8
      *data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:328,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:331,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:334,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:336,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:346,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:350,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 359
    functionName: fu_dell_dock_ec_is_valid_dock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_device_add_instance_id
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_dell_dock_ec_read
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_is_valid_dock(FuDevice *device, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:369,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:371,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:373,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:378,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:381,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:382,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:389,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:391,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:400,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:406,1
    - Dst: fu_dell_dock_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:415,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:418,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:424,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:433,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:438,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:439,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:440,1
    - Dst: fu_dell_dock_ec_test_valid_byte
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:445,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:447,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:451,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:455,1
    - Dst: fu_dell_dock_ec_test_valid_byte
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:461,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:463,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:468,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:471,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:473,1
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:484,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:486,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:498,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:499,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:504,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 506
    functionName: fu_dell_dock_ec_get_dock_info
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_return_val_if_fail
    - fu_device_get_install_duration
    - g_set_error
    - fu_device_set_version
    - g_debug
    - fu_device_add_private_flag
    - fu_dell_dock_ec_devicetype_to_str
    - g_info
    - GUINT32_TO_BE
    - g_autoptr
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    - g_warning
    - fu_device_set_version_format
    - fu_dell_dock_ec_test_valid_byte
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_dell_dock_ec_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_get_dock_info(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:513,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:520,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:523,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:528,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:534,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:535,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:539,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:542,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:545,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:547,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:549,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:552,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:555,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:557,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:558,1
    - Dst: fu_dell_dock_ec_get_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:564,1
    - Dst: fu_dell_dock_ec_set_board
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:570,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:571,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:573,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:574,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 508
    functionDepth: 6
    functionLinenumber: 508
    functionLinenumberEnd: 581
    functionName: fu_dell_dock_ec_get_dock_data
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_prefix_error
    - g_return_val_if_fail
    - g_set_error
    - fu_device_inhibit
    - fu_device_uninhibit
    - fu_device_add_flag
    - g_autoptr
    - fu_dell_dock_ec_set_board
    - fu_device_set_serial
    - fu_dell_dock_ec_get_status
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    - fu_device_add_problem
    - g_warning
    - memcpy
    - g_bytes_get_size
    - g_strdup_printf
    - g_set_error_literal
    - fu_dell_dock_ec_read
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_get_dock_data(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:586,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:589,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:590,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:591,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:592,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:593,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:594,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:595,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:596,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:597,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:601,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:602,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:606,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:607,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:608,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 610
    functionName: fu_dell_dock_ec_to_string
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - FU_DELL_DOCK_EC
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:618,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:619,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:626,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:627,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:630,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:633,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:634,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:637,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:639,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - device
    - target
    - unlocked
    - error
    argTypes:
    - FuDevice*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 612
    functionDepth: 6
    functionLinenumber: 612
    functionLinenumberEnd: 643
    functionName: fu_dell_dock_ec_modify_lock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - FU_BIT_CLEAR
    - g_debug
    - FU_BIT_SET
    - g_prefix_error
    - fu_dell_dock_ec_write
    - fu_device_get_name
    - fu_device_get_id
    - g_return_val_if_fail
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_modify_lock(FuDevice *device, guint8 target,
      gboolean unlocked, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:650,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 6
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: fu_dell_dock_ec_reset
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_dell_dock_ec_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_reset(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_ec_get_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:661,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:665,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:669,1
    - Dst: fu_dell_dock_ec_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 655
    functionDepth: 7
    functionLinenumber: 655
    functionLinenumberEnd: 674
    functionName: fu_dell_dock_ec_activate
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dell_dock_ec_get_status
    - fu_device_get_name
    - fu_dell_dock_ec_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_activate(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:684,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:686,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:688,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 676
    functionDepth: 6
    functionLinenumber: 676
    functionLinenumberEnd: 690
    functionName: fu_dell_dock_ec_reboot_dock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - g_info
    - fu_dell_dock_ec_write
    - fu_device_get_name
    - g_return_val_if_fail
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_reboot_dock(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:695,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:698,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:699,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:701,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:702,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:705,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - status_out
    - error
    argTypes:
    - FuDevice*
    - FuDellDockECFWUpdateStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 692
    functionDepth: 6
    functionLinenumber: 692
    functionLinenumberEnd: 716
    functionName: fu_dell_dock_ec_get_status
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 2
    functionsReached:
    - g_prefix_error
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_dell_dock_ec_read
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_get_status(FuDevice *device, FuDellDockECFWUpdateStatus
      *status_out, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 723
    functionName: fu_dell_dock_ec_get_tbt_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_tbt_version(FuDevice *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: fu_dell_dock_ec_get_mst_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_mst_version(FuDevice *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: fu_dell_dock_ec_get_status_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_dock_ec_get_status_version(FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:742,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:744,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:745,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:747,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:748,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:751,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:758,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:760,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:761,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:762,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:763,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:764,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:765,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:766,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:770,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:772,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - device
    - blob_fw
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 739
    functionDepth: 6
    functionLinenumber: 739
    functionLinenumberEnd: 778
    functionName: fu_dell_dock_ec_commit_package
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - memcpy
    - g_prefix_error
    - g_malloc0
    - fu_dell_dock_ec_write
    - g_return_val_if_fail
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_commit_package(FuDevice *device, GBytes *blob_fw,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:796,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:797,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:797,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:800,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:801,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:802,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:805,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:808,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:810,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:811,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:815,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:818,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:827,1
    - Dst: fu_dell_dock_ec_modify_lock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:828,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:831,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:831,1
    - Dst: fu_dell_dock_hid_erase_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:835,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:835,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:837,1
    - Dst: fu_dell_dock_hid_write_flash
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:845,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:845,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:850,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:853,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:853,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:858,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:860,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:860,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:864,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:865,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:869,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 780
    functionDepth: 7
    functionLinenumber: 780
    functionLinenumberEnd: 871
    functionName: fu_dell_dock_ec_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_version_compare
    - g_prefix_error
    - fu_dell_dock_ec_modify_lock
    - g_return_val_if_fail
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_device_set_version
    - fu_dell_dock_hid_erase_bank
    - fu_progress_add_step
    - FU_IS_FIRMWARE
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_dell_dock_hid_raise_mcu_clock
    - g_info
    - fu_progress_step_done
    - g_autoptr
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_device_set_version_format
    - g_strndup
    - fu_dell_dock_hid_write_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_ec_write_fw(FuDevice *device,\n\t\t\t FuFirmware
      *firmware,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:876,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:879,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:880,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:885,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:886,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:891,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:892,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:895,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:896,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:899,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:900,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:907,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 912
    functionName: fu_dell_dock_ec_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - fu_device_set_metadata
    - g_set_error_literal
    - g_strdup
    - g_strcmp0
    - FU_DELL_DOCK_EC
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_ec_get_dock_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:917,1
    - Dst: fu_dell_dock_ec_get_dock_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 914
    functionDepth: 7
    functionLinenumber: 914
    functionLinenumberEnd: 921
    functionName: fu_dell_dock_ec_query
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_ec_get_dock_data
    - fu_dell_dock_ec_get_dock_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_query(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:926,1
    - Dst: fu_dell_dock_ec_query
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:929,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:930,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:931,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:932,1
    - Dst: fu_dell_dock_ec_query
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:933,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:936,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 923
    functionDepth: 8
    functionLinenumber: 923
    functionLinenumberEnd: 941
    functionName: fu_dell_dock_ec_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_dell_dock_ec_query
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:946,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:949,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:950,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:954,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:954,1
    - Dst: fu_dell_dock_ec_is_valid_dock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 943
    functionDepth: 7
    functionLinenumber: 943
    functionLinenumberEnd: 959
    functionName: fu_dell_dock_ec_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_open
    - g_set_error_literal
    - fu_dell_dock_ec_is_valid_dock
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:965,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:966,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:969,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 5
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: fu_dell_dock_ec_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error_literal
    - fu_device_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:975,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:976,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:977,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:978,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:979,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:980,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:981,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 983
    functionName: fu_dell_dock_ec_finalize
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_DELL_DOCK_EC
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:988,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:989,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:990,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:991,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:992,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: fu_dell_dock_ec_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:999,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1000,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1001,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1001,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1002,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1003,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 996
    functionDepth: 6
    functionLinenumber: 996
    functionLinenumberEnd: 1004
    functionName: fu_dell_dock_ec_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_init(FuDellDockEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1009,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockEcClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1020
    functionName: fu_dell_dock_ec_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_class_init(FuDellDockEcClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1026,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1028,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1029,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1029,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1030,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1030,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1031,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 9
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: fu_dell_dock_ec_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    - fu_device_set_logical_id
    - FU_DEVICE
    linkageType: ''
    returnType: FuDellDockEc
    signature: 'FuDellDockEc *

      fu_dell_dock_ec_new(FuDevice *proxy)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:60,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:62,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:64,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:65,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:65,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:68,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:73,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:76,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:77,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:79,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:82,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:90,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:94,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:105,1
    - Dst: fu_dell_dock_hid_tbt_wake
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:106,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:106,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:108,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:110,1
    - Dst: fu_dell_dock_hid_tbt_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:115,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:115,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:123,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:125,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:125,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:127,1
    - Dst: fu_dell_dock_ec_tbt_passive
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:129,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:129,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:130,1
    - Dst: fu_dell_dock_hid_tbt_authenticate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:131,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:134,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:139,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 143
    functionName: fu_dell_dock_tbt_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_dell_dock_ec_tbt_passive
    - g_prefix_error
    - g_return_val_if_fail
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_device_get_proxy
    - g_debug
    - fu_device_set_version
    - fu_dell_dock_hid_tbt_wake
    - FU_IS_FIRMWARE
    - fu_device_get_parent
    - g_info
    - g_timer_elapsed
    - g_autoptr
    - fu_dell_dock_hid_tbt_authenticate
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_device_set_version_format
    - g_timer_new
    - FU_DELL_DOCK_TBT
    - memcpy
    - g_strdup_printf
    - fu_dell_dock_hid_tbt_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_tbt_write_fw(FuDevice *device,\n\t\t\t  FuFirmware
      *firmware,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:154,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:155,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:160,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:161,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:166,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:167,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:170,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:171,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:176,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:177,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 189
    functionName: fu_dell_dock_tbt_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_TBT
    - g_set_error_literal
    - g_strdup
    - g_strcmp0
    - fu_device_set_install_duration
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_tbt_set_quirk_kv(FuDevice *device,\n\t\t\t      const
      gchar *key,\n\t\t\t      const gchar *value,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:194,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:200,1
    - Dst: fu_dell_dock_ec_get_tbt_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:201,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:203,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:204,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:209,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:210,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:216,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:216,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:217,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: fu_dell_dock_tbt_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_format
    - fu_device_get_proxy
    - fu_device_get_version
    - FU_DELL_DOCK_TBT
    - fu_version_compare
    - fu_device_set_update_error
    - fu_dell_dock_ec_get_tbt_version
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:231,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:235,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:239,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:240,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:241,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 9
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: fu_dell_dock_tbt_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_add_instance_id
    - fu_device_set_logical_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:253,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:255,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:255,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 7
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: fu_dell_dock_tbt_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - fu_device_get_proxy
    - fu_device_open
    - FU_DELL_DOCK_TBT
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:268,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:271,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:274,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: fu_dell_dock_tbt_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_set_power
    - fu_device_get_proxy
    - fu_device_close
    - FU_DELL_DOCK_TBT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:280,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:281,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: fu_dell_dock_tbt_finalize
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_DELL_DOCK_TBT
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_tbt_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:289,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockTbt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: fu_dell_dock_tbt_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_tbt_init(FuDellDockTbt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:297,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockTbtClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: fu_dell_dock_tbt_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_tbt_class_init(FuDellDockTbtClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:311,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:312,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: fu_dell_dock_tbt_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDellDockTbt
    signature: 'FuDellDockTbt *

      fu_dell_dock_tbt_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status_version
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: fu_dell_dock_status_ver_string
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_status_ver_string(guint32 status_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:49,1
    - Dst: fu_dell_dock_ec_get_status_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:50,1
    - Dst: fu_dell_dock_status_ver_string
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:52,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:53,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:54,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: fu_dell_dock_status_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_format
    - fu_device_set_logical_id
    - FU_DEVICE
    - fu_dell_dock_status_ver_string
    - fu_dell_dock_ec_get_status_version
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_status_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_STATUS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:74,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:74,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:77,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:80,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:81,1
    - Dst: fu_dell_dock_status_ver_string
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:90,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:91,1
    - Dst: fu_dell_dock_ec_commit_package
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:93,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:93,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:97,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 100
    functionName: fu_dell_dock_status_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version_format
    - FU_DELL_DOCK_STATUS
    - fu_device_set_version
    - fu_dell_dock_ec_commit_package
    - fu_memcpy_safe
    - FU_IS_FIRMWARE
    - g_autoptr
    - fu_dell_dock_status_ver_string
    - g_return_val_if_fail
    - g_info
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_status_write(FuDevice *device,\n\t\t\t  FuFirmware
      *firmware,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_STATUS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:105,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:108,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:111,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: fu_dell_dock_status_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DELL_DOCK_STATUS
    - fu_device_add_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_status_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:129,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:131,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:134,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:134,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:136,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: fu_dell_dock_status_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_proxy
    - fu_device_open
    - g_set_error_literal
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_status_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:142,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:143,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:146,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: fu_dell_dock_status_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error_literal
    - fu_device_close
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_status_close(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_STATUS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:155,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:156,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:158,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: fu_dell_dock_status_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_DELL_DOCK_STATUS
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_status_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:175,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:176,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:177,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:178,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:179,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: fu_dell_dock_status_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_status_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:186,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:187,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fu_dell_dock_status_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_status_init(FuDellDockStatus *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockStatusClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: fu_dell_dock_status_class_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_status_class_init(FuDellDockStatusClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - dock_type
    - dock_usb4_present
    argTypes:
    - FuContext*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: fu_dell_dock_status_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDellDockStatus
    signature: 'FuDellDockStatus *

      fu_dell_dock_status_new(FuContext *ctx, guint8 dock_type, gboolean dock_usb4_present)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 1377
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:41,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:42,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:44,1
    - Dst: fu_kinetic_dp_chip_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:47,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:48,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:49,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: fu_kinetic_dp_secure_firmware_export
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - fu_kinetic_dp_chip_to_string
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_kinetic_dp_secure_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \    FuFirmwareExportFlags flags,\n\t\t\t\t     XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:75,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:77,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - stream
    - chip_id
    - esm_xip_enabled
    - error
    argTypes:
    - GInputStream*
    - FuKineticDpChip*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 98
    functionName: fu_kinetic_dp_secure_firmware_parse_chip_id
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - memcmp
    - G_N_ELEMENTS
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_firmware_parse_chip_id(GInputStream
      *stream,\n\t\t\t\t\t    FuKineticDpChip *chip_id,\n\t\t\t\t\t    gboolean *esm_xip_enabled,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:104,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: fu_kinetic_dp_secure_firmware_get_esm_payload_size
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_kinetic_dp_secure_firmware_get_esm_payload_size(FuKineticDpSecureFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:112,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: fu_kinetic_dp_secure_firmware_get_arm_app_code_size
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_kinetic_dp_secure_firmware_get_arm_app_code_size(FuKineticDpSecureFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:120,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: fu_kinetic_dp_secure_firmware_get_app_init_data_size
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_kinetic_dp_secure_firmware_get_app_init_data_size(FuKineticDpSecureFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:127,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:128,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fu_kinetic_dp_secure_firmware_get_cmdb_block_size
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_kinetic_dp_secure_firmware_get_cmdb_block_size(FuKineticDpSecureFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:136,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_firmware_get_esm_xip_enabled(FuKineticDpSecureFirmware
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:149,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:152,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:155,1
    - Dst: fu_struct_kinetic_dp_jaguar_footer_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:170,1
    - Dst: fu_struct_kinetic_dp_jaguar_footer_get_fw_ver
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:175,1
    - Dst: fu_struct_kinetic_dp_jaguar_footer_get_fw_rev
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:176,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:177,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuKineticDpSecureFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 185
    functionName: fu_kinetic_dp_secure_firmware_parse_app_fw
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_kinetic_dp_jaguar_footer_parse_stream
    - fu_struct_kinetic_dp_jaguar_footer_get_fw_rev
    - FU_FIRMWARE
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_input_stream_size
    - fu_struct_kinetic_dp_jaguar_footer_get_fw_ver
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_firmware_parse_app_fw(FuKineticDpSecureFirmware
      *self,\n\t\t\t\t\t   GInputStream *stream,\n\t\t\t\t\t   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:193,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:199,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:200,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:200,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:205,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:209,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:212,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:222,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:225,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:227,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:228,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:232,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:238,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:240,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:241,1
    - Dst: fu_kinetic_dp_secure_firmware_parse_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:245,1
    - Dst: fu_kinetic_dp_secure_firmware_parse_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:250,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 257
    functionName: fu_kinetic_dp_secure_firmware_parse
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_firmware_parse_app_fw
    - fu_input_stream_read_u32
    - fu_firmware_add_image_full
    - g_prefix_error
    - fu_kinetic_dp_secure_firmware_parse_chip_id
    - fu_firmware_parse_stream
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_firmware_set_idx
    - fu_input_stream_size
    - fu_firmware_new
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: fu_kinetic_dp_secure_firmware_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_firmware_init(FuKineticDpSecureFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpSecureFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: fu_kinetic_dp_secure_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_firmware_class_init(FuKineticDpSecureFirmwareClass
      *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_get_dpcd_dev_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:31,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:49,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:57,1
    - Dst: strncmp
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:58,1
    - Dst: strlen
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:58,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:69,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:69,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:72,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:74,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:82,1
    - Dst: fu_kinetic_dp_device_set_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:84,1
    - Dst: fu_kinetic_dp_device_set_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:85,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dpaux_device
    - error
    argTypes:
    - FuDpauxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 25
    functionDepth: 9
    functionLinenumber: 25
    functionLinenumberEnd: 87
    functionName: fu_kinetic_dp_plugin_create_device
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - g_set_error
    - fu_kinetic_dp_device_set_fw_state
    - strlen
    - strncmp
    - g_steal_pointer
    - fu_dpaux_device_get_dpcd_dev_id
    - g_object_new
    - g_set_error_literal
    - FU_DEVICE
    - fu_kinetic_dp_device_set_chip_id
    - FU_KINETIC_DP_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    - G_N_ELEMENTS
    linkageType: ''
    returnType: FuKineticDpDevice
    signature: 'FuKineticDpDevice *

      fu_kinetic_dp_plugin_create_device(FuDpauxDevice *dpaux_device, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PLUGIN
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:97,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:100,1
    - Dst: fu_kinetic_dp_plugin_create_device
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:104,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:104,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:107,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:110,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 10
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: fu_kinetic_dp_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_add
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_PLUGIN
    - fu_kinetic_dp_plugin_create_device
    - FU_DEVICE
    - FU_IS_DPAUX_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - FU_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t\t
      \ FuDevice *device,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: fu_kinetic_dp_plugin_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_plugin_init(FuKineticDpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:122,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:123,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:124,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:125,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:126,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:127,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: fu_kinetic_dp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: fu_kinetic_dp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_plugin_class_init(FuKineticDpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 1385
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:28,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:29,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:30,1
    - Dst: fu_kinetic_dp_family_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:30,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:31,1
    - Dst: fu_kinetic_dp_chip_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:31,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:32,1
    - Dst: fu_kinetic_dp_fw_state_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: fu_kinetic_dp_device_to_string
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_chip_to_string
    - fu_kinetic_dp_fw_state_to_string
    - GET_PRIVATE
    - FU_KINETIC_DP_DEVICE
    - fu_kinetic_dp_family_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - fw_state
    argTypes:
    - FuKineticDpDevice*
    - FuKineticDpFwState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_kinetic_dp_device_set_fw_state
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_device_set_fw_state(FuKineticDpDevice *self, FuKineticDpFwState
      fw_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_kinetic_dp_device_get_fw_state
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuKineticDpFwState
    signature: FuKineticDpFwState fu_kinetic_dp_device_get_fw_state(FuKineticDpDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chip_id
    argTypes:
    - FuKineticDpDevice*
    - FuKineticDpChip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fu_kinetic_dp_device_set_chip_id
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_device_set_chip_id(FuKineticDpDevice *self, FuKineticDpChip
      chip_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - chip_id
    argTypes:
    - FuKineticDpChip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: fu_kinetic_dp_device_chip_id_to_family
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuKineticDpFamily
    signature: FuKineticDpFamily fu_kinetic_dp_device_chip_id_to_family(FuKineticDpChip
      chip_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - chip_id
    argTypes:
    - FuKineticDpChip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: fu_kinetic_dp_device_get_name_for_chip_id
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kinetic_dp_device_get_name_for_chip_id(FuKineticDpChip chip_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:92,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:99,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:99,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuKineticDpDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: fu_kinetic_dp_device_dpcd_read_oui
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_dpaux_device_read
    - FU_DPAUX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_device_dpcd_read_oui(FuKineticDpDevice *self,\n\t\t\t\t
      \  guint8 *buf,\n\t\t\t\t   gsize bufsz,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:114,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:114,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuKineticDpDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: fu_kinetic_dp_device_dpcd_write_oui
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - FU_DPAUX_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_device_dpcd_write_oui(FuKineticDpDevice *self,
      const guint8 *buf, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:129,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:132,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:138,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:141,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:144,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:144,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:150,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:153,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:154,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:166,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 126
    functionDepth: 6
    functionLinenumber: 126
    functionLinenumberEnd: 179
    functionName: fu_kinetic_dp_device_ensure_customer
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_read
    - fu_device_add_private_flag
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_device_ensure_customer(FuKineticDpDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:184,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:185,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:189,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:193,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:194,1
    - Dst: fu_kinetic_dp_device_get_name_for_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:202,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:204,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:207,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:209,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:209,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:210,1
    - Dst: fu_dpaux_device_get_dpcd_dev_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:212,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:212,1
    - Dst: fu_kinetic_dp_device_chip_id_to_family
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:215,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:216,1
    - Dst: fu_kinetic_dp_family_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:218,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:219,1
    - Dst: fu_kinetic_dp_device_ensure_customer
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 181
    functionDepth: 7
    functionLinenumber: 181
    functionLinenumberEnd: 234
    functionName: fu_kinetic_dp_device_setup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_device_chip_id_to_family
    - FU_DEVICE_CLASS
    - fu_dpaux_device_get_dpcd_ieee_oui
    - fu_dpaux_device_get_dpcd_dev_id
    - FU_DPAUX_DEVICE
    - fu_kinetic_dp_device_ensure_customer
    - fu_kinetic_dp_device_get_name_for_chip_id
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - FU_KINETIC_DP_DEVICE
    - fu_device_add_instance_str
    - fu_device_add_instance_strup
    - fu_kinetic_dp_family_to_string
    - fu_device_build_instance_id_full
    - fu_device_set_name
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: fu_kinetic_dp_device_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_device_class_init(FuKineticDpDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:247,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:248,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:249,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:250,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:251,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:252,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:253,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:254,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:255,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:255,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:256,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: fu_kinetic_dp_device_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_device_init(FuKineticDpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: fu_kinetic_dp_puma_device_to_string
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_KINETIC_DP_PUMA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:47,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:49,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:51,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:51,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:61,1
    - Dst: fu_kinetic_dp_puma_mode_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:65,1
    - Dst: fu_kinetic_dp_puma_mode_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: fu_kinetic_dp_puma_device_wait_dpcd_cmd_status_cb
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_puma_mode_to_string
    - g_set_error
    - fu_dpaux_device_read
    - g_prefix_error
    - GPOINTER_TO_UINT
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_wait_dpcd_cmd_status_cb(FuDevice
      *device,\n\t\t\t\t\t\t  gpointer user_data,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:79,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:81,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:83,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:83,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:89,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:93,1
    - Dst: fu_kinetic_dp_puma_mode_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:97,1
    - Dst: fu_kinetic_dp_puma_mode_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 104
    functionName: fu_kinetic_dp_puma_device_wait_dpcd_sink_mode_cb
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_puma_mode_to_string
    - g_set_error
    - fu_dpaux_device_read
    - g_prefix_error
    - GPOINTER_TO_UINT
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_wait_dpcd_sink_mode_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:112,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:118,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:125,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:129,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 137
    functionName: fu_kinetic_dp_puma_device_enter_code_loading_mode
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_puma_device_enter_code_loading_mode(FuKineticDpPumaDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:145,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:146,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:148,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:151,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:154,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:154,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:155,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:156,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:157,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:160,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - io_channel
    - fw
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - FuIOChannel*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: fu_kinetic_dp_puma_device_send_chunk
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_send_chunk(FuKineticDpPumaDevice
      *self,\n\t\t\t\t     FuIOChannel *io_channel,\n\t\t\t\t     GBytes *fw,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:178,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:178,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:184,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:185,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:185,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:188,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:191,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:196,1
    - Dst: fu_kinetic_dp_puma_device_send_chunk
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:197,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:198,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:200,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:205,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:209,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:211,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 7
    argNames:
    - self
    - io_channel
    - fw
    - progress
    - wait_time_ms
    - ignore_error
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - FuIOChannel*
    - GBytes*
    - FuProgress*
    - guint32
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: fu_kinetic_dp_puma_device_send_payload
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_step_done
    - g_prefix_error
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_address
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    - fu_kinetic_dp_puma_device_send_chunk
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_send_payload(FuKineticDpPumaDevice
      *self,\n\t\t\t\t       FuIOChannel *io_channel,\n\t\t\t\t       GBytes *fw,\n\t\t\t\t
      \      FuProgress *progress,\n\t\t\t\t       guint32 wait_time_ms,\n\t\t\t\t
      \      gboolean ignore_error,\n\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:230,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:233,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:237,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:239,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:242,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:242,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:248,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:251,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:252,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:253,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - io_channel
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - FuIOChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 258
    functionName: fu_kinetic_dp_puma_device_wait_drv_ready
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - g_debug
    - fu_dpaux_device_read
    - fu_struct_kinetic_dp_flash_info_get_id
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_size
    - FU_DEVICE
    - g_autoptr
    - fu_struct_kinetic_dp_flash_info_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_wait_drv_ready(FuKineticDpPumaDevice
      *self,\n\t\t\t\t\t FuIOChannel *io_channel,\n\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:266,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:266,1
    - Dst: fu_kinetic_dp_puma_device_enter_code_loading_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:267,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:268,1
    - Dst: fu_kinetic_dp_puma_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:271,1
    - Dst: fu_kinetic_dp_puma_device_wait_drv_ready
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:278,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:279,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:283,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:286,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 299
    functionName: fu_kinetic_dp_puma_device_send_isp_drv
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_puma_device_send_payload
    - fu_kinetic_dp_puma_device_wait_drv_ready
    - g_prefix_error
    - fu_udev_device_get_io_channel
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - fu_kinetic_dp_puma_device_enter_code_loading_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_send_isp_drv(FuKineticDpPumaDevice
      *self,\n\t\t\t\t       GBytes *fw,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:310,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:310,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:316,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:320,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:323,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:326,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:328,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:332,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:334,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:339,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:339,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:345,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:349,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:350,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:351,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:352,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:357,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:363,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:370,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:374,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:376,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:378,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:379,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:383,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - FuKineticDpPumaFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 391
    functionName: fu_kinetic_dp_puma_device_enable_fw_update_mode
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - g_debug
    - fu_dpaux_device_read
    - fu_struct_kinetic_dp_flash_info_get_id
    - fu_kinetic_dp_device_get_fw_state
    - g_prefix_error
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - FU_DPAUX_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_size
    - fu_dpaux_device_write
    - FU_DEVICE
    - g_set_error_literal
    - FU_KINETIC_DP_DEVICE
    - g_autoptr
    - fu_device_add_flag
    - fu_struct_kinetic_dp_flash_info_parse
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_enable_fw_update_mode(FuKineticDpPumaDevice
      *self,\n\t\t\t\t\t\tFuKineticDpPumaFirmware *firmware,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:396,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:401,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:405,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:405,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:414,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:414,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:421,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 426
    functionName: fu_kinetic_dp_puma_device_setup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_dpaux_device_read
    - FU_DEVICE_CLASS
    - FU_DPAUX_DEVICE
    - g_strdup_printf
    - FU_KINETIC_DP_PUMA_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_puma_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_device_dpcd_write_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:435,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: fu_kinetic_dp_puma_device_prepare
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_DEVICE
    - fu_kinetic_dp_device_dpcd_write_oui
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_prepare(FuDevice *device,\n\t\t\t\t
      \ FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:444,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:447,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:448,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 461
    functionName: fu_kinetic_dp_puma_device_cleanup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - FU_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_cleanup(FuDevice *device,\n\t\t\t\t
      \ FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:470,1
    - Dst: FU_KINETIC_DP_PUMA_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:471,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:472,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:472,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:473,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:476,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:481,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:484,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:486,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:490,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:495,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:496,1
    - Dst: fu_kinetic_dp_puma_device_send_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:497,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:499,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:504,1
    - Dst: fu_kinetic_dp_puma_device_enable_fw_update_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:507,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:509,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:513,1
    - Dst: fu_kinetic_dp_puma_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:516,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:519,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:523,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:526,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:529,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:530,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:534,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:536,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:539,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 463
    functionDepth: 7
    functionLinenumber: 463
    functionLinenumberEnd: 543
    functionName: fu_kinetic_dp_puma_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - g_prefix_error
    - fu_progress_get_child
    - g_debug
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_kinetic_dp_device_get_fw_state
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_kinetic_dp_puma_device_enable_fw_update_mode
    - FU_UDEV_DEVICE
    - fu_progress_set_id
    - FU_KINETIC_DP_PUMA_DEVICE
    - fu_progress_step_done
    - fu_firmware_get_image_by_idx_bytes
    - FU_KINETIC_DP_DEVICE
    - g_autoptr
    - fu_kinetic_dp_puma_device_send_isp_drv
    - fu_kinetic_dp_puma_device_send_payload
    - g_bytes_get_size
    - fu_udev_device_get_io_channel
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:548,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:549,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:550,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:551,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:552,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: fu_kinetic_dp_puma_device_set_progress
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:560,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:560,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:561,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpPumaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 6
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: fu_kinetic_dp_puma_device_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_device_init(FuKineticDpPumaDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPumaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 574
    functionName: fu_kinetic_dp_puma_device_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_device_class_init(FuKineticDpPumaDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 1391
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:53,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:54,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:56,1
    - Dst: fu_kinetic_dp_chip_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:56,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:57,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: fu_kinetic_dp_puma_firmware_export
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_kinetic_dp_chip_to_string
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_kinetic_dp_puma_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \  FuFirmwareExportFlags flags,\n\t\t\t\t   XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:73,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:75,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:83,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - stream
    - chip_id
    - error
    argTypes:
    - GInputStream*
    - FuKineticDpChip*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 95
    functionName: fu_kinetic_dp_puma_firmware_parse_chip_id
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - memcmp
    - G_N_ELEMENTS
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_firmware_parse_chip_id(GInputStream *stream,\n\t\t\t\t\t
      \ FuKineticDpChip *chip_id,\n\t\t\t\t\t  GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:112,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:118,1
    - Dst: fu_struct_kinetic_dp_puma_header_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:133,1
    - Dst: fu_struct_kinetic_dp_puma_header_info_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:134,1
    - Dst: fu_struct_kinetic_dp_puma_header_info_get_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:137,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:142,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:151,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:157,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:163,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:169,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:169,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:180,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:187,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:194,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:203,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:205,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:211,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuKineticDpPumaFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 220
    functionName: fu_kinetic_dp_puma_firmware_parse_app_fw
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_kinetic_dp_puma_header_info_parse_stream
    - g_set_error
    - fu_struct_kinetic_dp_puma_header_info_get_length
    - fu_input_stream_read_u16
    - fu_input_stream_read_byte_array
    - fu_sum8
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - g_autoptr
    - memcmp
    - fu_struct_kinetic_dp_puma_header_parse_stream
    - fu_input_stream_size
    - fu_input_stream_read_u24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_firmware_parse_app_fw(FuKineticDpPumaFirmware
      *self,\n\t\t\t\t\t GInputStream *stream,\n\t\t\t\t\t GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_PUMA_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:228,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:235,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:236,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:236,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:241,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:246,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:249,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:251,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:252,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:259,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:266,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:272,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:274,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:275,1
    - Dst: fu_kinetic_dp_puma_firmware_parse_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:279,1
    - Dst: fu_kinetic_dp_puma_firmware_parse_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:281,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:282,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 288
    functionName: fu_kinetic_dp_puma_firmware_parse
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_input_stream_read_u32
    - fu_firmware_add_image_full
    - fu_kinetic_dp_puma_firmware_parse_app_fw
    - g_prefix_error
    - fu_firmware_parse_stream
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_firmware_set_idx
    - fu_kinetic_dp_puma_firmware_parse_chip_id
    - fu_input_stream_size
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpPumaFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: fu_kinetic_dp_puma_firmware_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_firmware_init(FuKineticDpPumaFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPumaFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: fu_kinetic_dp_puma_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_puma_firmware_class_init(FuKineticDpPumaFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:53,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:54,1
    - Dst: fu_kinetic_dp_bank_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: fu_kinetic_dp_secure_device_to_string
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_kinetic_dp_bank_to_string
    - FU_KINETIC_DP_SECURE_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:65,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:65,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - dpcd_val
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: fu_kinetic_dp_secure_device_read_param_reg
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_dpaux_device_read
    - FU_DPAUX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_read_param_reg(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t   guint8 *dpcd_val,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:84,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:84,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - cmd_id
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: fu_kinetic_dp_secure_device_write_kt_prop_cmd
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - FU_DPAUX_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_write_kt_prop_cmd(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t      guint8 cmd_id,\n\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:101,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:101,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: fu_kinetic_dp_secure_device_clear_kt_prop_cmd
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - FU_DPAUX_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_clear_kt_prop_cmd(FuKineticDpSecureDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:118,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:120,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:122,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:137,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:155,1
    - Dst: fu_kinetic_dp_dpcd_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: fu_kinetic_dp_secure_device_send_kt_prop_cmd_cb
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dpaux_device_read
    - fu_kinetic_dp_dpcd_to_string
    - g_prefix_error
    - GPOINTER_TO_UINT
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_SECURE_DEVICE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_kt_prop_cmd_cb(FuDevice
      *device,\n\t\t\t\t\t\tgpointer user_data,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:171,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:175,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:179,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - self
    - cmd_id
    - max_time_ms
    - poll_interval_ms
    - status
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8
    - guint32
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: fu_kinetic_dp_secure_device_send_kt_prop_cmd
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - GUINT_TO_POINTER
    - g_prefix_error
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_kt_prop_cmd(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t     guint8 cmd_id,\n\t\t\t\t\t     guint32 max_time_ms,\n\t\t\t\t\t
      \    guint16 poll_interval_ms,\n\t\t\t\t\t     guint8 *status,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:199,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:199,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:210,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:220,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:220,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - read_len
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8*
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_dpaux_device_read
    - FU_DPAUX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t\t     guint8 *buf,\n\t\t\t\t\t\t     gsize bufsz,\n\t\t\t\t\t\t
      \    guint8 *read_len,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:244,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:252,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:252,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:258,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:261,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - len
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 267
    functionName: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dpaux_device_write
    - FU_DPAUX_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t\t      const guint8 *buf,\n\t\t\t\t\t\t      gsize len,\n\t\t\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_device_dpcd_write_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:273,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: fu_kinetic_dp_secure_device_write_mca_oui
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_DEVICE
    - fu_kinetic_dp_device_dpcd_write_oui
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_write_mca_oui(FuKineticDpSecureDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:284,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:284,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:287,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:298,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:299,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - code_size
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 312
    functionName: fu_kinetic_dp_secure_device_enter_code_loading_mode
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_kinetic_dp_device_get_fw_state
    - fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
    - fu_memwrite_uint32
    - FU_KINETIC_DP_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_enter_code_loading_mode(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t\t    guint32 code_size,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 343
    functionName: fu_kinetic_dp_secure_device_crc16
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_kinetic_dp_secure_device_crc16(const guint8 *buf, gsize
      bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:351,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:352,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:355,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:356,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:356,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:358,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:361,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:364,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:364,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:365,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:366,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:367,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:370,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:370,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 378
    functionName: fu_kinetic_dp_secure_device_send_chunk
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_chunk(FuKineticDpSecureDevice
      *self,\n\t\t\t\t       GBytes *fw,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:388,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:388,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:394,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:395,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:395,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:398,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:403,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:408,1
    - Dst: fu_kinetic_dp_secure_device_send_chunk
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:409,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:411,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:413,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:415,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:420,1
    - Dst: fu_kinetic_dp_secure_device_crc16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:421,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:421,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:422,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:424,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:428,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:433,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:440,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - self
    - fw
    - wait_time_ms
    - wait_interval_ms
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GBytes*
    - guint32
    - gint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 448
    functionName: fu_kinetic_dp_secure_device_send_payload
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_progress_step_done
    - g_prefix_error
    - fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
    - fu_kinetic_dp_secure_device_send_chunk
    - fu_memwrite_uint32
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_kinetic_dp_secure_device_crc16
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_payload(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t GBytes *fw,\n\t\t\t\t\t guint32 wait_time_ms,\n\t\t\t\t\t
      gint32 wait_interval_ms,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:455,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:458,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:458,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:474,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:480,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared_cb
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_dpaux_device_read
    - FU_KINETIC_DP_SECURE_DEVICE
    - FU_DPAUX_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared_cb(FuDevice
      *device,\n\t\t\t\t\t\t     gpointer user_data,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - wait_time_ms
    - poll_interval_ms
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t\t  guint16 wait_time_ms,\n\t\t\t\t\t\t  guint16 poll_interval_ms,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:519,1
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:526,1
    - Dst: fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:531,1
    - Dst: fu_kinetic_dp_secure_device_read_param_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:533,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:538,1
    - Dst: fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:546,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:551,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:554,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:555,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:556,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:557,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:563,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:563,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:566,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:572,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 581
    functionName: fu_kinetic_dp_secure_device_execute_isp_drv
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
    - fu_struct_kinetic_dp_flash_info_get_id
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - g_prefix_error
    - fu_kinetic_dp_secure_device_read_param_reg
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - fu_struct_kinetic_dp_flash_info_get_size
    - g_set_error_literal
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
    - fu_struct_kinetic_dp_flash_info_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_execute_isp_drv(FuKineticDpSecureDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_secure_device_enter_code_loading_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:589,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:590,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:592,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:596,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:597,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:601,1
    - Dst: fu_kinetic_dp_secure_device_execute_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:602,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 583
    functionDepth: 7
    functionLinenumber: 583
    functionLinenumberEnd: 607
    functionName: fu_kinetic_dp_secure_device_send_isp_drv
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_enter_code_loading_mode
    - fu_kinetic_dp_secure_device_send_payload
    - g_debug
    - fu_kinetic_dp_secure_device_execute_isp_drv
    - g_prefix_error
    - g_bytes_get_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_isp_drv(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\t GBytes *fw,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:618,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_payload_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:621,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:626,1
    - Dst: fu_kinetic_dp_secure_firmware_get_arm_app_code_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:629,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:634,1
    - Dst: fu_kinetic_dp_secure_firmware_get_app_init_data_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:637,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:642,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:646,1
    - Dst: fu_kinetic_dp_secure_firmware_get_cmdb_block_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:647,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:652,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:653,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:657,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - self
    - error
    argTypes:
    - FuKineticDpSecureFirmware*
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 669
    functionName: fu_kinetic_dp_secure_device_enable_fw_update_mode
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_firmware_get_esm_payload_size
    - fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
    - fu_kinetic_dp_secure_firmware_get_cmdb_block_size
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_kinetic_dp_secure_firmware_get_arm_app_code_size
    - g_prefix_error
    - fu_kinetic_dp_secure_firmware_get_app_init_data_size
    - fu_memwrite_uint16_safe
    - fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
    - fu_memwrite_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_enable_fw_update_mode(FuKineticDpSecureFirmware
      *firmware,\n\t\t\t\t\t\t  FuKineticDpSecureDevice *self,\n\t\t\t\t\t\t  GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:678,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:679,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:681,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:684,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:685,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:686,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:687,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:688,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:693,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:696,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:702,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:706,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:708,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:712,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:715,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_payload_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:717,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:721,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:725,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:727,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:730,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:733,1
    - Dst: fu_kinetic_dp_secure_firmware_get_arm_app_code_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:735,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:739,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:743,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:745,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:748,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:752,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:753,1
    - Dst: fu_kinetic_dp_secure_firmware_get_app_init_data_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:756,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:760,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:764,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:766,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:769,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:772,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:778,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:782,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:784,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:787,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 5
    argNames:
    - self
    - firmware
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - FuKineticDpSecureFirmware*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 791
    functionName: fu_kinetic_dp_secure_device_send_app_fw
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_firmware_get_esm_payload_size
    - fu_kinetic_dp_secure_device_send_payload
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
    - fu_kinetic_dp_secure_firmware_get_arm_app_code_size
    - g_prefix_error
    - fu_progress_add_step
    - fu_kinetic_dp_secure_firmware_get_app_init_data_size
    - fu_progress_set_id
    - g_autoptr
    - fu_bytes_new_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_send_app_fw(FuKineticDpSecureDevice
      *self,\n\t\t\t\t\tFuKineticDpSecureFirmware *firmware,\n\t\t\t\t\tGBytes *fw,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:798,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:801,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:801,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:807,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:815,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:823,1
    - Dst: fu_kinetic_dp_dpcd_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 829
    functionName: fu_kinetic_dp_secure_device_install_fw_images_cb
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dpaux_device_read
    - fu_kinetic_dp_dpcd_to_string
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_SECURE_DEVICE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_install_fw_images_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:836,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:837,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:841,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 853
    functionName: fu_kinetic_dp_secure_device_install_fw_images
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - fu_device_retry_full
    - g_prefix_error
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_install_fw_images(FuKineticDpSecureDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_device_dpcd_read_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:862,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:862,1
    - Dst: fu_kinetic_dp_secure_device_write_mca_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:867,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:869,1
    - Dst: fu_kinetic_dp_secure_device_read_param_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:877,1
    - Dst: fu_kinetic_dp_secure_device_clear_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:879,1
    - Dst: fu_kinetic_dp_device_dpcd_write_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:883,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:883,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:886,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:889,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 895
    functionName: fu_kinetic_dp_secure_device_get_flash_bank_idx
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_kinetic_dp_secure_device_read_param_reg
    - fu_kinetic_dp_secure_device_write_mca_oui
    - fu_kinetic_dp_device_dpcd_read_oui
    - g_set_error_literal
    - fu_kinetic_dp_secure_device_clear_kt_prop_cmd
    - FU_KINETIC_DP_DEVICE
    - fu_kinetic_dp_device_dpcd_write_oui
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_get_flash_bank_idx(FuKineticDpSecureDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:901,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 903
    functionName: fu_kinetic_dp_secure_device_convert_version
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_memwrite_uint24
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kinetic_dp_secure_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:908,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:911,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:915,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:915,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:917,1
    - Dst: fu_kinetic_dp_secure_device_get_flash_bank_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 905
    functionDepth: 6
    functionLinenumber: 905
    functionLinenumberEnd: 924
    functionName: fu_kinetic_dp_secure_device_setup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_kinetic_dp_device_get_fw_state
    - FU_KINETIC_DP_SECURE_DEVICE
    - fu_kinetic_dp_secure_device_get_flash_bank_idx
    - fu_device_add_flag
    - FU_KINETIC_DP_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_secure_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:932,1
    - Dst: fu_kinetic_dp_secure_device_write_mca_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: fu_kinetic_dp_secure_device_prepare
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_write_mca_oui
    - FU_KINETIC_DP_SECURE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_prepare(FuDevice *device,\n\t\t\t\t
      \   FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags flags,\n\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:942,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:945,1
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: fu_kinetic_dp_secure_device_cleanup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - FU_DEVICE
    - FU_KINETIC_DP_SECURE_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_cleanup(FuDevice *device,\n\t\t\t\t
      \   FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags flags,\n\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_KINETIC_DP_SECURE_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:960,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:961,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:962,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:963,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:966,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:967,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:968,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:972,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:977,1
    - Dst: fu_kinetic_dp_secure_device_send_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:978,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:980,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:984,1
    - Dst: fu_kinetic_dp_secure_device_enable_fw_update_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:987,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:992,1
    - Dst: fu_kinetic_dp_secure_device_send_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:995,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:998,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1001,1
    - Dst: fu_kinetic_dp_secure_device_install_fw_images
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 953
    functionDepth: 8
    functionLinenumber: 953
    functionLinenumberEnd: 1005
    functionName: fu_kinetic_dp_secure_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_kinetic_dp_secure_device_send_app_fw
    - fu_kinetic_dp_secure_device_enable_fw_update_mode
    - g_bytes_get_size
    - fu_progress_add_step
    - fu_firmware_get_image_by_idx_bytes
    - FU_KINETIC_DP_SECURE_DEVICE
    - fu_kinetic_dp_secure_device_send_isp_drv
    - fu_kinetic_dp_secure_device_install_fw_images
    - fu_progress_set_id
    - g_autoptr
    - FU_KINETIC_DP_SECURE_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_secure_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1010,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1011,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1012,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1013,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1014,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1016
    functionName: fu_kinetic_dp_secure_device_set_progress
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1023,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1023,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1024,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1024,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1025,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1018
    functionDepth: 6
    functionLinenumber: 1018
    functionLinenumberEnd: 1026
    functionName: fu_kinetic_dp_secure_device_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_device_init(FuKineticDpSecureDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpSecureDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: fu_kinetic_dp_secure_device_class_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_kinetic_dp_secure_device_class_init(FuKineticDpSecureDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 1394
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: fu_goodixtp_firmware_get_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_goodixtp_firmware_get_version(FuGoodixtpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuGoodixtpFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: fu_goodixtp_firmware_set_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_firmware_set_version(FuGoodixtpFirmware *self, guint32
      version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:36,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: fu_goodixtp_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_firmware_init(FuGoodixtpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: fu_goodixtp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_firmware_class_init(FuGoodixtpFirmwareClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:40,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:41,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:42,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:42,1
    - Dst: fu_goodixtp_hid_device_get_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:45,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:45,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:52,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: fu_goodixtp_gtx8_device_read_pkg
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - g_set_error
    - fu_memcpy_safe
    - fu_goodixtp_hid_device_get_report
    - fu_goodixtp_hid_device_set_report
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_read_pkg(FuGoodixtpGtx8Device *self,\n\t\t\t\t
      gsize addr,\n\t\t\t\t guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:72,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:73,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:75,1
    - Dst: fu_goodixtp_gtx8_device_read_pkg
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:76,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:77,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:78,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: fu_goodixtp_gtx8_device_hid_read
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_goodixtp_gtx8_device_read_pkg
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_hid_read(FuGoodixtpGtx8Device *self,\n\t\t\t\t
      gsize addr,\n\t\t\t\t guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:93,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:93,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:95,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:104,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:106,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:106,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:107,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:107,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:108,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:111,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:112,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:114,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:118,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:118,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:120,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:122,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:124,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 130
    functionName: fu_goodixtp_gtx8_device_hid_write
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - FU_GOODIXTP_HID_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - g_ptr_array_index
    - fu_memwrite_uint16
    - fu_goodixtp_hid_device_set_report
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_hid_write(FuGoodixtpGtx8Device *self,\n\t\t\t\t
      \ gsize addr,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:140,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:143,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: fu_goodixtp_gtx8_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_hid_device_set_report
    - g_prefix_error
    - fu_memcpy_safe
    - FU_GOODIXTP_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_send_cmd(FuGoodixtpGtx8Device *self,\n\t\t\t\t
      guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:165,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:166,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:169,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:170,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:177,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:185,1
    - Dst: fu_goodixtp_hid_device_set_patch_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:187,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:187,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:188,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:190,1
    - Dst: fu_goodixtp_hid_device_set_patch_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:191,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:191,1
    - Dst: fu_goodixtp_hid_device_set_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:194,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:194,1
    - Dst: fu_goodixtp_hid_device_set_config_ver
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:195,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:195,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 200
    functionName: fu_goodixtp_gtx8_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - g_set_error
    - fu_memread_uint32
    - g_prefix_error
    - fu_sum8
    - g_strdup_printf
    - fu_goodixtp_hid_device_set_patch_pid
    - fu_goodixtp_gtx8_device_hid_read
    - FU_DEVICE
    - fu_goodixtp_hid_device_set_patch_vid
    - fu_memstrsafe
    - fu_goodixtp_hid_device_set_sensor_id
    - fu_device_set_version_raw
    - fu_goodixtp_hid_device_set_config_ver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_ensure_version(FuGoodixtpGtx8Device
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:210,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:215,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:218,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:221,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:226,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:229,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:231,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 245
    functionName: fu_goodixtp_gtx8_device_disable_report
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_goodixtp_gtx8_device_hid_read
    - FU_DEVICE
    - fu_goodixtp_gtx8_device_hid_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_disable_report(FuGoodixtpGtx8Device
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:250,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:253,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: fu_goodixtp_gtx8_device_wait_bl_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_goodixtp_gtx8_device_hid_read
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_wait_bl_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_gtx8_device_disable_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:269,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:270,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:274,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:278,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:282,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:290,1
    - Dst: fu_goodixtp_gtx8_device_disable_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:294,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:295,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:300,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:304,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 262
    functionDepth: 5
    functionLinenumber: 262
    functionLinenumberEnd: 310
    functionName: fu_goodixtp_gtx8_device_update_prepare
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_goodixtp_gtx8_device_disable_report
    - g_prefix_error
    - fu_goodixtp_gtx8_device_send_cmd
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_update_prepare(FuGoodixtpGtx8Device
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:318,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:319,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:322,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:323,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: fu_goodixtp_gtx8_device_soft_reset_ic
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_send_cmd
    - g_prefix_error
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_soft_reset_ic(FuGoodixtpGtx8Device
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:336,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:339,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: fu_goodixtp_gtx8_device_wait_flash_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_goodixtp_gtx8_device_hid_read
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_wait_flash_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:351,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:358,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:361,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:362,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:364,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:368,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:373,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:376,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:381,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:382,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:383,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:383,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:384,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:386,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:390,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:392,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:398,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:402,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 410
    functionName: fu_goodixtp_gtx8_device_load_sub_firmware_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - fu_chunk_get_address
    - g_prefix_error
    - fu_sum16w
    - fu_memcpy_safe
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_goodixtp_gtx8_device_send_cmd
    - fu_memwrite_uint16
    - fu_chunk_get_data
    - fu_goodixtp_gtx8_device_hid_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_load_sub_firmware_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:415,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:421,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 427
    functionName: fu_goodixtp_gtx8_device_update_process
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_chunk_get_address
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_update_process(FuGoodixtpGtx8Device
      *self, FuChunk *chk, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:432,1
    - Dst: fu_goodixtp_gtx8_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:433,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: fu_goodixtp_gtx8_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_GTX8_DEVICE
    - g_prefix_error
    - fu_goodixtp_gtx8_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:448,1
    - Dst: fu_goodixtp_gtx8_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:448,1
    - Dst: fu_goodixtp_gtx8_firmware_parse
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:449,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:450,1
    - Dst: fu_goodixtp_hid_device_get_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:452,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:452,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 456
    functionName: fu_goodixtp_gtx8_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - fu_goodixtp_gtx8_firmware_parse
    - g_steal_pointer
    - fu_goodixtp_hid_device_get_sensor_id
    - fu_goodixtp_gtx8_firmware_new
    - FU_GOODIXTP_GTX8_DEVICE
    - FU_GOODIXTP_FIRMWARE
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_goodixtp_gtx8_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:465,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:467,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:470,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:471,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:478,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:479,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:479,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:481,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:484,1
    - Dst: fu_goodixtp_gtx8_device_update_process
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:487,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:489,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 493
    functionName: fu_goodixtp_gtx8_device_write_image
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_goodixtp_gtx8_device_update_process
    - fu_firmware_get_addr
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_write_image(FuGoodixtpGtx8Device
      *self,\n\t\t\t\t    FuFirmware *img,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:501,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:502,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:504,1
    - Dst: fu_goodixtp_gtx8_device_write_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:505,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:507,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - imgs
    - progress
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 513
    functionName: fu_goodixtp_gtx8_device_write_images
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - fu_goodixtp_gtx8_device_write_image
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_write_images(FuGoodixtpGtx8Device
      *self,\n\t\t\t\t     GPtrArray *imgs,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:522,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:523,1
    - Dst: fu_goodixtp_firmware_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:524,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:525,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:525,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:528,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:529,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:530,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:531,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:532,1
    - Dst: fu_goodixtp_gtx8_device_update_prepare
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:534,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:536,1
    - Dst: fu_goodixtp_gtx8_device_write_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:537,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:539,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:542,1
    - Dst: fu_goodixtp_gtx8_device_soft_reset_ic
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:545,1
    - Dst: fu_goodixtp_gtx8_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:547,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:549,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:551,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:552,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 515
    functionDepth: 6
    functionLinenumber: 515
    functionLinenumberEnd: 561
    functionName: fu_goodixtp_gtx8_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - fu_goodixtp_firmware_get_version
    - fu_progress_get_child
    - fu_goodixtp_gtx8_device_soft_reset_ic
    - fu_goodixtp_gtx8_device_update_prepare
    - fu_progress_add_flag
    - fu_progress_add_step
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_firmware_get_images
    - FU_GOODIXTP_FIRMWARE
    - fu_progress_set_id
    - g_autoptr
    - fu_goodixtp_gtx8_device_write_images
    - fu_device_get_version_raw
    - fu_goodixtp_gtx8_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpGtx8Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: fu_goodixtp_gtx8_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_gtx8_device_init(FuGoodixtpGtx8Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpGtx8DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: fu_goodixtp_gtx8_device_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_gtx8_device_class_init(FuGoodixtpGtx8DeviceClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:34,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:35,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:36,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:36,1
    - Dst: fu_goodixtp_hid_device_get_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:38,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:44,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 55
    functionName: fu_goodixtp_brlb_device_read_pkg
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - g_set_error
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - fu_goodixtp_hid_device_get_report
    - fu_memwrite_uint16
    - fu_goodixtp_hid_device_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_read_pkg(FuGoodixtpBrlbDevice *self,\n\t\t\t\t
      gsize addr,\n\t\t\t\t guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:64,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:65,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:67,1
    - Dst: fu_goodixtp_brlb_device_read_pkg
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:68,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:69,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:70,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: fu_goodixtp_brlb_device_hid_read
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_goodixtp_brlb_device_read_pkg
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_hid_read(FuGoodixtpBrlbDevice *self,\n\t\t\t\t
      gsize addr,\n\t\t\t\t guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:85,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:85,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:87,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:96,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:98,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:98,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:99,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:99,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:100,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:103,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:104,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:106,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:109,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:109,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:113,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:115,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: fu_goodixtp_brlb_device_hid_write
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - FU_GOODIXTP_HID_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - g_ptr_array_index
    - fu_memwrite_uint16
    - fu_goodixtp_hid_device_set_report
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_hid_write(FuGoodixtpBrlbDevice *self,\n\t\t\t\t
      \ gsize addr,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:137,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:139,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:139,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 147
    functionName: fu_goodixtp_brlb_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_hid_device_set_report
    - g_prefix_error
    - fu_memcpy_safe
    - FU_GOODIXTP_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_send_cmd(FuGoodixtpBrlbDevice *self,\n\t\t\t\t
      guint8 cmd,\n\t\t\t\t guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:159,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:160,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:166,1
    - Dst: fu_goodixtp_hid_device_set_patch_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:168,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:168,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:169,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:171,1
    - Dst: fu_goodixtp_hid_device_set_patch_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:172,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:172,1
    - Dst: fu_goodixtp_hid_device_set_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:175,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:175,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:178,1
    - Dst: fu_goodixtp_hid_device_set_config_ver
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:183,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:183,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 186
    functionName: fu_goodixtp_brlb_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - fu_memread_uint32
    - g_prefix_error
    - g_strdup_printf
    - fu_goodixtp_hid_device_set_patch_pid
    - FU_DEVICE
    - fu_goodixtp_hid_device_set_patch_vid
    - fu_memstrsafe
    - fu_goodixtp_hid_device_set_sensor_id
    - fu_device_set_version_raw
    - fu_goodixtp_hid_device_set_config_ver
    - fu_goodixtp_brlb_device_hid_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_ensure_version(FuGoodixtpBrlbDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:191,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: fu_goodixtp_brlb_device_wait_mini_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_hid_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_wait_mini_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:206,1
    - Dst: memset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:210,1
    - Dst: fu_goodixtp_brlb_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:211,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:213,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:215,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: fu_goodixtp_brlb_device_wait_erase_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_goodixtp_brlb_device_hid_write
    - memcmp
    - memset
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_hid_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_wait_erase_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:231,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:235,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:245,1
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:250,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:254,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:255,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 267
    functionName: fu_goodixtp_brlb_device_update_prepare
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_goodixtp_brlb_device_send_cmd
    - g_debug
    - g_prefix_error
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_update_prepare(FuGoodixtpBrlbDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:272,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:275,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:276,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: fu_goodixtp_brlb_device_wait_flash_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_hid_read
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_wait_flash_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:289,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:295,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:298,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:299,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:301,1
    - Dst: fu_goodixtp_brlb_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:311,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:318,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:328,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:329,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:329,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:330,1
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:331,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:332,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:336,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:339,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 349
    functionName: fu_goodixtp_brlb_device_load_sub_firmware_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - fu_memread_uint16_safe
    - fu_chunk_get_address
    - fu_goodixtp_brlb_device_send_cmd
    - g_prefix_error
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - fu_goodixtp_brlb_device_hid_write
    - fu_memwrite_uint16
    - fu_chunk_get_data
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_load_sub_firmware_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:354,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:354,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:360,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 366
    functionName: fu_goodixtp_brlb_device_update_process
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_chunk_get_address
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_update_process(FuGoodixtpBrlbDevice
      *self, FuChunk *chk, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:374,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:375,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 380
    functionName: fu_goodixtp_brlb_device_update_finish
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_goodixtp_brlb_device_send_cmd
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_update_finish(FuGoodixtpBrlbDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:385,1
    - Dst: fu_goodixtp_brlb_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:386,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 6
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: fu_goodixtp_brlb_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_brlb_device_ensure_version
    - FU_GOODIXTP_BRLB_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:401,1
    - Dst: fu_goodixtp_brlb_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:401,1
    - Dst: fu_goodixtp_brlb_firmware_parse
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:402,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:403,1
    - Dst: fu_goodixtp_hid_device_get_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:405,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: fu_goodixtp_brlb_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - g_steal_pointer
    - fu_goodixtp_hid_device_get_sensor_id
    - fu_goodixtp_brlb_firmware_parse
    - FU_GOODIXTP_FIRMWARE
    - fu_goodixtp_brlb_firmware_new
    - g_autoptr
    - FU_GOODIXTP_BRLB_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_goodixtp_brlb_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:418,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:420,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:423,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:424,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:431,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:432,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:432,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:434,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:437,1
    - Dst: fu_goodixtp_brlb_device_update_process
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:440,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 446
    functionName: fu_goodixtp_brlb_device_write_image
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_goodixtp_brlb_device_update_process
    - fu_chunk_array_length
    - fu_progress_step_done
    - fu_firmware_get_addr
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_write_image(FuGoodixtpBrlbDevice
      *self,\n\t\t\t\t    FuFirmware *img,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:454,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:455,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:457,1
    - Dst: fu_goodixtp_brlb_device_write_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:458,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:460,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - imgs
    - progress
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 466
    functionName: fu_goodixtp_brlb_device_write_images
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_goodixtp_brlb_device_write_image
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_write_images(FuGoodixtpBrlbDevice
      *self,\n\t\t\t\t     GPtrArray *imgs,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:475,1
    - Dst: fu_goodixtp_firmware_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:476,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:477,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:477,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:480,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:484,1
    - Dst: fu_goodixtp_brlb_device_update_prepare
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:486,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:488,1
    - Dst: fu_goodixtp_brlb_device_write_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:489,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:491,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:494,1
    - Dst: fu_goodixtp_brlb_device_update_finish
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:495,1
    - Dst: fu_goodixtp_brlb_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:497,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:499,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:501,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:502,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 511
    functionName: fu_goodixtp_brlb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_step_done
    - fu_goodixtp_firmware_get_version
    - fu_progress_get_child
    - fu_goodixtp_brlb_device_write_images
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_firmware_get_images
    - FU_GOODIXTP_FIRMWARE
    - fu_progress_set_id
    - g_autoptr
    - fu_goodixtp_brlb_device_ensure_version
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_update_prepare
    - fu_device_get_version_raw
    - fu_goodixtp_brlb_device_update_finish
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpBrlbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: fu_goodixtp_brlb_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_device_init(FuGoodixtpBrlbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpBrlbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: fu_goodixtp_brlb_device_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_device_class_init(FuGoodixtpBrlbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: fu_goodixtp_plugin_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_plugin_init(FuGoodixtpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:32,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:33,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:35,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:36,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:37,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:38,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: fu_goodixtp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: fu_goodixtp_plugin_ic_type_from_pid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuGoodixtpIcType
    signature: FuGoodixtpIcType fu_goodixtp_plugin_ic_type_from_pid(guint16 pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:63,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:63,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:63,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:64,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:68,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:68,1
    - Dst: fu_goodixtp_plugin_ic_type_from_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:72,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:74,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:74,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:76,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:78,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:79,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:87,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:87,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:89,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:91,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:92,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:99,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 105
    functionName: fu_goodixtp_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_device_incorporate
    - fu_udev_device_get_subsystem
    - fu_plugin_device_add
    - fu_goodixtp_plugin_ic_type_from_pid
    - fu_plugin_get_context
    - g_object_new
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t\tFuDevice
      *device,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: fu_goodixtp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_plugin_class_init(FuGoodixtpPluginClass *klass)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:37,1
    - Dst: fu_struct_goodix_brlb_hdr_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:39,1
    - Dst: fu_struct_goodix_brlb_hdr_get_firmware_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:42,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:46,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:54,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:54,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:55,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:56,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:57,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:63,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:64,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:64,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:65,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:67,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:68,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:75,1
    - Dst: fu_struct_goodix_brlb_hdr_get_checksum
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:79,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:80,1
    - Dst: fu_struct_goodix_brlb_hdr_get_subsys_num
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:99,1
    - Dst: fu_struct_goodix_brlb_img_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:101,1
    - Dst: fu_struct_goodix_brlb_img_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:105,1
    - Dst: fu_struct_goodix_brlb_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:106,1
    - Dst: fu_struct_goodix_brlb_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:109,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:109,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:110,1
    - Dst: fu_struct_goodix_brlb_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:110,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:111,1
    - Dst: fu_struct_goodix_brlb_img_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:111,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:112,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:115,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:116,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:116,1
    - Dst: fu_struct_goodix_brlb_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:123,1
    - Dst: fu_goodixtp_firmware_set_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:124,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 4
    argNames:
    - self
    - stream
    - sensor_id
    - error
    argTypes:
    - FuGoodixtpFirmware*
    - GInputStream*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 126
    functionName: fu_goodixtp_brlb_firmware_parse
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 1
    functionsReached:
    - fu_struct_goodix_brlb_hdr_parse_stream
    - fu_memread_uint16_safe
    - FU_FIRMWARE
    - g_debug
    - fu_struct_goodix_brlb_img_parse_stream
    - fu_firmware_add_image_full
    - fu_firmware_set_addr
    - fu_struct_goodix_brlb_img_get_size
    - fu_struct_goodix_brlb_hdr_get_vid
    - fu_firmware_set_bytes
    - fu_struct_goodix_brlb_img_get_addr
    - fu_firmware_add_image
    - fu_memread_uint8_safe
    - fu_struct_goodix_brlb_img_get_kind
    - fu_struct_goodix_brlb_hdr_get_firmware_size
    - fu_struct_goodix_brlb_hdr_get_checksum
    - fu_struct_goodix_brlb_hdr_get_subsys_num
    - fu_goodixtp_firmware_set_version
    - g_autoptr
    - fu_bytes_new_offset
    - fu_firmware_new
    - g_bytes_get_data
    - fu_firmware_get_size
    - g_set_error_literal
    - fu_firmware_set_idx
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_firmware_parse(FuGoodixtpFirmware *self,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tguint8 sensor_id,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:131,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpBrlbFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: fu_goodixtp_brlb_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_firmware_init(FuGoodixtpBrlbFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpBrlbFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: fu_goodixtp_brlb_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_firmware_class_init(FuGoodixtpBrlbFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:142,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: fu_goodixtp_brlb_firmware_new
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_goodixtp_brlb_firmware_new(void)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:39,1
    - Dst: fu_struct_goodix_gtx8_hdr_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:41,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_firmware_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:44,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:46,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:54,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:60,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:69,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_checksum
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:74,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:95,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:105,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:109,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:117,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:126,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:137,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:152,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:152,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:153,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:154,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:155,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:158,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:159,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:159,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:161,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:163,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_subsys_num
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:182,1
    - Dst: fu_struct_goodix_gtx8_img_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:184,1
    - Dst: fu_struct_goodix_gtx8_img_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:187,1
    - Dst: fu_struct_goodix_gtx8_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:190,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:190,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:191,1
    - Dst: fu_struct_goodix_gtx8_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:191,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:192,1
    - Dst: fu_struct_goodix_gtx8_img_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:192,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:193,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:196,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:197,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:197,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:204,1
    - Dst: fu_goodixtp_firmware_set_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:205,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 113
    argCount: 4
    argNames:
    - self
    - stream
    - sensor_id
    - error
    argTypes:
    - FuGoodixtpFirmware*
    - GInputStream*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 207
    functionName: fu_goodixtp_gtx8_firmware_parse
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 1
    functionsReached:
    - fu_memread_uint16_safe
    - fu_struct_goodix_gtx8_hdr_get_checksum
    - FU_FIRMWARE
    - fu_struct_goodix_gtx8_hdr_get_subsys_num
    - g_set_error
    - g_debug
    - fu_struct_goodix_gtx8_img_parse_stream
    - fu_firmware_add_image_full
    - fu_firmware_set_addr
    - fu_firmware_set_bytes
    - fu_memread_uint8_safe
    - fu_struct_goodix_gtx8_img_get_size
    - fu_goodixtp_firmware_set_version
    - g_autoptr
    - fu_bytes_new_offset
    - fu_firmware_new
    - g_bytes_get_data
    - fu_struct_goodix_gtx8_img_get_kind
    - fu_struct_goodix_gtx8_img_get_addr
    - g_set_error_literal
    - fu_struct_goodix_gtx8_hdr_parse_stream
    - fu_struct_goodix_gtx8_hdr_get_firmware_size
    - fu_firmware_set_idx
    - fu_struct_goodix_gtx8_hdr_get_vid
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_gtx8_firmware_parse(FuGoodixtpFirmware *self,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tguint8 sensor_id,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:212,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpGtx8Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: fu_goodixtp_gtx8_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_gtx8_firmware_init(FuGoodixtpGtx8Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpGtx8FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: fu_goodixtp_gtx8_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_gtx8_firmware_class_init(FuGoodixtpGtx8FirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:223,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: fu_goodixtp_gtx8_firmware_new
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_goodixtp_gtx8_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 1396
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:26,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - patch_pid
    argTypes:
    - FuGoodixtpHidDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_goodixtp_hid_device_set_patch_pid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_patch_pid(FuGoodixtpHidDevice *self,
      const gchar *patch_pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:33,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - patch_vid
    argTypes:
    - FuGoodixtpHidDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_goodixtp_hid_device_set_patch_vid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_patch_vid(FuGoodixtpHidDevice *self,
      const gchar *patch_vid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sensor_id
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_goodixtp_hid_device_set_sensor_id
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_sensor_id(FuGoodixtpHidDevice *self,
      guint8 sensor_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - ver
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_goodixtp_hid_device_set_config_ver
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_config_ver(FuGoodixtpHidDevice *self,
      guint8 ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_goodixtp_hid_device_get_sensor_id
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_goodixtp_hid_device_get_sensor_id(FuGoodixtpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:61,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:62,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:63,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:64,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:65,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: fu_goodixtp_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:78,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:87,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: fu_goodixtp_hid_device_get_report
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_hid_device_get_report(FuGoodixtpHidDevice *self,\n\t\t\t\t
      \ guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:106,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:106,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: fu_goodixtp_hid_device_set_report
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 6
    functionsReached:
    - FU_HIDRAW_DEVICE
    - g_prefix_error
    - fu_hidraw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_hid_device_set_report(FuGoodixtpHidDevice *self,\n\t\t\t\t
      \ guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:120,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:121,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:122,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:123,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:124,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:125,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: fu_goodixtp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:132,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: fu_goodixtp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_goodixtp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:138,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:139,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:140,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:141,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:142,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:143,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:144,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:145,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:146,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:147,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:148,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:148,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:149,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:149,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:150,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: fu_goodixtp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_priority
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_init(FuGoodixtpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:156,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:157,1
    - Dst: g_free
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:158,1
    - Dst: g_free
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:159,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: fu_goodixtp_hid_device_finalize
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_HID_DEVICE
    - g_free
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:166,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: fu_goodixtp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_class_init(FuGoodixtpHidDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:25,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:25,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:26,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: fu_lenovo_thinklmi_plugin_startup
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_context_get_hwid_value
    - fu_plugin_get_context
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_thinklmi_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:41,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:47,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:47,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - device
    argTypes:
    - FuContext*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: fu_lenovo_thinklmi_plugin_cpu_registered
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_read_only
    - g_debug
    - fwupd_bios_setting_get_name
    - fu_device_has_instance_id
    - fu_context_get_bios_setting
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_cpu_registered(FuContext *ctx, FuDevice
      *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:64,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:64,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:65,1
    - Dst: fu_context_get_bios_setting_pending_reboot
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:71,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - device
    argTypes:
    - FuContext*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 76
    functionName: fu_lenovo_thinklmi_plugin_uefi_capsule_registered
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_inhibit
    - fu_context_get_bios_setting_pending_reboot
    - g_strcmp0
    - fwupd_bios_setting_get_current_value
    - fu_context_get_bios_setting
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_uefi_capsule_registered(FuContext *ctx,
      FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:81,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:81,1
    - Dst: fu_lenovo_thinklmi_plugin_uefi_capsule_registered
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:82,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:82,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:84,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:84,1
    - Dst: fu_lenovo_thinklmi_plugin_cpu_registered
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:85,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: fu_lenovo_thinklmi_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_thinklmi_plugin_uefi_capsule_registered
    - fu_plugin_get_context
    - g_strcmp0
    - fu_device_get_plugin
    - fu_lenovo_thinklmi_plugin_cpu_registered
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_device_registered(FuPlugin *plugin,
      FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:94,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:96,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:98,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:102,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:103,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:104,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:107,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:107,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:108,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:109,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 114
    functionName: fu_lenovo_thinklmi_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - g_strcmp0
    - fwupd_bios_setting_get_current_value
    - fu_context_get_bios_setting
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_add_security_attrs(FuPlugin *plugin,
      FuSecurityAttrs *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoThinklmiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: fu_lenovo_thinklmi_plugin_init
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_init(FuLenovoThinklmiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoThinklmiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: fu_lenovo_thinklmi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_plugin_class_init(FuLenovoThinklmiPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_test_plugin_device_added_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - log_domain
    - log_level
    - message
    - user_data
    argTypes:
    - gchar*
    - GLogLevelFlags
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: fu_test_fatal_handler_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_test_fatal_handler_cb(const gchar *log_domain,\n\t\t\t
      GLogLevelFlags log_level,\n\t\t\t const gchar *message,\n\t\t\t gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:45,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:46,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:46,1
    - Dst: g_test_log_set_fatal_handler
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:48,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:53,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:54,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:56,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:57,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:59,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:60,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:63,1
    - Dst: fu_uefi_capsule_plugin_get_type
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:63,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:65,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:66,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:69,1
    - Dst: fu_lenovo_thinklmi_plugin_get_type
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:69,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:71,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:72,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTest*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 41
    functionDepth: 10
    functionLinenumber: 41
    functionLinenumberEnd: 75
    functionName: fu_test_self_init
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_plugin_new_from_gtype
    - g_test_log_set_fatal_handler
    - fu_progress_new
    - fu_context_load_hwinfo
    - g_assert_true
    - fu_plugin_get_context
    - g_assert_no_error
    - fu_lenovo_thinklmi_plugin_get_type
    - g_autoptr
    - fu_uefi_capsule_plugin_get_type
    - fu_plugin_runner_startup
    - fu_context_load_quirks
    - fu_context_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_self_init(FuTest *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:83,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:84,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:86,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:86,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:88,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:91,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:92,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:93,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:94,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:95,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:95,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:96,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: fu_test_probe_fake_esrt
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_progress_new
    - g_signal_handler_disconnect
    - fu_plugin_runner_coldplug
    - g_assert_true
    - fu_device_has_flag
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - g_signal_connect
    - FU_PLUGIN
    - G_CALLBACK
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_test_probe_fake_esrt(FuTest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:106,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:108,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:109,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:111,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:112,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:113,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:115,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:116,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:117,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 9
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: fu_plugin_lenovo_thinklmi_bootorder_locked
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_test_probe_fake_esrt
    - g_test_build_filename
    - g_assert_true
    - fu_device_has_flag
    - g_assert_no_error
    - g_setenv
    - g_autoptr
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_plugin_lenovo_thinklmi_bootorder_locked(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:126,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:128,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:129,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:132,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:133,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:134,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:135,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:136,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 9
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: fu_plugin_lenovo_thinklmi_bootorder_unlocked
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_test_probe_fake_esrt
    - g_test_build_filename
    - g_assert_true
    - fu_device_has_flag
    - g_assert_no_error
    - g_setenv
    - g_autoptr
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_plugin_lenovo_thinklmi_bootorder_unlocked(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:145,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:146,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:151,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:153,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:154,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:155,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:156,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:157,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:158,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: fu_plugin_lenovo_thinklmi_reboot_pending
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_test_probe_fake_esrt
    - g_test_build_filename
    - g_assert_true
    - fu_device_has_flag
    - g_assert_no_error
    - g_setenv
    - g_autoptr
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_plugin_lenovo_thinklmi_reboot_pending(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:165,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:167,1
    - Dst: g_free
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: fu_test_self_free
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_test_self_free(FuTest *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:183,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:184,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:186,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:187,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:191,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:192,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:195,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:196,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:199,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:200,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:201,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:204,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:205,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:208,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:210,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:210,1
    - Dst: fu_test_self_init
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:213,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:214,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:217,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:220,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:223,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 227
    functionName: main
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_test_skip
    - g_log_set_fatal_mask
    - g_assert_cmpint
    - g_new0
    - g_test_build_filename
    - fu_test_self_init
    - g_mkdir_with_parents
    - g_setenv
    - g_autoptr
    - g_test_add_data_func
    - fu_path_from_kind
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:25,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: fu_igsc_oprom_firmware_export
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_IGSC_OPROM_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:32,1
    - Dst: FU_IS_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: fu_igsc_oprom_firmware_get_major_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_OPROM_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_igsc_oprom_firmware_get_major_version(FuIgscOpromFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:39,1
    - Dst: FU_IS_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_igsc_oprom_firmware_has_allowlist
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_OPROM_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_firmware_has_allowlist(FuIgscOpromFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:51,1
    - Dst: FU_IS_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:51,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:54,1
    - Dst: fu_igsc_fwdata_device_info4_get_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:55,1
    - Dst: fu_igsc_fwdata_device_info4_get_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:56,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:57,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:58,1
    - Dst: fu_igsc_fwdata_device_info4_get_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:60,1
    - Dst: fu_igsc_fwdata_device_info4_get_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:61,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:62,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:63,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 6
    argNames:
    - self
    - vendor_id
    - device_id
    - subsys_vendor_id
    - subsys_device_id
    - error
    argTypes:
    - FuIgscOpromFirmware*
    - guint16
    - guint16
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: fu_igsc_oprom_firmware_match_device
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwdata_device_info4_get_subsys_device_id
    - g_set_error
    - fu_igsc_fwdata_device_info4_get_subsys_vendor_id
    - g_ptr_array_index
    - fu_igsc_fwdata_device_info4_get_vendor_id
    - g_return_val_if_fail
    - FU_IS_IGSC_OPROM_FIRMWARE
    - fu_igsc_fwdata_device_info4_get_device_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_oprom_firmware_match_device(FuIgscOpromFirmware *self,\n\t\t\t\t
      \   guint16 vendor_id,\n\t\t\t\t    guint16 device_id,\n\t\t\t\t    guint16
      subsys_vendor_id,\n\t\t\t\t    guint16 subsys_device_id,\n\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:83,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:86,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:89,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:95,1
    - Dst: fu_igsc_fwdata_device_info4_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:95,1
    - Dst: fu_igsc_fwdata_device_info2_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:96,1
    - Dst: fu_igsc_fwdata_device_info4_set_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:99,1
    - Dst: fu_igsc_fwdata_device_info4_set_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:100,1
    - Dst: fu_igsc_fwdata_device_info4_set_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:101,1
    - Dst: fu_igsc_fwdata_device_info2_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:103,1
    - Dst: fu_igsc_fwdata_device_info4_set_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:104,1
    - Dst: fu_igsc_fwdata_device_info2_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:106,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:107,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:112,1
    - Dst: fu_igsc_fwdata_device_info4_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:113,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuIgscOpromFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 122
    functionName: fu_igsc_oprom_firmware_parse_extension
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwdata_device_info4_set_subsys_device_id
    - fu_firmware_get_stream
    - g_steal_pointer
    - fu_igsc_fwdata_device_info4_set_device_id
    - fu_igsc_fwdata_device_info2_get_subsys_vendor_id
    - fu_igsc_fwdata_device_info4_parse_stream
    - fu_igsc_fwdata_device_info4_set_subsys_vendor_id
    - fu_igsc_fwdata_device_info4_new
    - fu_igsc_fwdata_device_info2_get_subsys_device_id
    - fu_firmware_get_idx
    - fu_igsc_fwdata_device_info2_parse_stream
    - g_autoptr
    - fu_igsc_fwdata_device_info4_set_vendor_id
    - fu_input_stream_size
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_firmware_parse_extension(FuIgscOpromFirmware
      *self, FuFirmware *fw, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:132,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:135,1
    - Dst: fu_oprom_firmware_get_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:140,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:140,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:142,1
    - Dst: fu_oprom_firmware_get_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:146,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:146,1
    - Dst: fu_oprom_firmware_get_machine_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:150,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:152,1
    - Dst: fu_oprom_firmware_get_machine_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:156,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:156,1
    - Dst: fu_oprom_firmware_get_compression_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:160,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:162,1
    - Dst: fu_oprom_firmware_get_compression_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:166,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:166,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:172,1
    - Dst: FU_IS_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:175,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:176,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:184,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:186,1
    - Dst: fu_igsc_oprom_firmware_parse_extension
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 193
    functionName: fu_igsc_oprom_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IGSC_OPROM_FIRMWARE
    - fu_firmware_get_image_by_id
    - fu_oprom_firmware_get_machine_type
    - FU_OPROM_FIRMWARE
    - fu_igsc_oprom_firmware_parse_extension
    - fu_firmware_get_images
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - g_ptr_array_index
    - g_autoptr
    - FU_IS_IFWI_CPD_FIRMWARE
    - fu_oprom_firmware_get_compression_type
    - fu_oprom_firmware_get_subsystem
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_oprom_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: fu_igsc_oprom_firmware_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_firmware_init(FuIgscOpromFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:205,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:207,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: fu_igsc_oprom_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_IGSC_OPROM_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:215,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscOpromFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: fu_igsc_oprom_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_firmware_class_init(FuIgscOpromFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:29,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fu_igsc_aux_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_AUX_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:36,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:41,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:41,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:42,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:46,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:47,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: fu_igsc_aux_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_get_parent
    - fu_device_get_name
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:62,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:63,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:63,1
    - Dst: fu_igsc_device_get_aux_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:67,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:72,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:75,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 80
    functionName: fu_igsc_aux_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - FU_IGSC_AUX_DEVICE
    - g_prefix_error
    - g_strdup_printf
    - fu_igsc_device_get_aux_version
    - fu_device_get_parent
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:89,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:90,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:91,1
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:91,1
    - Dst: fu_igsc_aux_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:91,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:94,1
    - Dst: fu_igsc_aux_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:98,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:101,1
    - Dst: fu_igsc_device_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:102,1
    - Dst: fu_igsc_aux_firmware_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:108,1
    - Dst: fu_igsc_aux_firmware_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:112,1
    - Dst: fu_igsc_aux_firmware_get_major_vcn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:117,1
    - Dst: fu_igsc_aux_firmware_get_major_vcn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:121,1
    - Dst: fu_igsc_aux_firmware_get_oem_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:126,1
    - Dst: fu_igsc_aux_firmware_get_oem_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:130,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:136,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 137
    functionName: fu_igsc_aux_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IGSC_AUX_FIRMWARE
    - fu_igsc_aux_firmware_get_major_version
    - fu_igsc_aux_firmware_get_major_vcn
    - g_steal_pointer
    - FU_IGSC_AUX_DEVICE
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_igsc_aux_firmware_new
    - fu_igsc_device_get_ssvid
    - fu_igsc_device_get_ssdid
    - g_autoptr
    - fu_device_get_parent
    - fu_igsc_aux_firmware_get_oem_version
    - fu_igsc_aux_firmware_match_device
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_igsc_aux_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:146,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:148,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:152,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:156,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: fu_igsc_aux_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx_bytes
    - fu_firmware_get_image_by_idx_stream
    - fu_igsc_device_write_blob
    - g_autoptr
    - fu_device_get_parent
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_aux_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:174,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: fu_igsc_aux_device_prepare
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_aux_device_prepare(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:184,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: fu_igsc_aux_device_cleanup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_cleanup
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_aux_device_cleanup(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:190,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:191,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:192,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:193,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:194,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:195,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: fu_igsc_aux_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_logical_id
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_device_init(FuIgscAuxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscAuxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: fu_igsc_aux_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_device_class_init(FuIgscAuxDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: fu_igsc_aux_device_new
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuIgscAuxDevice
    signature: 'FuIgscAuxDevice *

      fu_igsc_aux_device_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_igsc_oprom_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_IGSC_OPROM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:35,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:36,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:42,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:43,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:45,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:45,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:46,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:50,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:51,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:53,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:53,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:54,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:59,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: fu_igsc_oprom_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - FU_IGSC_OPROM_DEVICE
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_get_parent
    - fu_device_get_name
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:74,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:75,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:78,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:81,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:86,1
    - Dst: fu_struct_igsc_oprom_version_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:89,1
    - Dst: fu_struct_igsc_oprom_version_get_major
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:92,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:93,1
    - Dst: fu_struct_igsc_oprom_version_get_minor
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:95,1
    - Dst: fu_struct_igsc_oprom_version_get_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:96,1
    - Dst: fu_struct_igsc_oprom_version_get_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:97,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: fu_igsc_oprom_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_igsc_device_get_version_raw
    - fu_struct_igsc_oprom_version_get_minor
    - g_prefix_error
    - fu_struct_igsc_oprom_version_get_major
    - fu_struct_igsc_oprom_version_get_hotfix
    - g_strdup_printf
    - fu_struct_igsc_oprom_version_parse
    - fu_struct_igsc_oprom_version_get_build
    - FU_IGSC_OPROM_DEVICE
    - g_autoptr
    - fu_device_get_parent
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_device_setup(FuDevice *device, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:111,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:112,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:112,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:113,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:114,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:115,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:118,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:118,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:121,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:125,1
    - Dst: fu_igsc_oprom_firmware_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:131,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:134,1
    - Dst: fu_igsc_oprom_firmware_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:139,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:139,1
    - Dst: fu_igsc_device_get_oprom_code_devid_enforcement
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:151,1
    - Dst: fu_igsc_oprom_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:152,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:152,1
    - Dst: fu_igsc_oprom_firmware_has_allowlist
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:160,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:162,1
    - Dst: fu_igsc_oprom_firmware_has_allowlist
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:179,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:179,1
    - Dst: fu_igsc_oprom_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:180,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:189,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 201
    functionName: fu_igsc_oprom_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_oprom_firmware_has_allowlist
    - fu_igsc_device_get_ssvid
    - fu_firmware_get_image_by_idx
    - FU_IGSC_DEVICE
    - g_set_error
    - FU_IGSC_OPROM_DEVICE
    - fu_device_get_parent
    - fu_device_get_pid
    - FU_IGSC_OPROM_FIRMWARE
    - fu_linear_firmware_new
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_igsc_oprom_firmware_get_major_version
    - fu_igsc_oprom_firmware_match_device
    - fu_device_get_vid
    - FU_DEVICE
    - g_set_error_literal
    - fu_igsc_device_get_oprom_code_devid_enforcement
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_igsc_oprom_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:210,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:211,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:212,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:215,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 226
    functionName: fu_igsc_oprom_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_igsc_device_write_blob
    - FU_IGSC_OPROM_DEVICE
    - g_autoptr
    - fu_device_get_parent
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_oprom_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:235,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: fu_igsc_oprom_device_prepare
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_oprom_device_prepare(FuDevice *device,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:245,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: fu_igsc_oprom_device_cleanup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_cleanup
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_oprom_device_cleanup(FuDevice *device,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:251,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:252,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:253,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:254,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:255,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 6
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: fu_igsc_oprom_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_device_init(FuIgscOpromDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscOpromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: fu_igsc_oprom_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_device_class_init(FuIgscOpromDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:275,1
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - payload_type
    argTypes:
    - FuContext*
    - FuIgscFwuHeciPayloadType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: fu_igsc_oprom_device_new
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_OPROM_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuIgscOpromDevice
    signature: 'FuIgscOpromDevice *

      fu_igsc_oprom_device_new(FuContext *ctx, FuIgscFwuHeciPayloadType payload_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:53,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:54,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:58,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: fu_igsc_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:65,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: fu_igsc_device_get_oprom_code_devid_enforcement
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_oprom_code_devid_enforcement(FuIgscDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:72,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: fu_igsc_device_get_ssvid
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_DEVICE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_igsc_device_get_ssvid(FuIgscDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:79,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fu_igsc_device_get_ssdid
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_DEVICE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_igsc_device_get_ssdid(FuIgscDevice *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:90,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:98,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:125,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - self
    - resp_header
    - command_id
    - error
    argTypes:
    - FuIgscDevice*
    - struct gsc_fwu_heci_response*
    - FuIgscFwuHeciCommandId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 143
    functionName: fu_igsc_device_heci_validate_response_header
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_heci_validate_response_header(FuIgscDevice
      *self,\n\t\t\t\t\t     struct gsc_fwu_heci_response *resp_header,\n\t\t\t\t\t
      \    FuIgscFwuHeciCommandId command_id,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:154,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:154,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:160,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - self
    - req_buf
    - req_bufsz
    - resp_buf
    - resp_bufsz
    - error
    argTypes:
    - FuIgscDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 177
    functionName: fu_igsc_device_command
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_read
    - g_set_error
    - FU_MEI_DEVICE
    - fu_mei_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_command(FuIgscDevice *self,\n\t\t       const
      guint8 *req_buf,\n\t\t       gsize req_bufsz,\n\t\t       guint8 *resp_buf,\n\t\t
      \      gsize resp_bufsz,\n\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:192,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:198,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:207,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:215,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - self
    - partition
    - buf
    - bufsz
    - error
    argTypes:
    - FuIgscDevice*
    - FuIgscFwuHeciPartitionVersion
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 238
    functionName: fu_igsc_device_get_version_raw
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_memcpy_safe
    - fu_igsc_device_heci_validate_response_header
    - fu_igsc_device_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_get_version_raw(FuIgscDevice *self,\n\t\t\t
      \      FuIgscFwuHeciPartitionVersion partition,\n\t\t\t       guint8 *buf,\n\t\t\t
      \      gsize bufsz,\n\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:251,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - oem_version
    - major_version
    - major_vcn
    - error
    argTypes:
    - FuIgscDevice*
    - guint32*
    - guint16*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 240
    functionDepth: 6
    functionLinenumber: 240
    functionLinenumberEnd: 273
    functionName: fu_igsc_device_get_aux_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - fu_igsc_device_command
    - fu_igsc_device_heci_validate_response_header
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_get_aux_version(FuIgscDevice *self,\n\t\t\t
      \      guint32 *oem_version,\n\t\t\t       guint16 *major_version,\n\t\t\t       guint16
      *major_vcn,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:282,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: fu_igsc_device_get_subsystem_ids
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_command
    - fu_igsc_device_heci_validate_response_header
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_subsystem_ids(FuIgscDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:317,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:323,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:332,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 309
    functionDepth: 6
    functionLinenumber: 309
    functionLinenumberEnd: 361
    functionName: fu_igsc_device_get_config
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_command
    - g_set_error
    - g_prefix_error
    - fu_igsc_device_heci_validate_response_header
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_config(FuIgscDevice *self, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:366,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:369,1
    - Dst: fu_struct_igsc_fw_version_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:369,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:372,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:372,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:373,1
    - Dst: fu_heci_device_arbh_svn_get_info
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:376,1
    - Dst: FU_HECI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:376,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:381,1
    - Dst: fu_udev_device_reopen
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:384,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:384,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:388,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:388,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:389,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:394,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:399,1
    - Dst: fu_struct_igsc_fw_version_get_project
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:402,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:403,1
    - Dst: fu_struct_igsc_fw_version_get_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:404,1
    - Dst: fu_struct_igsc_fw_version_get_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:405,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:406,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:409,1
    - Dst: fu_igsc_device_get_config
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:411,1
    - Dst: fu_igsc_device_get_subsystem_ids
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:417,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:421,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:422,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:427,1
    - Dst: fu_igsc_aux_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:427,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:428,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:432,1
    - Dst: fu_igsc_oprom_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:434,1
    - Dst: fu_igsc_oprom_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:436,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:437,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:438,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 443
    functionName: fu_igsc_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_prefix_error
    - fu_udev_device_reopen
    - fu_struct_igsc_fw_version_get_build
    - fu_igsc_aux_device_new
    - FU_IGSC_DEVICE
    - fu_device_set_version
    - fu_struct_igsc_fw_version_get_project
    - fu_igsc_device_get_version_raw
    - FU_HECI_DEVICE
    - fu_device_get_context
    - FU_MEI_DEVICE
    - FU_UDEV_DEVICE
    - fu_mei_device_connect
    - g_autoptr
    - fu_igsc_device_get_subsystem_ids
    - fu_heci_device_arbh_svn_get_info
    - fu_igsc_oprom_device_new
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_struct_igsc_fw_version_get_hotfix
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_igsc_device_get_config
    - fu_struct_igsc_fw_version_new
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:453,1
    - Dst: fu_mei_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:456,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:456,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:458,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:461,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:462,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - line
    - fw_status
    - error
    argTypes:
    - FuIgscDevice*
    - guint
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 471
    functionName: fu_igsc_device_get_fw_status
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_mei_device_get_fw_status
    - g_strdup_printf
    - FU_MEI_DEVICE
    - g_return_val_if_fail
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_fw_status(FuIgscDevice *self, guint line,
      guint32 *fw_status, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:476,1
    - Dst: fu_igsc_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:479,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:483,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:484,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: fu_igsc_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    - fu_igsc_device_get_fw_status
    - fu_device_add_instance_str
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:504,1
    - Dst: fu_igsc_code_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:504,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:507,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:509,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:509,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:510,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:514,1
    - Dst: fu_igsc_code_firmware_get_hw_sku
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:518,1
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:518,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:519,1
    - Dst: fu_igsc_code_firmware_get_hw_sku
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:523,1
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:523,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 530
    functionName: fu_igsc_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_IGSC_CODE_FIRMWARE
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_igsc_code_firmware_new
    - g_strcmp0
    - fu_igsc_code_firmware_get_hw_sku
    - fu_firmware_get_id
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_igsc_device_prepare_firmware(FuDevice *device,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:536,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: fu_igsc_device_update_end
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - fu_mei_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_update_end(FuIgscDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:549,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:549,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:551,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:552,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:553,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - data
    - length
    - error
    argTypes:
    - FuIgscDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 559
    functionName: fu_igsc_device_update_data
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_heci_validate_response_header
    - g_autoptr
    - fu_igsc_device_command
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_update_data(FuIgscDevice *self, const guint8
      *data, gsize length, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:573,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:573,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:575,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:579,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:581,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:582,1
    - Dst: fu_igsc_device_heci_validate_response_header
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - payload_type
    - fw_info
    - fw
    - error
    argTypes:
    - FuIgscDevice*
    - guint32
    - GBytes*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 588
    functionName: fu_igsc_device_update_start
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_igsc_device_heci_validate_response_header
    - g_autoptr
    - fu_igsc_device_command
    - fu_input_stream_size
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_update_start(FuIgscDevice *self,\n\t\t\t    guint32
      payload_type,\n\t\t\t    GBytes *fw_info,\n\t\t\t    GInputStream *fw,\n\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:595,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 600
    functionName: fu_igsc_device_no_update
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - fu_mei_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_no_update(FuIgscDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:608,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:609,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:609,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:610,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:611,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:614,1
    - Dst: fu_igsc_device_update_data
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:617,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:618,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:619,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:621,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:624,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuIgscDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 602
    functionDepth: 7
    functionLinenumber: 602
    functionLinenumberEnd: 630
    functionName: fu_igsc_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_igsc_device_update_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_write_chunks(FuIgscDevice *self,\n\t\t\t    FuChunkArray
      *chunks,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:636,1
    - Dst: fu_struct_igsc_fw_version_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:636,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:638,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:644,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:644,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 7
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: fu_igsc_device_wait_for_reset
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_get_version_raw
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_struct_igsc_fw_version_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_wait_for_reset(FuIgscDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:653,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: fu_igsc_device_reconnect_cb
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - fu_mei_device_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_reconnect_cb(FuDevice *self, gpointer user_data,
      GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:666,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:666,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:668,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:672,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:673,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:674,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:675,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:676,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:677,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:678,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:680,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:681,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:682,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:683,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:684,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:685,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:686,1
    - Dst: fu_igsc_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:690,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:693,1
    - Dst: fu_igsc_device_update_start
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:696,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:697,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:700,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:703,1
    - Dst: fu_igsc_device_write_chunks
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:710,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:710,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:712,1
    - Dst: fu_igsc_device_update_end
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:715,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:716,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:719,1
    - Dst: fu_igsc_device_wait_for_reset
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:724,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:727,1
    - Dst: fu_igsc_device_wait_for_reset
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:732,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:735,1
    - Dst: fu_igsc_device_no_update
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:742,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:743,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:746,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:748,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 6
    argNames:
    - self
    - payload_type
    - fw_info
    - fw
    - progress
    - error
    argTypes:
    - FuIgscDevice*
    - FuIgscFwuHeciPayloadType
    - GBytes*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 656
    functionDepth: 8
    functionLinenumber: 656
    functionLinenumberEnd: 752
    functionName: fu_igsc_device_write_blob
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 2
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_device_retry_full
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_igsc_device_update_end
    - fu_igsc_device_update_start
    - g_prefix_error
    - fu_progress_add_step
    - fu_igsc_device_write_chunks
    - FU_MEI_DEVICE
    - fu_mei_device_get_max_msg_length
    - fu_progress_set_id
    - FU_DEVICE
    - g_autoptr
    - fu_igsc_device_no_update
    - fu_device_add_flag
    - fu_igsc_device_get_fw_status
    - fu_igsc_device_wait_for_reset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_write_blob(FuIgscDevice *self,\n\t\t\t  FuIgscFwuHeciPayloadType
      payload_type,\n\t\t\t  GBytes *fw_info,\n\t\t\t  GInputStream *fw,\n\t\t\t  FuProgress
      *progress,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:761,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:762,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:763,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:767,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:771,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:774,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 754
    functionDepth: 9
    functionLinenumber: 754
    functionLinenumberEnd: 785
    functionName: fu_igsc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_write_blob
    - fu_firmware_get_image_by_idx_bytes
    - fu_firmware_get_image_by_idx_stream
    - fu_device_add_flag
    - g_autoptr
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_write_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:790,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:793,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:793,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:796,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuIgscDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 801
    functionName: fu_igsc_device_set_pci_power_policy
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_udev_device_write_sysfs
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_set_pci_power_policy(FuIgscDevice *self, const
      gchar *val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:809,1
    - Dst: fu_igsc_device_set_pci_power_policy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 803
    functionDepth: 6
    functionLinenumber: 803
    functionLinenumberEnd: 811
    functionName: fu_igsc_device_prepare
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_set_pci_power_policy
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_prepare(FuDevice *device,\n\t\t       FuProgress
      *progress,\n\t\t       FwupdInstallFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:819,1
    - Dst: fu_igsc_device_set_pci_power_policy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 813
    functionDepth: 6
    functionLinenumber: 813
    functionLinenumberEnd: 821
    functionName: fu_igsc_device_cleanup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_set_pci_power_policy
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_cleanup(FuDevice *device,\n\t\t       FuProgress
      *progress,\n\t\t       FwupdInstallFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:826,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:827,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:828,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:829,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:830,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 832
    functionName: fu_igsc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_igsc_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:837,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:837,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:838,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:838,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:839,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:839,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:840,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:841,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:842,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:843,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:844,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:844,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:845,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:845,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:846,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:847,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:847,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 834
    functionDepth: 6
    functionLinenumber: 834
    functionLinenumberEnd: 849
    functionName: fu_igsc_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_igsc_device_init(FuIgscDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:854,1
    - Dst: g_free
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:856,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 859
    functionName: fu_igsc_device_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_IGSC_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_igsc_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:864,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 875
    functionName: fu_igsc_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_device_class_init(FuIgscDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:28,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:29,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:30,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:31,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:32,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: fu_igsc_aux_firmware_export
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - FU_IGSC_AUX_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:44,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:44,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:47,1
    - Dst: fu_igsc_fwdata_device_info4_get_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:48,1
    - Dst: fu_igsc_fwdata_device_info4_get_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:49,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:50,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:51,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 6
    argNames:
    - self
    - vendor_id
    - device_id
    - subsys_vendor_id
    - subsys_device_id
    - error
    argTypes:
    - FuIgscAuxFirmware*
    - guint16
    - guint16
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 65
    functionName: fu_igsc_aux_firmware_match_device
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - fu_igsc_fwdata_device_info4_get_subsys_device_id
    - g_set_error
    - fu_igsc_fwdata_device_info4_get_subsys_vendor_id
    - FU_IS_IGSC_AUX_FIRMWARE
    - g_ptr_array_index
    - fu_igsc_fwdata_device_info4_get_vendor_id
    - g_return_val_if_fail
    - fu_igsc_fwdata_device_info4_get_device_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_aux_firmware_match_device(FuIgscAuxFirmware *self,\n\t\t\t\t
      \ guint16 vendor_id,\n\t\t\t\t  guint16 device_id,\n\t\t\t\t  guint16 subsys_vendor_id,\n\t\t\t\t
      \ guint16 subsys_device_id,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:70,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: fu_igsc_aux_firmware_get_oem_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_AUX_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_igsc_aux_firmware_get_oem_version(FuIgscAuxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:77,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: fu_igsc_aux_firmware_get_major_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_AUX_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_igsc_aux_firmware_get_major_version(FuIgscAuxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:84,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_igsc_aux_firmware_get_major_vcn
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IGSC_AUX_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_igsc_aux_firmware_get_major_vcn(FuIgscAuxFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:92,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:94,1
    - Dst: fu_struct_igsc_fwdata_version_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:99,1
    - Dst: fu_struct_igsc_fwdata_version_get_oem_manuf_data_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:104,1
    - Dst: fu_struct_igsc_fwdata_version_get_major_vcn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:105,1
    - Dst: fu_struct_igsc_fwdata_version_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscAuxFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: fu_igsc_aux_firmware_parse_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_igsc_fwdata_version_get_oem_manuf_data_version
    - fu_struct_igsc_fwdata_version_get_major_version
    - fu_firmware_get_image_by_idx_stream
    - fu_struct_igsc_fwdata_version_get_major_vcn
    - FU_FIRMWARE
    - g_autoptr
    - fu_struct_igsc_fwdata_version_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_firmware_parse_version(FuIgscAuxFirmware *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:113,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:116,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:120,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:123,1
    - Dst: fu_igsc_fwdata_device_info4_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:124,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:127,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:127,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:129,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:131,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuIgscAuxFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 145
    functionName: fu_igsc_aux_firmware_parse_extension
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - fu_firmware_get_stream
    - fu_igsc_fwdata_device_info4_parse_stream
    - g_steal_pointer
    - fu_firmware_get_idx
    - g_autoptr
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_firmware_parse_extension(FuIgscAuxFirmware *self,
      FuFirmware *fw, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:154,1
    - Dst: fu_ifwi_cpd_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:157,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:160,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:166,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:171,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:176,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:183,1
    - Dst: fu_igsc_aux_firmware_parse_extension
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:188,1
    - Dst: fu_igsc_aux_firmware_parse_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 201
    functionName: fu_igsc_aux_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_ifwi_cpd_firmware_new
    - FU_IGSC_AUX_FIRMWARE
    - fu_igsc_aux_firmware_parse_extension
    - fu_firmware_get_image_by_idx_stream
    - fu_firmware_parse_stream
    - fu_firmware_get_images
    - g_ptr_array_index
    - FU_FIRMWARE_CLASS
    - g_set_error_literal
    - g_autoptr
    - fu_igsc_aux_firmware_parse_version
    - fu_firmware_get_image_by_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_aux_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:206,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:206,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: fu_igsc_aux_firmware_write
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_igsc_aux_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:213,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:217,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:220,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:224,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:227,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:231,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: fu_igsc_aux_firmware_build
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_IGSC_AUX_FIRMWARE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: fu_igsc_aux_firmware_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_firmware_init(FuIgscAuxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:253,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:255,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: fu_igsc_aux_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_IGSC_AUX_FIRMWARE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:263,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscAuxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: fu_igsc_aux_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_firmware_class_init(FuIgscAuxFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:275,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: fu_igsc_aux_firmware_new
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_igsc_aux_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: fu_igsc_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_igsc_plugin_init(FuIgscPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:31,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:32,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:36,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:37,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: fu_igsc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_igsc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_igsc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_plugin_class_init(FuIgscPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:26,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_igsc_code_firmware_export
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_CODE_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_igsc_code_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:33,1
    - Dst: FU_IS_IFWI_FPT_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscCodeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_igsc_code_firmware_get_hw_sku
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IFWI_FPT_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_igsc_code_firmware_get_hw_sku(FuIgscCodeFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:43,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:43,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:43,1
    - Dst: fu_struct_igsc_fwu_gws_image_info_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:47,1
    - Dst: fu_struct_igsc_fwu_gws_image_info_get_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuIgscCodeFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: fu_igsc_code_firmware_parse_imgi
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_igsc_fwu_gws_image_info_parse_stream
    - FU_FIRMWARE
    - fu_struct_igsc_fwu_gws_image_info_get_instance_id
    - g_autoptr
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_code_firmware_parse_imgi(FuIgscCodeFirmware *self,
      GInputStream *stream, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:66,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:72,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:81,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:83,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:87,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:87,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:91,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:96,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:99,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:103,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:104,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_project
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:106,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:107,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:107,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:108,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:109,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:110,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:111,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:111,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:114,1
    - Dst: fu_igsc_code_firmware_parse_imgi
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 124
    functionName: fu_igsc_code_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - fu_struct_igsc_fwu_image_metadata_v1_parse_stream
    - fu_struct_igsc_fwu_image_metadata_v1_get_project
    - fu_firmware_set_id
    - g_prefix_error
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_build
    - FU_IGSC_CODE_FIRMWARE
    - fu_firmware_get_image_by_idx_stream
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_format
    - FU_FIRMWARE
    - g_strdup_printf
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_hotfix
    - fu_firmware_set_version
    - FU_FIRMWARE_CLASS
    - g_autoptr
    - fu_input_stream_size
    - fu_igsc_code_firmware_parse_imgi
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_code_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscCodeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: fu_igsc_code_firmware_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_igsc_code_firmware_init(FuIgscCodeFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscCodeFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: fu_igsc_code_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_igsc_code_firmware_class_init(FuIgscCodeFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:142,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: fu_igsc_code_firmware_new
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_igsc_code_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHughskiColorhugPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_hughski_colorhug_plugin_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_plugin_init(FuHughskiColorhugPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c:26,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_hughski_colorhug_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHughskiColorhugPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_hughski_colorhug_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_plugin_class_init(FuHughskiColorhugPluginClass
      *klass)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:66,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:76,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:88,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:89,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:89,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:99,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:108,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:117,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:117,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:126,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:127,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:130,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:131,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:135,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:140,1
    - Dst: fu_hughski_colorhug_error_to_string
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:153,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:159,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:170,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 7
    argNames:
    - self
    - cmd
    - ibuf
    - ibufsz
    - obuf
    - obufsz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - guint8
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 181
    functionName: fu_hughski_colorhug_device_msg
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_memcpy_safe
    - fu_hughski_colorhug_error_to_string
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_msg(FuHughskiColorhugDevice *self,\n\t\t\t
      \      guint8 cmd,\n\t\t\t       guint8 *ibuf,\n\t\t\t       gsize ibufsz,\n\t\t\t
      \      guint8 *obuf,\n\t\t\t       gsize obufsz,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:187,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:190,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:191,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:201,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: fu_hughski_colorhug_device_detach
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_hughski_colorhug_device_msg
    - g_autoptr
    - FU_HUGHSKI_COLORHUG_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:216,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:219,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:220,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:223,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:230,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 239
    functionName: fu_hughski_colorhug_device_attach
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_hughski_colorhug_device_msg
    - g_autoptr
    - FU_HUGHSKI_COLORHUG_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:247,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:249,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:250,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: fu_hughski_colorhug_device_set_flash_success
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_hughski_colorhug_device_msg
    - g_debug
    - g_autoptr
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_set_flash_success(FuHughskiColorhugDevice
      *self,\n\t\t\t\t\t     gboolean val,\n\t\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:270,1
    - Dst: fu_hughski_colorhug_device_set_flash_success
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: fu_hughski_colorhug_device_reload
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_hughski_colorhug_device_set_flash_success
    - FU_HUGHSKI_COLORHUG_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:281,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:283,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:284,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - addr
    - sz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 300
    functionName: fu_hughski_colorhug_device_erase
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hughski_colorhug_device_msg
    - fu_memwrite_uint16
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_erase(FuHughskiColorhugDevice
      *self,\n\t\t\t\t guint16 addr,\n\t\t\t\t gsize sz,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:306,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:315,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:316,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:317,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 319
    functionName: fu_hughski_colorhug_device_get_version
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_hughski_colorhug_device_msg
    - g_strdup_printf
    - fu_memread_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hughski_colorhug_device_get_version(FuHughskiColorhugDevice *self, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:324,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:327,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: fu_hughski_colorhug_device_probe
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - fu_device_add_flag
    - FU_HUGHSKI_COLORHUG_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:340,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:344,1
    - Dst: fu_usb_device_get_custom_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:348,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:348,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:355,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:355,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:360,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:360,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:361,1
    - Dst: fu_usb_device_get_custom_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:366,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:366,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:373,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:373,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:374,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:380,1
    - Dst: fu_hughski_colorhug_device_get_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:381,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:383,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:384,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:385,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 337
    functionDepth: 9
    functionLinenumber: 337
    functionLinenumberEnd: 393
    functionName: fu_hughski_colorhug_device_setup
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_hughski_colorhug_device_get_version
    - fu_device_set_version_format
    - fu_version_guess_format
    - fu_device_set_version
    - fu_device_get_version_format
    - g_debug
    - fu_usb_device_get_string_descriptor
    - FU_DEVICE_CLASS
    - g_warning
    - fu_device_add_instance_id
    - fu_usb_device_get_custom_index
    - FU_USB_DEVICE
    - FU_HUGHSKI_COLORHUG_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: fu_hughski_colorhug_device_calculate_checksum
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_hughski_colorhug_device_calculate_checksum(const guint8 *data,
      gsize len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:411,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:412,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:412,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:416,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:419,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:424,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:424,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:425,1
    - Dst: fu_hughski_colorhug_device_calculate_checksum
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:426,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:426,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:427,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:428,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:431,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:432,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:434,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:437,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:444,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 458
    functionName: fu_hughski_colorhug_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_hughski_colorhug_device_calculate_checksum
    - g_set_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_memcpy_safe
    - fu_hughski_colorhug_device_msg
    - fu_progress_set_id
    - fu_memwrite_uint16
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_write_blocks(FuHughskiColorhugDevice
      *self,\n\t\t\t\t\tFuChunkArray *chunks,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:467,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:468,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:468,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:473,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:476,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:481,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:481,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:482,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:483,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:490,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:499,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:499,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:499,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:500,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:506,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:507,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 517
    functionName: fu_hughski_colorhug_device_verify_blocks
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_hughski_colorhug_device_msg
    - fu_progress_set_id
    - fu_memwrite_uint16
    - g_autoptr
    - fu_chunk_array_index
    - memcmp
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_verify_blocks(FuHughskiColorhugDevice
      *self,\n\t\t\t\t\t FuChunkArray *chunks,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:526,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:528,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:531,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:532,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:533,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:534,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:535,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:538,1
    - Dst: fu_hughski_colorhug_device_set_flash_success
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:543,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:545,1
    - Dst: fu_hughski_colorhug_device_erase
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:548,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:550,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:553,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:556,1
    - Dst: fu_hughski_colorhug_device_write_blocks
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:563,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:565,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:568,1
    - Dst: fu_hughski_colorhug_device_verify_blocks
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:571,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:573,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 580
    functionName: fu_hughski_colorhug_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_stream
    - fu_progress_step_done
    - fu_firmware_get_size
    - fu_hughski_colorhug_device_write_blocks
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_hughski_colorhug_device_verify_blocks
    - g_autoptr
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_hughski_colorhug_device_set_flash_success
    - fu_hughski_colorhug_device_erase
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:585,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:586,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:587,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:588,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:589,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: fu_hughski_colorhug_device_set_progress
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:598,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:598,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:599,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:599,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:600,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:601,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:601,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:602,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:602,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:603,1
    - Dst: fu_usb_device_set_configuration
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:604,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:604,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:605,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHughskiColorhugDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 593
    functionDepth: 6
    functionLinenumber: 593
    functionLinenumberEnd: 606
    functionName: fu_hughski_colorhug_device_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_usb_device_set_configuration
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_device_init(FuHughskiColorhugDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHughskiColorhugDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: fu_hughski_colorhug_device_class_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_device_class_init(FuHughskiColorhugDeviceClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_bootmgr_get_suffix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:67,1
    - Dst: fu_uefi_get_esp_path_for_os
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - esp_path
    - cmd
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: fu_uefi_get_esp_app_path
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - fu_uefi_get_esp_path_for_os
    - fu_uefi_bootmgr_get_suffix
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_get_esp_app_path(const gchar *esp_path, const gchar *cmd, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_bootmgr_get_suffix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:99,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:102,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:104,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:105,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:107,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:108,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:121,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:125,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:127,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - efivars
    - binary
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 136
    functionName: fu_uefi_get_built_app_path
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_strdup_printf
    - fu_efivars_get_secure_boot
    - g_file_test
    - fu_path_from_kind
    - fu_uefi_bootmgr_get_suffix
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_get_built_app_path(FuEfivars *efivars, const gchar *binary, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:146,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:147,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:149,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:155,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:156,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - width
    - height
    - error
    argTypes:
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: fu_uefi_get_framebuffer_size
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_build_filename
    - g_set_error_literal
    - g_file_test
    - fu_uefi_read_file_as_uint64
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_get_framebuffer_size(guint32 *width, guint32 *height,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:200,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:201,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:202,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:203,1
    - Dst: g_get_os_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:206,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:208,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:211,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:212,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:213,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:214,1
    - Dst: g_get_os_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:217,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:219,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:219,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:221,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:223,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:226,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:230,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - esp_base
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 234
    functionName: fu_uefi_get_esp_path_for_os
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 1
    functionsReached:
    - g_auto
    - g_debug
    - g_steal_pointer
    - g_build_filename
    - g_strsplit
    - g_strdup
    - g_file_test
    - g_get_os_info
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_get_esp_path_for_os(const gchar *esp_base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:242,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:244,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:246,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - attr_name
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: fu_uefi_read_file_as_uint64
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 1
    functionsReached:
    - g_warning
    - g_file_get_contents
    - g_build_filename
    - g_autoptr
    - fu_strtoull
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_uefi_read_file_as_uint64(const gchar *path, const gchar
      *attr_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:261,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:262,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:265,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:269,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:271,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:272,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:274,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - source_fn
    - esp
    - target_no_mountpoint
    argTypes:
    - gchar*
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 276
    functionName: fu_uefi_esp_target_verify
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_build_filename
    - fu_volume_get_mount_point
    - g_file_test
    - g_compute_checksum_for_data
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esp_target_verify(const gchar *source_fn, FuVolume
      *esp, const gchar *target_no_mountpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:281,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:282,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - esp
    - target_no_mountpoint
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: fu_uefi_esp_target_exists
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_volume_get_mount_point
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esp_target_exists(FuVolume *esp, const gchar *target_no_mountpoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:292,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:294,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:295,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:295,1
    - Dst: g_file_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:297,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - source_fn
    - esp
    - target_no_mountpoint
    - error
    argTypes:
    - gchar*
    - FuVolume*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 309
    functionName: fu_uefi_esp_target_copy
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_file_copy
    - g_file_new_for_path
    - g_build_filename
    - g_prefix_error
    - fu_volume_get_mount_point
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_esp_target_copy(const gchar *source_fn,\n\t\t\tFuVolume
      *esp,\n\t\t\tconst gchar *target_no_mountpoint,\n\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:23,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:24,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:25,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:35,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:36,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:43,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:51,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:59,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:68,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:69,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:70,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:74,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:80,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - device
    - idx
    - error
    argTypes:
    - FuDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 84
    functionName: fu_uefi_cod_device_get_results_for_idx
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_efivars_get_data
    - g_prefix_error
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - g_strdup_printf
    - fu_device_get_context
    - fwupd_guid_to_string
    - fu_uefi_capsule_device_set_status
    - g_set_error_literal
    - FU_UEFI_CAPSULE_DEVICE
    - fu_context_get_efivars
    - g_strcmp0
    - fu_uefi_capsule_device_get_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_cod_device_get_results_for_idx(FuDevice *device, guint
      idx, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:94,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:98,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:101,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:108,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:112,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:120,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - name
    - value
    - error
    argTypes:
    - FuUefiCodDevice*
    - gchar*
    - guint*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 130
    functionName: fu_uefi_cod_device_get_variable_idx
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - strlen
    - fu_device_get_context
    - fu_efivars_get_data_bytes
    - FU_DEVICE
    - fu_context_get_efivars
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_cod_device_get_variable_idx(FuUefiCodDevice *self,\n\t\t\t\t
      \   const gchar *name,\n\t\t\t\t    guint *value,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_COD_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:135,1
    - Dst: fu_uefi_cod_device_get_variable_idx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:142,1
    - Dst: fu_uefi_cod_device_get_results_for_idx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:143,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:145,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: fu_uefi_cod_device_get_results
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_COD_DEVICE
    - g_steal_pointer
    - g_error_matches
    - fu_uefi_cod_device_get_results_for_idx
    - fu_uefi_cod_device_get_variable_idx
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_cod_device_get_results(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:159,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:159,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:162,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:164,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:165,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:171,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: fu_uefi_cod_device_get_indexed_filename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_get_esp
    - g_steal_pointer
    - g_build_filename
    - g_strdup_printf
    - fu_volume_get_mount_point
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_cod_device_get_indexed_filename(FuUefiCapsuleDevice *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:183,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:188,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:194,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:197,1
    - Dst: fu_uefi_cod_device_get_indexed_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:199,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:202,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:204,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:214,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:214,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 216
    functionName: fu_uefi_cod_device_get_filename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_cod_device_get_indexed_filename
    - fu_uefi_capsule_device_get_esp
    - g_build_filename
    - g_strdup_printf
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_volume_get_mount_point
    - fu_uefi_capsule_device_get_guid
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_cod_device_get_filename(FuUefiCapsuleDevice *self, GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:225,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:226,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:230,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:233,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:234,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:242,1
    - Dst: fu_uefi_capsule_device_fixup_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:245,1
    - Dst: fu_uefi_cod_device_get_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:248,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:251,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:252,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:254,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:267,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:277,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:279,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:288,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 304
    functionName: fu_uefi_cod_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_fixup_firmware
    - g_debug
    - fu_path_mkdir_parent
    - fu_efivars_get_data
    - fu_efivars_set_data
    - g_prefix_error
    - fu_device_get_context
    - fu_device_has_private_flag
    - fu_uefi_cod_device_get_filename
    - g_set_error_literal
    - fu_memread_uint64_safe
    - FU_UEFI_CAPSULE_DEVICE
    - fu_context_get_efivars
    - g_autoptr
    - fu_bytes_set_contents
    - fu_uefi_capsule_device_get_guid
    - g_info
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_cod_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:310,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:311,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:311,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: fu_uefi_cod_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_cod_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:317,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCodDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: fu_uefi_cod_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - FU_DEVICE
    - fu_device_add_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_uefi_cod_device_init(FuUefiCodDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCodDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: fu_uefi_cod_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_cod_device_class_init(FuUefiCodDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 1403
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:57,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:58,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:58,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:59,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:59,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - esp
    argTypes:
    - FuUefiCapsuleDevice*
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: fu_uefi_capsule_device_set_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UEFI_CAPSULE_DEVICE
    - g_return_if_fail
    - g_set_object
    - GET_PRIVATE
    - FU_IS_VOLUME
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_set_esp(FuUefiCapsuleDevice *self, FuVolume
      *esp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:66,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:67,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:69,1
    - Dst: fu_uefi_capsule_device_kind_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:72,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:73,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:74,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:75,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:76,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:77,1
    - Dst: fu_uefi_capsule_device_status_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:81,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:82,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:84,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:85,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:86,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:86,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:88,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:90,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:92,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:93,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: fu_uefi_capsule_device_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_kind_to_string
    - fwupd_codec_string_append_int
    - fu_volume_get_id
    - fu_volume_get_mount_point
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_volume_get_partition_kind
    - g_strcmp0
    - fwupd_codec_string_append_hex
    - fu_volume_kind_convert_to_gpt
    - fu_uefi_capsule_device_status_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:105,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:106,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:109,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:110,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:111,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:115,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:116,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:118,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:120,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:123,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: fu_uefi_capsule_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_steal_pointer
    - fu_volume_get_mount_point
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - g_strdup
    - fu_volume_get_partition_kind
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:130,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:131,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:134,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:135,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:136,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:137,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:138,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: fu_uefi_capsule_device_report_metadata_post
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup_printf
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_report_metadata_post(FuDevice *device,
      GHashTable *metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:145,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:146,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: fu_uefi_capsule_device_get_kind
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuUefiCapsuleDeviceKind
    signature: FuUefiCapsuleDeviceKind fu_uefi_capsule_device_get_kind(FuUefiCapsuleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:154,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: fu_uefi_capsule_device_get_version
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_capsule_device_get_version(FuUefiCapsuleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:161,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:162,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: fu_uefi_capsule_device_get_version_lowest
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_capsule_device_get_version_lowest(FuUefiCapsuleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:170,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: fu_uefi_capsule_device_get_version_error
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_capsule_device_get_version_error(FuUefiCapsuleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:178,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: fu_uefi_capsule_device_get_hardware_instance
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_uefi_capsule_device_get_hardware_instance(FuUefiCapsuleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:186,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: fu_uefi_capsule_device_get_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuUefiCapsuleDeviceStatus
    signature: FuUefiCapsuleDeviceStatus fu_uefi_capsule_device_get_status(FuUefiCapsuleDevice
      *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:193,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:198,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:198,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:205,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:212,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:214,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:216,1
    - Dst: fu_uefi_capsule_device_status_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:217,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:219,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:221,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuUefiCapsuleDevice*
    - FuUefiCapsuleDeviceStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 190
    functionDepth: 6
    functionLinenumber: 190
    functionLinenumberEnd: 224
    functionName: fu_uefi_capsule_device_set_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_status_to_string
    - g_strdup_printf
    - fu_device_set_update_error
    - g_return_if_fail
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_set_update_state
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_set_status(FuUefiCapsuleDevice *self, FuUefiCapsuleDeviceStatus
      status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:230,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:231,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - require_esp_free_space
    argTypes:
    - FuUefiCapsuleDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: fu_uefi_capsule_device_set_require_esp_free_space
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: "void fu_uefi_capsule_device_set_require_esp_free_space(FuUefiCapsuleDevice
      *self,\n\t\t\t\t\t\t  gsize require_esp_free_space)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:238,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:239,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: fu_uefi_capsule_device_get_capsule_flags
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_capsule_device_get_capsule_flags(FuUefiCapsuleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:247,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: fu_uefi_capsule_device_get_guid
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_device_get_guid(FuUefiCapsuleDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:254,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: fu_uefi_capsule_device_build_varname
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_device_build_varname(FuUefiCapsuleDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:263,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:264,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:266,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:269,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:269,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:270,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:273,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:276,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:276,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 283
    functionName: fu_uefi_capsule_device_load_update_info
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_build_varname
    - g_steal_pointer
    - fu_uefi_update_info_new
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_device_get_context
    - FU_FIRMWARE
    - FU_DEVICE
    - fu_efivars_get_data_bytes
    - fu_context_get_efivars
    - g_autoptr
    - g_return_val_if_fail
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuUefiUpdateInfo
    signature: 'FuUefiUpdateInfo *

      fu_uefi_capsule_device_load_update_info(FuUefiCapsuleDevice *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:288,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:289,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:295,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:295,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:296,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:299,1
    - Dst: fu_struct_efi_update_info_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:307,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:309,1
    - Dst: fu_struct_efi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:314,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:315,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 330
    functionName: fu_uefi_capsule_device_clear_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data
    - fu_uefi_capsule_device_build_varname
    - fu_struct_efi_update_info_parse
    - memcpy
    - fu_efivars_set_data
    - g_prefix_error
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - g_autoptr
    - g_return_val_if_fail
    - fu_struct_efi_update_info_set_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_clear_status(FuUefiCapsuleDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:335,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:336,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:337,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:340,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:343,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:344,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:346,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:346,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:346,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:347,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:347,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:347,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - esp
    - capsule_path
    - error
    argTypes:
    - FuVolume*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: fu_uefi_capsule_device_build_dp_buf
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_efi_device_path_list_new
    - fu_efi_hard_drive_device_path_new_from_volume
    - fu_firmware_add_image
    - g_steal_pointer
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_efi_file_path_device_path_set_name
    - g_autoptr
    - fu_efi_file_path_device_path_new
    linkageType: ''
    returnType: FuEfiDevicePathList
    signature: 'FuEfiDevicePathList *

      fu_uefi_capsule_device_build_dp_buf(FuVolume *esp, const gchar *capsule_path,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:354,1
    - Dst: getpagesize
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:356,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:360,1
    - Dst: fu_struct_efi_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:362,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:363,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:369,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:378,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:378,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:379,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:380,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:382,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:383,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:385,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:389,1
    - Dst: fu_struct_efi_capsule_header_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:391,1
    - Dst: fu_struct_efi_capsule_header_set_header_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:392,1
    - Dst: fu_struct_efi_capsule_header_set_image_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:393,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:394,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:395,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:398,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:398,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:402,1
    - Dst: fu_struct_efi_capsule_header_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:405,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:408,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:409,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 411
    functionName: fu_uefi_capsule_device_fixup_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 1
    functionsReached:
    - g_prefix_error
    - g_return_val_if_fail
    - fu_struct_efi_capsule_header_new
    - g_debug
    - fu_struct_efi_capsule_header_set_header_size
    - fu_struct_efi_capsule_header_set_image_size
    - fu_struct_efi_capsule_header_set_guid
    - g_info
    - FU_IS_UEFI_CAPSULE_DEVICE
    - getpagesize
    - g_autoptr
    - g_bytes_new
    - fu_uefi_capsule_device_get_guid
    - fu_struct_efi_capsule_header_set_flags
    - g_bytes_get_data
    - fwupd_guid_from_string
    - fwupd_guid_to_string
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - g_bytes_ref
    - g_strcmp0
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uefi_capsule_device_fixup_firmware(FuUefiCapsuleDevice *self, GBytes *fw,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:420,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:421,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:425,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:426,1
    - Dst: fu_struct_efi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:426,1
    - Dst: fu_uefi_capsule_device_build_dp_buf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:429,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:432,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:432,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:437,1
    - Dst: fu_struct_efi_update_info_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:439,1
    - Dst: fu_struct_efi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:440,1
    - Dst: fu_struct_efi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:441,1
    - Dst: fu_struct_efi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:442,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:443,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:444,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - self
    - capsule_path
    - varname
    - guid_str
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 413
    functionDepth: 5
    functionLinenumber: 413
    functionLinenumberEnd: 458
    functionName: fu_uefi_capsule_device_write_update_info
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_struct_efi_update_info_new
    - fu_struct_efi_update_info_set_status
    - fu_byte_array_append_bytes
    - fu_efivars_set_data
    - g_prefix_error
    - fu_struct_efi_update_info_set_guid
    - fu_device_get_context
    - FU_FIRMWARE
    - fu_struct_efi_update_info_set_hw_inst
    - fu_struct_efi_update_info_set_flags
    - FU_DEVICE
    - GET_PRIVATE
    - fu_context_get_efivars
    - g_autoptr
    - fu_uefi_capsule_device_build_dp_buf
    - fwupd_guid_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_device_write_update_info(FuUefiCapsuleDevice
      *self,\n\t\t\t\t\t const gchar *capsule_path,\n\t\t\t\t\t const gchar *varname,\n\t\t\t\t\t
      const gchar *guid_str,\n\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:463,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:464,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:468,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:472,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:475,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 482
    functionName: fu_uefi_capsule_device_check_asset
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_get_built_app_path
    - g_prefix_error
    - fu_device_get_context
    - fu_device_has_private_flag
    - fu_efivars_get_secure_boot
    - FU_DEVICE
    - fu_context_get_efivars
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_check_asset(FuUefiCapsuleDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:490,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:491,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: fu_uefi_capsule_device_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_volume_locker
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_device_prepare(FuDevice *device,\n\t\t\t
      \      FuProgress *progress,\n\t\t\t       FwupdInstallFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:507,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:508,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:511,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: fu_uefi_capsule_device_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_device_locker_close
    - g_clear_object
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_device_cleanup(FuDevice *device,\n\t\t\t
      \      FuProgress *progress,\n\t\t\t       FwupdInstallFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:521,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:522,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:526,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:534,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:535,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:544,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:547,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:550,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:551,1
    - Dst: fu_device_set_version_lowest_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:552,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:553,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:558,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:559,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 570
    functionName: fu_uefi_capsule_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_lowest
    - g_set_error
    - fu_device_get_version_format
    - fu_device_add_private_flag
    - fu_device_set_version_lowest_raw
    - fu_device_add_icon
    - fu_device_add_instance_id
    - g_set_error_literal
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_version_from_uint32
    - fu_device_set_version_raw
    - fwupd_guid_is_valid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:575,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:579,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:582,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:588,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:593,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:595,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 601
    functionName: fu_uefi_capsule_device_capture_efi_debugging
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_get_context
    - fu_efivars_get_data_bytes
    - fu_context_get_efivars
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_capture_efi_debugging(FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:606,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:607,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:609,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:609,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:612,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:621,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:628,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 638
    functionName: fu_uefi_capsule_device_perhaps_enable_debugging
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_set_data
    - g_prefix_error
    - fu_device_get_context
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_efivars_exists
    - fu_context_get_efivars
    - fu_efivars_delete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_perhaps_enable_debugging(FuUefiCapsuleDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:643,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:644,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:647,1
    - Dst: fu_uefi_capsule_device_capture_efi_debugging
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:648,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 640
    functionDepth: 7
    functionLinenumber: 640
    functionLinenumberEnd: 653
    functionName: fu_uefi_capsule_device_get_results
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_set_status
    - fu_device_has_private_flag
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_capture_efi_debugging
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_get_results(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: fu_uefi_capsule_device_get_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_uefi_capsule_device_get_esp(FuUefiCapsuleDevice *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:669,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:672,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:672,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:676,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:681,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:684,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:686,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:687,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:690,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:692,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:693,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:695,1
    - Dst: fu_volume_check_free_space
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:699,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 704
    functionName: fu_uefi_capsule_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_device_has_private_flag
    - fu_volume_check_free_space
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_firmware_new
    - g_info
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_uefi_capsule_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:712,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:713,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:716,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:719,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:722,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:725,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:728,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:731,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:731,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:734,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:737,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:740,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 706
    functionDepth: 7
    functionLinenumber: 706
    functionLinenumberEnd: 743
    functionName: fu_uefi_capsule_device_set_property
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_set_status
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    - g_value_get_uint64
    - g_value_dup_string
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    linkageType: ''
    returnType: void
    signature: "void fu_uefi_capsule_device_set_property(GObject *object,\n\t\t\t\t
      \   guint prop_id,\n\t\t\t\t    const GValue *value,\n\t\t\t\t    GParamSpec
      *pspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:748,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:749,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:750,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:751,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:752,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: fu_uefi_capsule_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:759,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:760,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:761,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:762,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:763,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:764,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:764,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:765,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:765,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:766,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:767,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:767,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:768,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:768,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:769,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:769,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:771,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:773,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:773,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:775,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:775,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:777,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:779,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:779,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:781,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:783,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:785,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:785,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:787,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:789,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 791
    functionName: fu_uefi_capsule_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_init(FuUefiCapsuleDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:796,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:797,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:799,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:801,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:803,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 806
    functionName: fu_uefi_capsule_device_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_UEFI_CAPSULE_DEVICE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:811,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 812
    functionName: fu_uefi_capsule_device_convert_version
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:817,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:819,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:840,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:845,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:852,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:859,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:866,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:873,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:880,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:887,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:894,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:901,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:908,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:915,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:922,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:929,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:937,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 945
    functionName: fu_uefi_capsule_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_string
    - g_param_spec_uint64
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - g_param_spec_uint
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_class_init(FuUefiCapsuleDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:18,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:21,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:27,1
    - Dst: g_array_append_val
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:33,1
    - Dst: fu_efivars_set_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:34,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - efivars
    - boot_entry
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 41
    functionName: fu_uefi_bootmgr_add_to_boot_order
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_boot_order
    - g_prefix_error
    - g_array_append_val
    - fu_efivars_set_boot_order
    - g_autoptr
    - g_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bootmgr_add_to_boot_order(FuEfivars *efivars, guint16
      boot_entry, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: fu_uefi_bootmgr_parse_name
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_uefi_bootmgr_parse_name(const gchar *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:60,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:62,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:70,1
    - Dst: fu_uefi_bootmgr_parse_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:73,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:78,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:80,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:83,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:83,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:85,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:86,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 97
    functionName: fu_uefi_bootmgr_verify_fwupd
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_names
    - g_debug
    - fu_efivars_get_boot_entry
    - FU_FIRMWARE
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_strcmp0
    - fu_uefi_bootmgr_parse_name
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bootmgr_verify_fwupd(FuEfivars *efivars, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:110,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:113,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:113,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:126,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:126,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:129,1
    - Dst: fu_uefi_bootmgr_parse_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:130,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:139,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:142,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:147,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:150,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:150,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:152,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:153,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:157,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:166,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:168,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:184,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:191,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:192,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:193,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:201,1
    - Dst: fu_uefi_bootmgr_add_to_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:208,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:213,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:214,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 4
    argNames:
    - efivars
    - loadopt
    - flags
    - error
    argTypes:
    - FuEfivars*
    - FuEfiLoadOption*
    - FuUefiBootmgrFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 218
    functionName: fu_uefi_bootmgr_setup_bootnext_with_loadopt
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_efi_load_option_new
    - FU_FIRMWARE
    - fu_efivars_set_data_bytes
    - fu_firmware_get_id
    - g_set_error
    - g_debug
    - g_ptr_array_index
    - fu_uefi_bootmgr_parse_name
    - fu_efivars_get_names
    - g_steal_pointer
    - fu_efivars_set_boot_data
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_efivars_get_boot_data
    - fu_efivars_set_boot_next
    - fu_firmware_write
    - fu_uefi_bootmgr_add_to_boot_order
    - fu_bytes_compare
    - g_malloc0
    - g_strdup_printf
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_bootmgr_setup_bootnext_with_loadopt(FuEfivars *efivars,\n\t\t\t\t\t
      \   FuEfiLoadOption *loadopt,\n\t\t\t\t\t    FuUefiBootmgrFlags flags,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:224,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:227,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:230,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:232,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:233,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:234,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:237,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:239,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:241,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:243,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:243,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:249,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:252,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:252,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:253,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:253,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:254,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:254,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:255,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:260,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:273,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:279,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:280,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:280,1
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:285,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:285,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:285,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:290,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:299,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:301,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:301,1
    - Dst: fu_csv_entry_get_value_by_column_id_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:310,1
    - Dst: fu_csv_entry_get_value_by_column_id_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:320,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:324,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 3
    argNames:
    - efivars
    - source_shim
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 337
    functionName: fu_uefi_bootmgr_shim_is_safe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_csv_entry_get_value_by_column_id_uint64
    - FU_FIRMWARE
    - fu_firmware_get_images
    - fu_csv_firmware_new
    - g_propagate_error
    - fu_firmware_get_id
    - g_set_error
    - g_debug
    - g_file_new_for_path
    - g_ptr_array_index
    - fu_pefile_firmware_new
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - g_error_matches
    - g_autoptr
    - FU_CSV_FIRMWARE
    - fu_firmware_parse_bytes
    - fu_firmware_parse_file
    - FU_CSV_ENTRY
    - fu_efivars_get_data_bytes
    - fu_csv_firmware_add_column_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bootmgr_shim_is_safe(FuEfivars *efivars, const gchar
      *source_shim, GError **error)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:356,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:356,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:359,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:364,1
    - Dst: fu_uefi_get_esp_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:367,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:372,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:374,1
    - Dst: fu_uefi_bootmgr_shim_is_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:375,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:377,1
    - Dst: fu_uefi_esp_target_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:382,1
    - Dst: fu_uefi_get_esp_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:385,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:388,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:389,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:401,1
    - Dst: fu_uefi_get_esp_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:412,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:415,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:416,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:426,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:427,1
    - Dst: fu_uefi_capsule_device_build_dp_buf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:433,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:436,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:436,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:436,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:437,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:437,1
    - Dst: fu_uefi_bootmgr_setup_bootnext_with_loadopt
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:440,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 5
    argNames:
    - efivars
    - esp
    - description
    - flags
    - error
    argTypes:
    - FuEfivars*
    - FuVolume*
    - gchar*
    - FuUefiBootmgrFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 441
    functionName: fu_uefi_bootmgr_bootnext
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_uefi_esp_target_exists
    - fu_uefi_get_built_app_path
    - fu_uefi_esp_target_copy
    - g_set_error
    - fu_uefi_get_esp_app_path
    - fu_uefi_capsule_device_build_dp_buf
    - fu_firmware_add_image
    - fu_firmware_set_id
    - g_path_get_basename
    - fu_efi_load_option_new
    - fu_efi_load_option_set_metadata
    - fu_efivars_get_secure_boot
    - fu_uefi_esp_target_verify
    - FU_FIRMWARE
    - fu_volume_get_mount_point
    - g_autoptr
    - fu_uefi_bootmgr_setup_bootnext_with_loadopt
    - fu_uefi_bootmgr_shim_is_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_bootmgr_bootnext(FuEfivars *efivars,\n\t\t\t FuVolume
      *esp,\n\t\t\t const gchar *description,\n\t\t\t FuUefiBootmgrFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:42,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:44,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:45,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:46,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:48,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: fu_uefi_capsule_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_backend_add_string
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_bool
    - fu_uefi_bgrt_get_supported
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_to_string(FuPlugin *plugin, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:58,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:58,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:65,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:68,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:71,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:71,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:72,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:77,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:80,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:85,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:87,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:90,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 95
    functionName: fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_version_ensure_semver
    - fu_context_add_runtime_version
    - g_file_get_path
    - g_prefix_error
    - g_bytes_get_size
    - fu_plugin_get_context
    - fu_memmem_safe
    - g_autoptr
    - fu_utf16_to_utf8_bytes
    - fu_bytes_new_offset
    - fu_bytes_get_contents
    - FU_PLUGIN
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_fwupd_efi_parse_fallback(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:102,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:102,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:103,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:104,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:107,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - product
    - version
    argTypes:
    - FuUefiCapsulePlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: fu_uefi_capsule_plugin_fwupd_efi_add_sbom
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_plugin_get_context
    - FU_PLUGIN
    - fu_context_add_runtime_version
    linkageType: ''
    returnType: void
    signature: "void fu_uefi_capsule_plugin_fwupd_efi_add_sbom(FuUefiCapsulePlugin
      *self,\n\t\t\t\t\t  const gchar *product,\n\t\t\t\t\t  const gchar *version)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:116,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:118,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:120,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:122,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:127,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:128,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_add_sbom
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:130,1
    - Dst: fu_coswid_firmware_get_product
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:132,1
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:132,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_id
    - fu_firmware_get_version
    - fu_uefi_capsule_plugin_fwupd_efi_add_sbom
    - FU_COSWID_FIRMWARE
    - fu_firmware_get_images
    - fu_pefile_firmware_new
    - g_ptr_array_index
    - FU_IS_COSWID_FIRMWARE
    - fu_coswid_firmware_get_product
    - g_autoptr
    - fu_firmware_parse_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_fwupd_efi_parse_sbom(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:143,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:147,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: fu_uefi_capsule_plugin_fwupd_efi_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
    - g_debug
    - fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_fwupd_efi_parse(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:162,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:163,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:164,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:166,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:167,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: fu_uefi_capsule_plugin_fwupd_efi_changed_cb
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - g_warning
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_fwupd_efi_parse
    - g_autoptr
    - fu_context_add_runtime_version
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: "void fu_uefi_capsule_plugin_fwupd_efi_changed_cb(GFileMonitor *monitor,\n\t\t\t\t\t
      \   GFile *file,\n\t\t\t\t\t    GFile *other_file,\n\t\t\t\t\t    GFileMonitorEvent
      event_type,\n\t\t\t\t\t    gpointer user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:176,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:176,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:177,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:181,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:184,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:186,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:189,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:189,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:191,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:193,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: fu_uefi_capsule_plugin_fwupd_efi_probe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_monitor_file
    - fu_uefi_get_built_app_path
    - G_FILE_MONITOR
    - g_file_new_for_path
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_fwupd_efi_parse
    - fu_context_get_efivars
    - fu_context_add_runtime_version
    - g_signal_connect
    - FU_PLUGIN
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_fwupd_efi_probe(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:203,1
    - Dst: fu_uefi_capsule_device_clear_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: fu_uefi_capsule_plugin_clear_results
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_clear_status
    - FU_UEFI_CAPSULE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_clear_results(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 227
    functionName: fu_uefi_capsule_plugin_efivars_attrs_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_strjoinv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_plugin_efivars_attrs_to_string(guint32 attrs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:232,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:235,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:238,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:239,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:240,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:243,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:244,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:246,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:247,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:250,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:251,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:252,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:253,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: fu_uefi_capsule_plugin_add_security_attrs_secureboot
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - g_error_matches
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attrs_append
    - fu_efivars_get_secure_boot
    - fwupd_security_attr_set_result_success
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result
    - fu_context_get_efivars
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_add_security_attrs_secureboot(FuPlugin
      *plugin, FuSecurityAttrs *attrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:264,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:265,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:269,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:270,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:271,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:273,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:273,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:280,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:284,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:291,1
    - Dst: fu_uefi_capsule_plugin_efivars_attrs_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:300,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:301,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:306,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:307,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:308,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:311,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 321
    functionName: fu_uefi_capsule_plugin_add_security_attrs_bootservices
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_efivars_get_names
    - g_debug
    - fu_efivars_get_data
    - fwupd_security_attr_add_flag
    - fu_uefi_capsule_plugin_efivars_attrs_to_string
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - g_ptr_array_index
    - fwupd_security_attr_set_result
    - fu_context_get_efivars
    - g_autoptr
    - fwupd_security_attr_add_metadata
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_add_security_attrs_bootservices(FuPlugin
      *plugin, FuSecurityAttrs *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_capsule_plugin_add_security_attrs_secureboot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:326,1
    - Dst: fu_uefi_capsule_plugin_add_security_attrs_bootservices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: fu_uefi_capsule_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_plugin_add_security_attrs_secureboot
    - fu_uefi_capsule_plugin_add_security_attrs_bootservices
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_get_language_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:339,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:342,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:343,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:344,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:354,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:355,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:357,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:358,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:360,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:361,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:363,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - width
    - height
    - error
    argTypes:
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 375
    functionName: fu_uefi_capsule_plugin_get_splash_data
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_bytes_ref
    - g_build_filename
    - fu_input_stream_from_path
    - g_strjoinv
    - g_strdup_printf
    - g_str_has_suffix
    - g_autoptr
    - fu_archive_lookup_by_fn
    - g_get_language_names
    - fu_path_from_kind
    - fu_archive_new_stream
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uefi_capsule_plugin_get_splash_data(guint width, guint height, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:392,1
    - Dst: fu_bitmap_image_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:393,1
    - Dst: fu_struct_efi_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:394,1
    - Dst: fu_struct_efi_ux_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:395,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:398,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:398,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:403,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:406,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:409,1
    - Dst: fu_uefi_get_esp_path_for_os
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:410,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:411,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:412,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:413,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:414,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:416,1
    - Dst: fu_struct_efi_capsule_header_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:420,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:422,1
    - Dst: fu_struct_efi_capsule_header_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:427,1
    - Dst: fu_struct_efi_capsule_header_set_image_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:428,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:429,1
    - Dst: fu_struct_efi_ux_capsule_header_set_x_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:433,1
    - Dst: fu_uefi_bgrt_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:435,1
    - Dst: fu_struct_efi_ux_capsule_header_set_y_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:436,1
    - Dst: fu_struct_efi_ux_capsule_header_set_y_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:439,1
    - Dst: fu_uefi_bgrt_get_yoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:441,1
    - Dst: fu_uefi_bgrt_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:441,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:445,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:446,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:447,1
    - Dst: fu_struct_efi_ux_capsule_header_set_checksum
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:448,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:451,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:454,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:457,1
    - Dst: fu_uefi_capsule_device_write_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:461,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 4
    argNames:
    - self
    - device
    - blob
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - FuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 377
    functionDepth: 6
    functionLinenumber: 377
    functionLinenumberEnd: 466
    functionName: fu_uefi_capsule_plugin_write_splash_data
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_FIRMWARE
    - fu_struct_efi_capsule_header_new
    - fu_output_stream_from_path
    - fu_path_mkdir_parent
    - fu_sum8_bytes
    - fu_struct_efi_capsule_header_set_image_size
    - g_output_stream_write
    - fu_struct_efi_ux_capsule_header_set_y_offset
    - fu_uefi_capsule_device_write_update_info
    - fu_struct_efi_capsule_header_set_guid
    - fu_uefi_bgrt_get_yoffset
    - g_build_filename
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_output_stream_write_bytes
    - fu_uefi_bgrt_get_height
    - fu_firmware_parse_bytes
    - fu_struct_efi_capsule_header_set_flags
    - fwupd_guid_from_string
    - fu_struct_efi_ux_capsule_header_set_x_offset
    - fu_uefi_get_esp_path_for_os
    - fu_bitmap_image_new
    - fu_struct_efi_ux_capsule_header_set_checksum
    - g_bytes_get_size
    - fu_sum8
    - g_strdup_printf
    - fu_volume_get_mount_point
    - fu_struct_efi_ux_capsule_header_new
    - fu_bitmap_image_get_width
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_plugin_write_splash_data(FuUefiCapsulePlugin
      *self,\n\t\t\t\t\t FuDevice *device,\n\t\t\t\t\t GBytes *blob,\n\t\t\t\t\t GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:471,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:471,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:472,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:475,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:491,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:492,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:493,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:494,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:501,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:502,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:508,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:531,1
    - Dst: fu_uefi_capsule_plugin_get_splash_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:539,1
    - Dst: fu_uefi_capsule_plugin_write_splash_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:546,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 547
    functionName: fu_uefi_capsule_plugin_update_splash
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - g_debug
    - fu_uefi_capsule_plugin_write_splash_data
    - fu_plugin_get_context
    - fu_device_has_private_flag
    - fu_uefi_bgrt_get_supported
    - fu_efivars_exists
    - g_set_error_literal
    - fu_uefi_capsule_plugin_get_splash_data
    - fu_context_get_efivars
    - g_autoptr
    - fu_efivars_delete
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_update_splash(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:560,1
    - Dst: fu_device_get_flashes_left
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:563,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:565,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:566,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:569,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:576,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:584,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:587,1
    - Dst: fu_uefi_capsule_plugin_update_splash
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:589,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:590,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 550
    functionDepth: 8
    functionLinenumber: 550
    functionLinenumberEnd: 594
    functionName: fu_uefi_capsule_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - g_debug
    - fu_device_write_firmware
    - _
    - fu_device_get_flashes_left
    - g_autoptr
    - fu_device_get_name
    - g_return_val_if_fail
    - g_info
    - fu_uefi_capsule_plugin_update_splash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_plugin_write_firmware(FuPlugin *plugin,\n\t\t\t\t
      \     FuDevice *device,\n\t\t\t\t      FuFirmware *firmware,\n\t\t\t\t      FuProgress
      *progress,\n\t\t\t\t      FwupdInstallFlags flags,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:601,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:604,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:605,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:611,1
    - Dst: fu_uefi_capsule_device_set_require_esp_free_space
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:613,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:613,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:616,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:617,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:620,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 622
    functionName: fu_uefi_capsule_plugin_load_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_private_flag
    - fu_plugin_get_config_value
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_uefi_capsule_device_set_require_esp_free_space
    - fu_strtoull
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_load_config(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:631,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:631,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:632,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:632,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:633,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:633,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:638,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:640,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:640,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:641,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:641,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:642,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsulePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 644
    functionName: fu_uefi_capsule_plugin_validate_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - fu_volume_get_partition_kind
    - g_strcmp0
    - FU_PLUGIN
    - fu_volume_kind_convert_to_gpt
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_validate_esp(FuUefiCapsulePlugin *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:651,1
    - Dst: fu_uefi_capsule_backend_device_new_from_dev
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:654,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:654,1
    - Dst: fu_uefi_capsule_plugin_load_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:656,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:658,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:658,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:660,1
    - Dst: fu_uefi_capsule_plugin_validate_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:661,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:664,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:666,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:667,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 5
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: fu_uefi_capsule_plugin_register_proxy_device
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - g_warning
    - fu_plugin_device_add
    - fu_device_inhibit
    - fu_uefi_capsule_plugin_load_config
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_validate_esp
    - fu_device_uninhibit
    - FU_DEVICE
    - fu_uefi_capsule_backend_device_new_from_dev
    - g_autoptr
    - FU_UEFI_CAPSULE_BACKEND
    - fu_uefi_capsule_device_set_esp
    - fu_context_get_default_esp
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_register_proxy_device(FuPlugin *plugin,
      FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:675,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:676,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:677,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:678,1
    - Dst: fu_uefi_capsule_plugin_register_proxy_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 672
    functionDepth: 6
    functionLinenumber: 672
    functionLinenumberEnd: 683
    functionName: fu_uefi_capsule_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_get_metadata
    - fu_device_get_guid_default
    - fu_device_to_string
    - fu_uefi_capsule_plugin_register_proxy_device
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - device_kind
    argTypes:
    - FuUefiCapsuleDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 699
    functionName: fu_uefi_capsule_plugin_uefi_type_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_plugin_uefi_type_to_string(FuUefiCapsuleDeviceKind device_kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:707,1
    - Dst: fu_uefi_capsule_plugin_uefi_type_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:707,1
    - Dst: g_string_prepend
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:709,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device_kind
    argTypes:
    - FuPlugin*
    - FuUefiCapsuleDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 711
    functionName: fu_uefi_capsule_plugin_get_name_for_type
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - fu_uefi_capsule_plugin_uefi_type_to_string
    - g_string_new
    - g_string_prepend
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_plugin_get_name_for_type(FuPlugin *plugin, FuUefiCapsuleDeviceKind
      device_kind)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:716,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:719,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:722,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:724,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:724,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:728,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:729,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:732,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:733,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:733,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:736,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:737,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:737,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:739,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:740,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:741,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:742,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:742,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:744,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:745,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:745,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:747,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:748,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:748,1
    - Dst: fu_acpi_uefi_cod_indexed_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:753,1
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:753,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:754,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:759,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:760,1
    - Dst: fu_uefi_capsule_plugin_get_name_for_type
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:762,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:764,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:764,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:766,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:771,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:773,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:775,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:775,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:780,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:780,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:782,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:784,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:789,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:789,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:791,1
    - Dst: fu_uefi_capsule_plugin_validate_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:792,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:795,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 713
    functionDepth: 5
    functionLinenumber: 713
    functionLinenumberEnd: 799
    functionName: fu_uefi_capsule_plugin_coldplug_device
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_uefi_capsule_plugin_get_name_for_type
    - fu_device_probe
    - fu_device_get_vendor
    - fu_uefi_capsule_device_set_esp
    - fu_device_set_vendor
    - fu_device_add_private_flag
    - fu_context_get_hwid_value
    - fu_context_has_hwid_flag
    - fu_device_get_name
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_device_setup
    - g_autoptr
    - fu_context_get_default_esp
    - g_warning
    - fu_acpi_uefi_cod_indexed_filename
    - fu_uefi_capsule_device_get_kind
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_validate_esp
    - FU_DEVICE
    - FU_ACPI_UEFI
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_coldplug_device(FuPlugin *plugin, FuUefiCapsuleDevice
      *dev, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:804,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:806,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:808,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:809,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 815
    functionName: fu_uefi_capsule_plugin_test_secure_boot
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_efivars_get_secure_boot
    - fu_plugin_add_report_metadata
    - fu_context_get_efivars
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_test_secure_boot(FuPlugin *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:822,1
    - Dst: fu_acpi_uefi_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:822,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:823,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:826,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:827,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:828,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:829,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 832
    functionName: fu_uefi_capsule_plugin_parse_acpi_uefi
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_acpi_uefi_new
    - g_steal_pointer
    - g_file_new_for_path
    - g_build_filename
    - g_autoptr
    - fu_path_from_kind
    - fu_firmware_parse_file
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uefi_capsule_plugin_parse_acpi_uefi(FuUefiCapsulePlugin *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:841,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:841,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:844,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:850,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:855,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:855,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:858,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 872
    functionName: fu_uefi_capsule_plugin_ensure_screen_size_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_prefix_error
    - FU_PLUGIN
    - fu_plugin_get_config_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_ensure_screen_size_config(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:879,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:882,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:882,1
    - Dst: fu_drm_device_get_crtc_x
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:885,1
    - Dst: fu_drm_device_get_crtc_y
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:886,1
    - Dst: fu_drm_device_get_crtc_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:887,1
    - Dst: fu_drm_device_get_crtc_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:888,1
    - Dst: fu_drm_device_get_crtc_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:889,1
    - Dst: fu_drm_device_get_crtc_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - drm_device
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - FuDrmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 895
    functionName: fu_uefi_capsule_plugin_ensure_screen_size_drm
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_drm_device_get_crtc_height
    - fu_drm_device_get_crtc_width
    - FU_DEVICE
    - fu_drm_device_get_crtc_x
    - g_autoptr
    - fu_device_locker_new
    - fu_drm_device_get_crtc_y
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_plugin_ensure_screen_size_drm(FuUefiCapsulePlugin
      *self,\n\t\t\t\t\t      FuDrmDevice *drm_device,\n\t\t\t\t\t      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:900,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:901,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:903,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:904,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:907,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:908,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:911,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:915,1
    - Dst: fu_uefi_capsule_backend_set_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:916,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:916,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:921,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:922,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:923,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:924,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:925,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:927,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:927,1
    - Dst: fu_uefi_capsule_plugin_ensure_screen_size_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:932,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:937,1
    - Dst: fu_uefi_get_framebuffer_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:938,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:941,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:945,1
    - Dst: fu_uefi_capsule_plugin_parse_acpi_uefi
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:949,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:951,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 897
    functionDepth: 5
    functionLinenumber: 897
    functionLinenumberEnd: 956
    functionName: fu_uefi_capsule_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_propagate_error
    - g_debug
    - fu_uefi_capsule_backend_set_device_gtype
    - fu_plugin_add_report_metadata
    - FU_UEFI_CAPSULE_BACKEND
    - fu_context_has_hwid_flag
    - FU_UEFI_CAPSULE_PLUGIN
    - g_steal_pointer
    - g_error_matches
    - fu_backend_setup
    - g_autoptr
    - fu_uefi_capsule_plugin_parse_acpi_uefi
    - fu_uefi_capsule_plugin_ensure_screen_size_config
    - fu_plugin_get_context
    - fu_efivars_supported
    - fu_plugin_add_flag
    - fu_context_get_efivars
    - fu_uefi_get_framebuffer_size
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:962,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:965,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:965,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:967,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:971,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:976,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 958
    functionDepth: 4
    functionLinenumber: 958
    functionLinenumberEnd: 979
    functionName: fu_uefi_capsule_plugin_unlock
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version_format
    - fu_device_set_version
    - fu_uefi_capsule_device_get_kind
    - FU_IS_UEFI_CAPSULE_DEVICE
    - FU_UEFI_CAPSULE_DEVICE
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_unlock(FuPlugin *plugin, FuDevice *device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:984,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:989,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:993,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:993,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:997,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:998,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:999,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1000,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1002,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1005,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pspec
    - plugin
    argTypes:
    - GObject*
    - GParamSpec*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1007
    functionName: fu_uefi_capsule_plugin_update_state_notify_cb
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - fu_device_inhibit
    - fu_device_get_update_state
    - fu_plugin_get_context
    - g_strdup_printf
    - g_ptr_array_index
    - FU_DEVICE
    - fu_device_get_id
    - fu_context_has_hwid_flag
    - fu_device_get_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_update_state_notify_cb(GObject *object,
      GParamSpec *pspec, FuPlugin *plugin)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1012,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1012,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1013,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1018,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1025,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1028,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1031,1
    - Dst: fu_acpi_uefi_cod_functional
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1041,1
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1042
    functionName: fu_uefi_capsule_plugin_check_cod_support
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data
    - g_prefix_error
    - fu_plugin_get_context
    - fu_acpi_uefi_cod_functional
    - fu_memread_uint64_safe
    - g_set_error_literal
    - FU_ACPI_UEFI
    - fu_context_get_efivars
    - FU_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_check_cod_support(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1047,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1063
    functionName: fu_uefi_capsule_plugin_bootloader_supports_fwupd
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data
    - fu_context_get_efivars
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_bootloader_supports_fwupd(FuContext
      *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1068,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1069,1
    - Dst: fu_uefi_capsule_plugin_bootloader_supports_fwupd
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1071,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1072,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1073,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1074,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1077,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1078,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1079,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1080,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1081,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1084,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1085,1
    - Dst: fu_uefi_capsule_plugin_check_cod_support
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1086,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1087,1
    - Dst: fu_uefi_capsule_backend_set_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1089,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1090,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1094,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1097,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1097,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1099,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1100,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1103,1
    - Dst: fu_uefi_capsule_plugin_coldplug_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1105,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1106,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1107,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1111,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1114,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1115,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1120,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1125,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1127,1
    - Dst: fu_uefi_capsule_plugin_load_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1130,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1133,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1135,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1138,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1140,1
    - Dst: fu_uefi_capsule_plugin_test_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1143,1
    - Dst: fu_uefi_bgrt_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1144,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1145,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1146,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1147,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1148,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1065
    functionDepth: 6
    functionLinenumber: 1065
    functionLinenumberEnd: 1152
    functionName: fu_uefi_capsule_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_backend_coldplug
    - fu_uefi_bgrt_get_supported
    - g_propagate_error
    - g_signal_connect
    - fu_uefi_capsule_plugin_check_cod_support
    - fu_progress_get_child
    - g_debug
    - fu_device_add_private_flag
    - fu_uefi_capsule_plugin_load_config
    - fu_progress_add_step
    - fu_uefi_capsule_backend_set_device_gtype
    - fu_uefi_capsule_plugin_coldplug_device
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_plugin_add_report_metadata
    - FU_UEFI_CAPSULE_BACKEND
    - fu_backend_get_devices
    - g_info
    - G_CALLBACK
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_progress_step_done
    - g_steal_pointer
    - g_error_matches
    - fu_plugin_device_add
    - g_autoptr
    - fu_uefi_capsule_plugin_test_secure_boot
    - fu_uefi_capsule_device_get_kind
    - fu_uefi_capsule_plugin_bootloader_supports_fwupd
    - fu_uefi_bgrt_setup
    - fu_plugin_get_context
    - FU_DEVICE
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1160,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1166,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1169,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1171,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1177,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1180,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1182,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1184,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1184,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1185,1
    - Dst: g_file_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1154
    functionDepth: 3
    functionLinenumber: 1154
    functionLinenumberEnd: 1193
    functionName: fu_uefi_capsule_plugin_cleanup_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_delete
    - g_file_new_for_path
    - g_build_filename
    - fu_volume_locker
    - g_ptr_array_index
    - g_set_error_literal
    - fu_volume_get_mount_point
    - g_autoptr
    - g_pattern_match_simple
    - fu_path_get_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_cleanup_esp(FuUefiCapsulePlugin *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1198,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1198,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1202,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1205,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1209,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1211,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1216,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1216,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1218,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1218,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1219,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1219,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1219,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1220,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1228
    functionName: fu_uefi_capsule_plugin_cleanup_bootnext
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_efivars_get_boot_next
    - fu_firmware_to_string
    - fu_plugin_get_context
    - fu_efivars_get_boot_entry
    - FU_FIRMWARE
    - fu_efivars_exists
    - fu_context_get_efivars
    - g_autoptr
    - fu_efivars_delete
    - g_strcmp0
    - FU_PLUGIN
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_cleanup_bootnext(FuUefiCapsulePlugin
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1233,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1234,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1235,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1238,1
    - Dst: fu_uefi_capsule_plugin_cleanup_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1242,1
    - Dst: fu_efivars_delete_with_glob
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1246,1
    - Dst: fu_uefi_capsule_plugin_cleanup_bootnext
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1255
    functionName: fu_uefi_capsule_plugin_reboot_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_cleanup_esp
    - fu_context_get_efivars
    - fu_uefi_capsule_plugin_cleanup_bootnext
    - fu_efivars_delete_with_glob
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_reboot_cleanup(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1273,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1274,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1257
    functionDepth: 3
    functionLinenumber: 1257
    functionLinenumberEnd: 1282
    functionName: fu_uefi_capsule_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_plugin_modify_config(FuPlugin *plugin,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1290,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1294,1
    - Dst: fu_uefi_capsule_plugin_ensure_screen_size_drm
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1295,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1296,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1303
    functionName: fu_uefi_capsule_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - g_warning
    - FU_DRM_DEVICE
    - FU_IS_DRM_DEVICE
    - fu_uefi_capsule_plugin_ensure_screen_size_drm
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t\t
      \   FuDevice *device,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_bgrt_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1308,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1309,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsulePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: fu_uefi_capsule_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - fu_uefi_bgrt_new
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_init(FuUefiCapsulePlugin *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1315,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1316,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1317,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1318,1
    - Dst: fu_uefi_capsule_backend_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1320,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1321,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1322,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1323,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1324,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1325,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1326,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1327,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1327,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1328,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1328,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1329,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1329,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1330,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1330,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1331,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1331,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1332,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1332,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1333,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1336,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1337,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1338,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1339,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1340,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1341,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1342,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1343,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1344,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_probe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1347,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1312
    functionDepth: 7
    functionLinenumber: 1312
    functionLinenumberEnd: 1349
    functionName: fu_uefi_capsule_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_plugin_add_rule
    - fu_uefi_capsule_plugin_fwupd_efi_probe
    - g_debug
    - fu_plugin_add_udev_subsystem
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_plugin_set_config_default
    - g_autoptr
    - fu_uefi_capsule_backend_new
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_constructed(GObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1354,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1356,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1358,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1360,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1362,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1363,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1366,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1368,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1370
    functionName: fu_uefi_capsule_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_PLUGIN
    - g_object_unref
    - g_file_monitor_cancel
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1375,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsulePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1391
    functionName: fu_uefi_capsule_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_class_init(FuUefiCapsulePluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:25,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:28,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:29,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:30,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:31,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:33,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:33,1
    - Dst: fu_volume_set_filesystem_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:36,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:38,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:39,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:39,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: fu_uefi_update_esp_valid_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_device_prepare_firmware
    - g_object_new
    - fu_volume_new_from_mount_path
    - fu_uefi_capsule_device_set_esp
    - fu_bytes_pad
    - FU_UEFI_CAPSULE_DEVICE
    - g_assert_no_error
    - g_autoptr
    - g_assert_nonnull
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - fu_volume_set_filesystem_free
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_esp_valid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:52,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:55,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:56,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:57,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:58,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:60,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:60,1
    - Dst: fu_volume_set_filesystem_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:63,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:65,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:66,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:66,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:67,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:72,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 74
    functionName: fu_uefi_update_esp_invalid_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_device_prepare_firmware
    - g_assert_null
    - g_object_new
    - fu_volume_new_from_mount_path
    - fu_uefi_capsule_device_set_esp
    - fu_bytes_pad
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - g_assert_error
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - fu_volume_set_filesystem_free
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_esp_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:79,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:82,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:83,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:84,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:85,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:87,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:87,1
    - Dst: fu_volume_set_filesystem_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:90,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:92,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:93,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:94,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:94,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:95,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:100,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: fu_uefi_update_esp_no_backup_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_new
    - fu_device_add_private_flag
    - fu_device_prepare_firmware
    - g_object_new
    - fu_volume_new_from_mount_path
    - fu_uefi_capsule_device_set_esp
    - fu_bytes_pad
    - FU_UEFI_CAPSULE_DEVICE
    - g_assert_no_error
    - g_autoptr
    - g_assert_nonnull
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - fu_volume_set_filesystem_free
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_esp_no_backup_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:109,1
    - Dst: fu_uefi_bgrt_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:109,1
    - Dst: fu_uefi_bgrt_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:111,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:112,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:113,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:113,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:114,1
    - Dst: fu_uefi_bgrt_get_xoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:114,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:115,1
    - Dst: fu_uefi_bgrt_get_yoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:115,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:116,1
    - Dst: fu_uefi_bgrt_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:116,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:117,1
    - Dst: fu_uefi_bgrt_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: fu_uefi_bgrt_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_uefi_bgrt_get_width
    - fu_uefi_bgrt_get_xoffset
    - fu_uefi_bgrt_new
    - g_assert_cmpint
    - fu_uefi_bgrt_setup
    - g_assert_true
    - fu_uefi_bgrt_get_supported
    - g_assert_no_error
    - g_autoptr
    - fu_uefi_bgrt_get_height
    - fu_uefi_bgrt_get_yoffset
    linkageType: ''
    returnType: void
    signature: void fu_uefi_bgrt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:126,1
    - Dst: fu_uefi_get_framebuffer_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:127,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:128,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:129,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:130,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: fu_uefi_framebuffer_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_assert_true
    - g_assert_no_error
    - g_autoptr
    - fu_uefi_get_framebuffer_size
    linkageType: ''
    returnType: void
    signature: void fu_uefi_framebuffer_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:139,1
    - Dst: fu_bitmap_image_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:141,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:143,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:145,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:146,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:147,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:147,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:152,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:153,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:154,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:155,1
    - Dst: fu_bitmap_image_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: fu_uefi_bitmap_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_bitmap_image_new
    - fu_bitmap_image_get_height
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_bitmap_image_get_width
    linkageType: ''
    returnType: void
    signature: void fu_uefi_bitmap_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:164,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:165,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:167,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:168,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:169,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:170,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:171,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:172,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:173,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:174,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - guidstr
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: fu_uefi_cod_device_build_efi_result
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_no_error
    - g_autoptr
    - g_bytes_new
    - g_byte_array_append
    - g_byte_array_new
    - fwupd_guid_from_string
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uefi_cod_device_build_efi_result(const gchar *guidstr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:184,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:186,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:193,1
    - Dst: fu_utf8_to_utf16_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:200,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:201,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:207,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:208,1
    - Dst: fu_utf8_to_utf16_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:210,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:214,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:215,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:216,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:223,1
    - Dst: fu_uefi_cod_device_build_efi_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:224,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:225,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:231,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:232,1
    - Dst: fu_uefi_cod_device_build_efi_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:233,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:234,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:240,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:241,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:244,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:250,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:251,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:252,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:255,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:256,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:257,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:257,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:258,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:258,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:261,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:261,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 264
    functionName: fu_uefi_cod_device_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_object_new
    - fu_device_to_string
    - fu_efivars_set_data_bytes
    - fu_context_new
    - g_debug
    - g_assert_cmpint
    - fu_device_get_update_state
    - fu_device_get_results
    - fu_uefi_capsule_device_get_status
    - FU_UEFI_CAPSULE_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_utf8_to_utf16_bytes
    - g_assert_cmpstr
    - fu_device_get_update_error
    - fu_uefi_cod_device_build_efi_result
    - g_assert_no_error
    - fu_context_get_efivars
    linkageType: ''
    returnType: void
    signature: void fu_uefi_cod_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:276,1
    - Dst: g_dir_make_tmp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:279,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:280,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:281,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:282,1
    - Dst: fu_volume_set_filesystem_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:283,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:284,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:285,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:288,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:289,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:289,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: fu_uefi_plugin_fake_esp_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - g_steal_pointer
    - g_build_filename
    - g_dir_make_tmp
    - fu_volume_new_from_mount_path
    - g_assert_no_error
    - g_mkdir_with_parents
    - g_assert_nonnull
    - g_autoptr
    - fu_volume_set_partition_uuid
    - fu_volume_set_partition_kind
    - fu_volume_set_filesystem_free
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_uefi_plugin_fake_esp_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:302,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:304,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:305,1
    - Dst: fu_uefi_plugin_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:306,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:309,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:314,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:317,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:317,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:320,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:321,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:322,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:326,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:327,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:328,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:329,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:330,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:331,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:332,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:335,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:336,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:337,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:340,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:341,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:344,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:345,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:345,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:348,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:348,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:351,1
    - Dst: fu_uefi_capsule_device_get_hardware_instance
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:351,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:352,1
    - Dst: fu_uefi_capsule_device_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:352,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:353,1
    - Dst: fu_uefi_capsule_device_get_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:353,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:354,1
    - Dst: fu_uefi_capsule_device_get_version_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:354,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:355,1
    - Dst: fu_uefi_capsule_device_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:355,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:356,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:356,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:359,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:359,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:362,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:363,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:363,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:366,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:366,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:369,1
    - Dst: fu_uefi_capsule_device_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:369,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:370,1
    - Dst: fu_uefi_capsule_device_get_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:370,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:371,1
    - Dst: fu_uefi_capsule_device_get_version_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:371,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:372,1
    - Dst: fu_uefi_capsule_device_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:372,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:373,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:373,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:376,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:376,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:379,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:380,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 295
    functionDepth: 10
    functionLinenumber: 295
    functionLinenumberEnd: 381
    functionName: fu_uefi_plugin_no_coalesce_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_get_version_error
    - g_test_skip
    - fu_uefi_capsule_device_get_version
    - g_assert_true
    - g_object_new
    - fu_device_has_flag
    - fu_context_load_quirks
    - fu_context_new
    - fu_plugin_get_devices
    - fu_context_load_hwinfo
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - g_ptr_array_index
    - g_assert_false
    - fu_plugin_runner_startup
    - fu_uefi_capsule_device_get_status
    - fu_device_set_update_state
    - fu_context_add_esp_volume
    - fu_uefi_capsule_device_get_version_lowest
    - g_autoptr
    - fu_uefi_capsule_device_get_hardware_instance
    - fu_uefi_capsule_device_get_guid
    - fu_uefi_capsule_device_get_capsule_flags
    - fu_config_set_default
    - g_assert_cmpstr
    - fu_progress_new
    - fu_uefi_capsule_device_get_kind
    - g_assert_no_error
    - FU_DEVICE
    - fu_context_get_config
    - fu_uefi_plugin_fake_esp_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_no_coalesce_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:387,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:389,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:391,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:392,1
    - Dst: fu_uefi_plugin_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:393,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:394,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:397,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:400,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:401,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:402,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:406,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:407,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:408,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:409,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:410,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:411,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:412,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:415,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:421,1
    - Dst: fu_device_set_flashes_left
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:422,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:423,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:429,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 383
    functionDepth: 10
    functionLinenumber: 383
    functionLinenumberEnd: 431
    functionName: fu_uefi_plugin_no_flashes_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_write_firmware
    - fu_progress_new
    - fu_context_add_esp_volume
    - fu_context_load_hwinfo
    - fu_device_add_private_flag
    - fu_plugin_runner_coldplug
    - fu_firmware_new
    - g_assert_true
    - g_object_new
    - g_assert_no_error
    - g_assert_false
    - g_autoptr
    - fu_plugin_runner_startup
    - g_assert_error
    - g_bytes_new_static
    - fu_uefi_plugin_fake_esp_new
    - fu_device_set_flashes_left
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_no_flashes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:436,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:437,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - esp
    - filename
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 439
    functionName: fu_uefi_plugin_esp_file_exists
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_volume_get_mount_point
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_plugin_esp_file_exists(FuVolume *esp, const gchar
      *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:446,1
    - Dst: fu_path_rmtree
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:447,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:448,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - esp
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: fu_uefi_plugin_esp_rmtree
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_volume_get_mount_point
    - g_assert_no_error
    - fu_path_rmtree
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_esp_rmtree(FuVolume *esp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:458,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:459,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:461,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:461,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:462,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:464,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:465,1
    - Dst: fu_uefi_plugin_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:467,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:470,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:475,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:478,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:478,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:479,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:480,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:481,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:481,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:487,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:488,1
    - Dst: fu_efivars_set_boot_current
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:489,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:489,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:490,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:491,1
    - Dst: fu_efivars_build_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:492,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:492,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:493,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:494,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:497,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:498,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:499,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:503,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:504,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:505,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:506,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:507,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:508,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:509,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:510,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:511,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:514,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:520,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:521,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:522,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:523,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:524,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:524,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:525,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:526,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:527,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:528,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:534,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:535,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:539,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:539,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:542,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:542,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:542,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:548,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:548,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:552,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:552,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:552,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:556,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:556,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:556,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:561,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:562,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:565,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:565,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:566,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:567,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:568,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:569,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:570,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:571,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:572,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:575,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:575,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:576,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:577,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:578,1
    - Dst: fu_plugin_runner_clear_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:581,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:582,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:583,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:587,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:588,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:591,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:591,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:594,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:594,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:594,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:597,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:597,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:600,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:600,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:600,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:605,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:606,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:606,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:609,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:610,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:611,1
    - Dst: fu_uefi_plugin_esp_rmtree
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 452
    functionDepth: 10
    functionLinenumber: 452
    functionLinenumberEnd: 615
    functionName: fu_uefi_plugin_nvram_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_efivars_build_boot_order
    - fu_efi_load_option_new
    - g_assert_true
    - fu_efivars_create_boot_entry_for_volume
    - g_object_new
    - fu_efivars_set_boot_current
    - fu_uefi_capsule_device_set_esp
    - g_array_index
    - fu_plugin_runner_reboot_cleanup
    - fu_context_new
    - fu_plugin_runner_write_firmware
    - fu_efivars_set_secure_boot
    - fu_context_load_hwinfo
    - fu_device_add_private_flag
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - fu_uefi_plugin_esp_file_exists
    - fu_firmware_new_from_bytes
    - fu_device_get_results
    - fu_device_add_flag
    - fu_efivars_exists
    - g_assert_false
    - fu_plugin_runner_startup
    - fu_efivars_get_boot_next
    - fu_context_add_esp_volume
    - fu_device_prepare
    - FU_UEFI_CAPSULE_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_uefi_plugin_esp_rmtree
    - g_bytes_new_static
    - fu_progress_new
    - fu_efivars_get_boot_order
    - g_assert_no_error
    - fu_plugin_runner_clear_results
    - fu_context_get_efivars
    - fu_plugin_set_config_default
    - fu_uefi_plugin_fake_esp_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_nvram_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:621,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:622,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:623,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:624,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:625,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:625,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:626,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:627,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:628,1
    - Dst: fu_uefi_plugin_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:628,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:629,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:630,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:633,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:636,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:640,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:641,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:642,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:642,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:649,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:650,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:653,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:654,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:655,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:659,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:660,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:661,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:662,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:663,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:664,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:665,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:674,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:675,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:676,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:676,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:679,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:685,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:686,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:687,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:687,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:692,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:693,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:699,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:700,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:701,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:701,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:704,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:705,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:711,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:712,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:713,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:714,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:717,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:718,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:719,1
    - Dst: fu_uefi_plugin_esp_rmtree
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 617
    functionDepth: 10
    functionLinenumber: 617
    functionLinenumberEnd: 723
    functionName: fu_uefi_plugin_cod_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efi_load_option_new
    - g_assert_true
    - g_object_new
    - fu_uefi_capsule_device_set_esp
    - fu_context_new
    - fu_utf8_to_utf16_byte_array
    - fu_plugin_runner_write_firmware
    - fu_device_add_private_flag
    - fu_context_load_hwinfo
    - fu_plugin_runner_coldplug
    - fu_uefi_plugin_esp_file_exists
    - fu_firmware_new_from_bytes
    - fu_device_get_results
    - fu_device_add_flag
    - fu_plugin_runner_startup
    - fu_context_add_esp_volume
    - FU_UEFI_CAPSULE_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_uefi_plugin_esp_rmtree
    - g_bytes_new_static
    - fu_progress_new
    - fu_efivars_set_data
    - g_assert_no_error
    - fu_context_get_efivars
    - fu_uefi_plugin_fake_esp_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_cod_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:729,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:730,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:730,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:731,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:732,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:732,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:733,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:733,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:734,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:735,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:735,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:736,1
    - Dst: fu_uefi_plugin_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:738,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:741,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:746,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:746,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:747,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:748,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:751,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:752,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:753,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:756,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:760,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:761,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:762,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:763,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:764,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:765,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:766,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:769,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:775,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:776,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:777,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:777,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:780,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:781,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:782,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:783,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:789,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:790,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:791,1
    - Dst: fu_uefi_plugin_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:791,1
    - Dst: fu_uefi_plugin_esp_rmtree
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 725
    functionDepth: 10
    functionLinenumber: 725
    functionLinenumberEnd: 797
    functionName: fu_uefi_plugin_grub_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_efi_load_option_new
    - g_assert_true
    - g_object_new
    - fu_uefi_capsule_device_set_esp
    - fu_context_new
    - fu_plugin_runner_write_firmware
    - fu_efivars_set_secure_boot
    - fu_context_load_hwinfo
    - fu_device_add_private_flag
    - fu_plugin_runner_coldplug
    - fu_uefi_plugin_esp_file_exists
    - fu_firmware_new_from_bytes
    - fu_device_add_flag
    - fu_plugin_runner_startup
    - fu_context_add_esp_volume
    - fu_device_prepare
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_uefi_plugin_esp_rmtree
    - g_bytes_new_static
    - fu_progress_new
    - g_assert_no_error
    - fu_context_get_efivars
    - fu_uefi_plugin_fake_esp_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_plugin_grub_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:808,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:808,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:809,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:809,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:809,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:810,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:810,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:810,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:811,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:812,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:816,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:817,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:818,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:819,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:820,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:821,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:822,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:823,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:824,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:825,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:826,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:827,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:828,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:831,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:832,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:833,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:836,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:837,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:838,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:839,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:840,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:841,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 843
    functionName: fu_uefi_update_info_xml_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - fu_firmware_write
    - g_file_get_contents
    - g_assert_cmpstr
    - fu_uefi_update_info_new
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_firmware_parse_bytes
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:850,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:850,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:851,1
    - Dst: fu_uefi_capsule_backend_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:851,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:852,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:852,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:853,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:853,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:854,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:855,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:856,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:857,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:858,1
    - Dst: fu_uefi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:861,1
    - Dst: fu_uefi_update_info_set_capsule_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:862,1
    - Dst: fu_uefi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:865,1
    - Dst: fu_uefi_update_info_set_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:866,1
    - Dst: fu_uefi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:867,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:868,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:869,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:870,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:871,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:877,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:878,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:881,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:882,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:883,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:885,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:886,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:887,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:888,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:888,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:891,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:891,1
    - Dst: fu_uefi_capsule_device_load_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:894,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:895,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:896,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:897,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:897,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:897,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:898,1
    - Dst: fu_uefi_update_info_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:898,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:901,1
    - Dst: fu_uefi_update_info_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:901,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:902,1
    - Dst: fu_uefi_update_info_get_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:902,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:903,1
    - Dst: fu_uefi_update_info_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:903,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:906,1
    - Dst: fu_uefi_update_info_get_capsule_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 845
    functionDepth: 5
    functionLinenumber: 845
    functionLinenumberEnd: 909
    functionName: fu_uefi_update_info_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_coldplug
    - fu_uefi_update_info_set_hw_inst
    - fu_uefi_update_info_new
    - g_assert_true
    - fu_firmware_get_version_raw
    - fu_uefi_capsule_device_load_update_info
    - FU_FIRMWARE
    - fu_efivars_set_data_bytes
    - fu_uefi_update_info_set_status
    - fu_uefi_capsule_backend_new
    - fu_uefi_update_info_set_guid
    - fu_context_new
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_uefi_update_info_get_status
    - fu_backend_get_devices
    - fu_uefi_update_info_get_guid
    - fu_uefi_update_info_get_capsule_flags
    - fu_uefi_update_info_set_capsule_fn
    - g_assert_nonnull
    - g_autoptr
    - fu_uefi_update_info_set_capsule_flags
    - fu_uefi_capsule_device_get_guid
    - fu_firmware_write
    - g_assert_cmpstr
    - fu_progress_new
    - fu_uefi_capsule_device_get_kind
    - fu_uefi_update_info_get_capsule_fn
    - g_assert_no_error
    - fu_context_get_efivars
    - fu_uefi_update_info_get_hw_inst
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:917,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:918,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:920,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:921,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:922,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:923,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:924,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:925,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:926,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:927,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:928,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:929,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:930,1
    - Dst: g_test_get_dir
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:930,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:931,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:932,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:933,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:936,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:937,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:940,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:941,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:942,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:943,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:944,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:945,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:946,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:947,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:948,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:949,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:950,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:951,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:952,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:953,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 955
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_get_dir
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:26,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:29,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:31,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:32,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: fu_acpi_uefi_export
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - FU_FIRMWARE_CLASS
    - FU_ACPI_UEFI
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_acpi_uefi_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:42,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:44,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:47,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:47,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:48,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:50,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:53,1
    - Dst: fu_struct_acpi_insyde_quirk_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:58,1
    - Dst: fu_struct_acpi_insyde_quirk_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:62,1
    - Dst: fu_struct_acpi_insyde_quirk_get_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuAcpiUefi*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: fu_acpi_uefi_parse_insyde
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_insyde_quirk_parse_stream
    - fu_struct_acpi_insyde_quirk_get_flags
    - fu_struct_acpi_insyde_quirk_get_size
    - strlen
    - g_prefix_error
    - g_bytes_get_size
    - g_set_error_literal
    - fu_memmem_safe
    - g_autoptr
    - fu_input_stream_read_bytes
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_uefi_parse_insyde(FuAcpiUefi *self, GInputStream *stream,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:79,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:83,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:88,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:88,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:88,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:89,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:93,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:98,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:106,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:111,1
    - Dst: fu_acpi_uefi_parse_insyde
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:112,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 118
    functionName: fu_acpi_uefi_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_acpi_uefi_parse_insyde
    - fu_input_stream_read_safe
    - fwupd_guid_to_string
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - FU_ACPI_UEFI
    - g_autoptr
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_uefi_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiUefi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: fu_acpi_uefi_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_uefi_init(FuAcpiUefi *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:128,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:129,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: fu_acpi_uefi_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_ACPI_UEFI
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_uefi_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:136,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiUefiClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: fu_acpi_uefi_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_uefi_class_init(FuAcpiUefiClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:146,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: fu_acpi_uefi_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_uefi_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:152,1
    - Dst: FU_IS_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAcpiUefi*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: fu_acpi_uefi_cod_functional
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - g_return_val_if_fail
    - FU_IS_ACPI_UEFI
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_uefi_cod_functional(FuAcpiUefi *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:165,1
    - Dst: FU_IS_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiUefi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fu_acpi_uefi_cod_indexed_filename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_UEFI
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_uefi_cod_indexed_filename(FuAcpiUefi *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:31,1
    - Dst: fu_bitmap_image_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:32,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:34,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:34,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:36,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:37,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:38,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:39,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:45,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:47,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:56,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:65,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:66,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:67,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:68,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:69,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:69,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:73,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:76,1
    - Dst: fu_bitmap_image_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiBgrt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 81
    functionName: fu_uefi_bgrt_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - FU_IS_UEFI_BGRT
    - fu_bitmap_image_new
    - g_build_filename
    - fu_uefi_read_file_as_uint64
    - g_prefix_error
    - fu_bitmap_image_get_height
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_path_from_kind
    - g_autoptr
    - g_file_test
    - fu_bitmap_image_get_width
    - g_return_val_if_fail
    - fu_firmware_parse_file
    - g_file_new_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bgrt_setup(FuUefiBgrt *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:86,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: fu_uefi_bgrt_get_supported
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_BGRT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bgrt_get_supported(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:95,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: fu_uefi_bgrt_get_xoffset
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_BGRT
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_bgrt_get_xoffset(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:102,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: fu_uefi_bgrt_get_yoffset
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_BGRT
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_bgrt_get_yoffset(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:109,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: fu_uefi_bgrt_get_width
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_BGRT
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_bgrt_get_width(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:116,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: fu_uefi_bgrt_get_height
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_BGRT
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_bgrt_get_height(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiBgrtClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: fu_uefi_bgrt_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_bgrt_class_init(FuUefiBgrtClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: fu_uefi_bgrt_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_bgrt_init(FuUefiBgrt *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:134,1
    - Dst: FU_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_uefi_bgrt_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - FU_UEFI_BGRT
    - g_object_new
    linkageType: ''
    returnType: FuUefiBgrt
    signature: 'FuUefiBgrt *

      fu_uefi_bgrt_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - filename
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: fu_uefi_capsule_backend_linux_read
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - fu_uefi_read_file_as_uint64
    linkageType: ''
    returnType: guint
    signature: guint fu_uefi_capsule_backend_linux_read(const gchar *path, const gchar
      *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:37,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:41,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:44,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:45,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:46,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:54,1
    - Dst: fu_uefi_capsule_backend_get_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:54,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:54,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:58,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:60,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:62,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:64,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:66,1
    - Dst: fu_uefi_capsule_backend_linux_read
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:68,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:77,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:81,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:82,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - physical_id
    - path
    argTypes:
    - FuUefiCapsuleBackendLinux*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 85
    functionName: fu_uefi_capsule_backend_linux_device_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_file_get_contents
    - fu_uefi_capsule_backend_linux_read
    - fu_device_add_private_flag
    - g_steal_pointer
    - g_build_filename
    - fu_device_set_logical_id
    - g_object_new
    - fu_uefi_capsule_backend_get_device_gtype
    - FU_DEVICE
    - g_autoptr
    - FU_UEFI_CAPSULE_BACKEND
    - fu_device_set_backend_id
    - g_return_val_if_fail
    - fu_device_set_physical_id
    linkageType: ''
    returnType: FuUefiCapsuleDevice
    signature: "FuUefiCapsuleDevice *\nfu_uefi_capsule_backend_linux_device_new(FuUefiCapsuleBackendLinux
      *self,\n\t\t\t\t\t const gchar *physical_id,\n\t\t\t\t\t const gchar *path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:91,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:93,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:96,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:98,1
    - Dst: g_unix_mount_entry_at
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:99,1
    - Dst: g_unix_mount_at
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:104,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:111,1
    - Dst: g_unix_mount_entry_is_readonly
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:112,1
    - Dst: g_unix_mount_is_readonly
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:114,1
    - Dst: fu_uefi_capsule_backend_get_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:118,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleBackendLinux*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 133
    functionName: fu_uefi_capsule_backend_linux_check_efivarfs
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_getenv
    - FU_UEFI_CAPSULE_BACKEND
    - g_build_filename
    - g_unix_mount_entry_at
    - fu_uefi_capsule_backend_get_device_gtype
    - g_unix_mount_entry_is_readonly
    - g_autoptr
    - g_unix_mount_is_readonly
    - g_unix_mount_at
    - fu_path_from_kind
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_linux_check_efivarfs(FuUefiCapsuleBackendLinux
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_BACKEND_LINUX
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:143,1
    - Dst: fu_uefi_capsule_backend_linux_check_efivarfs
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:146,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:150,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:151,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:152,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:153,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:158,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:160,1
    - Dst: fu_uefi_capsule_backend_linux_device_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:161,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 167
    functionName: fu_uefi_capsule_backend_linux_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_BACKEND_LINUX
    - g_dir_read_name
    - g_build_filename
    - fu_uefi_capsule_backend_linux_device_new
    - g_dir_open
    - FU_DEVICE
    - fu_backend_device_added
    - g_autoptr
    - fu_path_from_kind
    - fu_uefi_capsule_backend_linux_check_efivarfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_linux_coldplug(FuBackend *backend,
      FuProgress *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:175,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:177,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:182,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:188,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:199,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 213
    functionName: fu_uefi_capsule_backend_linux_check_smbios_enabled
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_context_get_smbios_data
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_getenv
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_linux_check_smbios_enabled(FuContext
      *ctx, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:221,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:224,1
    - Dst: fu_uefi_capsule_backend_linux_check_smbios_enabled
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:228,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:228,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:230,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:231,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:232,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:233,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:239,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 243
    functionName: fu_uefi_capsule_backend_linux_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_backend_get_context
    - g_steal_pointer
    - g_build_filename
    - fu_path_from_kind
    - g_propagate_error
    - g_autoptr
    - g_file_test
    - fu_uefi_capsule_backend_linux_check_smbios_enabled
    - g_getenv
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_backend_linux_setup(FuBackend *backend,\n\t\t\t\t
      \   FuBackendSetupFlags flags,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleBackendLinux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: fu_uefi_capsule_backend_linux_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_linux_init(FuUefiCapsuleBackendLinux *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleBackendLinuxClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: fu_uefi_capsule_backend_linux_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_linux_class_init(FuUefiCapsuleBackendLinuxClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: fu_uefi_capsule_backend_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_uefi_capsule_backend_new(FuContext *ctx)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:25,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:35,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:35,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:38,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:39,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:44,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:45,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:50,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:58,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:62,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:70,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:72,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:74,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:82,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:83,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:84,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:85,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:86,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:92,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:103,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:106,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:111,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - device
    - esp_path
    - target_app
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 121
    functionName: fu_uefi_grub_device_mkconfig
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_debug
    - g_string_new
    - g_file_set_contents
    - g_string_replace
    - g_getenv
    - g_build_filename
    - g_spawn_sync
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_path_find_program
    - fu_path_from_kind
    - g_free
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_grub_device_mkconfig(FuDevice *device,\n\t\t\t     const
      gchar *esp_path,\n\t\t\t     const gchar *target_app,\n\t\t\t     GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:130,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:131,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:132,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:133,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:134,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:138,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:144,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:148,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:156,1
    - Dst: fu_uefi_get_esp_path_for_os
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:161,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:162,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:163,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:164,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:165,1
    - Dst: fu_uefi_capsule_device_fixup_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:167,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:170,1
    - Dst: fu_uefi_capsule_device_perhaps_enable_debugging
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:174,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:178,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:179,1
    - Dst: fu_uefi_capsule_device_write_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:187,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:191,1
    - Dst: fu_uefi_get_esp_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:196,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:199,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:200,1
    - Dst: fu_uefi_grub_device_mkconfig
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 206
    functionName: fu_uefi_grub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_get_esp
    - fu_uefi_capsule_device_build_varname
    - fu_uefi_get_esp_app_path
    - fu_uefi_get_built_app_path
    - fu_path_mkdir_parent
    - fu_device_get_context
    - fu_uefi_esp_target_verify
    - fu_efivars_exists
    - fu_uefi_grub_device_mkconfig
    - fu_uefi_capsule_device_write_update_info
    - fu_uefi_esp_target_copy
    - fu_uefi_capsule_device_perhaps_enable_debugging
    - g_build_filename
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_bytes_set_contents
    - fu_uefi_capsule_device_get_guid
    - fu_firmware_get_bytes
    - fu_uefi_capsule_device_fixup_firmware
    - fu_uefi_get_esp_path_for_os
    - g_strdup_printf
    - fu_volume_get_mount_point
    - g_set_error_literal
    - fu_context_get_efivars
    - fu_efivars_delete
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_grub_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:212,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:213,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:213,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: fu_uefi_grub_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_grub_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:223,1
    - Dst: fu_uefi_capsule_device_check_asset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:228,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: fu_uefi_grub_device_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_check_asset
    - FU_UEFI_CAPSULE_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_grub_device_prepare(FuDevice *device,\n\t\t\t    FuProgress
      *progress,\n\t\t\t    FwupdInstallFlags flags,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiGrubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: fu_uefi_grub_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_grub_device_init(FuUefiGrubDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiGrubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: fu_uefi_grub_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_grub_device_class_init(FuUefiGrubDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 1428
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - device_gtype
    argTypes:
    - FuUefiCapsuleBackend*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_uefi_capsule_backend_set_device_gtype
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_set_device_gtype(FuUefiCapsuleBackend
      *self, GType device_gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: fu_uefi_capsule_backend_get_device_gtype
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: GType
    signature: GType fu_uefi_capsule_backend_get_device_gtype(FuUefiCapsuleBackend
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:37,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:38,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:39,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: fu_uefi_capsule_backend_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_type_name
    - fwupd_codec_string_append
    - FU_UEFI_CAPSULE_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_to_string(FuBackend *backend, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:47,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:50,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:50,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:52,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:54,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:56,1
    - Dst: fu_uefi_capsule_device_kind_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:58,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:60,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:62,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dev
    argTypes:
    - FuUefiCapsuleBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 9
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: fu_uefi_capsule_backend_device_new_from_dev
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 1
    functionsReached:
    - fu_uefi_capsule_device_kind_from_string
    - fu_device_get_metadata
    - fu_device_incorporate
    - fu_device_get_guid_default
    - g_object_new
    - fu_device_get_metadata_integer
    - FU_DEVICE
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuUefiCapsuleDevice
    signature: 'FuUefiCapsuleDevice *

      fu_uefi_capsule_backend_device_new_from_dev(FuUefiCapsuleBackend *self, FuDevice
      *dev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: fu_uefi_capsule_backend_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_init(FuUefiCapsuleBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: fu_uefi_capsule_backend_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_class_init(FuUefiCapsuleBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:29,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:30,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:31,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:32,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:33,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:34,1
    - Dst: fu_uefi_update_info_status_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: fu_uefi_update_info_export
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - fu_uefi_update_info_status_to_string
    - fu_xmlb_builder_insert_kx
    - FU_UEFI_UPDATE_INFO
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:40,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuUefiUpdateInfo*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_uefi_update_info_set_guid
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_set_guid(FuUefiUpdateInfo *self, const gchar
      *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:47,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - capsule_fn
    argTypes:
    - FuUefiUpdateInfo*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_uefi_update_info_set_capsule_fn
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_set_capsule_fn(FuUefiUpdateInfo *self, const
      gchar *capsule_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - capsule_flags
    argTypes:
    - FuUefiUpdateInfo*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: fu_uefi_update_info_set_capsule_flags
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_set_capsule_flags(FuUefiUpdateInfo *self,
      guint32 capsule_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - hw_inst
    argTypes:
    - FuUefiUpdateInfo*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: fu_uefi_update_info_set_hw_inst
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_set_hw_inst(FuUefiUpdateInfo *self, guint64
      hw_inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuUefiUpdateInfo*
    - FuUefiUpdateInfoStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: fu_uefi_update_info_set_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_set_status(FuUefiUpdateInfo *self, FuUefiUpdateInfoStatus
      status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:72,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:75,1
    - Dst: fu_uefi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:77,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:78,1
    - Dst: fu_uefi_update_info_set_capsule_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:80,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:81,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:84,1
    - Dst: fu_uefi_update_info_set_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:86,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:88,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:91,1
    - Dst: fu_uefi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:93,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:95,1
    - Dst: fu_uefi_update_info_status_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 110
    functionName: fu_uefi_update_info_build
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_uefi_update_info_set_capsule_fn
    - fu_uefi_update_info_set_hw_inst
    - FU_UEFI_UPDATE_INFO
    - fu_uefi_update_info_status_from_string
    - fu_uefi_update_info_set_capsule_flags
    - xb_node_query_text
    - fu_strtoull
    - fu_uefi_update_info_set_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_update_info_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:117,1
    - Dst: fu_struct_efi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:117,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:120,1
    - Dst: fu_struct_efi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:123,1
    - Dst: fu_struct_efi_update_info_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:124,1
    - Dst: fu_struct_efi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:125,1
    - Dst: fu_struct_efi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:129,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:130,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:130,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:131,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:133,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:134,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:137,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: fu_uefi_update_info_write
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_update_info_set_status
    - fu_struct_efi_update_info_new
    - fu_efi_device_path_list_new
    - fu_firmware_add_image
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_struct_efi_update_info_set_guid
    - FU_UEFI_UPDATE_INFO
    - fu_struct_efi_update_info_set_hw_inst
    - FU_FIRMWARE
    - fu_struct_efi_update_info_set_flags
    - fu_efi_file_path_device_path_set_name
    - g_autoptr
    - fu_efi_file_path_device_path_new
    - fwupd_guid_from_string
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_uefi_update_info_write(FuFirmware *firmware, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:152,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:154,1
    - Dst: fu_struct_efi_update_info_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:158,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:161,1
    - Dst: fu_struct_efi_update_info_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:161,1
    - Dst: fu_struct_efi_update_info_get_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:162,1
    - Dst: fu_struct_efi_update_info_get_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:163,1
    - Dst: fu_struct_efi_update_info_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:164,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:165,1
    - Dst: fu_struct_efi_update_info_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:165,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:171,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:171,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:172,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:177,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:180,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:180,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:186,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 191
    functionName: fu_uefi_update_info_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_FIRMWARE
    - fu_struct_efi_update_info_get_hw_inst
    - fu_efi_file_path_device_path_get_name
    - g_return_val_if_fail
    - fu_struct_efi_update_info_parse_stream
    - fu_efi_device_path_list_new
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - FU_UEFI_UPDATE_INFO
    - fu_firmware_parse_stream
    - fu_struct_efi_update_info_get_guid
    - fu_struct_efi_update_info_get_status
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_efi_update_info_get_flags
    - fwupd_guid_to_string
    - fu_firmware_get_image_by_gtype
    - fu_input_stream_size
    - fu_struct_efi_update_info_get_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_update_info_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:196,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: fu_uefi_update_info_get_guid
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_update_info_get_guid(FuUefiUpdateInfo *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:203,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: fu_uefi_update_info_get_capsule_fn
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_update_info_get_capsule_fn(FuUefiUpdateInfo *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:210,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: fu_uefi_update_info_get_capsule_flags
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_uefi_update_info_get_capsule_flags(FuUefiUpdateInfo *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:217,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: fu_uefi_update_info_get_hw_inst
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_uefi_update_info_get_hw_inst(FuUefiUpdateInfo *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:224,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: fu_uefi_update_info_get_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: FuUefiUpdateInfoStatus
    signature: FuUefiUpdateInfoStatus fu_uefi_update_info_get_status(FuUefiUpdateInfo
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:231,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:232,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:233,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: fu_uefi_update_info_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FU_UEFI_UPDATE_INFO
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:240,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiUpdateInfoClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: fu_uefi_update_info_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_class_init(FuUefiUpdateInfoClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: fu_uefi_update_info_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_update_info_init(FuUefiUpdateInfo *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:258,1
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: fu_uefi_update_info_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 3
    functionsReached:
    - FU_UEFI_UPDATE_INFO
    - g_object_new
    linkageType: ''
    returnType: FuUefiUpdateInfo
    signature: 'FuUefiUpdateInfo *

      fu_uefi_update_info_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:23,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: fu_bitmap_image_export
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 0
    functionsReached:
    - FU_BITMAP_IMAGE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_bitmap_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:36,1
    - Dst: fu_struct_bitmap_file_header_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:38,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:40,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:43,1
    - Dst: fu_struct_bitmap_file_header_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:43,1
    - Dst: fu_struct_bitmap_info_header_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:44,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:46,1
    - Dst: fu_struct_bitmap_info_header_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:49,1
    - Dst: fu_struct_bitmap_info_header_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: fu_bitmap_image_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 0
    functionsReached:
    - fu_struct_bitmap_info_header_parse_stream
    - fu_struct_bitmap_file_header_get_size
    - fu_struct_bitmap_info_header_get_height
    - fu_firmware_set_size
    - g_prefix_error
    - g_autoptr
    - FU_BITMAP_IMAGE
    - fu_struct_bitmap_file_header_parse_stream
    - fu_struct_bitmap_info_header_get_width
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bitmap_image_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:59,1
    - Dst: FU_IS_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBitmapImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_bitmap_image_get_width
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BITMAP_IMAGE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_bitmap_image_get_width(FuBitmapImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:66,1
    - Dst: FU_IS_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBitmapImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_bitmap_image_get_height
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BITMAP_IMAGE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_bitmap_image_get_height(FuBitmapImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBitmapImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_bitmap_image_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_bitmap_image_class_init(FuBitmapImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:81,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBitmapImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: fu_bitmap_image_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_bitmap_image_init(FuBitmapImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:88,1
    - Dst: FU_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: fu_bitmap_image_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 3
    functionsReached:
    - FU_BITMAP_IMAGE
    - g_object_new
    linkageType: ''
    returnType: FuBitmapImage
    signature: 'FuBitmapImage *

      fu_bitmap_image_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:43,1
    - Dst: uuid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:50,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:58,1
    - Dst: fu_uefi_capsule_backend_get_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:58,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:80,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:81,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:82,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - self
    - physical_id
    - entry
    - idx
    - error
    argTypes:
    - FuUefiCapsuleBackend*
    - gchar*
    - struct efi_esrt_entry_v1*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 85
    functionName: fu_uefi_capsule_backend_device_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - uuid_to_string
    - g_steal_pointer
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_uefi_capsule_backend_get_device_gtype
    - g_object_new
    - g_set_error_literal
    - FU_DEVICE
    - g_autoptr
    - fu_device_set_backend_id
    - fu_device_set_physical_id
    linkageType: ''
    returnType: FuUefiCapsuleDevice
    signature: "FuUefiCapsuleDevice *\nfu_uefi_capsule_backend_device_new(FuUefiCapsuleBackend
      *self,\n\t\t\t\t   const gchar *physical_id,\n\t\t\t\t   struct efi_esrt_entry_v1
      *entry,\n\t\t\t\t   guint64 idx,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_kenv_get_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:94,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - backend
    - flags
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: fu_uefi_capsule_backend_freebsd_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_kenv_get_string
    - fu_version_compare
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_freebsd_setup(FuBackend *backend,
      FuBackendSetupFlags flags, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:112,1
    - Dst: g_open
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:121,1
    - Dst: ioctl
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:129,1
    - Dst: g_close
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:131,1
    - Dst: g_malloc
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:138,1
    - Dst: g_close
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:141,1
    - Dst: ioctl
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:150,1
    - Dst: g_close
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:161,1
    - Dst: fu_uefi_capsule_backend_device_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:162,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - backend
    - error
    argTypes:
    - FuBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 178
    functionName: fu_uefi_capsule_backend_freebsd_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_open
    - g_close
    - g_malloc
    - g_set_error_literal
    - fu_uefi_capsule_backend_device_new
    - fu_backend_device_added
    - FU_DEVICE
    - g_autoptr
    - FU_UEFI_CAPSULE_BACKEND
    - ioctl
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_freebsd_coldplug(FuBackend *backend,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - backend
    - device_gtype
    argTypes:
    - FuBackend*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: fu_uefi_capsule_backend_freebsd_set_device_gtype
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_freebsd_set_device_gtype(FuBackend *backend,
      GType device_gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleBackendFreebsd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: fu_uefi_capsule_backend_freebsd_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_freebsd_init(FuUefiCapsuleBackendFreebsd
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleBackendFreebsdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: fu_uefi_capsule_backend_freebsd_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_backend_freebsd_class_init(FuUefiCapsuleBackendFreebsdClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: fu_uefi_capsule_backend_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_uefi_capsule_backend_new(FuContext *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:23,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:25,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:28,1
    - Dst: fu_uefi_bootmgr_verify_fwupd
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:29,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:30,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:33,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:36,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:38,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:39,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:41,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 47
    functionName: fu_uefi_nvram_device_get_results
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_bootmgr_verify_fwupd
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_device_set_update_error
    - fu_device_get_context
    - fu_device_has_private_flag
    - fu_context_get_efivars
    - g_autoptr
    - fu_device_set_update_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_nvram_device_get_results(FuDevice *device, GError
      **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:56,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:57,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:58,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:61,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:62,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:65,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:74,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:82,1
    - Dst: fu_uefi_get_esp_path_for_os
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:87,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:88,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:89,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:90,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:91,1
    - Dst: fu_uefi_capsule_device_fixup_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:93,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:96,1
    - Dst: fu_uefi_capsule_device_perhaps_enable_debugging
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:100,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:104,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:105,1
    - Dst: fu_uefi_capsule_device_write_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:113,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:117,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:121,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:123,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:125,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:129,1
    - Dst: fu_uefi_bootmgr_bootnext
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:131,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 136
    functionName: fu_uefi_nvram_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_get_esp
    - fu_uefi_capsule_device_build_varname
    - fu_path_mkdir_parent
    - fu_device_get_context
    - fu_efivars_exists
    - fu_uefi_capsule_device_write_update_info
    - fu_uefi_capsule_device_perhaps_enable_debugging
    - g_build_filename
    - FU_UEFI_CAPSULE_DEVICE
    - g_autoptr
    - fu_bytes_set_contents
    - fu_uefi_capsule_device_get_guid
    - fu_firmware_get_bytes
    - fu_uefi_capsule_device_fixup_firmware
    - fu_uefi_bootmgr_bootnext
    - fu_uefi_get_esp_path_for_os
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_volume_get_mount_point
    - g_set_error_literal
    - fu_context_get_efivars
    - fu_efivars_delete
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_nvram_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:142,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:143,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:143,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_uefi_nvram_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_nvram_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:153,1
    - Dst: fu_uefi_capsule_device_check_asset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:158,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: fu_uefi_nvram_device_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_check_asset
    - FU_UEFI_CAPSULE_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_nvram_device_prepare(FuDevice *device,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiNvramDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: fu_uefi_nvram_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_nvram_device_init(FuUefiNvramDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiNvramDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: fu_uefi_nvram_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_nvram_device_class_init(FuUefiNvramDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IOMMU_PLUGIN
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:21,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_iommu_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_IOMMU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_iommu_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IOMMU_PLUGIN
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:31,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:36,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:36,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: fu_iommu_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IOMMU_PLUGIN
    - fu_udev_device_get_subsystem
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_iommu_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t
      \    FuDevice *device,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_IOMMU_PLUGIN
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:49,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:52,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:53,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:54,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:57,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:59,1
    - Dst: fu_kernel_check_cmdline_mutable
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:60,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:61,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:62,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:63,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:64,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:65,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:66,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:67,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:69,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:70,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:71,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:75,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:76,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:77,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:87,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:90,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:91,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:92,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:93,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 99
    functionName: fu_iommu_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_kernel_check_cmdline_mutable
    - FU_IOMMU_PLUGIN
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_kernel_current_value
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_kernel_target_value
    - fwupd_security_attr_set_result
    - g_autoptr
    - g_hash_table_lookup
    - g_hash_table_contains
    - fu_kernel_get_cmdline
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_iommu_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIommuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: fu_iommu_plugin_init
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_iommu_plugin_init(FuIommuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:109,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: fu_iommu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_iommu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_add_cmdline_arg
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: fu_iommu_plugin_fix_host_security_attr
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_add_cmdline_arg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_iommu_plugin_fix_host_security_attr(FuPlugin *self, FwupdSecurityAttr
      *attr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_kernel_remove_cmdline_arg
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: fu_iommu_plugin_undo_host_security_attr
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_kernel_remove_cmdline_arg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_iommu_plugin_undo_host_security_attr(FuPlugin *self, FwupdSecurityAttr
      *attr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIommuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: fu_iommu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_iommu_plugin_class_init(FuIommuPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:56,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:62,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:63,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: fu_dell_plugin_get_system_id
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_plugin_get_context
    - fu_context_get_hwid_value
    - g_autoptr
    - fu_strtoull
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dell_plugin_get_system_id(FuPlugin *plugin)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:79,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:84,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:89,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:92,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:93,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:93,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:94,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:98,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:102,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:109,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:112,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:113,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:116,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:125,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:134,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 142
    functionName: fu_dell_plugin_supported
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint8_safe
    - g_bytes_get_size
    - fu_plugin_get_context
    - g_prefix_error
    - fu_memcpy_safe
    - fu_context_get_smbios_data
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - G_N_ELEMENTS
    - g_bytes_get_data
    - fu_context_get_chassis_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_plugin_supported(FuPlugin *plugin, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:148,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:148,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:149,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:151,1
    - Dst: fu_dell_plugin_get_system_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:155,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:159,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:160,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:161,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:162,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:166,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:166,1
    - Dst: fu_dell_plugin_get_system_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:167,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:170,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:171,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:172,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:175,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:176,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: fu_dell_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_metadata
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_dell_plugin_get_system_id
    - fu_device_build_vendor_id_u16
    - fu_device_has_flag
    - fu_device_add_flag
    - g_strcmp0
    - fu_device_get_plugin
    - fu_device_get_metadata_boolean
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_device_registered(FuPlugin *plugin, FuDevice *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_plugin_supported
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:187,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:188,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:197,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:198,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 208
    functionName: fu_dell_plugin_startup
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_build_filename
    - g_prefix_error
    - fu_dell_plugin_supported
    - g_file_test
    - fu_path_from_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:215,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:217,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:219,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:223,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:224,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:225,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:228,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:228,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:229,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:230,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 235
    functionName: fu_dell_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - g_strcmp0
    - fwupd_bios_setting_get_current_value
    - fu_context_get_bios_setting
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: fu_dell_plugin_init
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_init(FuDellPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:245,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: fu_dell_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: fu_dell_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_class_init(FuDellPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRealtekMstPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_realtek_mst_plugin_init
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_plugin_init(FuRealtekMstPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_realtek_mst_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRealtekMstPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_realtek_mst_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_plugin_class_init(FuRealtekMstPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:69,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:70,1
    - Dst: fu_realtek_mst_device_flash_bank_to_string
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:73,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:74,1
    - Dst: fu_realtek_mst_device_dual_bank_mode_to_string
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: fu_realtek_mst_device_to_string
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_flash_bank_to_string
    - fu_realtek_mst_device_dual_bank_mode_to_string
    - FU_REALTEK_MST_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:87,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: fu_realtek_mst_device_write_register
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_write_register(FuRealtekMstDevice *self,\n\t\t\t\t
      \    guint8 address,\n\t\t\t\t     guint8 value,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:97,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:98,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:100,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - address
    - data
    - count
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: fu_realtek_mst_device_write_register_multi
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FU_I2C_DEVICE
    - g_malloc0
    - fu_i2c_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_write_register_multi(FuRealtekMstDevice
      *self,\n\t\t\t\t\t   guint8 address,\n\t\t\t\t\t   const guint8 *data,\n\t\t\t\t\t
      \  gsize count,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:109,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:109,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:111,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: fu_realtek_mst_device_read_register
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_read_register(FuRealtekMstDevice *self,\n\t\t\t\t
      \   guint8 address,\n\t\t\t\t    guint8 *value,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:119,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:124,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: fu_realtek_mst_device_set_indirect_address
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_set_indirect_address(FuRealtekMstDevice
      *self,\n\t\t\t\t\t   guint16 address,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_realtek_mst_device_set_indirect_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:141,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: fu_realtek_mst_device_read_register_indirect
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_set_indirect_address
    - fu_realtek_mst_device_read_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_read_register_indirect(FuRealtekMstDevice
      *self,\n\t\t\t\t\t     guint16 address,\n\t\t\t\t\t     guint8 *value,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_realtek_mst_device_set_indirect_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:155,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: fu_realtek_mst_device_write_register_indirect
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_set_indirect_address
    - fu_realtek_mst_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_write_register_indirect(FuRealtekMstDevice
      *self,\n\t\t\t\t\t      guint16 address,\n\t\t\t\t\t      guint8 value,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:180,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:180,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:182,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:184,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:185,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - self
    - address
    - mask
    - expected
    - timeout_seconds
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint8
    - guint8
    - guint8
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 202
    functionName: fu_realtek_mst_device_poll_register
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_timer_new
    - g_timer_elapsed
    - FU_DEVICE
    - g_autoptr
    - fu_realtek_mst_device_read_register
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_poll_register(FuRealtekMstDevice *self,\n\t\t\t\t
      \   guint8 address,\n\t\t\t\t    guint8 mask,\n\t\t\t\t    guint8 expected,\n\t\t\t\t
      \   guint timeout_seconds,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_realtek_mst_device_read_register_indirect
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:210,1
    - Dst: fu_realtek_mst_device_write_register_indirect
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:212,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:219,1
    - Dst: fu_realtek_mst_device_read_register_indirect
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:220,1
    - Dst: fu_realtek_mst_device_write_register_indirect
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - level
    - error
    argTypes:
    - FuRealtekMstDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: fu_realtek_mst_device_set_gpio88
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_write_register_indirect
    - g_debug
    - fu_realtek_mst_device_read_register_indirect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_realtek_mst_device_set_gpio88(FuRealtekMstDevice *self,
      gboolean level, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:231,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:236,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:237,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:242,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:246,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:249,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:249,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:251,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:251,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:268,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:276,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:285,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:293,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:295,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 301
    functionName: fu_realtek_mst_device_setup
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - fu_realtek_mst_device_write_register
    - fu_i2c_device_read
    - g_prefix_error
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    - g_strdup_printf
    - fu_i2c_device_set_address
    - FU_DEVICE
    - g_set_error_literal
    - FU_REALTEK_MST_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_realtek_mst_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:316,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:318,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:323,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:328,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:333,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:338,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:345,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:345,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:347,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:347,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:356,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:356,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:360,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - buf_size
    - progress
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 363
    functionName: fu_realtek_mst_device_flash_iface_read
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - g_debug
    - fu_realtek_mst_device_write_register
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_flash_iface_read(FuRealtekMstDevice
      *self,\n\t\t\t\t       guint32 address,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t
      \      const gsize buf_size,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:371,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:372,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:375,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:380,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:385,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:391,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:393,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:399,1
    - Dst: fu_realtek_mst_device_poll_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 365
    functionDepth: 6
    functionLinenumber: 365
    functionLinenumberEnd: 410
    functionName: fu_realtek_mst_device_flash_iface_erase_sector
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_flash_iface_erase_sector(FuRealtekMstDevice
      *self,\n\t\t\t\t\t       guint32 address,\n\t\t\t\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:418,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:419,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:422,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:427,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:429,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:432,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:434,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:440,1
    - Dst: fu_realtek_mst_device_poll_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 451
    functionName: fu_realtek_mst_device_flash_iface_erase_block
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_flash_iface_erase_block(FuRealtekMstDevice
      *self,\n\t\t\t\t\t      guint32 address,\n\t\t\t\t\t      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:461,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:462,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:464,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:466,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:471,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:474,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:475,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:478,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:484,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:490,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:495,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:500,1
    - Dst: fu_realtek_mst_device_poll_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:512,1
    - Dst: fu_realtek_mst_device_write_register_multi
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:516,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:518,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:523,1
    - Dst: fu_realtek_mst_device_poll_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:528,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:534,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:539,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - self
    - address
    - data
    - progress
    - error
    argTypes:
    - FuRealtekMstDevice*
    - guint32
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 543
    functionName: fu_realtek_mst_device_flash_iface_write
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_set_percentage_full
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - g_debug
    - fu_realtek_mst_device_write_register
    - fu_realtek_mst_device_poll_register
    - g_prefix_error
    - g_bytes_get_size
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_realtek_mst_device_write_register_multi
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_flash_iface_write(FuRealtekMstDevice
      *self,\n\t\t\t\t\tguint32 address,\n\t\t\t\t\tGBytes *data,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:548,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:550,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:550,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:554,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:559,1
    - Dst: fu_realtek_mst_device_poll_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:560,1
    - Dst: fu_realtek_mst_device_write_register_indirect
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:571,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:574,1
    - Dst: fu_realtek_mst_device_set_gpio88
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 579
    functionName: fu_realtek_mst_device_detach
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_write_register_indirect
    - g_debug
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    - fu_device_add_flag
    - FU_REALTEK_MST_DEVICE
    - fu_realtek_mst_device_set_gpio88
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_realtek_mst_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:588,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:598,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:599,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:602,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:605,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:606,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:610,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:616,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:617,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:618,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:619,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:620,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:621,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:623,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:623,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:627,1
    - Dst: fu_realtek_mst_device_flash_iface_erase_block
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:629,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:631,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:631,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:635,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:638,1
    - Dst: fu_realtek_mst_device_flash_iface_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:639,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:642,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:645,1
    - Dst: fu_realtek_mst_device_flash_iface_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:648,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:652,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:655,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:656,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:662,1
    - Dst: fu_realtek_mst_device_flash_iface_erase_sector
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:667,1
    - Dst: fu_realtek_mst_device_flash_iface_write
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:671,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:674,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:675,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:678,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 581
    functionDepth: 7
    functionLinenumber: 581
    functionLinenumberEnd: 682
    functionName: fu_realtek_mst_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_realtek_mst_device_flash_iface_write
    - memcmp
    - fu_realtek_mst_device_flash_iface_erase_block
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_step_done
    - FU_I2C_DEVICE
    - FU_REALTEK_MST_DEVICE
    - g_autoptr
    - g_bytes_new_static
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_realtek_mst_device_flash_iface_erase_sector
    - g_bytes_get_size
    - fu_realtek_mst_device_flash_iface_read
    - g_malloc0
    - fu_i2c_device_set_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_realtek_mst_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:690,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:697,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:705,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:706,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:706,1
    - Dst: fu_realtek_mst_device_flash_iface_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:708,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:715,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:715,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 718
    functionName: fu_realtek_mst_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_bytes_new_take
    - fu_realtek_mst_device_flash_iface_read
    - FU_I2C_DEVICE
    - g_malloc0
    - fu_firmware_new_from_bytes
    - fu_i2c_device_set_address
    - FU_REALTEK_MST_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_realtek_mst_device_read_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:723,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:724,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:726,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:726,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:728,1
    - Dst: fu_realtek_mst_device_flash_iface_read
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:729,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:736,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:738,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 739
    functionName: fu_realtek_mst_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_steal_pointer
    - g_bytes_new_take
    - fu_realtek_mst_device_flash_iface_read
    - FU_I2C_DEVICE
    - g_malloc0
    - fu_i2c_device_set_address
    - FU_REALTEK_MST_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_realtek_mst_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_REALTEK_MST_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:744,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:747,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:747,1
    - Dst: fu_realtek_mst_device_set_gpio88
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:751,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:757,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:759,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:764,1
    - Dst: fu_realtek_mst_device_write_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:766,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:767,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:771,1
    - Dst: fu_realtek_mst_device_read_register
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:774,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:780,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:784,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:788,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 741
    functionDepth: 7
    functionLinenumber: 741
    functionLinenumberEnd: 793
    functionName: fu_realtek_mst_device_attach
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_realtek_mst_device_write_register
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    - g_set_error_literal
    - fu_device_add_flag
    - FU_REALTEK_MST_DEVICE
    - fu_realtek_mst_device_set_gpio88
    - g_autoptr
    - fu_device_remove_flag
    - fu_realtek_mst_device_read_register
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_realtek_mst_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:798,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:799,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:800,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:801,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:802,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:803,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 805
    functionName: fu_realtek_mst_device_set_progress
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:811,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:812,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:813,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:814,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:815,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:815,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:816,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:817,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:817,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:818,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:819,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:820,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:820,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:821,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:821,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:822,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:822,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:823,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:824,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRealtekMstDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 807
    functionDepth: 6
    functionLinenumber: 807
    functionLinenumberEnd: 825
    functionName: fu_realtek_mst_device_init
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_device_init(FuRealtekMstDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRealtekMstDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: fu_realtek_mst_device_class_init
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_device_class_init(FuRealtekMstDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:39,1
    - Dst: fu_mediatek_scaler_version_to_string
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:45,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:46,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:49,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:57,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:58,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:66,1
    - Dst: g_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 70
    functionName: fu_mediatek_scaler_firmware_parse
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u32
    - fu_input_stream_read_safe
    - fu_firmware_set_version
    - fu_strsafe
    - g_info
    - fu_mediatek_scaler_version_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t\t  GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMediatekScalerFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: fu_mediatek_scaler_firmware_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_firmware_init(FuMediatekScalerFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fu_mediatek_scaler_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_firmware_class_init(FuMediatekScalerFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:87,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fu_mediatek_scaler_firmware_new
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_mediatek_scaler_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:65,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:67,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:67,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:71,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:72,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:77,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:80,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: fu_mediatek_scaler_device_ddc_write
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_I2C_DEVICE
    - fu_i2c_device_write
    - FU_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_ddc_write(FuMediatekScalerDevice
      *self,\n\t\t\t\t    GByteArray *st_req,\n\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:91,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:96,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:96,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:99,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:103,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:106,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:137,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:153,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:163,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:166,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 168
    functionName: fu_mediatek_scaler_device_ddc_read
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_mediatek_scaler_device_ddc_write
    - g_set_error
    - g_steal_pointer
    - fu_i2c_device_read
    - fu_memread_uint8_safe
    - FU_I2C_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_byte_array_append
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_mediatek_scaler_device_ddc_read(FuMediatekScalerDevice *self, GByteArray
      *st_req, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:175,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:176,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:178,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:179,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:181,1
    - Dst: fu_ddcci_priority_to_string
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:185,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - priority
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuDdcciPriority
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: fu_mediatek_scaler_device_set_ddc_priority
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_mediatek_scaler_device_ddc_write
    - fu_byte_array_append_uint8
    - fu_ddcci_priority_to_string
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_DEVICE
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_set_ddc_priority(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t   FuDdcciPriority priority,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:198,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:200,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:205,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:206,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:207,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:210,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:222,1
    - Dst: g_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:231,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:232,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:232,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:233,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 235
    functionName: fu_mediatek_scaler_device_display_is_connected
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - fu_mediatek_scaler_device_ddc_read
    - fu_byte_array_append_uint8
    - fu_memread_uint8_safe
    - FU_DEVICE
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_UDEV_DEVICE
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - g_info
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_display_is_connected(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:242,1
    - Dst: fu_mediatek_scaler_device_display_is_connected
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: fu_mediatek_scaler_device_display_is_connected_cb
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_mediatek_scaler_device_display_is_connected
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_display_is_connected_cb(FuDevice
      *device,\n\t\t\t\t\t\t  gpointer user_data,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:250,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:251,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:255,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:256,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:257,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:260,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:262,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:264,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:266,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 269
    functionName: fu_mediatek_scaler_device_get_hardware_version
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_read
    - fu_byte_array_append_uint8
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_memread_uint8_safe
    - g_strdup_printf
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mediatek_scaler_device_get_hardware_version(FuDevice *device, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:276,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:276,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:279,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:280,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:281,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:284,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 293
    functionName: fu_mediatek_scaler_device_ensure_firmware_version
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_read
    - fu_byte_array_append_uint8
    - fu_memread_uint32_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_DEVICE
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_ensure_firmware_version(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:298,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:299,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:299,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:302,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:306,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:313,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 320
    functionName: fu_mediatek_scaler_device_open
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DEVICE_CLASS
    - FU_MEDIATEK_SCALER_DEVICE
    - FU_I2C_DEVICE
    - fu_mediatek_scaler_device_set_ddc_priority
    - FU_DEVICE
    - fu_i2c_device_set_address
    - fu_device_get_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:325,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:326,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:326,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:329,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:336,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: fu_mediatek_scaler_device_close
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DEVICE_CLASS
    - FU_MEDIATEK_SCALER_DEVICE
    - FU_I2C_DEVICE
    - fu_mediatek_scaler_device_set_ddc_priority
    - fu_i2c_device_set_address
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_close(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:346,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:348,1
    - Dst: fu_struct_ddc_cmd_set_opcode
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:351,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:352,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:353,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:356,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:366,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 343
    functionDepth: 5
    functionLinenumber: 343
    functionLinenumberEnd: 377
    functionName: fu_mediatek_scaler_device_verify_controller_type
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ddc_cmd_set_opcode
    - fu_mediatek_scaler_device_ddc_read
    - fu_memread_uint32_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_DEVICE
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_verify_controller_type(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:382,1
    - Dst: fu_mediatek_scaler_device_verify_controller_type
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:386,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:387,1
    - Dst: fu_mediatek_scaler_device_display_is_connected
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:392,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:396,1
    - Dst: fu_mediatek_scaler_device_get_hardware_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:400,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:403,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:404,1
    - Dst: fu_mediatek_scaler_device_ensure_firmware_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 379
    functionDepth: 6
    functionLinenumber: 379
    functionLinenumberEnd: 413
    functionName: fu_mediatek_scaler_device_setup
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_get_hardware_version
    - fu_mediatek_scaler_device_verify_controller_type
    - fu_mediatek_scaler_device_display_is_connected
    - FU_MEDIATEK_SCALER_DEVICE
    - g_prefix_error
    - fu_mediatek_scaler_device_ensure_firmware_version
    - fu_mediatek_scaler_device_set_ddc_priority
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:419,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:419,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:420,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:421,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - fw_sz
    - error
    argTypes:
    - FuDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: fu_mediatek_scaler_device_set_recv_info
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_set_recv_info(FuDevice *device,
      gsize fw_sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:429,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:430,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:432,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:433,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - ack_sz
    - error
    argTypes:
    - FuDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 439
    functionName: fu_mediatek_scaler_device_get_data_ack_size
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_read
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_memread_uint32_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_get_data_ack_size(FuDevice *device,
      guint32 *ack_sz, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_mediatek_scaler_device_set_recv_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:448,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:452,1
    - Dst: fu_mediatek_scaler_device_get_data_ack_size
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:455,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 469
    functionName: fu_mediatek_scaler_device_prepare_update_cb
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_mediatek_scaler_device_get_data_ack_size
    - fu_mediatek_scaler_device_set_recv_info
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_prepare_update_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:474,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - fw_sz
    - error
    argTypes:
    - FuDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 484
    functionName: fu_mediatek_scaler_device_prepare_update
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_prepare_update(FuDevice *device,
      gsize fw_sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:489,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:490,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:490,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:493,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:499,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:499,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:501,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:504,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:505,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:506,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:507,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:508,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:509,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:512,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 515
    functionName: fu_mediatek_scaler_device_set_data
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_mediatek_scaler_device_ddc_write
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - g_prefix_error
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_DEVICE
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_get_bytes
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_set_data(FuMediatekScalerDevice
      *self, FuChunk *chk, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:523,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:523,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:524,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:526,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:527,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:530,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chksum
    - pktcnt
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint16*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 517
    functionDepth: 5
    functionLinenumber: 517
    functionLinenumberEnd: 535
    functionName: fu_mediatek_scaler_device_get_staged_data
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_mediatek_scaler_device_ddc_read
    - fu_memread_uint32_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_get_staged_data(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t  guint16 *chksum,\n\t\t\t\t\t  guint32 *pktcnt,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_mediatek_scaler_device_get_staged_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:548,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:554,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:564,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:564,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:564,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chk
    - sent_size
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuChunk*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 576
    functionName: fu_mediatek_scaler_device_check_sent_info
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_sum16
    - g_prefix_error
    - fu_mediatek_scaler_device_get_staged_data
    - fu_chunk_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_check_sent_info(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t  FuChunk *chk,\n\t\t\t\t\t  guint32 sent_size,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:581,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:581,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:582,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:583,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - chksum
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 585
    functionName: fu_mediatek_scaler_device_run_isp
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - fu_byte_array_append_uint16
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_run_isp(FuMediatekScalerDevice *self,
      guint16 chksum, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_compute_sum16
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:594,1
    - Dst: fu_mediatek_scaler_device_run_isp
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:597,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 587
    functionDepth: 5
    functionLinenumber: 587
    functionLinenumberEnd: 602
    functionName: fu_mediatek_scaler_device_commit_firmware
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_run_isp
    - g_prefix_error
    - fu_input_stream_compute_sum16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_commit_firmware(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t  GInputStream *stream,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:607,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:608,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:611,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:612,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:613,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:614,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 604
    functionDepth: 4
    functionLinenumber: 604
    functionLinenumberEnd: 621
    functionName: fu_mediatek_scaler_device_set_isp_reboot
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_set_isp_reboot(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:628,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:628,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:629,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:631,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:633,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - isp_status
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 623
    functionDepth: 5
    functionLinenumber: 623
    functionLinenumberEnd: 641
    functionName: fu_mediatek_scaler_device_get_isp_status
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_read
    - fu_memread_uint8_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_get_isp_status(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t guint8 *isp_status,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:646,1
    - Dst: fu_mediatek_scaler_device_get_isp_status
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:649,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 643
    functionDepth: 6
    functionLinenumber: 643
    functionLinenumberEnd: 663
    functionName: fu_mediatek_scaler_device_is_update_success_cb
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_mediatek_scaler_device_get_isp_status
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_is_update_success_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:668,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:674,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 690
    functionName: fu_mediatek_scaler_device_verify
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_verify(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:695,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - chk
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 700
    functionName: fu_mediatek_scaler_device_chunk_data_is_blank
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_chunk_data_is_blank(FuChunk *chk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:707,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:707,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:708,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:709,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - sent_sz
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 711
    functionName: fu_mediatek_scaler_device_set_data_fast_forward
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_struct_ddc_cmd_new
    - g_autoptr
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_set_data_fast_forward(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t\tguint32 sent_sz,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:716,1
    - Dst: fu_mediatek_scaler_device_chunk_data_is_blank
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:720,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:722,1
    - Dst: fu_mediatek_scaler_device_set_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:726,1
    - Dst: fu_mediatek_scaler_device_check_sent_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:731,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:733,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:735,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 713
    functionDepth: 7
    functionLinenumber: 713
    functionLinenumberEnd: 742
    functionName: fu_mediatek_scaler_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_mediatek_scaler_device_chunk_data_is_blank
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_mediatek_scaler_device_set_data_fast_forward
    - fu_mediatek_scaler_device_set_data
    - fu_mediatek_scaler_device_check_sent_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_write_chunk(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:751,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:753,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:762,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:763,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:763,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:765,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:767,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:770,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:775,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:780,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:780,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:786,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:791,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:793,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 797
    functionName: fu_mediatek_scaler_device_write_firmware_impl
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_debug
    - g_prefix_error
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_write_firmware_impl(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t      GInputStream *stream,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:806,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:808,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:811,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:812,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:813,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:814,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:815,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:816,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:819,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:824,1
    - Dst: fu_mediatek_scaler_device_prepare_update
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:826,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:828,1
    - Dst: fu_mediatek_scaler_device_write_firmware_impl
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:831,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:833,1
    - Dst: fu_mediatek_scaler_device_commit_firmware
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:836,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:838,1
    - Dst: fu_mediatek_scaler_device_verify
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:841,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:843,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:846,1
    - Dst: fu_mediatek_scaler_device_set_isp_reboot
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:848,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:852,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:858,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:864,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 799
    functionDepth: 6
    functionLinenumber: 799
    functionLinenumberEnd: 868
    functionName: fu_mediatek_scaler_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_firmware_get_stream
    - fu_progress_step_done
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_mediatek_scaler_device_commit_firmware
    - g_prefix_error
    - fu_progress_add_step
    - fu_mediatek_scaler_device_set_isp_reboot
    - fu_device_has_private_flag
    - fu_mediatek_scaler_device_write_firmware_impl
    - fu_progress_set_id
    - fu_mediatek_scaler_device_verify
    - g_autoptr
    - fu_mediatek_scaler_device_prepare_update
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:877,1
    - Dst: fu_mediatek_scaler_firmware_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:877,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:879,1
    - Dst: g_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:882,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:883,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:884,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 886
    functionName: fu_mediatek_scaler_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version
    - g_steal_pointer
    - fu_firmware_get_version
    - fu_firmware_parse_stream
    - g_autoptr
    - g_info
    - fu_mediatek_scaler_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_mediatek_scaler_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t   GInputStream *stream,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t
      \  FuFirmwareParseFlags flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mediatek_scaler_version_to_string
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: fu_mediatek_scaler_device_convert_version
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_version_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mediatek_scaler_device_convert_version(FuDevice *self, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:897,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:898,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:899,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:900,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:901,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 903
    functionName: fu_mediatek_scaler_device_set_progress
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:908,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:908,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:909,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:909,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:910,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:911,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:911,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:912,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:912,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:913,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:913,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:914,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:915,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:916,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:916,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:917,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:917,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:918,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:918,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:919,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMediatekScalerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 905
    functionDepth: 6
    functionLinenumber: 905
    functionLinenumberEnd: 920
    functionName: fu_mediatek_scaler_device_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_set_firmware_size_max
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_device_init(FuMediatekScalerDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 934
    functionName: fu_mediatek_scaler_device_class_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_device_class_init(FuMediatekScalerDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-common.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: fu_mediatek_scaler_version_to_string
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mediatek_scaler_version_to_string(guint32 val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMediatekScalerPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_mediatek_scaler_plugin_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_plugin_init(FuMediatekScalerPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:28,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: fu_mediatek_scaler_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_mediatek_scaler_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mediatek_scaler_plugin_class_init(FuMediatekScalerPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelUsb4Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_intel_usb4_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_plugin_init(FuIntelUsb4Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_intel_usb4_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:34,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:35,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:37,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:37,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:44,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:46,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:47,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:48,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:51,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: fu_intel_usb4_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_str_has_prefix
    - fu_device_remove_private_flag
    - fu_device_inhibit
    - g_ptr_array_index
    - fu_device_has_instance_id
    - g_strcmp0
    - fu_device_get_plugin
    - fu_device_get_instance_ids
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelUsb4PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: fu_intel_usb4_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_plugin_class_init(FuIntelUsb4PluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: NVM_OFFSET_TO_METADATA
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVM_OFFSET_TO_METADATA(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: NVM_LENGTH_TO_METADATA
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVM_LENGTH_TO_METADATA(p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:80,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:100,1
    - Dst: fu_struct_intel_usb4_mbox_parse
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:102,1
    - Dst: fu_struct_intel_usb4_mbox_get_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:108,1
    - Dst: fu_struct_intel_usb4_mbox_get_opcode
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:112,1
    - Dst: fu_struct_intel_usb4_mbox_get_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:113,1
    - Dst: fu_struct_intel_usb4_mbox_get_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:119,1
    - Dst: fu_struct_intel_usb4_mbox_get_opcode
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:123,1
    - Dst: fu_struct_intel_usb4_mbox_get_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - self
    - mbox_reg
    - buf
    - bufsz
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 129
    functionName: fu_intel_usb4_device_get_mmio
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_intel_usb4_mbox_parse
    - g_prefix_error
    - fu_struct_intel_usb4_mbox_get_opcode
    - fu_usb_device_control_transfer
    - g_autoptr
    - FU_USB_DEVICE
    - fu_struct_intel_usb4_mbox_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_get_mmio(FuIntelUsb4Device *self,\n\t\t\t
      \     guint16 mbox_reg,\n\t\t\t      guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:138,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:138,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - mbox_reg
    - buf
    - bufsz
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: fu_intel_usb4_device_set_mmio
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_set_mmio(FuIntelUsb4Device *self,\n\t\t\t
      \     guint16 mbox_reg,\n\t\t\t      guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:172,1
    - Dst: fu_intel_usb4_device_get_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:181,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: fu_intel_usb4_device_mbox_data_read
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_intel_usb4_device_get_mmio
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_mbox_data_read(FuIntelUsb4Device *self,\n\t\t\t\t
      \   guint8 *buf,\n\t\t\t\t    guint8 bufsz,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:204,1
    - Dst: fu_intel_usb4_device_set_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: fu_intel_usb4_device_mbox_data_write
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_intel_usb4_device_set_mmio
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_mbox_data_write(FuIntelUsb4Device *self,\n\t\t\t\t
      \    const guint8 *buf,\n\t\t\t\t     guint8 bufsz,\n\t\t\t\t     GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:229,1
    - Dst: fu_struct_intel_usb4_mbox_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:229,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:240,1
    - Dst: fu_intel_usb4_device_set_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:247,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:254,1
    - Dst: fu_struct_intel_usb4_mbox_set_opcode
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:263,1
    - Dst: fu_struct_intel_usb4_mbox_set_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:264,1
    - Dst: fu_intel_usb4_device_set_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:273,1
    - Dst: fu_intel_usb4_device_get_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:274,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:281,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:282,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - self
    - opcode
    - buf
    - bufsz
    - error
    argTypes:
    - FuIntelUsb4Device*
    - FuIntelUsb4Opcode
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 288
    functionName: fu_intel_usb4_device_operation
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_propagate_prefixed_error
    - fu_intel_usb4_device_set_mmio
    - g_steal_pointer
    - g_prefix_error
    - fu_intel_usb4_device_get_mmio
    - FU_DEVICE
    - fu_struct_intel_usb4_mbox_new
    - g_autoptr
    - fu_struct_intel_usb4_mbox_set_status
    - fu_strsafe
    - fu_struct_intel_usb4_mbox_set_opcode
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_operation(FuIntelUsb4Device *self,\n\t\t\t
      \      FuIntelUsb4Opcode opcode,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize
      bufsz,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:297,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:299,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:302,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:303,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_set_address
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:306,1
    - Dst: NVM_OFFSET_TO_METADATA
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:308,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:308,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_set_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:309,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:310,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:311,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:316,1
    - Dst: fu_intel_usb4_device_mbox_data_read
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:321,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:322,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:323,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - nvm_addr
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 332
    functionName: fu_intel_usb4_device_nvm_read
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_intel_usb4_metadata_nvm_read_set_length
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_struct_intel_usb4_metadata_nvm_read_new
    - fu_struct_intel_usb4_metadata_nvm_read_set_address
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_intel_usb4_device_operation
    - g_autoptr
    - NVM_OFFSET_TO_METADATA
    - fu_chunk_get_address
    - fu_intel_usb4_device_mbox_data_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_nvm_read(FuIntelUsb4Device *self,\n\t\t\t
      \     guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t      gsize nvm_addr,\n\t\t\t
      \     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:342,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:345,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:352,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:353,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:357,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:362,1
    - Dst: NVM_OFFSET_TO_METADATA
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:362,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:363,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:368,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:373,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:377,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:378,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:378,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:379,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:381,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:384,1
    - Dst: fu_intel_usb4_device_mbox_data_write
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:389,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:390,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:393,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:402,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:407,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - self
    - blob
    - nvm_addr
    - progress
    - error
    argTypes:
    - FuIntelUsb4Device*
    - GBytes*
    - guint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 413
    functionName: fu_intel_usb4_device_nvm_write
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_step_done
    - g_prefix_error
    - g_bytes_get_size
    - fu_memwrite_uint32
    - fu_intel_usb4_device_operation
    - fu_intel_usb4_device_mbox_data_write
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - NVM_OFFSET_TO_METADATA
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_nvm_write(FuIntelUsb4Device *self,\n\t\t\t
      \      GBytes *blob,\n\t\t\t       guint32 nvm_addr,\n\t\t\t       FuProgress
      *progress,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:419,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:419,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:423,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:428,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:429,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 434
    functionName: fu_intel_usb4_device_activate
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_intel_usb4_device_operation
    - g_autoptr
    - fu_device_locker_new
    - FU_INTEL_USB4_DEVICE
    - fu_device_set_update_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_usb4_device_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:446,1
    - Dst: fu_intel_thunderbolt_firmware_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:446,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:449,1
    - Dst: fu_intel_thunderbolt_nvm_get_vendor_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:453,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:453,1
    - Dst: fu_intel_thunderbolt_nvm_get_model_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:454,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:454,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:457,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:467,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 476
    functionName: fu_intel_usb4_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - g_steal_pointer
    - fu_intel_thunderbolt_firmware_new
    - fu_intel_thunderbolt_nvm_get_model_id
    - fu_firmware_parse_stream
    - FU_INTEL_THUNDERBOLT_NVM
    - g_autoptr
    - fu_intel_thunderbolt_nvm_get_vendor_id
    - FU_INTEL_USB4_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_intel_usb4_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:488,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:489,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:489,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:492,1
    - Dst: fu_intel_usb4_device_nvm_write
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:497,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:501,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:502,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:503,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:503,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:508,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:513,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 478
    functionDepth: 6
    functionLinenumber: 478
    functionLinenumberEnd: 520
    functionName: fu_intel_usb4_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_firmware_get_version
    - g_prefix_error
    - fu_intel_usb4_device_nvm_write
    - fu_device_has_private_flag
    - FU_IS_FIRMWARE
    - fu_intel_usb4_device_operation
    - fu_firmware_get_image_by_id_bytes
    - fu_device_add_flag
    - g_autoptr
    - FU_INTEL_USB4_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:528,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:528,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:529,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:532,1
    - Dst: fu_intel_usb4_device_nvm_read
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:536,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:537,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:540,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:541,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:542,1
    - Dst: fu_intel_thunderbolt_nvm_get_vendor_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:545,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:545,1
    - Dst: fu_intel_thunderbolt_nvm_get_model_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:546,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:546,1
    - Dst: fu_intel_thunderbolt_nvm_get_device_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:547,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:547,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:549,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:550,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:551,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 522
    functionDepth: 6
    functionLinenumber: 522
    functionLinenumberEnd: 553
    functionName: fu_intel_usb4_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_intel_usb4_device_nvm_read
    - fu_device_set_version
    - fu_intel_thunderbolt_nvm_get_vendor_id
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_intel_thunderbolt_nvm_get_model_id
    - fu_intel_thunderbolt_nvm_get_device_id
    - g_strdup_printf
    - fu_intel_thunderbolt_nvm_new
    - fu_device_add_instance_id
    - fu_firmware_get_version
    - FU_INTEL_THUNDERBOLT_NVM
    - g_autoptr
    - g_bytes_new
    - FU_INTEL_USB4_DEVICE
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_usb4_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:558,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:559,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:560,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: fu_intel_usb4_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_USB4_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:567,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:568,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:569,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:570,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:571,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: fu_intel_usb4_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:580,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:581,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:581,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:582,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:582,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:583,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:584,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:585,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:586,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelUsb4Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 575
    functionDepth: 6
    functionLinenumber: 575
    functionLinenumberEnd: 588
    functionName: fu_intel_usb4_device_init
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_device_init(FuIntelUsb4Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelUsb4DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 600
    functionName: fu_intel_usb4_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_usb4_device_class_init(FuIntelUsb4DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:57,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:58,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:59,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:60,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:61,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:62,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:63,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:66,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:67,1
    - Dst: fu_ccgx_image_type_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:70,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:71,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:72,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:73,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:74,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: fu_ccgx_hpi_device_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_fw_mode_to_string
    - fu_ccgx_image_type_to_string
    - FU_CCGX_HPI_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hpi_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:102,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:103,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 124
    functionName: fu_ccgx_hpi_device_i2c_reset_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_control_transfer
    - FU_CCGX_HPI_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_i2c_reset_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:130,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:131,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:144,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:153,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 168
    functionName: fu_ccgx_hpi_device_check_i2c_status
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fu_usb_device_control_transfer
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_check_i2c_status(FuCcgxHpiDevice *self,
      guint8 mode, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:173,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:174,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - i2c_config
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - CyI2CConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: fu_ccgx_hpi_device_get_i2c_config
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fu_usb_device_control_transfer
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_get_i2c_config(FuCcgxHpiDevice *self, CyI2CConfig
      *i2c_config, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:200,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:201,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - i2c_config
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - CyI2CConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: fu_ccgx_hpi_device_set_i2c_config
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fu_usb_device_control_transfer
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_set_i2c_config(FuCcgxHpiDevice *self, CyI2CConfig
      *i2c_config, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:228,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:230,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:230,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:238,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:258,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - bytes_pending
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 273
    functionName: fu_ccgx_hpi_device_wait_for_notify
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - fu_memread_uint16_safe
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_wait_for_notify(FuCcgxHpiDevice *self,
      guint16 *bytes_pending, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_check_i2c_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:285,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:289,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:289,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:302,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:305,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:305,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:313,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:318,1
    - Dst: fu_ccgx_hpi_device_wait_for_notify
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:319,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - CyI2CDataConfigBits
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 324
    functionName: fu_ccgx_hpi_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_usb_device_bulk_transfer
    - FU_DEVICE
    - fu_ccgx_hpi_device_check_i2c_status
    - FU_USB_DEVICE
    - fu_ccgx_hpi_device_wait_for_notify
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_i2c_read(FuCcgxHpiDevice *self,\n\t\t\t
      \   guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    CyI2CDataConfigBits cfg_bits,\n\t\t\t
      \   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_check_i2c_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:335,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:336,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:340,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:340,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:354,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:357,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:365,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:370,1
    - Dst: fu_ccgx_hpi_device_wait_for_notify
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:371,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - CyI2CDataConfigBits
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 376
    functionName: fu_ccgx_hpi_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_usb_device_bulk_transfer
    - FU_DEVICE
    - fu_ccgx_hpi_device_check_i2c_status
    - FU_USB_DEVICE
    - fu_ccgx_hpi_device_wait_for_notify
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_i2c_write(FuCcgxHpiDevice *self,\n\t\t\t
      \    guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     CyI2CDataConfigBits cfg_bits,\n\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:386,1
    - Dst: fu_ccgx_hpi_device_check_i2c_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:388,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:389,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:393,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:393,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:407,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:412,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:412,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - CyI2CDataConfigBits
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 423
    functionName: fu_ccgx_hpi_device_i2c_write_no_resp
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - fu_usb_device_control_transfer
    - fu_usb_device_bulk_transfer
    - fu_ccgx_hpi_device_check_i2c_status
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_i2c_write_no_resp(FuCcgxHpiDevice *self,\n\t\t\t\t
      \    guint8 *buf,\n\t\t\t\t     gsize bufsz,\n\t\t\t\t     CyI2CDataConfigBits
      cfg_bits,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:429,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:430,1
    - Dst: fu_ccgx_hpi_device_i2c_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:434,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:439,1
    - Dst: fu_ccgx_hpi_device_i2c_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:442,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:447,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 452
    functionName: fu_ccgx_hpi_device_reg_read_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_i2c_write
    - fu_ccgx_hpi_device_i2c_read
    - g_prefix_error
    - g_malloc0
    - FU_DEVICE
    - FU_CCGX_HPI_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_reg_read_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 472
    functionName: fu_ccgx_hpi_device_reg_read
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_reg_read(FuCcgxHpiDevice *self,\n\t\t\t
      \   guint16 addr,\n\t\t\t    guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:478,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:479,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:483,1
    - Dst: fu_ccgx_hpi_device_i2c_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:484,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:489,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 494
    functionName: fu_ccgx_hpi_device_reg_write_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fu_ccgx_hpi_device_i2c_write
    - g_prefix_error
    - g_malloc0
    - FU_DEVICE
    - FU_CCGX_HPI_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_reg_write_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 514
    functionName: fu_ccgx_hpi_device_reg_write
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_reg_write(FuCcgxHpiDevice *self,\n\t\t\t
      \    guint16 addr,\n\t\t\t     const guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:523,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:526,1
    - Dst: fu_ccgx_hpi_device_i2c_write_no_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:527,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:532,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: fu_ccgx_hpi_device_reg_write_no_resp
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fu_ccgx_hpi_device_i2c_write_no_resp
    - g_prefix_error
    - g_malloc0
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_reg_write_no_resp(FuCcgxHpiDevice *self,\n\t\t\t\t
      \    guint16 addr,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     guint16 bufsz,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:545,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - HPIRegSection
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 556
    functionName: fu_ccgx_hpi_device_clear_intr
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    - g_prefix_error
    - fu_ccgx_hpi_device_reg_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_clear_intr(FuCcgxHpiDevice *self, HPIRegSection
      section, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - section
    - part
    - addr
    argTypes:
    - guint8
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: fu_ccgx_hpi_device_reg_addr_gen
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_ccgx_hpi_device_reg_addr_gen(guint8 section, guint8 part,
      guint8 addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_reg_addr_gen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:575,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:576,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:577,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:583,1
    - Dst: fu_ccgx_hpi_device_reg_addr_gen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:585,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:588,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:593,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:599,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:604,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:611,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:616,1
    - Dst: fu_ccgx_hpi_device_clear_intr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:623,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - self
    - section
    - event
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - HPIRegSection
    - HPIEvent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 624
    functionName: fu_ccgx_hpi_device_read_event_reg
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fu_ccgx_hpi_device_reg_addr_gen
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_intr
    - fu_ccgx_hpi_device_reg_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_read_event_reg(FuCcgxHpiDevice *self,\n\t\t\t\t
      \ HPIRegSection section,\n\t\t\t\t  HPIEvent *event,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_reg_addr_gen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:637,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:640,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:641,1
    - Dst: fu_ccgx_hpi_device_read_event_reg
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:651,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:655,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - self
    - section
    - event_array
    - event_count
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - HPIRegSection
    - HPIEvent*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 626
    functionDepth: 6
    functionLinenumber: 626
    functionLinenumberEnd: 665
    functionName: fu_ccgx_hpi_device_app_read_intr_reg
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_reg_addr_gen
    - fu_ccgx_hpi_device_reg_read
    - fu_ccgx_hpi_device_read_event_reg
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_app_read_intr_reg(FuCcgxHpiDevice *self,\n\t\t\t\t
      \    HPIRegSection section,\n\t\t\t\t     HPIEvent *event_array,\n\t\t\t\t     guint8
      *event_count,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:675,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:675,1
    - Dst: fu_ccgx_hpi_device_app_read_intr_reg
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:677,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:685,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - section
    - event_array
    - timeout_ms
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - HPIRegSection
    - HPIEvent*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 667
    functionDepth: 7
    functionLinenumber: 667
    functionLinenumberEnd: 694
    functionName: fu_ccgx_hpi_device_wait_for_event
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_timer_new
    - g_timer_elapsed
    - fu_ccgx_hpi_device_app_read_intr_reg
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_wait_for_event(FuCcgxHpiDevice *self,\n\t\t\t\t
      \ HPIRegSection section,\n\t\t\t\t  HPIEvent *event_array,\n\t\t\t\t  guint32
      timeout_ms,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_wait_for_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:704,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - reg_section
    - event
    - io_timeout
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - HPIRegSection
    - FuCcgxPdResp*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 696
    functionDepth: 8
    functionLinenumber: 696
    functionLinenumberEnd: 710
    functionName: fu_ccgx_hpi_device_get_event
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_ccgx_hpi_device_wait_for_event
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_get_event(FuCcgxHpiDevice *self,\n\t\t\t
      \    HPIRegSection reg_section,\n\t\t\t     FuCcgxPdResp *event,\n\t\t\t     guint32
      io_timeout,\n\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_app_read_intr_reg
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:724,1
    - Dst: fu_ccgx_hpi_device_wait_for_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:725,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:730,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:731,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - io_timeout
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 712
    functionDepth: 8
    functionLinenumber: 712
    functionLinenumberEnd: 739
    functionName: fu_ccgx_hpi_device_clear_all_events
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_wait_for_event
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_ccgx_hpi_device_app_read_intr_reg
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_clear_all_events(FuCcgxHpiDevice *self,
      guint32 io_timeout, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:744,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:748,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:749,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:752,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:757,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:760,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:765,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:769,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 741
    functionDepth: 9
    functionLinenumber: 741
    functionLinenumberEnd: 778
    functionName: fu_ccgx_hpi_device_validate_fw_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_get_event
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_pd_resp_to_string
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_validate_fw_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fw_index
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: fu_ccgx_hpi_device_validate_fw
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_validate_fw(FuCcgxHpiDevice *self, guint8
      fw_index, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:793,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:797,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:799,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:804,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:807,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:812,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:816,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:820,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 790
    functionDepth: 9
    functionLinenumber: 790
    functionLinenumberEnd: 828
    functionName: fu_ccgx_hpi_device_enter_flash_mode_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_get_event
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_pd_resp_to_string
    - FU_DEVICE
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_enter_flash_mode_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:833,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: fu_ccgx_hpi_device_enter_flash_mode
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_enter_flash_mode(FuCcgxHpiDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:843,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:847,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:850,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:855,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:858,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:863,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:867,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:871,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:877,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 840
    functionDepth: 9
    functionLinenumber: 840
    functionLinenumberEnd: 879
    functionName: fu_ccgx_hpi_device_leave_flash_mode_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_get_event
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_pd_resp_to_string
    - FU_DEVICE
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_leave_flash_mode_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 889
    functionName: fu_ccgx_hpi_device_leave_flash_mode
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_leave_flash_mode(FuCcgxHpiDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:894,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:905,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:911,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:912,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:915,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:920,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:925,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:930,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:934,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 891
    functionDepth: 9
    functionLinenumber: 891
    functionLinenumberEnd: 943
    functionName: fu_ccgx_hpi_device_write_flash_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_get_event
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_pd_resp_to_string
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_write_flash_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: fu_ccgx_hpi_device_write_flash
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_write_flash(FuCcgxHpiDevice *self,\n\t\t\t
      \      guint16 addr,\n\t\t\t       const guint8 *buf,\n\t\t\t       guint16
      bufsz,\n\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:967,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:979,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:981,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:986,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:991,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:996,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1000,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1004,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1010,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 964
    functionDepth: 9
    functionLinenumber: 964
    functionLinenumberEnd: 1015
    functionName: fu_ccgx_hpi_device_read_flash_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_get_event
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_pd_resp_to_string
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    - fu_ccgx_hpi_device_reg_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_read_flash_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1029,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1034
    functionName: fu_ccgx_hpi_device_read_flash
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_read_flash(FuCcgxHpiDevice *self,\n\t\t\t
      \     guint16 addr,\n\t\t\t      guint8 *buf,\n\t\t\t      guint16 bufsz,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1039,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1045,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1050,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1052,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1057,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1062,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1036
    functionDepth: 9
    functionLinenumber: 1036
    functionLinenumberEnd: 1067
    functionName: fu_ccgx_hpi_device_detach
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1072,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1077,1
    - Dst: fu_ccgx_hpi_device_reg_write_no_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1079,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1084,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1087,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1069
    functionDepth: 9
    functionLinenumber: 1069
    functionLinenumberEnd: 1090
    functionName: fu_ccgx_hpi_device_attach
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - g_prefix_error
    - fu_ccgx_hpi_device_clear_all_events
    - fu_ccgx_hpi_device_reg_write_no_resp
    - fu_device_add_flag
    - FU_CCGX_HPI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1099,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1103,1
    - Dst: fu_ccgx_firmware_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1103,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1106,1
    - Dst: fu_ccgx_firmware_get_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1110,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1112,1
    - Dst: fu_ccgx_firmware_get_app_type
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1121,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1123,1
    - Dst: fu_ccgx_firmware_get_fw_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1132,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1132,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1134,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1138,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1138,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1139,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1143
    functionName: fu_ccgx_hpi_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_CCGX_FIRMWARE
    - fu_firmware_parse_stream
    - fu_ccgx_firmware_new
    - fu_ccgx_fw_mode_to_string
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_firmware_get_silicon_id
    - g_autoptr
    - fu_ccgx_firmware_get_fw_mode
    - fu_ccgx_firmware_get_app_type
    - fu_ccgx_fw_mode_get_alternate
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_ccgx_hpi_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1156,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1170,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - self
    - fw_mode
    - addr
    - offset
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxFwMode
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1194
    functionName: fu_ccgx_hpi_device_get_metadata_offset
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_get_metadata_offset(FuCcgxHpiDevice *self,\n\t\t\t\t
      \      FuCcgxFwMode fw_mode,\n\t\t\t\t       guint32 *addr,\n\t\t\t\t       guint32
      *offset,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_get_metadata_offset
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1208,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1210,1
    - Dst: fu_ccgx_hpi_device_read_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1211,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1212,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - fw_mode
    - st_metadata
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxFwMode
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1197
    functionDepth: 4
    functionLinenumber: 1197
    functionLinenumberEnd: 1223
    functionName: fu_ccgx_hpi_device_load_metadata
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_get_metadata_offset
    - g_prefix_error
    - fu_memcpy_safe
    - g_malloc0
    - fu_ccgx_hpi_device_read_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_load_metadata(FuCcgxHpiDevice *self,\n\t\t\t\t
      FuCcgxFwMode fw_mode,\n\t\t\t\t GByteArray *st_metadata,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_get_metadata_offset
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1237,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1239,1
    - Dst: fu_ccgx_hpi_device_read_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1240,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1241,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1244,1
    - Dst: fu_ccgx_hpi_device_write_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - fw_mode
    - st_metadata
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxFwMode
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1226
    functionDepth: 4
    functionLinenumber: 1226
    functionLinenumberEnd: 1258
    functionName: fu_ccgx_hpi_device_save_metadata
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_get_metadata_offset
    - g_prefix_error
    - fu_memcpy_safe
    - g_malloc0
    - fu_ccgx_hpi_device_write_flash
    - fu_ccgx_hpi_device_read_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_save_metadata(FuCcgxHpiDevice *self,\n\t\t\t\t
      FuCcgxFwMode fw_mode,\n\t\t\t\t GByteArray *st_metadata,\n\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1267,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1268,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1268,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1271,1
    - Dst: fu_struct_ccgx_metadata_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1271,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1274,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1275,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1276,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1277,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1278,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1279,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1282,1
    - Dst: fu_ccgx_hpi_device_load_metadata
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1290,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_metadata_valid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1292,1
    - Dst: fu_ccgx_hpi_device_save_metadata
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1293,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1295,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1299,1
    - Dst: fu_ccgx_hpi_device_write_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1302,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1304,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1305,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1307,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1312,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1312,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1316,1
    - Dst: fu_ccgx_hpi_device_validate_fw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1319,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1320,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1323,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1326,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1332
    functionName: fu_ccgx_hpi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_struct_ccgx_metadata_hdr_set_metadata_valid
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_ccgx_hpi_device_save_metadata
    - fu_ccgx_firmware_get_records
    - FU_CCGX_FIRMWARE
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_ptr_array_index
    - FU_CCGX_HPI_DEVICE
    - fu_progress_set_id
    - fu_ccgx_fw_mode_get_alternate
    - fu_progress_step_done
    - fu_ccgx_hpi_device_write_flash
    - g_autoptr
    - fu_device_locker_close
    - g_bytes_get_data
    - fu_device_locker_new_full
    - fu_struct_ccgx_metadata_hdr_new
    - fu_ccgx_hpi_device_validate_fw
    - g_bytes_get_size
    - fu_ccgx_hpi_device_load_metadata
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1339,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1344,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1347,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1357,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1357,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1358,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1365,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1334
    functionDepth: 5
    functionLinenumber: 1334
    functionLinenumberEnd: 1381
    functionName: fu_ccgx_hpi_device_ensure_silicon_id
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_debug
    - g_prefix_error
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_ccgx_hpi_device_reg_read
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_ensure_silicon_id(FuCcgxHpiDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_version_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1387
    functionName: fu_ccgx_hpi_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_version_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_hpi_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1396,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1399,1
    - Dst: fu_ccgx_hpi_device_get_i2c_config
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1404,1
    - Dst: fu_ccgx_hpi_device_set_i2c_config
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1411,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1414,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1419,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1425,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1425,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1426,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1426,1
    - Dst: fu_ccgx_hpi_device_ensure_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1429,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1440,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1445,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1450,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1459,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1470,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1473,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1474,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1476,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1482,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1484,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1488,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1489,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1492,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1497,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1498,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1498,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1503,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1507,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1389
    functionDepth: 9
    functionLinenumber: 1389
    functionLinenumberEnd: 1508
    functionName: fu_ccgx_hpi_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_ccgx_fw_mode_to_string
    - fu_device_has_flag
    - g_propagate_error
    - fu_ccgx_hpi_device_set_i2c_config
    - fu_ccgx_hpi_device_ensure_silicon_id
    - fu_ccgx_hpi_device_get_event
    - fu_device_get_logical_id
    - FU_DEVICE_CLASS
    - fu_device_inhibit
    - fu_device_uninhibit
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_reg_read
    - fu_device_add_instance_u16
    - g_steal_pointer
    - g_error_matches
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_set_version_raw
    - fu_ccgx_hpi_device_get_i2c_config
    - fu_memread_uint32_safe
    - fu_ccgx_hpi_device_clear_all_events
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1516,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1519,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1520,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1525,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1531,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1537,1
    - Dst: fu_ccgx_image_type_from_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1538,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1541,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1549
    functionName: fu_ccgx_hpi_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_CCGX_HPI_DEVICE
    - g_strcmp0
    - fu_ccgx_image_type_from_string
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1555,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1551
    functionDepth: 3
    functionLinenumber: 1551
    functionLinenumberEnd: 1560
    functionName: fu_ccgx_hpi_device_close
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1565,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1566,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1567,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1568,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1569,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1570,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1572
    functionName: fu_ccgx_hpi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hpi_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1584,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1585,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1586,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1587,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1588,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1589,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1590,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1591,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1592,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1593,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1594,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1597,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1601,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1601,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1609,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxHpiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1574
    functionDepth: 6
    functionLinenumber: 1574
    functionLinenumberEnd: 1610
    functionName: fu_ccgx_hpi_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - fu_device_register_private_flag
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hpi_device_init(FuCcgxHpiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxHpiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1626
    functionName: fu_ccgx_hpi_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hpi_device_class_init(FuCcgxHpiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:20,1
    - Dst: fu_ccgx_firmware_new
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:21,1
    - Dst: fu_ccgx_firmware_new
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:25,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:28,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:31,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:34,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:38,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:41,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_ccgx_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_ccgx_firmware_new
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:49,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:50,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:53,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-common.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: fu_ccgx_version_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-common.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_version_to_string(guint32 val)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - FuCcgxFwMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: fu_ccgx_fw_mode_get_alternate
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FuCcgxFwMode
    signature: FuCcgxFwMode fu_ccgx_fw_mode_get_alternate(FuCcgxFwMode val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:33,1
    - Dst: FU_IS_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_ccgx_firmware_get_records
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CCGX_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_ccgx_firmware_get_records(FuCcgxFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:40,1
    - Dst: FU_IS_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_ccgx_firmware_get_app_type
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CCGX_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_ccgx_firmware_get_app_type(FuCcgxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:47,1
    - Dst: FU_IS_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_ccgx_firmware_get_silicon_id
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CCGX_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_ccgx_firmware_get_silicon_id(FuCcgxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:54,1
    - Dst: FU_IS_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_ccgx_firmware_get_fw_mode
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_CCGX_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuCcgxFwMode
    signature: FuCcgxFwMode fu_ccgx_firmware_get_fw_mode(FuCcgxFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:61,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:62,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:64,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:65,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:66,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: fu_ccgx_firmware_export
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_fw_mode_to_string
    - FU_CCGX_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:74,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuCcgxFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_ccgx_firmware_record_free
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_record_free(FuCcgxFirmwareRecord *rcd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:89,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:89,1
    - Dst: g_string_erase
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:93,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:96,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:97,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:99,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:104,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:116,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:122,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:125,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:130,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:148,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:159,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:159,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - self
    - token
    - flags
    - error
    argTypes:
    - FuCcgxFirmware*
    - GString*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 161
    functionName: fu_ccgx_firmware_add_record
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_new0
    - fu_firmware_strparse_uint8_safe
    - g_string_erase
    - g_autoptr
    - fu_firmware_strparse_uint16_safe
    - g_bytes_new
    - g_ptr_array_add
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_firmware_add_record(FuCcgxFirmware *self,\n\t\t\t
      \   GString *token,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:177,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:185,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:186,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:188,1
    - Dst: fu_struct_ccgx_metadata_hdr_parse_bytes
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:206,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_metadata_valid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:209,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:211,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_metadata_valid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:221,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:222,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:223,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:225,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:226,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:231,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:236,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:237,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:251,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:252,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:254,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:260,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:268,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:273,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuCcgxFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 280
    functionName: fu_ccgx_firmware_parse_md_block
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_set_error
    - fu_sum8_bytes
    - g_bytes_get_size
    - fu_struct_ccgx_metadata_hdr_get_fw_size
    - fu_memread_uint32_safe
    - FU_FIRMWARE
    - g_ptr_array_index
    - g_set_error_literal
    - fu_struct_ccgx_metadata_hdr_get_metadata_valid
    - fu_firmware_set_version_raw
    - g_autoptr
    - fu_struct_ccgx_metadata_hdr_get_fw_checksum
    - fu_struct_ccgx_metadata_hdr_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_firmware_parse_md_block(FuCcgxFirmware *self, FuFirmwareParseFlags
      flags, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:295,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:303,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:304,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:312,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:319,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:325,1
    - Dst: fu_ccgx_firmware_add_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:336,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 343
    functionName: fu_ccgx_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - g_set_error
    - fu_ccgx_firmware_add_record
    - strlen
    - fu_firmware_strparse_uint32_safe
    - g_prefix_error
    - FU_CCGX_FIRMWARE
    - g_set_error_literal
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_firmware_tokenize_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:351,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:355,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:360,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:361,1
    - Dst: fu_ccgx_firmware_parse_md_block
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:365,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 372
    functionName: fu_ccgx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_stream
    - g_prefix_error
    - FU_CCGX_FIRMWARE
    - fu_firmware_set_addr
    - g_ptr_array_index
    - fu_ccgx_firmware_parse_md_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_firmware_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:382,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:382,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:392,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - str
    - array_id
    - row_number
    - buf
    - bufsz
    argTypes:
    - GString*
    - guint8
    - guint8
    - guint8*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 402
    functionName: fu_ccgx_firmware_write_record
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_ccgx_firmware_write_record(GString *str,\n\t\t\t      guint8
      array_id,\n\t\t\t      guint8 row_number,\n\t\t\t      const guint8 *buf,\n\t\t\t
      \     guint16 bufsz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:411,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:412,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:412,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:413,1
    - Dst: fu_struct_ccgx_metadata_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:416,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:416,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:419,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:427,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:430,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:435,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:438,1
    - Dst: fu_ccgx_firmware_write_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:441,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:444,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:445,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:449,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:454,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:455,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_entry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:456,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_last_boot_row
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:457,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:458,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_boot_seq
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:459,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:460,1
    - Dst: fu_ccgx_firmware_write_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:469,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:476,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 478
    functionName: fu_ccgx_firmware_write
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - fu_chunk_array_length
    - fu_ccgx_firmware_write_record
    - fu_struct_ccgx_metadata_hdr_set_fw_checksum
    - g_string_append_printf
    - fu_struct_ccgx_metadata_hdr_set_last_boot_row
    - FU_CCGX_FIRMWARE
    - fu_struct_ccgx_metadata_hdr_set_fw_size
    - fu_chunk_get_data
    - fu_chunk_array_new_from_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - g_autoptr
    - fu_struct_ccgx_metadata_hdr_set_fw_entry
    - fu_chunk_array_index
    - g_bytes_get_data
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_struct_ccgx_metadata_hdr_new
    - fu_struct_ccgx_metadata_hdr_set_boot_seq
    - fu_memcpy_safe
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ccgx_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:483,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 493
    functionName: fu_ccgx_firmware_build
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_CCGX_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_version_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: fu_ccgx_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_version_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:504,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:505,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:505,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:506,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:506,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:507,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: fu_ccgx_firmware_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_init(FuCcgxFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:513,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:514,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: fu_ccgx_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_CCGX_FIRMWARE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:521,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: fu_ccgx_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_firmware_class_init(FuCcgxFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:534,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: fu_ccgx_firmware_new
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ccgx_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:37,1
    - Dst: fu_struct_ccgx_pure_hid_command_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:37,1
    - Dst: fu_struct_ccgx_pure_hid_command_set_cmd
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:38,1
    - Dst: fu_struct_ccgx_pure_hid_command_set_opt
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:39,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:40,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - param1
    - param2
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: fu_ccgx_pure_hid_device_command
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_struct_ccgx_pure_hid_command_set_cmd
    - fu_struct_ccgx_pure_hid_command_set_opt
    - g_autoptr
    - fu_struct_ccgx_pure_hid_command_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_pure_hid_device_command(FuCcgxPureHidDevice *self,\n\t\t\t\tguint8
      param1,\n\t\t\t\tguint8 param2,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: fu_ccgx_pure_hid_device_enter_flashing_mode
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_pure_hid_device_command
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_pure_hid_device_enter_flashing_mode(FuCcgxPureHidDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:76,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:78,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:85,1
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: fu_ccgx_pure_hid_device_magic_unlock
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - g_debug
    - FU_HID_DEVICE
    - fu_ccgx_pure_hid_device_command
    - g_prefix_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_pure_hid_device_magic_unlock(FuCcgxPureHidDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:106,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:108,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:108,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_parse
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:117,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:120,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_operating_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:121,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:123,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_image1_version
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:127,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_image2_version
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:130,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:135,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:138,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:144,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:148,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_bl_version
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:149,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:150,1
    - Dst: fu_struct_ccgx_pure_hid_fw_info_get_bl_version
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:150,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:151,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 160
    functionName: fu_ccgx_pure_hid_device_ensure_fw_info
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_struct_ccgx_pure_hid_fw_info_get_bl_version
    - fu_struct_ccgx_pure_hid_fw_info_get_image2_version
    - fu_device_set_version_bootloader_raw
    - fu_device_get_version_format
    - FU_HID_DEVICE
    - fu_struct_ccgx_pure_hid_fw_info_parse
    - fu_struct_ccgx_pure_hid_fw_info_get_image1_version
    - fu_device_set_version_bootloader
    - fu_struct_ccgx_pure_hid_fw_info_get_operating_mode
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_add_flag
    - g_set_error_literal
    - g_autoptr
    - fu_device_set_version_raw
    - fu_version_from_uint32
    - fu_struct_ccgx_pure_hid_fw_info_get_silicon_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_pure_hid_device_ensure_fw_info(FuCcgxPureHidDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:165,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:168,1
    - Dst: fu_ccgx_pure_hid_device_magic_unlock
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:171,1
    - Dst: fu_ccgx_pure_hid_device_ensure_fw_info
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:173,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:176,1
    - Dst: fu_ccgx_pure_hid_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:178,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:179,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:182,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:183,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:192,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 197
    functionName: fu_ccgx_pure_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_ccgx_pure_hid_device_ensure_fw_info
    - fu_ccgx_pure_hid_fw_mode_to_string
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_strup
    - fu_device_get_remove_delay
    - fu_device_set_remove_delay
    - fu_device_build_instance_id_full
    - fu_ccgx_pure_hid_device_magic_unlock
    - FU_CCGX_PURE_HID_DEVICE
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_pure_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:214,1
    - Dst: fu_ccgx_firmware_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:214,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:216,1
    - Dst: fu_ccgx_firmware_get_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:220,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:220,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:222,1
    - Dst: fu_ccgx_firmware_get_fw_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:231,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:231,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:232,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:233,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:237,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:238,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:239,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:244,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:244,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:245,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:248,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:267,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:278,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:279,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:279,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:280,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:286,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:286,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:287,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:294,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:294,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:295,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:299,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:300,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 307
    functionName: fu_ccgx_pure_hid_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_ccgx_fw_mode_to_string
    - fu_ccgx_firmware_get_silicon_id
    - FU_CCGX_PURE_HID_DEVICE
    - g_set_error
    - g_debug
    - fu_ccgx_firmware_get_records
    - FU_CCGX_FIRMWARE
    - g_ptr_array_index
    - fu_ccgx_firmware_get_fw_mode
    - fu_ccgx_fw_mode_get_alternate
    - fu_device_get_pid
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_ccgx_firmware_new
    - g_autoptr
    - g_bytes_get_data
    - fu_device_get_vid
    - g_bytes_get_size
    - g_set_error_literal
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_ccgx_pure_hid_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:316,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:316,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_set_pd_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:318,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_set_addr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:320,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:321,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:331,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:331,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - address
    - row
    - row_len
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 309
    functionDepth: 5
    functionLinenumber: 309
    functionLinenumberEnd: 342
    functionName: fu_ccgx_pure_hid_device_write_row
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_pure_hid_write_hdr_new
    - fu_hid_device_set_report
    - fu_struct_ccgx_pure_hid_write_hdr_set_addr
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - g_autoptr
    - fu_struct_ccgx_pure_hid_write_hdr_set_pd_resp
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_pure_hid_device_write_row(FuCcgxPureHidDevice *self,\n\t\t\t\t
      \ guint16 address,\n\t\t\t\t  const guint8 *row,\n\t\t\t\t  gsize row_len,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:351,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:353,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:353,1
    - Dst: fu_ccgx_pure_hid_device_enter_flashing_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:355,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:361,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:362,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:363,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:366,1
    - Dst: fu_ccgx_pure_hid_device_write_row
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:367,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:369,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:370,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:373,1
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:376,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:380,1
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:384,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:388,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 395
    functionName: fu_ccgx_pure_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_ccgx_pure_hid_device_write_row
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_ccgx_pure_hid_device_enter_flashing_mode
    - fu_ccgx_firmware_get_records
    - fu_ccgx_pure_hid_device_command
    - g_prefix_error
    - g_bytes_get_size
    - FU_CCGX_FIRMWARE
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_progress_set_steps
    - FU_CCGX_PURE_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_pure_hid_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:403,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:404,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: fu_ccgx_pure_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_pure_hid_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:412,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:413,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:415,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxPureHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: fu_ccgx_pure_hid_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_pure_hid_device_init(FuCcgxPureHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:422,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:423,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:424,1
    - Dst: fu_ccgx_pure_hid_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:427,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: fu_ccgx_pure_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_ccgx_pure_hid_fw_mode_to_string
    - FU_CCGX_PURE_HID_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_pure_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:437,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:440,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:441,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:446,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:447,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: fu_ccgx_pure_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    - FU_CCGX_PURE_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_pure_hid_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:460,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: fu_ccgx_pure_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_pure_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxPureHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: fu_ccgx_pure_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_pure_hid_device_class_init(FuCcgxPureHidDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:27,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:27,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: fu_ccgx_hid_device_enable_hpi_mode_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hid_device_enable_hpi_mode_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:43,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: fu_ccgx_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hid_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:57,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:63,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 77
    functionName: fu_ccgx_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_set_error_literal
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:82,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:83,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:84,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:85,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:86,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:87,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: fu_ccgx_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hid_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:94,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:95,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:96,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:97,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:98,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:99,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: fu_ccgx_hid_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hid_device_init(FuCcgxHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: fu_ccgx_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hid_device_class_init(FuCcgxHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:24,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: fu_ccgx_plugin_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_plugin_init(FuCcgxPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:30,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:32,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:33,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:34,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:35,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:36,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:37,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: fu_ccgx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_ccgx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_plugin_class_init(FuCcgxPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:24,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:25,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:28,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:37,1
    - Dst: fu_efi_signature_list_get_newest
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:40,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:40,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:43,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:44,1
    - Dst: fu_efi_x509_device_new
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:46,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:46,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:47,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:48,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:49,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 55
    functionName: fu_uefi_db_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - FU_EFI_X509_SIGNATURE
    - fu_device_add_child
    - fu_progress_new
    - FU_EFI_SIGNATURE_LIST
    - FU_DEVICE_CLASS
    - fu_device_set_proxy
    - g_prefix_error
    - fu_device_get_context
    - fu_efi_x509_device_new
    - g_ptr_array_index
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_efi_signature_get_kind
    - fu_efi_signature_list_get_newest
    - fu_device_set_physical_id
    - fu_device_read_firmware
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_db_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:64,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:67,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:72,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:73,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:74,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: fu_uefi_db_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_uefi_device_set_efivar_bytes
    - fu_device_get_physical_id
    - FU_UEFI_DEVICE
    - g_autoptr
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_db_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:96,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:99,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:100,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:101,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:102,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:103,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:107,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:108,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:114,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:124,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:125,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:127,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 131
    functionName: fu_uefi_db_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_children
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - g_ptr_array_index
    - fwupd_security_attr_set_result
    - fu_device_has_instance_id
    - g_autoptr
    - fu_device_security_attr_new
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:136,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:137,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:139,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:140,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:141,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: fu_uefi_db_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:148,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:149,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:150,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:151,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:152,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: fu_uefi_db_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_add_icon
    - fu_device_set_physical_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_device_init(FuUefiDbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: fu_uefi_db_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_device_class_init(FuUefiDbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_uefi_db_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_plugin_init(FuUefiDbPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c:26,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_uefi_db_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_uefi_db_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_plugin_class_init(FuUefiDbPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiKekPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_uefi_kek_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_plugin_init(FuUefiKekPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c:26,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_uefi_kek_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiKekPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_uefi_kek_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_plugin_class_init(FuUefiKekPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:24,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:25,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:28,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:37,1
    - Dst: fu_efi_signature_list_get_newest
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:40,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:40,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:43,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:44,1
    - Dst: fu_efi_x509_device_new
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:46,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:46,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:47,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:48,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:49,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:50,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: fu_uefi_kek_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - FU_EFI_X509_SIGNATURE
    - fu_device_add_child
    - fu_progress_new
    - FU_EFI_SIGNATURE_LIST
    - FU_DEVICE_CLASS
    - fu_device_set_proxy
    - g_prefix_error
    - fu_device_get_context
    - fu_efi_x509_device_new
    - g_ptr_array_index
    - FU_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_efi_signature_get_kind
    - fu_efi_signature_list_get_newest
    - fu_device_set_physical_id
    - fu_device_read_firmware
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_kek_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:65,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:68,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:73,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:74,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:75,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: fu_uefi_kek_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_uefi_device_set_efivar_bytes
    - fu_device_get_physical_id
    - FU_UEFI_DEVICE
    - g_autoptr
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_kek_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:94,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:95,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:96,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:97,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:98,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:99,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: fu_uefi_kek_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:106,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:107,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:108,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:109,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:110,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiKekDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: fu_uefi_kek_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_add_icon
    - fu_device_set_physical_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_device_init(FuUefiKekDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiKekDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: fu_uefi_kek_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_device_class_init(FuUefiKekDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEBUG_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:22,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:25,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:25,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:33,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:34,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:35,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:37,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:37,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: fu_elan_kbd_debug_device_detach
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - FU_ELAN_KBD_DEBUG_DEVICE
    - fu_device_add_flag
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_debug_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:50,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:51,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:52,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:53,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:54,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:55,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: fu_elan_kbd_debug_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_debug_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:62,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:63,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:64,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:65,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:66,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdDebugDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: fu_elan_kbd_debug_device_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_debug_device_init(FuElanKbdDebugDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdDebugDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_elan_kbd_debug_device_class_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_debug_device_class_init(FuElanKbdDebugDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_RUNTIME
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:23,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:28,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:28,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:35,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:36,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:37,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:39,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:39,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: fu_elan_kbd_runtime_detach
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - FU_HID_DEVICE
    - fu_device_add_flag
    - g_propagate_error
    - g_autoptr
    - FU_ELAN_KBD_RUNTIME
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_runtime_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:52,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:53,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:54,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:55,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:56,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: fu_elan_kbd_runtime_set_progress
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_runtime_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:63,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:64,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:65,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:66,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:67,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:68,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:69,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:70,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: fu_elan_kbd_runtime_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_runtime_init(FuElanKbdRuntime *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdRuntimeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: fu_elan_kbd_runtime_class_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_runtime_class_init(FuElanKbdRuntimeClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:29,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:30,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:31,1
    - Dst: fu_elan_kbd_dev_status_to_string
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:34,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:35,1
    - Dst: fu_elan_kbd_boot_cond1_to_string
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: fu_elan_kbd_device_to_string
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_boot_cond1_to_string
    - FU_ELAN_KBD_DEVICE
    - fu_elan_kbd_dev_status_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:45,1
    - Dst: fu_struct_elan_kbd_cmd_status_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:47,1
    - Dst: fu_struct_elan_kbd_cmd_status_res_get_value
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:56,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:63,1
    - Dst: fu_elan_kbd_error_to_string
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:67,1
    - Dst: fu_struct_elan_kbd_cmd_status_res_get_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuElanKbdDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 72
    functionName: fu_elan_kbd_device_status_check
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_elan_kbd_cmd_status_res_get_error
    - fu_struct_elan_kbd_cmd_status_res_get_value
    - g_set_error_literal
    - g_autoptr
    - fu_struct_elan_kbd_cmd_status_res_parse
    - fu_elan_kbd_error_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_status_check(FuElanKbdDevice *self, GByteArray
      *buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:77,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:77,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:79,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:80,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:90,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:91,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:91,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:101,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuElanKbdDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: fu_elan_kbd_device_cmd
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_steal_pointer
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elan_kbd_device_cmd(FuElanKbdDevice *self, GByteArray *buf, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:112,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:112,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:114,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:115,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:115,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:125,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: fu_elan_kbd_device_read_data
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_device_read_data(FuElanKbdDevice *self,\n\t\t\t
      \    guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     gsize offset,\n\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:147,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:147,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:149,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:150,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:159,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:160,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 173
    functionName: fu_elan_kbd_device_write_data
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - fu_memcpy_safe
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_device_write_data(FuElanKbdDevice *self,\n\t\t\t
      \     const guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t      gsize offset,\n\t\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:179,1
    - Dst: fu_struct_elan_kbd_software_reset_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:181,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:183,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:186,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: fu_elan_kbd_device_attach
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_ELAN_KBD_DEVICE
    - g_autoptr
    - fu_struct_elan_kbd_software_reset_req_new
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:196,1
    - Dst: fu_struct_elan_kbd_get_ver_spec_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:198,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:200,1
    - Dst: fu_struct_elan_kbd_get_ver_spec_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:203,1
    - Dst: fu_struct_elan_kbd_get_ver_spec_res_get_value
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: fu_elan_kbd_device_ensure_ver_spec
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_get_ver_spec_res_get_value
    - fu_struct_elan_kbd_get_ver_spec_res_parse
    - g_autoptr
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_get_ver_spec_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_ensure_ver_spec(FuElanKbdDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:213,1
    - Dst: fu_struct_elan_kbd_get_ver_fw_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:216,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:218,1
    - Dst: fu_struct_elan_kbd_get_ver_fw_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:221,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:224,1
    - Dst: fu_struct_elan_kbd_get_ver_fw_res_get_value
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:224,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 227
    functionName: fu_elan_kbd_device_ensure_ver_fw
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_struct_elan_kbd_get_ver_fw_res_get_value
    - fu_elan_kbd_device_cmd
    - fu_device_set_version_bootloader
    - FU_DEVICE
    - g_autoptr
    - fu_struct_elan_kbd_get_ver_fw_req_new
    - fu_struct_elan_kbd_get_ver_fw_res_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_ensure_ver_fw(FuElanKbdDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:232,1
    - Dst: fu_struct_elan_kbd_get_status_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:234,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:236,1
    - Dst: fu_struct_elan_kbd_get_status_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:239,1
    - Dst: fu_struct_elan_kbd_get_status_res_get_value
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: fu_elan_kbd_device_ensure_dev_status
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_get_status_req_new
    - fu_struct_elan_kbd_get_status_res_parse
    - g_autoptr
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_get_status_res_get_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_ensure_dev_status(FuElanKbdDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:249,1
    - Dst: fu_struct_elan_kbd_boot_condition_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:252,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:254,1
    - Dst: fu_struct_elan_kbd_boot_condition_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:257,1
    - Dst: fu_struct_elan_kbd_boot_condition_res_get_value
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: fu_elan_kbd_device_ensure_boot_cond1
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_boot_condition_res_parse
    - fu_struct_elan_kbd_boot_condition_req_new
    - fu_struct_elan_kbd_boot_condition_res_get_value
    - g_autoptr
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_ensure_boot_cond1(FuElanKbdDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:267,1
    - Dst: fu_struct_elan_kbd_abort_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:268,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:270,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: fu_elan_kbd_device_abort
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_abort_req_new
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_abort(FuElanKbdDevice *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:279,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:282,1
    - Dst: fu_elan_kbd_device_abort
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:286,1
    - Dst: fu_elan_kbd_device_ensure_ver_spec
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:290,1
    - Dst: fu_elan_kbd_device_ensure_ver_fw
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:292,1
    - Dst: fu_elan_kbd_device_ensure_dev_status
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:294,1
    - Dst: fu_elan_kbd_device_ensure_boot_cond1
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 301
    functionName: fu_elan_kbd_device_setup
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_elan_kbd_device_abort
    - fu_elan_kbd_device_ensure_ver_spec
    - FU_ELAN_KBD_DEVICE
    - fu_elan_kbd_device_ensure_boot_cond1
    - fu_elan_kbd_device_ensure_ver_fw
    - fu_elan_kbd_device_ensure_dev_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:306,1
    - Dst: fu_struct_elan_kbd_read_rom_finished_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:308,1
    - Dst: fu_struct_elan_kbd_read_rom_finished_req_set_csum
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:310,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:311,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: fu_elan_kbd_device_cmd_read_rom_finished
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_read_rom_finished_req_new
    - g_autoptr
    - fu_struct_elan_kbd_read_rom_finished_req_set_csum
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_read_rom_finished(FuElanKbdDevice *self,
      guint8 csum, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:324,1
    - Dst: fu_struct_elan_kbd_read_rom_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:324,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:325,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:326,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:329,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:330,1
    - Dst: fu_struct_elan_kbd_read_rom_req_set_addr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:333,1
    - Dst: fu_struct_elan_kbd_read_rom_req_set_len
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:334,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:335,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:338,1
    - Dst: fu_elan_kbd_device_read_data
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:341,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:342,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:345,1
    - Dst: fu_elan_kbd_device_cmd_read_rom_finished
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:347,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:347,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - self
    - addr
    - len
    - progress
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint16
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 350
    functionName: fu_elan_kbd_device_cmd_read_rom
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_read_rom_req_new
    - fu_progress_step_done
    - fu_struct_elan_kbd_read_rom_req_set_addr
    - g_steal_pointer
    - fu_elan_kbd_device_read_data
    - fu_sum16
    - g_prefix_error
    - g_bytes_new_take
    - g_malloc0
    - fu_struct_elan_kbd_read_rom_req_set_len
    - fu_elan_kbd_device_cmd
    - fu_progress_set_id
    - g_autoptr
    - fu_elan_kbd_device_cmd_read_rom_finished
    - fu_elan_kbd_device_status_check
    - fu_progress_set_steps
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_elan_kbd_device_cmd_read_rom(FuElanKbdDevice *self,\n\t\t\t\tguint16
      addr,\n\t\t\t\tguint16 len,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:355,1
    - Dst: fu_struct_elan_kbd_read_option_finished_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:357,1
    - Dst: fu_struct_elan_kbd_read_option_finished_req_set_csum
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:359,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:360,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: fu_elan_kbd_device_cmd_read_option_finished
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_read_option_finished_req_new
    - fu_struct_elan_kbd_read_option_finished_req_set_csum
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_read_option_finished(FuElanKbdDevice
      *self, guint8 csum, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:370,1
    - Dst: fu_struct_elan_kbd_read_option_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:371,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:372,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:375,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:376,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:379,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:382,1
    - Dst: fu_elan_kbd_device_read_data
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:386,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:389,1
    - Dst: fu_elan_kbd_device_cmd_read_option_finished
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:391,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:391,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:393,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuElanKbdDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 394
    functionName: fu_elan_kbd_device_cmd_read_option
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_steal_pointer
    - fu_elan_kbd_device_read_data
    - fu_elan_kbd_device_cmd_read_option_finished
    - g_prefix_error
    - fu_sum16
    - g_bytes_new_take
    - g_malloc0
    - fu_struct_elan_kbd_read_option_req_new
    - fu_elan_kbd_device_cmd
    - fu_progress_set_id
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_progress_set_steps
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_elan_kbd_device_cmd_read_option(FuElanKbdDevice *self, FuProgress *progress,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:399,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: fu_elan_kbd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - FU_ELAN_KBD_DEVICE
    - fu_elan_kbd_device_cmd_read_rom
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_elan_kbd_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:411,1
    - Dst: fu_elan_kbd_firmware_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:412,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:417,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:420,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:421,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:422,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:423,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:426,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:429,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:432,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:435,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:436,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:437,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:438,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:441,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:444,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:447,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:450,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:451,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:452,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:453,1
    - Dst: fu_elan_kbd_device_cmd_read_option
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:457,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:457,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:459,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:462,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:463,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:464,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:465,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 469
    functionName: fu_elan_kbd_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_firmware_new
    - fu_progress_get_child
    - fu_firmware_set_id
    - fu_progress_step_done
    - fu_firmware_add_image
    - g_steal_pointer
    - g_prefix_error
    - fu_progress_add_step
    - fu_elan_kbd_device_cmd_read_rom
    - fu_elan_kbd_device_cmd_read_option
    - fu_firmware_new_from_bytes
    - FU_ELAN_KBD_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_firmware_set_idx
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elan_kbd_device_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:474,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:477,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:479,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:482,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_res_get_key
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 487
    functionName: fu_elan_kbd_device_cmd_get_auth_lock
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_get_auth_lock_res_parse
    - g_autoptr
    - fu_struct_elan_kbd_get_auth_lock_req_new
    - fu_struct_elan_kbd_get_auth_lock_res_get_key
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_get_auth_lock(FuElanKbdDevice *self,
      guint8 *key, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:492,1
    - Dst: fu_struct_elan_kbd_set_auth_lock_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:494,1
    - Dst: fu_struct_elan_kbd_set_auth_lock_req_set_key
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:496,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:497,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: fu_elan_kbd_device_cmd_set_auth_lock
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_set_auth_lock_req_set_key
    - fu_struct_elan_kbd_set_auth_lock_req_new
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_set_auth_lock(FuElanKbdDevice *self,
      guint8 key, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_elan_kbd_device_cmd_get_auth_lock
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:507,1
    - Dst: fu_elan_kbd_device_cmd_set_auth_lock
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 5
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: fu_elan_kbd_device_cmd_unlock
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_device_cmd_get_auth_lock
    - fu_elan_kbd_device_cmd_set_auth_lock
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_unlock(FuElanKbdDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:515,1
    - Dst: fu_struct_elan_kbd_entry_iap_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:516,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:518,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: fu_elan_kbd_device_cmd_entry_iap
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_entry_iap_req_new
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_entry_iap(FuElanKbdDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:527,1
    - Dst: fu_struct_elan_kbd_finished_iap_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:528,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:530,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: fu_elan_kbd_device_cmd_finished_iap
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_device_status_check
    - fu_struct_elan_kbd_finished_iap_req_new
    - fu_elan_kbd_device_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_finished_iap(FuElanKbdDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:539,1
    - Dst: fu_struct_elan_kbd_write_rom_finished_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:541,1
    - Dst: fu_struct_elan_kbd_write_rom_finished_req_set_csum
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:543,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:544,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 548
    functionName: fu_elan_kbd_device_cmd_write_rom_finished
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_write_rom_finished_req_new
    - fu_struct_elan_kbd_write_rom_finished_req_set_csum
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elan_kbd_device_cmd_write_rom_finished(FuElanKbdDevice
      *self, guint8 csum, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:559,1
    - Dst: fu_struct_elan_kbd_write_rom_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:560,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:563,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:564,1
    - Dst: fu_struct_elan_kbd_write_rom_req_set_addr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:567,1
    - Dst: fu_struct_elan_kbd_write_rom_req_set_len
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:568,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:569,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:572,1
    - Dst: fu_elan_kbd_device_write_data
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:579,1
    - Dst: fu_elan_kbd_device_cmd_write_rom_finished
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:581,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - self
    - addr
    - blob
    - progress
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint16
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 550
    functionDepth: 5
    functionLinenumber: 550
    functionLinenumberEnd: 582
    functionName: fu_elan_kbd_device_cmd_write_rom
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_struct_elan_kbd_write_rom_req_set_len
    - fu_progress_step_done
    - fu_struct_elan_kbd_write_rom_req_set_addr
    - fu_elan_kbd_device_cmd_write_rom_finished
    - g_prefix_error
    - fu_sum16_bytes
    - fu_elan_kbd_device_cmd
    - fu_progress_set_id
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_struct_elan_kbd_write_rom_req_new
    - fu_elan_kbd_device_write_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_device_cmd_write_rom(FuElanKbdDevice *self,\n\t\t\t\t
      guint16 addr,\n\t\t\t\t GBytes *blob,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t
      GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELAN_KBD_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:592,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:593,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:596,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:597,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:598,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:601,1
    - Dst: fu_elan_kbd_device_cmd_unlock
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:604,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:605,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:608,1
    - Dst: fu_elan_kbd_device_cmd_entry_iap
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:611,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:612,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:615,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:618,1
    - Dst: fu_elan_kbd_device_cmd_write_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:621,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:624,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:626,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:629,1
    - Dst: fu_elan_kbd_device_cmd_finished_iap
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:632,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:633,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:636,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:639,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:642,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:645,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:648,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 584
    functionDepth: 6
    functionLinenumber: 584
    functionLinenumberEnd: 654
    functionName: fu_elan_kbd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_elan_kbd_device_cmd_entry_iap
    - g_prefix_error
    - fu_progress_add_step
    - fu_firmware_get_image_by_idx_bytes
    - fu_elan_kbd_device_cmd_read_rom
    - fu_bytes_compare
    - fu_elan_kbd_device_cmd_unlock
    - FU_ELAN_KBD_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_elan_kbd_device_cmd_write_rom
    - fu_elan_kbd_device_cmd_finished_iap
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:659,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:660,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:661,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 666
    functionName: fu_elan_kbd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:671,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:672,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:673,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:674,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:675,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:676,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:679,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:680,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:681,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:682,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:683,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:683,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:684,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:685,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:685,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:686,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:686,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:687,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 688
    functionName: fu_elan_kbd_device_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_firmware_size_max
    - FU_USB_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_device_init(FuElanKbdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: fu_elan_kbd_device_class_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_device_class_init(FuElanKbdDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_elan_kbd_firmware_validate_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: fu_elan_kbd_firmware_validate
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_firmware_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      gsize offset,\n\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:34,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:35,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:36,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:39,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:42,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:48,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:50,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:51,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:54,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:60,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:62,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:63,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:66,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:72,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:74,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 79
    functionName: fu_elan_kbd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_image
    - fu_firmware_set_stream
    - fu_firmware_set_idx
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elan_kbd_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:84,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:87,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:90,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:95,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:99,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:102,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:106,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:109,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 113
    functionName: fu_elan_kbd_firmware_write
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_image_by_idx_bytes
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elan_kbd_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: fu_elan_kbd_firmware_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_firmware_init(FuElanKbdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: fu_elan_kbd_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_firmware_class_init(FuElanKbdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:132,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: fu_elan_kbd_firmware_new
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elan_kbd_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:24,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: fu_elan_kbd_plugin_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_plugin_init(FuElanKbdPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:32,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:33,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: fu_elan_kbd_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_elan_kbd_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_plugin_class_init(FuElanKbdPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: fu_synaptics_rmi_generate_checksum
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaptics_rmi_generate_checksum(const guint8 *data, gsize
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:69,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:78,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - buf
    - page_base
    - interrupt_count
    - error
    argTypes:
    - GByteArray*
    - guint16
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 99
    functionName: fu_synaptics_rmi_function_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error
    - FU_BIT_SET
    linkageType: ''
    returnType: FuSynapticsRmiFunction
    signature: "FuSynapticsRmiFunction *\nfu_synaptics_rmi_function_parse(GByteArray
      *buf,\n\t\t\t\tguint16 page_base,\n\t\t\t\tguint interrupt_count,\n\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:104,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:105,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:108,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fn
    - buf
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: fu_synaptics_rmi_device_writeln
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_write_raw
    - strlen
    - g_autoptr
    - fu_io_channel_new_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_writeln(const gchar *fn, const gchar
      *buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:128,1
    - Dst: gnutls_hash_get_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:132,1
    - Dst: gnutls_malloc
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:135,1
    - Dst: gnutls_hash_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:136,1
    - Dst: gnutls_hash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:137,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:137,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:137,1
    - Dst: gnutls_hash_deinit
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:138,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:145,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:146,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:153,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:154,1
    - Dst: gnutls_pubkey_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:156,1
    - Dst: gnutls_pubkey_import_rsa_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:157,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:159,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:163,1
    - Dst: gnutls_pubkey_verify_hash2
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:168,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - payload
    - pubkey
    - signature
    - error
    argTypes:
    - GBytes*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 178
    functionName: fu_synaptics_rmi_verify_sha256_signature
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - gnutls_hash_get_len
    - g_bytes_get_size
    - gnutls_pubkey_import_rsa_raw
    - gnutls_strerror
    - gnutls_pubkey_verify_hash2
    - gnutls_pubkey_init
    - gnutls_malloc
    - gnutls_hash
    - g_autoptr
    - gnutls_hash_deinit
    - gnutls_hash_init
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_verify_sha256_signature(GBytes *payload,\n\t\t\t\t\t
      GBytes *pubkey,\n\t\t\t\t\t GBytes *signature,\n\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:30,1
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:32,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:32,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:35,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:36,1
    - Dst: fu_synaptics_rmi_device_disable_irqs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:41,1
    - Dst: fu_synaptics_rmi_device_write_bus_select
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:43,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:44,1
    - Dst: fu_synaptics_rmi_device_write_bootloader_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:49,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:51,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:52,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:57,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 63
    functionName: fu_synaptics_rmi_v5_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - g_debug
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_device_write_bus_select
    - fu_device_has_flag
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_disable_irqs
    - fu_synaptics_rmi_device_write_bootloader_id
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:70,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:70,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:73,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:78,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:79,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:84,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:87,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:88,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:89,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:93,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 101
    functionName: fu_synaptics_rmi_v5_device_erase_all
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_device_set_iepmode
    - fu_synaptics_rmi_device_get_function
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_enter_iep_mode
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_erase_all(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:111,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:111,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:113,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:114,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:120,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:123,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - self
    - cmd
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: fu_synaptics_rmi_v5_device_write_block
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v5_device_write_block(FuSynapticsRmiDevice
      *self,\n\t\t\t\t       guint8 cmd,\n\t\t\t\t       guint32 address,\n\t\t\t\t
      \      const guint8 *data,\n\t\t\t\t       gsize datasz,\n\t\t\t\t       GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:139,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:144,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:145,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:147,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:149,1
    - Dst: fu_synaptics_rmi_v5_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:158,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:159,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:167,1
    - Dst: fu_synaptics_rmi_device_read_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:168,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:176,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:178,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:188,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:195,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:204,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:211,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:220,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:228,1
    - Dst: fu_synaptics_rmi_verify_sha256_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:229,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 4
    argNames:
    - device
    - payload
    - signature
    - error
    argTypes:
    - FuDevice*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 230
    functionName: fu_synaptics_rmi_v5_device_secure_check
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_synaptics_rmi_verify_sha256_signature
    - fu_synaptics_rmi_device_get_sig_size
    - fu_synaptics_rmi_device_read_packet_register
    - g_prefix_error
    - fu_synaptics_rmi_v5_device_query_status
    - g_byte_array_remove_range
    - g_byte_array_prepend
    - fu_dump_full
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - g_autoptr
    - g_bytes_new
    - g_byte_array_set_size
    - fu_dump_bytes
    - g_byte_array_new
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v5_device_secure_check(FuDevice *device,\n\t\t\t\t\tGBytes
      *payload,\n\t\t\t\t\tGBytes *signature,\n\t\t\t\t\tGError **error)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:239,1
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:240,1
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:242,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:245,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:252,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:252,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:255,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:256,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:257,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:258,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:259,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:260,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:261,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:265,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:271,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:281,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:284,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:285,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:286,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:292,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:293,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:294,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:302,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:307,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:310,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:315,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:318,1
    - Dst: fu_synaptics_rmi_v5_device_secure_check
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:320,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:324,1
    - Dst: fu_synaptics_rmi_device_disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:331,1
    - Dst: fu_synaptics_rmi_device_write_bootloader_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:336,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:337,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:340,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:343,1
    - Dst: fu_synaptics_rmi_v5_device_erase_all
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:344,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:345,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:348,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:351,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:352,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:353,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:358,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:367,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:371,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:376,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:376,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:379,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:382,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:383,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:385,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:387,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:390,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:390,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:392,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:394,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:397,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:399,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:400,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:404,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:409,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:412,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:413,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:413,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:415,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:415,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:418,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:421,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:422,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:424,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:426,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:429,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:431,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:433,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:435,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:441,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:446,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:450,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:450,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:453,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:456,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:457,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:459,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:461,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:464,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:464,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:466,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:468,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 133
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 472
    functionName: fu_synaptics_rmi_v5_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_chunk_array_length
    - g_prefix_error
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_device_has_flag
    - fu_chunk_get_idx
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - fu_progress_set_steps
    - fu_progress_set_percentage_full
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_progress_get_child
    - fu_synaptics_rmi_device_get_sig_size
    - fu_byte_array_append_uint16
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_synaptics_rmi_device_disable_sleep
    - fu_progress_set_id
    - fu_synaptics_rmi_device_get_flash
    - fu_chunk_get_data
    - fu_synaptics_rmi_firmware_get_sig_size
    - fu_synaptics_rmi_v5_device_write_block
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_chunk_array_index
    - fu_bytes_new_offset
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_firmware_get_size
    - fu_synaptics_rmi_v5_device_secure_check
    - g_set_error_literal
    - fu_synaptics_rmi_device_get_function
    - fu_firmware_get_image_by_id_bytes
    - fu_synaptics_rmi_v5_device_erase_all
    - fu_synaptics_rmi_device_write_bootloader_id
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v5_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:482,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:485,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:490,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:492,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:499,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:508,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:511,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:516,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:521,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:527,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:530,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:536,1
    - Dst: fu_synaptics_rmi_device_set_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:539,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:540,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:540,1
    - Dst: fu_synaptics_rmi_device_set_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:542,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:546,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:553,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:560,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 474
    functionDepth: 6
    functionLinenumber: 474
    functionLinenumberEnd: 569
    functionName: fu_synaptics_rmi_v5_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memread_uint8_safe
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_device_set_sig_size
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_read
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_setup(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:575,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:578,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:581,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:583,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:587,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 571
    functionDepth: 6
    functionLinenumber: 571
    functionLinenumberEnd: 592
    functionName: fu_synaptics_rmi_v5_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 1
    functionsReached:
    - g_prefix_error
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_function
    - FU_DEVICE
    - fu_device_remove_flag
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_query_status(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:67,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:68,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:69,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:70,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:74,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:82,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:83,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:86,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:89,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:93,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:94,1
    - Dst: fu_io_channel_write_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:106,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:107,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:115,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:121,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:134,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:150,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:158,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:160,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - rmi_device
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 163
    functionName: fu_synaptics_rmi_hid_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_debug
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - fu_io_channel_read_byte_array
    - fu_dump_full
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_io_channel_write_byte_array
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_hid_device_read(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t guint16 addr,\n\t\t\t\t gsize req_sz,\n\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_hid_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rmi_device
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: fu_synaptics_rmi_hid_device_read_packet_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_hid_device_read
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_hid_device_read_packet_register(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t\t guint16 addr,\n\t\t\t\t\t\t gsize req_sz,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:181,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:182,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:184,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:189,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:199,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:202,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:205,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:209,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:213,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:214,1
    - Dst: fu_io_channel_write_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - rmi_device
    - addr
    - req
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - GByteArray*
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 222
    functionName: fu_synaptics_rmi_hid_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - fu_dump_full
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_io_channel_write_byte_array
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_hid_device_write(FuSynapticsRmiDevice *rmi_device,\n\t\t\t\t
      \ guint16 addr,\n\t\t\t\t  GByteArray *req,\n\t\t\t\t  FuSynapticsRmiDeviceFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:230,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:231,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:232,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:232,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:237,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:240,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:246,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:248,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:248,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:258,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:262,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:272,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - rmi_device
    - source_mask
    - timeout_ms
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 282
    functionName: fu_synaptics_rmi_hid_device_wait_for_attr
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_debug
    - g_timer_new
    - g_steal_pointer
    - g_error_matches
    - g_timer_elapsed
    - fu_io_channel_read_byte_array
    - fu_dump_full
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_hid_device_wait_for_attr(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t  guint8 source_mask,\n\t\t\t\t\t  guint timeout_ms,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:296,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:296,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:296,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:298,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:299,1
    - Dst: HIDIOCSFEATURE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuSynapticsRmiHidDevice*
    - FuSynapticsRmiHidMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: fu_synaptics_rmi_hid_device_set_mode
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_dump_raw
    - HIDIOCSFEATURE
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_hid_device_set_mode(FuSynapticsRmiHidDevice
      *self,\n\t\t\t\t     FuSynapticsRmiHidMode mode,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:312,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:315,1
    - Dst: fu_synaptics_rmi_hid_device_set_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: fu_synaptics_rmi_hid_device_open
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_hid_device_set_mode
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_open(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:330,1
    - Dst: fu_synaptics_rmi_hid_device_set_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:333,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:335,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:336,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:336,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:339,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: fu_synaptics_rmi_hid_device_close
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - FU_DEVICE_CLASS
    - g_propagate_error
    - fu_synaptics_rmi_hid_device_set_mode
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_close(FuDevice *device, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:355,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:356,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:359,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:364,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:365,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:367,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:368,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:371,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:375,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:375,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:380,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:380,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:381,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:383,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:387,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:391,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:393,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:394,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:395,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:396,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:399,1
    - Dst: fu_synaptics_rmi_device_writeln
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:400,1
    - Dst: fu_synaptics_rmi_device_writeln
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 346
    functionDepth: 6
    functionLinenumber: 346
    functionLinenumberEnd: 407
    functionName: fu_synaptics_rmi_hid_device_rebind_driver
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - fu_device_get_backend_parent_with_subsystem
    - g_debug
    - fu_udev_device_get_subsystem
    - g_build_filename
    - g_strsplit
    - fu_udev_device_get_driver
    - fu_synaptics_rmi_device_writeln
    - FU_DEVICE
    - g_strv_length
    - FU_UDEV_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_rebind_driver(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:412,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:415,1
    - Dst: fu_synaptics_rmi_v5_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:419,1
    - Dst: fu_synaptics_rmi_v7_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:422,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:425,1
    - Dst: fu_synaptics_rmi_hid_device_rebind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 409
    functionDepth: 7
    functionLinenumber: 409
    functionLinenumberEnd: 433
    functionName: fu_synaptics_rmi_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_rmi_v7_device_detach
    - fu_synaptics_rmi_v5_device_detach
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_hid_device_rebind_driver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:438,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:441,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:442,1
    - Dst: fu_synaptics_rmi_device_reset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:447,1
    - Dst: fu_synaptics_rmi_hid_device_rebind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: fu_synaptics_rmi_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_synaptics_rmi_device_reset
    - fu_device_has_flag
    - fu_synaptics_rmi_hid_device_rebind_driver
    - FU_SYNAPTICS_RMI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:457,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:457,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:458,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:459,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: fu_synaptics_rmi_hid_device_set_page
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_set_page(FuSynapticsRmiDevice
      *self, guint8 page, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:474,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:476,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:479,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:481,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:487,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 498
    functionName: fu_synaptics_rmi_hid_device_disable_sleep
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - g_prefix_error
    - fu_synaptics_rmi_device_get_function
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_disable_sleep(FuSynapticsRmiDevice
      *rmi_device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:504,1
    - Dst: fu_synaptics_rmi_v5_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:508,1
    - Dst: fu_synaptics_rmi_v7_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 500
    functionDepth: 7
    functionLinenumber: 500
    functionLinenumberEnd: 519
    functionName: fu_synaptics_rmi_hid_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_v7_device_query_status
    - fu_synaptics_rmi_v5_device_query_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_query_status(FuSynapticsRmiDevice
      *rmi_device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:524,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:525,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:526,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:527,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:528,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: fu_synaptics_rmi_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_hid_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:535,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:536,1
    - Dst: fu_synaptics_rmi_device_set_max_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:537,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: fu_synaptics_rmi_hid_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_name
    - fu_synaptics_rmi_device_set_max_page
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_hid_device_init(FuSynapticsRmiHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:543,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 557
    functionName: fu_synaptics_rmi_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_hid_device_class_init(FuSynapticsRmiHidDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:53,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:54,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:55,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:58,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:60,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - firmware
    - id
    - stream
    - offset
    - bufsz
    - flags
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GInputStream*
    - gsize
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: fu_synaptics_rmi_firmware_add_image
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image_full
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_add_image(FuFirmware *firmware,\n\t\t\t\t
      \   const gchar *id,\n\t\t\t\t    GInputStream *stream,\n\t\t\t\t    gsize offset,\n\t\t\t\t
      \   gsize bufsz,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t    GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:78,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:78,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:81,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:84,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:86,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:87,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - firmware
    - id
    - stream
    - offset
    - bufsz
    - sig_sz
    - flags
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GInputStream*
    - gsize
    - gsize
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 91
    functionName: fu_synaptics_rmi_firmware_add_image_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_strdup_printf
    - fu_firmware_parse_stream
    - fu_synaptics_rmi_firmware_add_image
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_add_image_v10(FuFirmware *firmware,\n\t\t\t\t\tconst
      gchar *id,\n\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\tgsize offset,\n\t\t\t\t\tgsize
      bufsz,\n\t\t\t\t\tgsize sig_sz,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:98,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:99,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:100,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:102,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:103,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:104,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:105,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:106,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:107,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: fu_synaptics_rmi_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_rmi_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      FuFirmwareExportFlags flags,\n\t\t\t\t XbBuilderNode *bn)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:128,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:131,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:134,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:136,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:143,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:144,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:150,1
    - Dst: fu_struct_rmi_container_descriptor_get_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:156,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:158,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:168,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:178,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:192,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:194,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:196,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:198,1
    - Dst: fu_struct_rmi_container_descriptor_get_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:201,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:202,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:203,1
    - Dst: fu_struct_rmi_container_descriptor_get_signature_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:204,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:211,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:220,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:231,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:240,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:251,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:263,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:274,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:285,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:308,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:316,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:318,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:325,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:332,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:343,1
    - Dst: fu_rmi_container_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:344,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:351,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:352,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 112
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 355
    functionName: fu_synaptics_rmi_firmware_parse_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_struct_rmi_container_descriptor_get_container_id
    - g_clear_pointer
    - fu_synaptics_rmi_firmware_add_image_v10
    - g_set_error
    - g_debug
    - g_strndup
    - fu_struct_rmi_container_descriptor_get_content_length
    - g_free
    - fu_memread_uint8_safe
    - fu_struct_rmi_container_descriptor_get_signature_size
    - fu_struct_rmi_container_descriptor_parse_stream
    - g_autoptr
    - g_bytes_get_data
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - fu_rmi_container_id_to_string
    - fu_struct_rmi_container_descriptor_get_content_address
    - g_set_error_literal
    - fu_input_stream_read_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse_v10(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:366,1
    - Dst: fu_struct_rmi_img_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:369,1
    - Dst: fu_struct_rmi_img_get_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:372,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:377,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:386,1
    - Dst: fu_struct_rmi_img_get_config_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:397,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 409
    functionName: fu_synaptics_rmi_firmware_parse_v0x
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_rmi_img_parse_stream
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_struct_rmi_img_get_config_size
    - fu_synaptics_rmi_firmware_add_image
    - g_autoptr
    - fu_struct_rmi_img_get_image_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse_v0x(FuFirmware *firmware,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:421,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:424,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:427,1
    - Dst: fu_struct_rmi_img_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:430,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:434,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:441,1
    - Dst: fu_struct_rmi_img_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:449,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:452,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:454,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:465,1
    - Dst: fu_struct_rmi_img_get_io_offset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:466,1
    - Dst: fu_struct_rmi_img_get_bootloader_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:467,1
    - Dst: fu_struct_rmi_img_get_fw_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:469,1
    - Dst: fu_struct_rmi_img_get_package_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:470,1
    - Dst: fu_struct_rmi_img_get_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:472,1
    - Dst: fu_struct_rmi_img_get_product_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:473,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:474,1
    - Dst: fu_struct_rmi_img_get_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:474,1
    - Dst: fu_struct_rmi_img_get_signature_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:484,1
    - Dst: fu_synaptics_rmi_firmware_parse_v0x
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:485,1
    - Dst: fu_synaptics_rmi_firmware_parse_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:491,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:496,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 411
    functionDepth: 6
    functionLinenumber: 411
    functionLinenumberEnd: 506
    functionName: fu_synaptics_rmi_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_generate_checksum
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_clear_pointer
    - fu_synaptics_rmi_firmware_parse_v0x
    - g_set_error
    - fu_struct_rmi_img_get_package_id
    - fu_struct_rmi_img_get_product_info
    - fu_synaptics_rmi_firmware_parse_v10
    - fu_struct_rmi_img_get_bootloader_version
    - fu_struct_rmi_img_get_io_offset
    - fu_struct_rmi_img_parse_stream
    - fu_firmware_set_size
    - g_autoptr
    - fu_struct_rmi_img_get_image_size
    - g_bytes_get_data
    - fu_struct_rmi_img_get_fw_build_id
    - fu_struct_rmi_img_get_signature_size
    - fu_struct_rmi_img_get_product_id
    - g_set_error_literal
    - fu_input_stream_read_bytes
    - fu_struct_rmi_img_get_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: fu_synaptics_rmi_firmware_get_sig_size
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaptics_rmi_firmware_get_sig_size(FuSynapticsRmiFirmware
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:521,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:522,1
    - Dst: fu_struct_rmi_img_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:523,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:526,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:529,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:532,1
    - Dst: fu_struct_rmi_img_set_bootloader_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:535,1
    - Dst: fu_struct_rmi_img_set_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:537,1
    - Dst: fu_struct_rmi_img_set_product_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:540,1
    - Dst: fu_struct_rmi_img_set_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:541,1
    - Dst: fu_struct_rmi_img_set_config_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:542,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:543,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:544,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:545,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:546,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:551,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:552,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 556
    functionName: fu_synaptics_rmi_firmware_write_v0x
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_synaptics_rmi_generate_checksum
    - fu_struct_rmi_img_set_product_info
    - fu_firmware_get_image_by_id
    - fu_struct_rmi_img_set_product_id
    - fu_struct_rmi_img_set_image_size
    - g_steal_pointer
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_bytes_get_size
    - fu_struct_rmi_img_set_bootloader_version
    - fu_struct_rmi_img_new
    - fu_struct_rmi_img_set_config_size
    - fu_memwrite_uint32
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_firmware_write_v0x(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:565,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:566,1
    - Dst: fu_struct_rmi_container_descriptor_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:567,1
    - Dst: fu_struct_rmi_container_descriptor_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:568,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:573,1
    - Dst: fu_struct_rmi_container_descriptor_set_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:574,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:575,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:578,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:581,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:584,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:585,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:588,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:592,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:593,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:603,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:606,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:609,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:612,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:613,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:616,1
    - Dst: fu_struct_rmi_container_descriptor_set_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:621,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:623,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:624,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:627,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:630,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:633,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:636,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:641,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:642,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 558
    functionDepth: 4
    functionLinenumber: 558
    functionLinenumberEnd: 646
    functionName: fu_synaptics_rmi_firmware_write_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_generate_checksum
    - strlen
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_memwrite_uint16
    - fu_struct_rmi_container_descriptor_new
    - fu_struct_rmi_container_descriptor_set_content_length
    - GUINT32_TO_LE
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_struct_rmi_container_descriptor_set_container_id
    - fu_memwrite_uint32
    - g_autoptr
    - g_byte_array_new
    - fu_firmware_write
    - memcpy
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_struct_rmi_container_descriptor_set_content_address
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_firmware_write_v10(FuFirmware *firmware, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:651,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:656,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:661,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:663,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:665,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:673,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 679
    functionName: fu_synaptics_rmi_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - xb_node_query_text_as_uint
    - strlen
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_strdup
    - xb_node_query_text
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:684,1
    - Dst: fu_synaptics_rmi_firmware_write_v0x
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:688,1
    - Dst: fu_synaptics_rmi_firmware_write_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:690,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 695
    functionName: fu_synaptics_rmi_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_firmware_write_v10
    - g_set_error_literal
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_synaptics_rmi_firmware_write_v0x
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:700,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:700,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:701,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: fu_synaptics_rmi_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_firmware_init(FuSynapticsRmiFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:707,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:708,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: fu_synaptics_rmi_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_firmware_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:715,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 722
    functionName: fu_synaptics_rmi_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_firmware_class_init(FuSynapticsRmiFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:727,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: fu_synaptics_rmi_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_rmi_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:26,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:28,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:29,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:36,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:37,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:38,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:38,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:41,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:41,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - pbuf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: fu_synaptics_rmi_ps2_device_read_ack
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_set_error
    - fu_io_channel_read_raw
    - g_steal_pointer
    - g_error_matches
    - fu_udev_device_get_io_channel
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_read_ack(FuSynapticsRmiPs2Device
      *self, guint8 *pbuf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:57,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:58,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - pbuf
    - timeout
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: fu_synaptics_rmi_ps2_device_read_byte
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_io_channel
    - g_return_val_if_fail
    - FU_UDEV_DEVICE
    - fu_io_channel_read_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_read_byte(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t      guint8 *pbuf,\n\t\t\t\t      guint timeout,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:76,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:76,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:81,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:83,1
    - Dst: fu_synaptics_rmi_ps2_device_read_ack
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:96,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:99,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:103,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:110,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:111,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:116,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:117,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:120,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 5
    argNames:
    - self
    - buf
    - timeout
    - flags
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - guint
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 139
    functionName: fu_synaptics_rmi_ps2_device_write_byte
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - fu_udev_device_get_io_channel
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_set_error_literal
    - g_autoptr
    - g_return_val_if_fail
    - fu_synaptics_rmi_ps2_device_read_ack
    - fu_io_channel_write_raw
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_write_byte(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t       guint8 buf,\n\t\t\t\t       guint timeout,\n\t\t\t\t
      \      FuSynapticsRmiDeviceFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:149,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:158,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - arg
    - send_e6s
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 175
    functionName: fu_synaptics_rmi_ps2_device_set_resolution_sequence
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_set_resolution_sequence(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t\t    guint8 arg,\n\t\t\t\t\t\t    gboolean send_e6s,\n\t\t\t\t\t\t
      \   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:187,1
    - Dst: fu_synaptics_rmi_ps2_device_set_resolution_sequence
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:188,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:192,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:195,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:207,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:214,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - ucArgument
    - buf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - FuRmiStatusRequest
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 222
    functionName: fu_synaptics_rmi_ps2_device_status_request
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_set_resolution_sequence
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_byte
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_status_request(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t   FuRmiStatusRequest ucArgument,\n\t\t\t\t\t   guint32 *buf,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:233,1
    - Dst: fu_synaptics_rmi_ps2_device_set_resolution_sequence
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:238,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:242,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:247,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:253,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:253,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - self
    - param
    - arg
    - send_e6s
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - FuRmiSetSampleRate
    - FuRmiEdpCommand
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 224
    functionDepth: 6
    functionLinenumber: 224
    functionLinenumberEnd: 263
    functionName: fu_synaptics_rmi_ps2_device_sample_rate
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_steal_pointer
    - fu_synaptics_rmi_ps2_device_set_resolution_sequence
    - g_propagate_error
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_sample_rate(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\tFuRmiSetSampleRate param,\n\t\t\t\t\tFuRmiEdpCommand arg,\n\t\t\t\t\tgboolean
      send_e6s,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:271,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:276,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:279,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - result
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 286
    functionName: fu_synaptics_rmi_ps2_device_detect_synaptics_styk
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_read_byte
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_detect_synaptics_styk(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t\t  gboolean *result,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:293,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:298,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:302,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:305,1
    - Dst: fu_synaptics_rmi_ps2_device_detect_synaptics_styk
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:308,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:309,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:312,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - rmi_device
    - build_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 326
    functionName: fu_synaptics_rmi_ps2_device_query_build_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - fu_synaptics_rmi_device_set_iepmode
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - fu_synaptics_rmi_ps2_device_detect_synaptics_styk
    - fu_synaptics_rmi_ps2_device_status_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_query_build_id(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t   guint32 *build_id,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:333,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:335,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - rmi_device
    - sub_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 345
    functionName: fu_synaptics_rmi_ps2_device_query_product_sub_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_status_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_query_product_sub_id(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t\t guint8 *sub_id,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:350,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:353,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:358,1
    - Dst: fu_synaptics_rmi_ps2_device_sample_rate
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:363,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 347
    functionDepth: 7
    functionLinenumber: 347
    functionLinenumberEnd: 374
    functionName: fu_synaptics_rmi_ps2_device_enter_iep_mode
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_sample_rate
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_enter_iep_mode(FuSynapticsRmiDevice
      *rmi_device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:385,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:387,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:387,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:396,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:399,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:404,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:407,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:408,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:412,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:417,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:421,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 7
    argNames:
    - self
    - addr
    - buf
    - buflen
    - timeout
    - flags
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - guint8*
    - guint8
    - guint
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 429
    functionName: fu_synaptics_rmi_ps2_device_write_rmi_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DEVICE
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_return_val_if_fail
    - fu_synaptics_rmi_ps2_device_write_byte
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_write_rmi_register(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t       guint8 addr,\n\t\t\t\t\t       const guint8 *buf,\n\t\t\t\t\t
      \      guint8 buflen,\n\t\t\t\t\t       guint timeout,\n\t\t\t\t\t       FuSynapticsRmiDeviceFlags
      flags,\n\t\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:437,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:439,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:444,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:445,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:450,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:455,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:460,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:465,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:468,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:470,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:472,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:478,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:487,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 489
    functionName: fu_synaptics_rmi_ps2_device_read_rmi_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_prefix_error
    - FU_DEVICE
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_byte
    - g_return_val_if_fail
    - fu_synaptics_rmi_ps2_device_write_byte
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_read_rmi_register(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t      guint8 addr,\n\t\t\t\t\t      guint8 *buf,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:497,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:497,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:499,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:499,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:503,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:508,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:513,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:518,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:523,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:528,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:529,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:532,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:535,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:536,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - self
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 537
    functionName: fu_synaptics_rmi_ps2_device_read_rmi_packet_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_prefix_error
    - FU_DEVICE
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_byte
    - g_byte_array_new
    - fu_synaptics_rmi_ps2_device_write_byte
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_ps2_device_read_rmi_packet_register(FuSynapticsRmiPs2Device
      *self,\n\t\t\t\t\t\t     guint8 addr,\n\t\t\t\t\t\t     guint req_sz,\n\t\t\t\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:543,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:544,1
    - Dst: fu_synaptics_rmi_v5_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:548,1
    - Dst: fu_synaptics_rmi_v7_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:551,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 539
    functionDepth: 7
    functionLinenumber: 539
    functionLinenumberEnd: 559
    functionName: fu_synaptics_rmi_ps2_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_synaptics_rmi_v5_device_query_status
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_v7_device_query_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_query_status(FuSynapticsRmiDevice
      *rmi_device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:564,1
    - Dst: fu_synaptics_rmi_ps2_device_write_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:565,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rmi_device
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 576
    functionName: fu_synaptics_rmi_ps2_device_set_page
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_write_rmi_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_set_page(FuSynapticsRmiDevice
      *rmi_device, guint8 page, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:584,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:585,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:588,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:589,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:594,1
    - Dst: fu_synaptics_rmi_ps2_device_read_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:597,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:602,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:605,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:608,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:610,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:622,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - rmi_device
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 625
    functionName: fu_synaptics_rmi_ps2_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_rmi_device_set_page
    - g_debug
    - g_steal_pointer
    - fu_synaptics_rmi_ps2_device_read_rmi_register
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_strdup_printf
    - fu_dump_full
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_ps2_device_read(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t guint16 addr,\n\t\t\t\t gsize req_sz,\n\t\t\t\t GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:633,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:634,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:635,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:637,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:638,1
    - Dst: fu_synaptics_rmi_ps2_device_read_rmi_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:642,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:644,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:648,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - rmi_device
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 627
    functionDepth: 6
    functionLinenumber: 627
    functionLinenumberEnd: 650
    functionName: fu_synaptics_rmi_ps2_device_read_packet_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_set_page
    - g_steal_pointer
    - fu_synaptics_rmi_ps2_device_read_rmi_packet_register
    - g_prefix_error
    - g_strdup_printf
    - fu_dump_full
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_ps2_device_read_packet_register(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t\t guint16 addr,\n\t\t\t\t\t\t gsize req_sz,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:659,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:660,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:662,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:663,1
    - Dst: fu_synaptics_rmi_ps2_device_write_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:666,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:673,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - rmi_device
    - addr
    - req
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - GByteArray*
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 652
    functionDepth: 6
    functionLinenumber: 652
    functionLinenumberEnd: 678
    functionName: fu_synaptics_rmi_ps2_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_set_page
    - fu_synaptics_rmi_ps2_device_write_rmi_register
    - g_prefix_error
    - g_strdup_printf
    - fu_dump_full
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_write(FuSynapticsRmiDevice *rmi_device,\n\t\t\t\t
      \ guint16 addr,\n\t\t\t\t  GByteArray *req,\n\t\t\t\t  FuSynapticsRmiDeviceFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:685,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:685,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:686,1
    - Dst: fu_synaptics_rmi_ps2_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:687,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rmi_device
    - bus
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 680
    functionDepth: 7
    functionLinenumber: 680
    functionLinenumberEnd: 696
    functionName: fu_synaptics_rmi_ps2_device_write_bus_select
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_ps2_device_write
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_write_bus_select(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t     guint8 bus,\n\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:702,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:702,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:702,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:703,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 6
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: fu_synaptics_rmi_ps2_device_probe
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_driver
    - fu_device_add_flag
    - fu_device_remove_flag
    - FU_UDEV_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:713,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:717,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:721,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:725,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:730,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:735,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:740,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:741,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:742,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:746,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:756,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:761,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 710
    functionDepth: 5
    functionLinenumber: 710
    functionLinenumberEnd: 768
    functionName: fu_synaptics_rmi_ps2_device_open
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DEVICE_CLASS
    - g_prefix_error
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - fu_device_has_flag
    - fu_synaptics_rmi_ps2_device_read_byte
    - fu_synaptics_rmi_ps2_device_write_byte
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_open(FuDevice *device, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:773,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:777,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:778,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:783,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:783,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:788,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:793,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:795,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:797,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:800,1
    - Dst: fu_synaptics_rmi_v5_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:804,1
    - Dst: fu_synaptics_rmi_v7_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:807,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:810,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:819,1
    - Dst: fu_synaptics_rmi_ps2_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:824,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:825,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 770
    functionDepth: 8
    functionLinenumber: 770
    functionLinenumberEnd: 831
    functionName: fu_synaptics_rmi_ps2_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_synaptics_rmi_v7_device_detach
    - fu_device_close
    - fu_device_open
    - fu_udev_device_write_sysfs
    - g_prefix_error
    - fu_device_rescan
    - fu_device_has_flag
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - FU_UDEV_DEVICE
    - fu_synaptics_rmi_v5_device_detach
    - fu_synaptics_rmi_ps2_device_query_status
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:837,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 840
    functionName: fu_synaptics_rmi_ps2_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:845,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:848,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:849,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:854,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:857,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:860,1
    - Dst: fu_synaptics_rmi_device_reset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:864,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:865,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:868,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:871,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:871,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:876,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 842
    functionDepth: 5
    functionLinenumber: 842
    functionLinenumberEnd: 882
    functionName: fu_synaptics_rmi_ps2_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - g_debug
    - g_prefix_error
    - fu_udev_device_write_sysfs
    - fu_synaptics_rmi_device_reset
    - fu_synaptics_rmi_device_set_iepmode
    - fu_device_rescan
    - fu_device_has_flag
    - FU_SYNAPTICS_RMI_DEVICE
    - FU_UDEV_DEVICE
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:887,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:887,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:888,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:889,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:889,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:890,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:890,1
    - Dst: fu_synaptics_rmi_device_set_max_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:891,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:891,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:892,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:892,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:893,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiPs2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 884
    functionDepth: 6
    functionLinenumber: 884
    functionLinenumberEnd: 894
    functionName: fu_synaptics_rmi_ps2_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_build_vendor_id_u16
    - fu_device_add_flag
    - FU_DEVICE
    - FU_SYNAPTICS_RMI_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_vendor
    - fu_device_set_name
    - fu_synaptics_rmi_device_set_max_page
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_ps2_device_init(FuSynapticsRmiPs2Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - rmi_device
    - source_mask
    - timeout_ms
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: fu_synaptics_rmi_ps2_device_wait_for_attr
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_ps2_device_wait_for_attr(FuSynapticsRmiDevice
      *rmi_device,\n\t\t\t\t\t  guint8 source_mask,\n\t\t\t\t\t  guint timeout_ms,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:909,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiPs2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 926
    functionName: fu_synaptics_rmi_ps2_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_ps2_device_class_init(FuSynapticsRmiPs2DeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:20,1
    - Dst: fu_synaptics_rmi_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:21,1
    - Dst: fu_synaptics_rmi_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:22,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:26,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:27,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:28,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:29,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:32,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:33,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:34,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:35,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:39,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:42,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 45
    functionName: fu_synaptics_rmi_firmware_0x_func
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - fu_synaptics_rmi_firmware_new
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_firmware_0x_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:56,1
    - Dst: fu_synaptics_rmi_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:57,1
    - Dst: fu_synaptics_rmi_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:58,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:62,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:65,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:66,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:67,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:68,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:69,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:70,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:71,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:75,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:76,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:78,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 81
    functionName: fu_synaptics_rmi_firmware_10_func
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - fu_synaptics_rmi_firmware_new
    - g_assert_no_error
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_firmware_10_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:86,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:87,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:90,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:93,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:94,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_synaptics_rmi_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_plugin_init(FuSynapticsRmiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:28,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:29,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:32,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: fu_synaptics_rmi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_synaptics_rmi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_plugin_class_init(FuSynapticsRmiPluginClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:31,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:31,1
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:32,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:36,1
    - Dst: fu_synaptics_rmi_device_disable_irqs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:41,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:45,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:46,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:47,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:48,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:49,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:50,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:55,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:60,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:65,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 69
    functionName: fu_synaptics_rmi_v7_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_disable_irqs
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:78,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:78,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:81,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:84,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:85,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:86,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:88,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:89,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:91,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:97,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:100,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:107,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - partition_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: fu_synaptics_rmi_v7_device_erase_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - fu_device_sleep
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_erase_partition(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t   guint8 partition_id,\n\t\t\t\t\t   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:123,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:123,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:126,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:130,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:131,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:134,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:137,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:139,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:140,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:144,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:145,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:150,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:153,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:160,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:164,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:171,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:171,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:173,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:174,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:175,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:177,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:178,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:183,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:188,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:189,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:194,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:197,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:198,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 203
    functionName: fu_synaptics_rmi_v7_device_erase_all
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - fu_device_sleep
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_erase_all(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:212,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:215,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:221,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:221,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:224,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:227,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:227,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:227,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:228,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:233,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:236,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:242,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - address
    - fw
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 252
    functionName: fu_synaptics_rmi_v7_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_prefix_error
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_blocks(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\tguint32 address,\n\t\t\t\t\tGBytes *fw,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:263,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:265,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:268,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:274,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:274,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:280,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:280,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:282,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:283,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:288,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:293,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:299,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:300,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:301,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:304,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:308,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:309,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:311,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:316,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:319,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:320,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:325,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:328,1
    - Dst: fu_synaptics_rmi_v7_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - self
    - firmware
    - id
    - partition_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - gchar*
    - FuRmiPartitionId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 254
    functionDepth: 5
    functionLinenumber: 254
    functionLinenumberEnd: 336
    functionName: fu_synaptics_rmi_v7_device_write_partition_signature
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_synaptics_rmi_device_write
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - g_strdup_printf
    - fu_rmi_partition_id_to_string
    - fu_synaptics_rmi_device_get_function
    - fu_firmware_get_image_by_id_bytes
    - fu_synaptics_rmi_v7_device_write_blocks
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_bytes
    - g_info
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_partition_signature(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t\t     FuFirmware *firmware,\n\t\t\t\t\t\t     const gchar
      *id,\n\t\t\t\t\t\t     FuRmiPartitionId partition_id,\n\t\t\t\t\t\t     GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:349,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:350,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:351,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:354,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:359,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:359,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:360,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:361,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:366,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:369,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:370,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:375,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:381,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:385,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:386,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:386,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:390,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:391,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:391,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:394,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:398,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:399,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:401,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:406,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:409,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:415,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:418,1
    - Dst: fu_synaptics_rmi_v7_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:419,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:424,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:426,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:432,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 7
    argNames:
    - self
    - firmware
    - id
    - partition_id
    - bytes
    - progress
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - gchar*
    - FuRmiPartitionId
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 434
    functionName: fu_synaptics_rmi_v7_device_write_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_prefix_error
    - fu_progress_set_steps
    - fu_synaptics_rmi_device_write
    - fu_byte_array_append_uint16
    - fu_progress_set_id
    - fu_synaptics_rmi_device_get_flash
    - g_info
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_v7_device_write_blocks
    - g_autoptr
    - fu_chunk_array_index
    - fu_rmi_partition_id_to_string
    - fu_chunk_get_bytes
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_v7_device_write_partition_signature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_partition(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t   FuFirmware *firmware,\n\t\t\t\t\t   const gchar *id,\n\t\t\t\t\t
      \  FuRmiPartitionId partition_id,\n\t\t\t\t\t   GBytes *bytes,\n\t\t\t\t\t   FuProgress
      *progress,\n\t\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:442,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:443,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:444,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:445,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:447,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:447,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:450,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:455,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:456,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:461,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:464,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:465,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:470,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:475,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:478,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:483,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:488,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:489,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:494,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:497,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:498,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:503,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:505,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:510,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 514
    functionName: fu_synaptics_rmi_v7_device_get_pubkey
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_read
    - g_bytes_new
    - g_byte_array_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_synaptics_rmi_v7_device_get_pubkey(FuSynapticsRmiDevice *self, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:523,1
    - Dst: fu_synaptics_rmi_v7_device_get_pubkey
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:528,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:530,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:534,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:536,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:538,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:539,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:542,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:544,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:545,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:548,1
    - Dst: fu_synaptics_rmi_verify_sha256_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:551,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:555,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 561
    functionName: fu_synaptics_rmi_v7_device_secure_check
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_verify_sha256_signature
    - g_prefix_error
    - g_strdup_printf
    - fu_firmware_get_bytes
    - fu_synaptics_rmi_v7_device_get_pubkey
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_firmware_get_image_by_id_bytes
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - g_str_has_suffix
    - g_info
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_secure_check(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\tFuFirmware *firmware,\n\t\t\t\t\tGError **error)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:570,1
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:578,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:581,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:583,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:584,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:585,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:586,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:587,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:588,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:589,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:590,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:594,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:596,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:597,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:598,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:601,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:602,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:607,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:609,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:610,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:611,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:612,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:613,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:614,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:615,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:616,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:620,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:624,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:625,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:633,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:638,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:641,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:645,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:649,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:650,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:651,1
    - Dst: fu_synaptics_rmi_device_disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:654,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:656,1
    - Dst: fu_synaptics_rmi_v7_device_secure_check
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:659,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:661,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:665,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:671,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:675,1
    - Dst: fu_synaptics_rmi_v7_device_erase_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:679,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:683,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:688,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:691,1
    - Dst: fu_synaptics_rmi_v7_device_erase_all
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:695,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:696,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:699,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:703,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:708,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:711,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:715,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:720,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:723,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:726,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:731,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:734,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:738,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:744,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:748,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:752,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:757,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:761,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 109
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 563
    functionDepth: 7
    functionLinenumber: 563
    functionLinenumberEnd: 765
    functionName: fu_synaptics_rmi_v7_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_synaptics_rmi_v7_device_erase_partition
    - g_prefix_error
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_device_has_flag
    - g_set_error_literal
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_progress_set_id
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_get_function
    - fu_firmware_get_image_by_id_bytes
    - fu_synaptics_rmi_device_disable_sleep
    - fu_synaptics_rmi_v7_device_secure_check
    - fu_synaptics_rmi_v7_device_write_partition
    - fu_synaptics_rmi_v7_device_erase_all
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:772,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:773,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:773,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:774,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:774,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:775,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:776,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:780,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:785,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:786,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:791,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:794,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:795,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:800,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:805,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:806,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:811,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:816,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:817,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:822,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:825,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:826,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:832,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:837,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:842,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:850,1
    - Dst: fu_struct_rmi_partition_tbl_parse
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:851,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:854,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:855,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:856,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:860,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:865,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 878
    functionName: fu_synaptics_rmi_v7_device_read_flash_config
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_write
    - g_debug
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - fu_struct_rmi_partition_tbl_get_partition_id
    - fu_synaptics_rmi_device_poll_wait
    - fu_struct_rmi_partition_tbl_parse
    - fu_dump_full
    - fu_rmi_partition_id_to_string
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_read
    - g_byte_array_new
    - fu_struct_rmi_partition_tbl_get_partition_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_read_flash_config(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:883,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:886,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:887,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:890,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:894,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:896,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:900,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:903,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:909,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:915,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:922,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:929,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:936,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:946,1
    - Dst: fu_synaptics_rmi_v7_device_read_flash_config
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:956,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 957
    functionName: fu_synaptics_rmi_v7_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    - fu_synaptics_rmi_v7_device_read_flash_config
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_setup(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:964,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:967,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:970,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:972,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:977,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:977,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:979,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:979,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:982,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:989,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:996,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1003,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1010,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1017,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1024,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1031,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1038,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1045,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 1052
    functionName: fu_synaptics_rmi_v7_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 2
    functionsReached:
    - g_prefix_error
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_function
    - FU_DEVICE
    - fu_device_remove_flag
    - g_autoptr
    - fu_synaptics_rmi_device_read
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_query_status(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1433
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: fu_synaptics_rmi_device_get_flash
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 15
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuSynapticsRmiFlash
    signature: 'FuSynapticsRmiFlash *

      fu_synaptics_rmi_device_get_flash(FuSynapticsRmiDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:73,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:74,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:76,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:77,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:78,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:79,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:80,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - flash
    - idt
    - str
    argTypes:
    - FuSynapticsRmiFlash*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: fu_synaptics_rmi_device_flash_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - g_strdup_printf
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_flash_to_string(FuSynapticsRmiFlash *flash,
      guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:87,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:88,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:89,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:90,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:91,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:92,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:94,1
    - Dst: fu_synaptics_rmi_device_flash_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: fu_synaptics_rmi_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_SYNAPTICS_RMI_DEVICE
    - GET_PRIVATE
    - fu_synaptics_rmi_device_flash_to_string
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:106,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - function_number
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: fu_synaptics_rmi_device_get_function
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 20
    functionsReached:
    - g_ptr_array_index
    - g_set_error_literal
    - GET_PRIVATE
    - g_set_error
    linkageType: ''
    returnType: FuSynapticsRmiFunction
    signature: "FuSynapticsRmiFunction *\nfu_synaptics_rmi_device_get_function(FuSynapticsRmiDevice
      *self,\n\t\t\t\t     guint8 function_number,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:128,1
    - Dst: FuSynapticsRmiDeviceClass*::read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: fu_synaptics_rmi_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 7
    functionsReached:
    - FuSynapticsRmiDeviceClass*::read
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_device_read(FuSynapticsRmiDevice *self, guint16 addr, gsize
      req_sz, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:140,1
    - Dst: FuSynapticsRmiDeviceClass*::read_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: fu_synaptics_rmi_device_read_packet_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - FuSynapticsRmiDeviceClass*::read_packet_register
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_synaptics_rmi_device_read_packet_register(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t     guint16 addr,\n\t\t\t\t\t     gsize req_sz,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:156,1
    - Dst: FuSynapticsRmiDeviceClass*::write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - req
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - GByteArray*
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: fu_synaptics_rmi_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 14
    functionsReached:
    - FuSynapticsRmiDeviceClass*::write
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_write(FuSynapticsRmiDevice *self,\n\t\t\t
      \     guint16 addr,\n\t\t\t      GByteArray *req,\n\t\t\t      FuSynapticsRmiDeviceFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:163,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:164,1
    - Dst: FuSynapticsRmiDeviceClass*::set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: fu_synaptics_rmi_device_set_page
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 3
    functionsReached:
    - FuSynapticsRmiDeviceClass*::set_page
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_set_page(FuSynapticsRmiDevice *self,
      guint8 page, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iepmode
    argTypes:
    - FuSynapticsRmiDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fu_synaptics_rmi_device_set_iepmode
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 3
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_set_iepmode(FuSynapticsRmiDevice *self,
      gboolean iepmode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:183,1
    - Dst: FuSynapticsRmiDeviceClass*::write_bus_select
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - bus
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: fu_synaptics_rmi_device_write_bus_select
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - FuSynapticsRmiDeviceClass*::write_bus_select
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_write_bus_select(FuSynapticsRmiDevice
      *self, guint8 bus, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:193,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:193,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:195,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:196,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: fu_synaptics_rmi_device_reset
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_reset(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:209,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:213,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:229,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:235,1
    - Dst: fu_synaptics_rmi_function_parse
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:241,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:250,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:250,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 275
    functionName: fu_synaptics_rmi_device_scan_pdt
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_set_page
    - g_debug
    - g_steal_pointer
    - g_prefix_error
    - fu_synaptics_rmi_function_parse
    - g_ptr_array_index
    - g_ptr_array_set_size
    - GET_PRIVATE
    - g_autoptr
    - fu_synaptics_rmi_device_read
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_scan_pdt(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sig_size
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: fu_synaptics_rmi_device_set_sig_size
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_set_sig_size(FuSynapticsRmiDevice *self,
      guint16 sig_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: fu_synaptics_rmi_device_get_sig_size
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_synaptics_rmi_device_get_sig_size(FuSynapticsRmiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - max_page
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: fu_synaptics_rmi_device_set_max_page
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_set_max_page(FuSynapticsRmiDevice *self,
      guint8 max_page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:302,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:302,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:305,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:306,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:309,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:311,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - product_id
    argTypes:
    - FuSynapticsRmiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: fu_synaptics_rmi_device_set_product_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_device_add_instance_id
    - g_strsplit
    - g_strdup_printf
    - FU_DEVICE
    - g_strv_length
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_set_product_id(FuSynapticsRmiDevice *self,
      const gchar *product_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:319,1
    - Dst: FuSynapticsRmiDeviceClass*::query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: fu_synaptics_rmi_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - FuSynapticsRmiDeviceClass*::query_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_query_status(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:328,1
    - Dst: FuSynapticsRmiDeviceClass*::query_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - build_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: fu_synaptics_rmi_device_query_build_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FuSynapticsRmiDeviceClass*::query_build_id
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_query_build_id(FuSynapticsRmiDevice
      *self,\n\t\t\t\t       guint32 *build_id,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:339,1
    - Dst: FuSynapticsRmiDeviceClass*::query_product_sub_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - product_sub_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: fu_synaptics_rmi_device_query_product_sub_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - FuSynapticsRmiDeviceClass*::query_product_sub_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_query_product_sub_id(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t     guint8 *product_sub_id,\n\t\t\t\t\t     GError **error)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:348,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:365,1
    - Dst: fu_synaptics_rmi_device_scan_pdt
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:371,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:373,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:379,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:383,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:388,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:390,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:399,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:401,1
    - Dst: fu_synaptics_rmi_device_query_product_sub_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:404,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:405,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:410,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:413,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:414,1
    - Dst: fu_synaptics_rmi_device_set_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:417,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:437,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:438,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:446,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:447,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:449,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:454,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:465,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:467,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:469,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:472,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:481,1
    - Dst: fu_synaptics_rmi_device_query_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:491,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:492,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:497,1
    - Dst: fu_synaptics_rmi_v5_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:502,1
    - Dst: fu_synaptics_rmi_v6_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:507,1
    - Dst: fu_synaptics_rmi_v7_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:511,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:512,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:516,1
    - Dst: fu_synaptics_rmi_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:523,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:524,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:529,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:533,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:535,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:537,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:539,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 134
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 345
    functionDepth: 7
    functionLinenumber: 345
    functionLinenumberEnd: 543
    functionName: fu_synaptics_rmi_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_query_build_id
    - fu_synaptics_rmi_device_set_product_id
    - fu_synaptics_rmi_v6_device_setup
    - g_prefix_error
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_v5_device_setup
    - fu_synaptics_rmi_v7_device_setup
    - g_set_error
    - fu_device_set_version
    - fu_synaptics_rmi_device_query_product_sub_id
    - fu_synaptics_rmi_device_scan_pdt
    - fu_synaptics_rmi_device_query_status
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_synaptics_rmi_device_set_page
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - g_strdup_printf
    - fu_synaptics_rmi_device_get_function
    - GET_PRIVATE
    - fu_synaptics_rmi_device_read
    - g_strndup
    - fu_synaptics_rmi_device_enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:552,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:554,1
    - Dst: fu_synaptics_rmi_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:554,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:556,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:559,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:563,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:567,1
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:567,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:568,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:569,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:573,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:577,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:581,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:582,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:586,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 592
    functionName: fu_synaptics_rmi_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_bytes_get_size
    - fu_firmware_parse_stream
    - fu_synaptics_rmi_firmware_new
    - fu_firmware_get_image_by_id_bytes
    - FU_SYNAPTICS_RMI_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_synaptics_rmi_firmware_get_sig_size
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_rmi_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:597,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:598,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:601,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:603,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 617
    functionName: fu_synaptics_rmi_device_poll
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - GET_PRIVATE
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_poll(FuSynapticsRmiDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:622,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:626,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:626,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:627,1
    - Dst: fu_synaptics_rmi_device_poll
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:628,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:630,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:634,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 636
    functionName: fu_synaptics_rmi_device_poll_wait
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 5
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_clear_error
    - fu_synaptics_rmi_device_poll
    - FU_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_poll_wait(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:644,1
    - Dst: FuSynapticsRmiDeviceClass*::wait_for_attr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - source_mask
    - timeout_ms
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 646
    functionName: fu_synaptics_rmi_device_wait_for_attr
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FuSynapticsRmiDeviceClass*::wait_for_attr
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_wait_for_attr(FuSynapticsRmiDevice
      *self,\n\t\t\t\t      guint8 source_mask,\n\t\t\t\t      guint timeout_ms,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:653,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:654,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:660,1
    - Dst: FuSynapticsRmiDeviceClass*::enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:661,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 668
    functionName: fu_synaptics_rmi_device_enter_iep_mode
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 9
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - g_debug
    - g_prefix_error
    - GET_PRIVATE
    - FuSynapticsRmiDeviceClass*::enter_iep_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_enter_iep_mode(FuSynapticsRmiDevice
      *self,\n\t\t\t\t       FuSynapticsRmiDeviceFlags flags,\n\t\t\t\t       GError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:681,1
    - Dst: fu_synaptics_rmi_device_wait_for_attr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:684,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:688,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:689,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:690,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:704,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:711,1
    - Dst: FU_IS_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:720,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:722,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:730,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:740,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - self
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint
    - RmiDeviceWaitForIdleFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 748
    functionName: fu_synaptics_rmi_device_wait_for_idle
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 7
    functionsReached:
    - fu_synaptics_rmi_device_wait_for_attr
    - g_set_error
    - FU_IS_SYNAPTICS_RMI_PS2_DEVICE
    - g_propagate_prefixed_error
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_wait_for_idle(FuSynapticsRmiDevice
      *self,\n\t\t\t\t      guint timeout_ms,\n\t\t\t\t      RmiDeviceWaitForIdleFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:753,1
    - Dst: FuSynapticsRmiDeviceClass*::disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: fu_synaptics_rmi_device_disable_sleep
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    - FuSynapticsRmiDeviceClass*::disable_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_disable_sleep(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:762,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:764,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:764,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:770,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:773,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 784
    functionName: fu_synaptics_rmi_device_write_bootloader_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_write
    - g_prefix_error
    - GET_PRIVATE
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_write_bootloader_id(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:789,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:790,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:790,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:792,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:794,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 803
    functionName: fu_synaptics_rmi_device_disable_irqs
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_write
    - fu_byte_array_append_uint8
    - g_prefix_error
    - GET_PRIVATE
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_disable_irqs(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:812,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:813,1
    - Dst: fu_synaptics_rmi_v5_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:815,1
    - Dst: fu_synaptics_rmi_v7_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:822,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 805
    functionDepth: 8
    functionLinenumber: 805
    functionLinenumberEnd: 834
    functionName: fu_synaptics_rmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_rmi_v5_device_write_firmware
    - FU_SYNAPTICS_RMI_DEVICE
    - GET_PRIVATE
    - fu_synaptics_rmi_v7_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:839,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:840,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:841,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:842,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:843,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 836
    functionDepth: 6
    functionLinenumber: 836
    functionLinenumberEnd: 846
    functionName: fu_synaptics_rmi_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_init(FuSynapticsRmiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:851,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:852,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:853,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 855
    functionName: fu_synaptics_rmi_device_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_SYNAPTICS_RMI_DEVICE
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:860,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: fu_synaptics_rmi_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_class_init(FuSynapticsRmiDeviceClass *klass)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:22,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:25,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:30,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:32,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:35,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:41,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:49,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:53,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:60,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:63,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 79
    functionName: fu_synaptics_rmi_v6_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c
    functionUses: 1
    functionsReached:
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memread_uint8_safe
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_device_get_flash
    - g_autoptr
    - fu_synaptics_rmi_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v6_device_setup(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: fu_tpm_eventlog_sort_cb
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_tpm_eventlog_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:37,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:37,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:41,1
    - Dst: fu_tpm_eventlog_parser_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:43,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:46,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:49,1
    - Dst: fu_tpm_eventlog_item_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:54,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:58,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:67,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:67,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:76,1
    - Dst: fwupd_checksum_format_for_display
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:77,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:78,1
    - Dst: g_print
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:83,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - fn
    - pcr
    - error
    argTypes:
    - gchar*
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 85
    functionName: fu_tpm_eventlog_process
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_file_get_contents
    - g_string_new
    - fwupd_checksum_format_for_display
    - g_ptr_array_sort
    - fu_tpm_eventlog_item_to_string
    - g_strdup_printf
    - g_ptr_array_index
    - g_autoptr
    - g_print
    - fu_tpm_eventlog_calc_checksums
    - g_string_append
    - fu_tpm_eventlog_parser_new
    - fwupd_codec_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_eventlog_process(const gchar *fn, gint pcr, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:92,1
    - Dst: fileno
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:95,1
    - Dst: g_option_context_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:95,1
    - Dst: N_
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:102,1
    - Dst: N_
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:110,1
    - Dst: setlocale
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:114,1
    - Dst: bindtextdomain
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:115,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:116,1
    - Dst: textdomain
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:117,1
    - Dst: getuid
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:121,1
    - Dst: geteuid
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:121,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:123,1
    - Dst: _
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:123,1
    - Dst: g_set_application_name
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:127,1
    - Dst: _
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:127,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:128,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:129,1
    - Dst: _
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:131,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:133,1
    - Dst: g_print
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:135,1
    - Dst: _
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:135,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:141,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:142,1
    - Dst: fu_tpm_eventlog_process
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:147,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:149,1
    - Dst: _
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 153
    functionName: main
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c
    functionUses: 5
    functionsReached:
    - getuid
    - g_option_context_set_description
    - g_print
    - setlocale
    - g_option_context_new
    - textdomain
    - isatty
    - N_
    - fileno
    - g_autoptr
    - g_option_context_add_main_entries
    - g_setenv
    - g_option_context_parse
    - bind_textdomain_codeset
    - bindtextdomain
    - fu_tpm_eventlog_process
    - geteuid
    - g_printerr
    - _
    - g_set_application_name
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:24,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:26,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:27,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:32,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:36,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:37,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:40,1
    - Dst: fu_tpm_plugin_get_type
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:40,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:43,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:47,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:49,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:49,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:53,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:54,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:55,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:56,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:57,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:60,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:64,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:65,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:66,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:66,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:73,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:74,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:76,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 79
    functionName: fu_tpm_device_1_2_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_tpm_device_get_checksums
    - fu_plugin_runner_add_security_attrs
    - fu_context_load_quirks
    - fu_context_new
    - fu_plugin_new_from_gtype
    - fu_plugin_get_devices
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_plugin_runner_startup
    - fu_security_attrs_get_by_appstream_id
    - fu_security_attrs_new
    - fwupd_security_attr_get_result
    - fu_tpm_plugin_get_type
    - FU_IS_TPM_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_progress_new
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_1_2_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:85,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:87,1
    - Dst: fu_tpm_v2_device_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:90,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:91,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:92,1
    - Dst: getuid
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:95,1
    - Dst: geteuid
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:95,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:96,1
    - Dst: g_unsetenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:98,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:102,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:103,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:105,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:106,1
    - Dst: g_unsetenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:110,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:111,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:112,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:114,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:115,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:116,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:117,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:118,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:120,1
    - Dst: g_unsetenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: fu_tpm_device_2_0_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - getuid
    - fu_tpm_device_get_checksums
    - fu_context_new
    - g_assert_cmpint
    - fu_device_set_physical_id
    - fu_tpm_v2_device_new
    - g_error_matches
    - fu_device_setup
    - g_assert_nonnull
    - g_setenv
    - fu_device_locker_new
    - g_autoptr
    - g_getenv
    - geteuid
    - FU_DEVICE
    - g_assert_no_error
    - g_unsetenv
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_2_0_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:134,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:136,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:137,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:138,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:141,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:142,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:143,1
    - Dst: fu_tpm_eventlog_parser_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:145,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:146,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:147,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:149,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:150,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:151,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:152,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:153,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 155
    functionName: fu_tpm_eventlog_parse_v1_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - g_ptr_array_index
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_tpm_eventlog_calc_checksums
    - fu_tpm_eventlog_parser_new
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_parse_v1_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:167,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:169,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:170,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:171,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:174,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:175,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:176,1
    - Dst: fu_tpm_eventlog_parser_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:178,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:179,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:180,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:182,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:183,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:184,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:186,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:187,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:188,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 192
    functionName: fu_tpm_eventlog_parse_v2_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_file_get_contents
    - g_assert_cmpstr
    - g_assert_cmpint
    - g_test_build_filename
    - g_assert_true
    - g_ptr_array_index
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_tpm_eventlog_calc_checksums
    - fu_tpm_eventlog_parser_new
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_parse_v2_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:200,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:202,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:203,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:205,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:208,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:209,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:210,1
    - Dst: g_get_environ
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:213,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:214,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:215,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:218,1
    - Dst: fu_tpm_plugin_get_type
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:218,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:219,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:220,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:221,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:224,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:225,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:228,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:229,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:231,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:231,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:236,1
    - Dst: g_environ_getenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 239
    functionName: fu_tpm_empty_pcr_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_assert_true
    - fu_plugin_runner_add_security_attrs
    - fu_context_load_quirks
    - g_get_environ
    - fu_context_new
    - fu_plugin_new_from_gtype
    - g_assert_cmpint
    - fu_plugin_runner_startup
    - fu_security_attrs_get_by_appstream_id
    - fu_security_attrs_new
    - fwupd_security_attr_get_result
    - fu_tpm_plugin_get_type
    - g_assert_nonnull
    - g_autoptr
    - g_setenv
    - g_environ_getenv
    - fu_progress_new
    - g_test_build_filename
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_tpm_empty_pcr_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:246,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:247,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:249,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:250,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:251,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:252,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:255,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:256,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:259,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:260,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:261,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:262,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:263,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: main
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:26,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:28,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:30,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:32,1
    - Dst: g_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuTpmEventlogItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: fu_tpm_eventlog_parser_item_free
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_parser_item_free(FuTpmEventlogItem *item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:43,1
    - Dst: fu_tpm_eventlog_pcr_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:43,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:45,1
    - Dst: fu_tpm_eventlog_item_kind_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:46,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:47,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:50,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:53,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:54,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:57,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:58,1
    - Dst: fu_tpm_eventlog_blobstr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:61,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - item
    - idt
    - str
    argTypes:
    - FuTpmEventlogItem*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 65
    functionName: fu_tpm_eventlog_item_to_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    - fu_tpm_eventlog_item_kind_to_string
    - fu_tpm_eventlog_pcr_to_string
    - fu_bytes_to_string
    - fwupd_codec_string_append_hex
    - fu_tpm_eventlog_blobstr
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_to_string(FuTpmEventlogItem *item, guint
      idt, GString *str)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:74,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:77,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:92,1
    - Dst: fu_struct_tpm_event_log2_parse
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:95,1
    - Dst: fu_struct_tpm_event_log2_get_digest_count
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:99,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:106,1
    - Dst: fu_tpm_eventlog_hash_get_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:115,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:127,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:128,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:141,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:141,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:144,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:147,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:147,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:157,1
    - Dst: fu_struct_tpm_event_log2_get_pcr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:168,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:171,1
    - Dst: fu_struct_tpm_event_log2_get_type
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:173,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:174,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:176,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:178,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:179,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:188,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:188,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:189,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:199,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 4
    argNames:
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - guint8*
    - gsize
    - FuTpmEventlogParserFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 200
    functionName: fu_tpm_eventlog_parser_parse_blob_v2
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_steal_pointer
    - fu_tpm_eventlog_hash_get_size
    - g_bytes_new_take
    - g_new0
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - fu_struct_tpm_event_log2_get_type
    - g_malloc0
    - fu_struct_tpm_event_log2_get_digest_count
    - g_set_error_literal
    - fu_struct_tpm_event_log2_parse
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_dump_bytes
    - g_ptr_array_add
    - fu_struct_tpm_event_log2_get_pcr
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_tpm_eventlog_parser_parse_blob_v2(const guint8 *buf,\n\t\t\t\t
      \    gsize bufsz,\n\t\t\t\t     FuTpmEventlogParserFlags flags,\n\t\t\t\t     GError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:211,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:223,1
    - Dst: fu_tpm_eventlog_parser_parse_blob_v2
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:224,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:227,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:232,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:239,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:246,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:261,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:265,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:276,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:279,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:281,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:282,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:291,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:292,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:294,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:294,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c:298,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - guint8*
    - gsize
    - FuTpmEventlogParserFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 299
    functionName: fu_tpm_eventlog_parser_new
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
    functionUses: 3
    functionsReached:
    - fu_dump_bytes
    - g_steal_pointer
    - g_new0
    - g_bytes_new_take
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - g_malloc0
    - fu_tpm_eventlog_parser_parse_blob_v2
    - g_ptr_array_new_with_free_func
    - g_set_error_literal
    - g_autoptr
    - g_bytes_new
    - g_strcmp0
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_tpm_eventlog_parser_new(const guint8 *buf,\n\t\t\t
      \  gsize bufsz,\n\t\t\t   FuTpmEventlogParserFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isxdigit
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: _g_string_isxdigit
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached:
    - g_ascii_isxdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_string_isxdigit(GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:30,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:35,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:40,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:42,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:47,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:49,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:54,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:55,1
    - Dst: _g_string_isxdigit
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:56,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:57,1
    - Dst: g_string_ascii_down
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:60,1
    - Dst: fu_tpm_device_add_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - line
    - user_data
    argTypes:
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 62
    functionName: fu_tpm_v1_device_parse_line
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_string_new
    - fu_strstrip
    - g_string_replace
    - g_strsplit
    - g_string_ascii_down
    - g_strv_length
    - g_autoptr
    - _g_string_isxdigit
    - fu_tpm_device_add_checksum
    - FU_TPM_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_tpm_v1_device_parse_line(const gchar *line, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V1_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:67,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:68,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:72,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:72,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:73,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:81,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:81,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:81,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:88,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:90,1
    - Dst: fu_tpm_v1_device_parse_line
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 94
    functionName: fu_tpm_v1_device_probe
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_file_get_contents
    - g_str_has_prefix
    - g_strsplit
    - FU_TPM_V1_DEVICE
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_tpm_v1_device_parse_line
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v1_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmV1Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: fu_tpm_v1_device_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_tpm_v1_device_init(FuTpmV1Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmV1DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: fu_tpm_v1_device_class_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_v1_device_class_init(FuTpmV1DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:111,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: fu_tpm_v1_device_new
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuTpmDevice
    signature: 'FuTpmDevice *

      fu_tpm_v1_device_new(FuContext *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:26,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:28,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:31,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:33,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: fu_tpm_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id
    - fwupd_codec_string_append
    - FU_TPM_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_to_string(FuPlugin *plugin, guint idt, GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:43,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:51,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:55,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:56,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: fu_tpm_plugin_set_bios_pcr0s
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_tpm_device_get_checksums
    - FU_TPM_PLUGIN
    - g_ptr_array_index
    - fu_device_add_flag
    - g_autoptr
    - fu_device_add_checksum
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_set_bios_pcr0s(FuPlugin *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:65,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:66,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:67,1
    - Dst: fu_tpm_plugin_set_bios_pcr0s
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 7
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: fu_tpm_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - fu_tpm_plugin_set_bios_pcr0s
    - g_set_object
    - FU_TPM_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_device_registered(FuPlugin *plugin, FuDevice *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:76,1
    - Dst: fu_tpm_device_get_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:77,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:77,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:79,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:79,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:81,1
    - Dst: fu_tpm_plugin_set_bios_pcr0s
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:84,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:87,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:89,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:90,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:92,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:96,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 104
    functionName: fu_tpm_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_tpm_device_get_checksums
    - FU_TPM_PLUGIN
    - g_set_object
    - fu_tpm_plugin_set_bios_pcr0s
    - g_ptr_array_index
    - fu_plugin_add_report_metadata
    - g_autoptr
    - fu_tpm_device_get_family
    - fwupd_checksum_guess_kind
    - FU_TPM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_device_added(FuPlugin *plugin, FuDevice *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:110,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:113,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:114,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:115,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:122,1
    - Dst: fu_tpm_device_get_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:122,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:123,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:124,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:129,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:129,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 131
    functionName: fu_tpm_plugin_add_security_attr_version
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_device_get_guids
    - fwupd_security_attr_set_result_success
    - FU_TPM_PLUGIN
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fwupd_security_attr_add_guids
    - g_autoptr
    - fu_tpm_device_get_family
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_add_security_attr_version(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:141,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:148,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:149,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:149,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:150,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:151,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:155,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:160,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:162,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:163,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:164,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:169,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:171,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:174,1
    - Dst: strlen
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:176,1
    - Dst: strlen
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:176,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:178,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:179,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:189,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:190,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:195,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 196
    functionName: fu_tpm_plugin_add_security_attr_eventlog
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fwupd_security_attr_add_flag
    - strlen
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_tpm_device_get_checksums
    - FU_TPM_PLUGIN
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_ptr_array_index
    - fwupd_security_attr_add_guids
    - g_autoptr
    - fu_tpm_eventlog_calc_checksums
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_add_security_attr_eventlog(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:202,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:209,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:210,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:210,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:211,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:216,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:216,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:218,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:229,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 239
    functionName: fu_tpm_plugin_add_security_attr_empty
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_device_get_guids
    - fu_security_attrs_append
    - fu_tpm_device_get_checksums
    - FU_TPM_PLUGIN
    - fwupd_security_attr_set_result_success
    - g_ptr_array_index
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_add_security_attr_empty(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:244,1
    - Dst: fu_tpm_plugin_add_security_attr_version
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:246,1
    - Dst: fu_tpm_plugin_add_security_attr_eventlog
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:247,1
    - Dst: fu_tpm_plugin_add_security_attr_empty
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: fu_tpm_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_tpm_plugin_add_security_attr_eventlog
    - fu_plugin_has_flag
    - fu_tpm_plugin_add_security_attr_empty
    - fu_tpm_plugin_add_security_attr_version
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:254,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:256,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:259,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:266,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:268,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:270,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:273,1
    - Dst: fu_tpm_eventlog_blobstr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:274,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:276,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:277,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:282,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:283,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:287,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 289
    functionName: fu_tpm_plugin_eventlog_report_metadata
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - g_string_free
    - FU_TPM_PLUGIN
    - g_ptr_array_index
    - g_string_truncate
    - fu_bytes_to_string
    - g_autoptr
    - fu_tpm_eventlog_calc_checksums
    - fu_tpm_eventlog_blobstr
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_plugin_eventlog_report_metadata(FuPlugin *plugin)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:294,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:298,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:302,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:308,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:309,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:315,1
    - Dst: fu_tpm_eventlog_parser_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:323,1
    - Dst: fu_tpm_plugin_eventlog_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:328,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 331
    functionName: fu_tpm_plugin_coldplug_eventlog
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_file_get_contents
    - g_build_filename
    - fu_tpm_plugin_eventlog_report_metadata
    - FU_TPM_PLUGIN
    - fu_plugin_add_report_metadata
    - g_file_test
    - fu_path_from_kind
    - fu_tpm_eventlog_parser_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_plugin_coldplug_eventlog(FuPlugin *plugin, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:336,1
    - Dst: fu_tpm_plugin_coldplug_eventlog
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:339,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: fu_tpm_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_tpm_plugin_coldplug_eventlog
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:349,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:354,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:355,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:356,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:356,1
    - Dst: fu_tpm_v1_device_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:357,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:357,1
    - Dst: g_object_set
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:358,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:359,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:360,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 367
    functionName: fu_tpm_plugin_startup
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - fu_plugin_device_add
    - g_build_filename
    - fu_plugin_get_context
    - g_object_set
    - FU_TPM_PLUGIN
    - FU_DEVICE
    - g_file_test
    - fu_device_probe
    - fu_tpm_v1_device_new
    - fu_path_from_kind
    - fu_device_set_physical_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: fu_tpm_plugin_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_init(FuTpmPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:377,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:380,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:381,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:382,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: fu_tpm_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_constructed(GObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:389,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:391,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:393,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:395,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: fu_tpm_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_TPM_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:402,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: fu_tpm_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_plugin_class_init(FuTpmPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 1453
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:28,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:29,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:29,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - family
    argTypes:
    - FuTpmDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: fu_tpm_device_set_family
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_strdup
    - FU_IS_TPM_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_set_family(FuTpmDevice *self, const gchar *family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:36,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:37,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: fu_tpm_device_get_family
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_TPM_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_device_get_family(FuTpmDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:44,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:47,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:47,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:48,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:50,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:53,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idx
    - checksum
    argTypes:
    - FuTpmDevice*
    - guint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: fu_tpm_device_add_checksum
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 1
    functionsReached:
    - g_debug
    - g_new0
    - FU_IS_TPM_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    - g_strdup
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_add_checksum(FuTpmDevice *self, guint idx, const
      gchar *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:61,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:63,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:63,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:66,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:68,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:68,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuTpmDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: fu_tpm_device_get_checksums
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 6
    functionsReached:
    - g_steal_pointer
    - FU_IS_TPM_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_strdup
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_return_val_if_fail
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_tpm_device_get_checksums(FuTpmDevice *self, guint idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:76,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:77,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: fu_tpm_device_to_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_DEVICE
    - GET_PRIVATE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:84,1
    - Dst: g_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuTpmDevicePcrItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_tpm_device_item_free
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_item_free(FuTpmDevicePcrItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:91,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:92,1
    - Dst: g_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:94,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:95,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: fu_tpm_device_finalize
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    - FU_TPM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:103,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:104,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:105,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:106,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:107,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: fu_tpm_device_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_add_flag
    - GET_PRIVATE
    - fu_device_add_icon
    - g_ptr_array_new_with_free_func
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_init(FuTpmDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:114,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-device.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: fu_tpm_device_class_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_class_init(FuTpmDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:27,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:27,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:30,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:31,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:34,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:35,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:36,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: fu_tpm_v2_device_probe
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_read_property
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_UDEV_DEVICE
    - fu_device_add_instance_str
    - fu_device_set_physical_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:50,1
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:52,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:62,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - query
    - val
    - error
    argTypes:
    - FuTpmV2Device*
    - guint32
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 89
    functionName: fu_tpm_v2_device_get_uint32
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - Esys_GetCapability
    - g_set_error
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_get_uint32(FuTpmV2Device *self, guint32 query,
      guint32 *val, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:99,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:101,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:102,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:106,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - query
    - error
    argTypes:
    - FuTpmV2Device*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: fu_tpm_v2_device_get_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_tpm_v2_device_get_uint32
    - fu_strstrip
    - GUINT32_FROM_BE
    - memcpy
    - g_ascii_isgraph
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_v2_device_get_string(FuTpmV2Device *self, guint32 query, GError **error)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:121,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:123,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:125,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:127,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:133,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:135,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:137,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:139,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:143,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:145,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:147,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:149,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:153,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:155,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:157,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 1
    argNames:
    - manufacturer
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 160
    functionName: fu_tpm_v2_device_convert_manufacturer
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_v2_device_convert_manufacturer(const gchar *manufacturer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:183,1
    - Dst: Esys_PCR_Read
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:200,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:217,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:220,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:225,1
    - Dst: fu_tpm_device_add_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:229,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTpmV2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 235
    functionName: fu_tpm_v2_device_setup_pcrs
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - Esys_GetCapability
    - g_set_error_literal
    - Esys_PCR_Read
    - g_autoptr
    - fu_tpm_device_add_checksum
    - FU_TPM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_setup_pcrs(FuTpmV2Device *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:244,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:244,1
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:246,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:256,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:266,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:267,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:275,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:278,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTpmV2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 286
    functionName: fu_tpm_v2_device_ensure_commands
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_debug
    - g_string_new
    - Esys_GetCapability
    - g_set_error_literal
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - g_string_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_ensure_commands(FuTpmV2Device *self, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:291,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:307,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:308,1
    - Dst: Esys_Startup
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:310,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:312,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:320,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:322,1
    - Dst: fu_tpm_device_set_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:325,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:325,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:326,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:328,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:331,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:333,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:336,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:337,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:342,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:343,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:344,1
    - Dst: g_strjoin
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:345,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:348,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:349,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:350,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:351,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:352,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:353,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:354,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:355,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:358,1
    - Dst: fu_tpm_v2_device_convert_manufacturer
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:359,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:360,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:363,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:365,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:368,1
    - Dst: fu_tpm_v2_device_ensure_commands
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:371,1
    - Dst: fu_tpm_v2_device_setup_pcrs
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:375,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 376
    functionName: fu_tpm_v2_device_setup
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_set_vendor
    - FU_TPM_DEVICE
    - fu_tpm_v2_device_setup_pcrs
    - fu_tpm_v2_device_convert_manufacturer
    - fu_tpm_v2_device_ensure_commands
    - fu_tpm_device_set_family
    - fu_device_add_instance_u16
    - FU_TPM_V2_DEVICE
    - g_strjoin
    - g_setenv
    - fu_device_set_version_raw
    - g_getenv
    - fu_tpm_v2_device_get_uint32
    - fu_tpm_v2_device_get_string
    - fu_device_build_instance_id
    - Esys_Startup
    - g_set_error_literal
    - fu_device_add_instance_str
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:388,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:390,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:392,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:399,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:400,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:400,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:403,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:406,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:409,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:412,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:413,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:415,1
    - Dst: Esys_FieldUpgradeData
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:419,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:429,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuTpmV2Device*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 443
    functionName: fu_tpm_v2_device_upgrade_data
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_memcpy_safe
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_input_stream_size
    - Esys_FieldUpgradeData
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_tpm_v2_device_upgrade_data(FuTpmV2Device *self,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuProgress *progress,\n\t\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:452,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:455,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:458,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:459,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:460,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:461,1
    - Dst: Esys_FieldUpgradeStart
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:464,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:473,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:481,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:490,1
    - Dst: fu_tpm_v2_device_upgrade_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:493,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 445
    functionDepth: 5
    functionLinenumber: 445
    functionLinenumberEnd: 498
    functionName: fu_tpm_v2_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_stream
    - fu_progress_get_child
    - FU_TPM_V2_DEVICE
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_set_id
    - g_autoptr
    - Esys_FieldUpgradeStart
    - fu_tpm_v2_device_upgrade_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_tpm_v2_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:503,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:506,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:506,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:509,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:511,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:513,1
    - Dst: Esys_FirmwareRead
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:514,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:523,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:531,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:541,1
    - Dst: Esys_Free
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:542,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 547
    functionName: fu_tpm_v2_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - g_debug
    - g_new0
    - FU_TPM_V2_DEVICE
    - Esys_Free
    - g_byte_array_prepend
    - g_set_error_literal
    - fu_device_get_firmware_size_max
    - Esys_FirmwareRead
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_tpm_v2_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:552,1
    - Dst: Esys_Initialize
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 567
    functionName: fu_tpm_v2_device_open
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_TPM_V2_DEVICE
    - Esys_Initialize
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:572,1
    - Dst: Esys_Finalize
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 575
    functionName: fu_tpm_v2_device_close
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - Esys_Finalize
    - FU_TPM_V2_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_v2_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:580,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: fu_tpm_v2_device_convert_version
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_v2_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:586,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:587,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:588,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:589,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:590,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:591,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmV2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 583
    functionDepth: 6
    functionLinenumber: 583
    functionLinenumberEnd: 593
    functionName: fu_tpm_v2_device_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size_max
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_tpm_v2_device_init(FuTpmV2Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmV2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: fu_tpm_v2_device_class_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_v2_device_class_init(FuTpmV2DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:612,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 614
    functionName: fu_tpm_v2_device_new
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 1
    functionsReached:
    - FU_TPM_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuTpmDevice
    signature: 'FuTpmDevice *

      fu_tpm_v2_device_new(FuContext *ctx)'
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - pcr
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 41
    functionName: fu_tpm_eventlog_pcr_to_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_eventlog_pcr_to_string(gint pcr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - hash_kind
    argTypes:
    - TPM2_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: fu_tpm_eventlog_hash_get_size
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_tpm_eventlog_hash_get_size(TPM2_ALG_ID hash_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:62,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:63,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:63,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: fu_tpm_eventlog_blobstr
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c
    functionUses: 2
    functionsReached:
    - g_base64_encode
    - g_return_val_if_fail
    - g_bytes_get_size
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_eventlog_blobstr(GBytes *blob)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:79,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:79,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:83,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:100,1
    - Dst: fu_struct_tpm_efi_startup_locality_event_parse_bytes
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:101,1
    - Dst: fu_struct_tpm_efi_startup_locality_event_get_locality
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:115,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:115,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:116,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:117,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:119,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:120,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:125,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:125,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:126,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:129,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:131,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:132,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:137,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:137,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:138,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:141,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:143,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:144,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:157,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:158,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:159,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:162,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:163,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:164,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:167,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:168,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:169,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:169,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c:171,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 3
    argNames:
    - items
    - pcr
    - error
    argTypes:
    - GPtrArray*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 172
    functionName: fu_tpm_eventlog_calc_checksums
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c
    functionUses: 5
    functionsReached:
    - g_bytes_get_data
    - g_steal_pointer
    - g_checksum_get_digest
    - g_bytes_get_size
    - g_ptr_array_index
    - g_set_error_literal
    - g_checksum_update
    - g_checksum_new
    - fu_bytes_to_string
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_bytes_new_static
    - g_ptr_array_add
    - fu_struct_tpm_efi_startup_locality_event_parse_bytes
    - fu_struct_tpm_efi_startup_locality_event_get_locality
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_tpm_eventlog_calc_checksums(GPtrArray *items, guint8 pcr, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: fu_mtd_plugin_startup
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMtdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: fu_mtd_plugin_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_mtd_plugin_init(FuMtdPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:40,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:41,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:42,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:43,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:44,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:45,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: fu_mtd_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_mtd_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: fu_mtd_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_plugin_class_init(FuMtdPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:30,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:31,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: fu_mtd_device_to_string
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:43,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:46,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:48,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:54,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:56,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:60,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:67,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:69,1
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:69,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:75,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: fu_mtd_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_steal_pointer
    - g_prefix_error
    - fu_input_stream_from_path
    - fu_device_get_firmware_gtype
    - fu_firmware_parse_stream
    - g_object_new
    - g_set_error_literal
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_partial_input_stream_new
    - g_autoptr
    - FU_MTD_DEVICE
    - fu_udev_device_get_device_file
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_mtd_device_read_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:90,1
    - Dst: fu_mtd_device_read_firmware
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:93,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:98,1
    - Dst: FU_IS_IFD_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:99,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:102,1
    - Dst: fu_mtd_ifd_device_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:103,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:104,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:113,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:114,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:115,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:120,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:121,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:122,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:123,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:128,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:131,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:132,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:133,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:135,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:136,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:137,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMtdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 142
    functionName: fu_mtd_device_metadata_load
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_object_ref
    - fu_device_set_version
    - fu_firmware_get_image_by_id
    - fu_firmware_get_version
    - FU_IS_IFD_FIRMWARE
    - fu_firmware_get_version_raw
    - fu_firmware_get_images
    - FU_DEVICE
    - g_ptr_array_index
    - fu_mtd_ifd_device_new
    - g_autoptr
    - fu_device_set_version_raw
    - fu_mtd_device_read_firmware
    - fwupd_guid_hash_string
    - fu_device_get_instance_ids
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_metadata_load(FuMtdDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:147,1
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:149,1
    - Dst: fu_mtd_device_metadata_load
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:154,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: fu_mtd_device_setup
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_mtd_device_metadata_load
    - fu_device_get_firmware_gtype
    - g_autoptr
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:166,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:169,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:170,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:171,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:177,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: fu_mtd_device_open
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - g_error_matches
    - g_steal_pointer
    - g_set_error_literal
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_open(FuDevice *device, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:188,1
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:196,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:199,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:203,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:203,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:207,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:207,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:212,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:213,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:219,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:219,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:222,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:226,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:226,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:231,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:231,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:234,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:235,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:238,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:239,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:240,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:242,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:243,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:244,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:245,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:248,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:248,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:254,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:256,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:260,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:260,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:266,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:275,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:276,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 185
    functionDepth: 6
    functionLinenumber: 185
    functionLinenumberEnd: 282
    functionName: fu_mtd_device_probe
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_physical_id
    - g_propagate_error
    - FU_MTD_DEVICE
    - FU_DEVICE_CLASS
    - fu_udev_device_read_sysfs
    - fu_device_get_context
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_context_get_hwid_value
    - fu_device_add_instance_strsafe
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - fu_device_set_firmware_size_max
    - fu_strtoull
    - fu_udev_device_add_open_flag
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:288,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:290,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:299,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:300,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:300,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:306,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:306,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:306,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:309,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:312,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:313,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:314,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:322,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:325,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 337
    functionName: fu_mtd_device_erase
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_udev_device_ioctl_new
    - fu_chunk_array_length
    - g_prefix_error
    - g_set_error_literal
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_address
    - fu_ioctl_execute
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_erase(FuMtdDevice *self, GInputStream *stream,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:343,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:344,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:344,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:347,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:347,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:348,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:354,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:357,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:360,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:360,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:361,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:362,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:363,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:365,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:367,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 375
    functionName: fu_mtd_device_write
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_udev_device_seek
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_udev_device_pwrite
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_write(FuMtdDevice *self, FuChunkArray *chunks,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:381,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:382,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:382,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:385,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:389,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:392,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:395,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:395,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:396,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:396,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:397,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:399,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:401,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:403,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:406,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:407,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:407,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:408,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:409,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:411,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 419
    functionName: fu_mtd_device_verify
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_bytes_new_static
    - g_prefix_error
    - fu_bytes_compare
    - g_malloc0
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_address
    - fu_udev_device_pread
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_verify(FuMtdDevice *self, FuChunkArray *chunks,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:427,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:429,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:438,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:439,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:440,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:441,1
    - Dst: fu_mtd_device_write
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:444,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:444,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:446,1
    - Dst: fu_mtd_device_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:449,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:449,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 421
    functionDepth: 5
    functionLinenumber: 421
    functionLinenumberEnd: 455
    functionName: fu_mtd_device_write_verify
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_mtd_device_verify
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_mtd_device_write
    - fu_progress_set_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_write_verify(FuMtdDevice *self,\n\t\t\t   GInputStream
      *stream,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:460,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:461,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:463,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:466,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:467,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:470,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:471,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:473,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:474,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:474,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:475,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:476,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:477,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:479,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:481,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:484,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:488,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 489
    functionName: fu_mtd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - g_steal_pointer
    - g_bytes_new_take
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_malloc0
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - fu_device_get_firmware_size_max
    - g_autoptr
    - FU_UDEV_DEVICE
    - fu_chunk_get_address
    - fu_udev_device_pread
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_mtd_device_dump_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:500,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:503,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:506,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:508,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:509,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:514,1
    - Dst: fu_mtd_device_write_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:520,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:523,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:524,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:525,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:526,1
    - Dst: fu_mtd_device_erase
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:529,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:529,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:531,1
    - Dst: fu_mtd_device_write_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:534,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:534,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 540
    functionName: fu_mtd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_mtd_device_erase
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_mtd_device_write_verify
    - fu_device_get_firmware_size_max
    - fu_progress_set_id
    - g_autoptr
    - fu_input_stream_size
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:545,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:548,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:549,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:556,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:557,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 571
    functionName: fu_mtd_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_MTD_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:577,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:577,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:578,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:578,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:579,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:580,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:581,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:581,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:582,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:582,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:583,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:584,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:584,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:585,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMtdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 573
    functionDepth: 6
    functionLinenumber: 573
    functionLinenumberEnd: 586
    functionName: fu_mtd_device_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_init(FuMtdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 600
    functionName: fu_mtd_device_class_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_class_init(FuMtdDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:22,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:27,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:27,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:28,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:29,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:32,1
    - Dst: fu_ifd_image_get_access
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:33,1
    - Dst: fu_ifd_access_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:34,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:35,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:36,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:41,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:42,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuMtdIfdDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: fu_mtd_ifd_device_add_security_attr_desc
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fu_ifd_image_get_access
    - fu_ifd_region_to_string
    - fwupd_security_attr_set_result_success
    - fu_ifd_access_to_string
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - g_autoptr
    - fwupd_security_attr_add_metadata
    - fu_device_security_attr_new
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_add_security_attr_desc(FuMtdIfdDevice *self,
      FuSecurityAttrs *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:53,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:57,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:57,1
    - Dst: fu_mtd_ifd_device_add_security_attr_desc
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: fu_mtd_ifd_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_MTD_IFD_DEVICE
    - fu_mtd_ifd_device_add_security_attr_desc
    - fu_firmware_get_idx
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - region
    argTypes:
    - FuIfdRegion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: fu_mtd_ifd_device_region_to_name
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mtd_ifd_device_region_to_name(FuIfdRegion region)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:90,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:93,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:94,1
    - Dst: fu_mtd_ifd_device_region_to_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:94,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:95,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:95,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:96,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:96,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: fu_mtd_ifd_device_probe
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - fu_mtd_ifd_device_region_to_name
    - FU_MTD_IFD_DEVICE
    - fu_ifd_region_to_string
    - fu_device_set_logical_id
    - FU_FIRMWARE
    - fu_device_build_instance_id
    - fu_firmware_get_idx
    - fu_device_add_instance_str
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_ifd_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMtdIfdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: fu_mtd_ifd_device_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_init(FuMtdIfdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdIfdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: fu_mtd_ifd_device_class_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_class_init(FuMtdIfdDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:123,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parent
    - img
    argTypes:
    - FuDevice*
    - FuIfdImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: fu_mtd_ifd_device_new
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - g_object_new
    linkageType: ''
    returnType: FuMtdIfdDevice
    signature: 'FuMtdIfdDevice *

      fu_mtd_ifd_device_new(FuDevice *parent, FuIfdImage *img)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:18,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:22,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:23,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:27,1
    - Dst: g_rand_new_with_seed
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:27,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:32,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:33,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:35,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:38,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:44,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:45,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:46,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:50,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:51,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:52,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:52,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:52,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:57,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:57,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:58,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:62,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:63,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:67,1
    - Dst: g_rand_int_range
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:67,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:68,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:71,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:74,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:77,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:79,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:80,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:84,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 10
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: fu_test_mtd_device_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - g_object_new
    - fu_context_load_quirks
    - fu_context_new
    - fu_context_load_hwinfo
    - g_assert_cmpint
    - fu_device_write_firmware
    - fu_device_dump_firmware
    - fu_firmware_new_from_bytes
    - FU_UDEV_DEVICE
    - fu_device_get_name
    - fu_udev_device_get_device_file
    - g_error_matches
    - fu_byte_array_append_uint8
    - g_assert_nonnull
    - g_autoptr
    - fu_device_locker_new
    - g_file_test
    - g_bytes_new
    - g_byte_array_new
    - fu_progress_new
    - fu_progress_reset
    - fu_bytes_compare
    - g_rand_new_with_seed
    - g_assert_no_error
    - fu_device_get_firmware_size_max
    - g_rand_int_range
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:92,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:93,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:94,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:95,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:96,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:97,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:98,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:100,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:101,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:22,1
    - Dst: fu_cpu_device_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:22,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:25,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:26,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:27,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:29,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:29,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:31,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:33,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:33,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:35,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:37,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:38,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: fu_cpu_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_cpu_device_new
    - fu_plugin_cache_add
    - fu_plugin_device_add
    - fu_device_setup
    - fu_progress_add_step
    - fu_plugin_get_context
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCpuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: fu_cpu_plugin_init
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_cpu_plugin_init(FuCpuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:50,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:51,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:52,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:53,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: fu_cpu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_cpu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCpuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: fu_cpu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cpu_plugin_class_init(FuCpuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - signal
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: fu_cpu_helper_cet_segfault_sigaction
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void fu_cpu_helper_cet_segfault_sigaction(int signal, siginfo_t *si,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c:30,1
    - Dst: sigaction
      Src: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c:33,1
    - Dst: fu_cpu_helper_cet_testfn1
      Src: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: main
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c
    functionUses: 5
    functionsReached:
    - sigaction
    - sigemptyset
    - fu_cpu_helper_cet_testfn1
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuCpuDevice*
    - FuCpuDeviceFlag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: fu_cpu_device_has_flag
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_has_flag(FuCpuDevice *self, FuCpuDeviceFlag
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CPU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:39,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:40,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:43,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:44,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:47,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:48,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:51,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:52,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: fu_cpu_device_to_string
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_cpu_device_has_flag
    - FU_CPU_DEVICE
    - fwupd_codec_string_append_bool
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:63,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:63,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:67,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:71,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:73,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:75,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:77,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:83,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:87,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:89,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:93,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:95,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:97,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:99,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:101,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:103,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:107,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:109,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 1
    argNames:
    - vendor
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 112
    functionName: fu_cpu_device_convert_vendor
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cpu_device_convert_vendor(const gchar *vendor)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:117,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:118,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:119,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:120,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: fu_cpu_device_init
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_init(FuCpuDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:136,1
    - Dst: fu_device_add_instance_u4
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:152,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:153,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:154,1
    - Dst: fu_device_add_instance_u4
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:155,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:156,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:163,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 168
    functionName: fu_cpu_device_add_instance_ids
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_cpuid
    - fu_device_add_instance_u8
    - fu_device_add_instance_u4
    - fu_device_build_instance_id
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_add_instance_ids(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:177,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:179,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:188,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:197,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:206,1
    - Dst: fu_cpu_device_convert_vendor
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 208
    functionName: fu_cpu_device_probe_manufacturer_id
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_cpu_device_convert_vendor
    - fu_device_set_vendor
    - fu_memcpy_safe
    - fu_cpuid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_probe_manufacturer_id(FuDevice *device, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:220,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:222,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:231,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:240,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:249,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 261
    functionName: fu_cpu_device_probe_model
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_cpuid
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_probe_model(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_CPU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:266,1
    - Dst: fu_cpuid
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:271,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 286
    functionName: fu_cpu_device_probe_extended_features
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - FU_CPU_DEVICE
    - fu_cpuid
    - fu_cpu_get_vendor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_probe_extended_features(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpu_device_probe_manufacturer_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:291,1
    - Dst: fu_cpu_device_probe_model
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:293,1
    - Dst: fu_cpu_device_probe_extended_features
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:295,1
    - Dst: fu_cpu_device_add_instance_ids
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: fu_cpu_device_probe
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_cpu_device_probe_extended_features
    - fu_cpu_device_add_instance_ids
    - fu_cpu_device_probe_model
    - fu_cpu_device_probe_manufacturer_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_probe(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:305,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:307,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:309,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:312,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:316,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:318,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:320,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 327
    functionName: fu_cpu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata
    - g_set_error_literal
    - fu_device_set_metadata_integer
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpu_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:332,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:335,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:336,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:337,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:339,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:341,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:342,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:343,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:348,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:349,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuCpuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 358
    functionName: fu_cpu_device_add_security_attrs_cet_enabled
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fu_cpu_device_has_flag
    - FU_DEVICE
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_device_security_attr_new
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_security_attrs_cet_enabled(FuCpuDevice *self,
      FuSecurityAttrs *attrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:368,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:372,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:375,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:379,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:380,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:381,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:382,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:385,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:386,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:387,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:388,1
    - Dst: g_spawn_check_wait_status
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:391,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:392,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:393,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuCpuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: fu_cpu_device_add_security_attrs_cet_active
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - g_spawn_check_wait_status
    - g_build_filename
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - g_spawn_command_line_sync
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - g_autoptr
    - fu_security_attrs_get_by_appstream_id
    - fu_device_security_attr_new
    - fu_path_from_kind
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_security_attrs_cet_active(FuCpuDevice *self,
      FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:404,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:407,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:408,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:409,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:412,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:413,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuCpuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: fu_cpu_device_add_security_attrs_intel_tme
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fu_cpu_device_has_flag
    - FU_DEVICE
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_device_security_attr_new
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_security_attrs_intel_tme(FuCpuDevice *self,
      FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:424,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:427,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:428,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:429,1
    - Dst: fu_cpu_device_has_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:432,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:433,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuCpuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 439
    functionName: fu_cpu_device_add_security_attrs_smap
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_security_attrs_append
    - fwupd_security_attr_set_result_success
    - fu_cpu_device_has_flag
    - FU_DEVICE
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_device_security_attr_new
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_security_attrs_smap(FuCpuDevice *self, FuSecurityAttrs
      *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_CPU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:445,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:448,1
    - Dst: fu_cpu_device_add_security_attrs_intel_tme
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:449,1
    - Dst: fu_cpu_device_add_security_attrs_cet_enabled
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:450,1
    - Dst: fu_cpu_device_add_security_attrs_cet_active
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:451,1
    - Dst: fu_cpu_device_add_security_attrs_smap
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 453
    functionName: fu_cpu_device_add_x86_64_security_attrs
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_cpu_device_add_security_attrs_smap
    - fu_cpu_device_add_security_attrs_intel_tme
    - fu_cpu_get_vendor
    - fu_cpu_device_add_security_attrs_cet_active
    - fu_cpu_device_add_security_attrs_cet_enabled
    - FU_CPU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_x86_64_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:462,1
    - Dst: uname
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:463,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:464,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:468,1
    - Dst: fu_cpu_device_add_x86_64_security_attrs
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: fu_cpu_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_cpu_device_add_x86_64_security_attrs
    - memset
    - g_strcmp0
    - uname
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:476,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: fu_cpu_device_convert_version
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cpu_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCpuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: fu_cpu_device_class_init
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cpu_device_class_init(FuCpuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-device.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: fu_cpu_device_new
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCpuDevice
    signature: 'FuCpuDevice *

      fu_cpu_device_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:36,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: fu_steelseries_fizz_gen2_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_DEVICE
    - fu_steelseries_device_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen2_request(FuSteelseriesFizzImpl *self,
      const GByteArray *buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:42,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: fu_steelseries_fizz_gen2_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_response
    - FU_STEELSERIES_DEVICE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_gen2_response(FuSteelseriesFizzImpl *self, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:49,1
    - Dst: fu_struct_steelseries_fizz_version2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:52,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:54,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:54,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:56,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:56,1
    - Dst: fu_struct_steelseries_version2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:60,1
    - Dst: fu_struct_steelseries_version2_res_get_version_device
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:64,1
    - Dst: fu_struct_steelseries_version2_res_get_version_receiver
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:68,1
    - Dst: strlen
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:75,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:86,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: fu_steelseries_fizz_gen2_get_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_steelseries_device_request
    - strlen
    - fu_steelseries_device_response
    - fu_struct_steelseries_version2_res_get_version_receiver
    - g_strdup_printf
    - fu_struct_steelseries_version2_res_parse
    - fu_struct_steelseries_fizz_version2_req_new
    - FU_STEELSERIES_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_struct_steelseries_version2_res_get_version_device
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_gen2_get_version(FuSteelseriesFizzImpl *self, gboolean tunnel,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:105,1
    - Dst: fu_struct_steelseries_battery_level2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:108,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:110,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:112,1
    - Dst: fu_struct_steelseries_battery_level2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:116,1
    - Dst: fu_struct_steelseries_battery_level2_res_get_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - tunnel
    - level
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: fu_steelseries_fizz_gen2_get_battery_level
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_gen2_request
    - fu_struct_steelseries_battery_level2_req_new
    - fu_struct_steelseries_battery_level2_res_get_level
    - fu_steelseries_fizz_gen2_response
    - g_autoptr
    - fu_struct_steelseries_battery_level2_res_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen2_get_battery_level(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   gboolean tunnel,\n\t\t\t\t\t   guint8 *level,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - is_receiver
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: fu_steelseries_fizz_gen2_get_fs_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_steelseries_fizz_gen2_get_fs_id(FuSteelseriesFizzImpl *self,
      gboolean is_receiver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - is_receiver
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: fu_steelseries_fizz_gen2_get_file_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_steelseries_fizz_gen2_get_file_id(FuSteelseriesFizzImpl *self,
      gboolean is_receiver)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:144,1
    - Dst: fu_struct_steelseries_connection_status2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:147,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:149,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:151,1
    - Dst: fu_struct_steelseries_connection_status2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:154,1
    - Dst: fu_struct_steelseries_connection_status2_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 173
    functionName: fu_steelseries_fizz_gen2_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_gen2_request
    - fu_struct_steelseries_connection_status2_req_new
    - fu_steelseries_fizz_gen2_response
    - fu_struct_steelseries_connection_status2_res_parse
    - g_autoptr
    - fu_struct_steelseries_connection_status2_res_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen2_get_paired_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   guint8 *status,\n\t\t\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:180,1
    - Dst: fu_struct_steelseries_connection_status2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:183,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:185,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:187,1
    - Dst: fu_struct_steelseries_connection_status2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:190,1
    - Dst: fu_struct_steelseries_connection_status2_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 205
    functionName: fu_steelseries_fizz_gen2_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_gen2_request
    - fu_struct_steelseries_connection_status2_req_new
    - fu_steelseries_fizz_gen2_response
    - fu_struct_steelseries_connection_status2_res_parse
    - g_autoptr
    - fu_struct_steelseries_connection_status2_res_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen2_get_connection_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t       FuSteelseriesFizzConnectionStatus *status,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:211,1
    - Dst: fu_struct_steelseries_serial2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:213,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:215,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:215,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:217,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:217,1
    - Dst: fu_struct_steelseries_serial2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:220,1
    - Dst: fu_struct_steelseries_serial2_res_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:223,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:225,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 232
    functionName: fu_steelseries_fizz_gen2_get_serial
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - g_steal_pointer
    - fu_steelseries_device_response
    - fu_struct_steelseries_serial2_res_parse
    - fu_struct_steelseries_serial2_req_new
    - fu_struct_steelseries_serial2_res_get_serial
    - FU_STEELSERIES_DEVICE
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_gen2_get_serial(FuSteelseriesFizzImpl *self, gboolean tunnel,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:237,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:241,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:241,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:241,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:244,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:247,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:250,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:251,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:252,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:253,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:254,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:255,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 271
    functionName: fu_steelseries_fizz_gen2_is_updatable
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fwupd_request_set_kind
    - fu_device_get_composite_id
    - g_strdup_printf
    - fwupd_request_add_flag
    - g_set_error_literal
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_autoptr
    - fu_device_get_id
    - g_strcmp0
    - fu_device_get_name
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen2_is_updatable(FuSteelseriesFizzImpl
      *self, FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:277,1
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:278,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:278,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: fu_steelseries_fizz_gen2_probe
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE_CLASS
    - fu_steelseries_device_set_iface_idx_offset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen2_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuSteelseriesFizzImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: fu_steelseries_fizz_gen2_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen2_impl_iface_init(FuSteelseriesFizzImplInterface
      *iface)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_GEN2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:305,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:308,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:309,1
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:312,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:312,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 318
    functionName: fu_steelseries_fizz_gen2_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_FIZZ_GEN2
    - fu_steelseries_device_set_iface_idx_offset
    - FU_STEELSERIES_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen2_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \     const gchar *key,\n\t\t\t\t      const gchar *value,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzGen2Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: fu_steelseries_fizz_gen2_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen2_class_init(FuSteelseriesFizzGen2Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:332,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzGen2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: fu_steelseries_fizz_gen2_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_set_iface_idx_offset
    - FU_STEELSERIES_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen2_init(FuSteelseriesFizzGen2 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:28,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: fu_steelseries_fizz_gen1_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_DEVICE
    - fu_steelseries_device_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen1_request(FuSteelseriesFizzImpl *self,
      const GByteArray *buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:34,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: fu_steelseries_fizz_gen1_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_response
    - FU_STEELSERIES_DEVICE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_gen1_response(FuSteelseriesFizzImpl *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:42,1
    - Dst: fu_struct_steelseries_fizz_version_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:47,1
    - Dst: fu_struct_steelseries_fizz_version_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:48,1
    - Dst: fu_steelseries_fizz_gen1_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:49,1
    - Dst: fu_steelseries_fizz_gen1_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:51,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:56,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: fu_steelseries_fizz_gen1_get_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_steelseries_fizz_gen1_response
    - fu_struct_steelseries_fizz_version_req_new
    - fu_steelseries_fizz_gen1_request
    - FU_DEVICE
    - fu_memstrsafe
    - g_autoptr
    - fu_struct_steelseries_fizz_version_req_set_cmd
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_gen1_get_version(FuSteelseriesFizzImpl *self, gboolean tunnel,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - is_receiver
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_steelseries_fizz_gen1_get_fs_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_steelseries_fizz_gen1_get_fs_id(FuSteelseriesFizzImpl *self,
      gboolean is_receiver)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - is_receiver
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_steelseries_fizz_gen1_get_file_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_steelseries_fizz_gen1_get_file_id(FuSteelseriesFizzImpl *self,
      gboolean is_receiver)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:81,1
    - Dst: fu_struct_steelseries_paired_status_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:84,1
    - Dst: fu_steelseries_fizz_gen1_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:86,1
    - Dst: fu_steelseries_fizz_gen1_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:88,1
    - Dst: fu_struct_steelseries_paired_status_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:92,1
    - Dst: fu_struct_steelseries_paired_status_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: fu_steelseries_fizz_gen1_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_paired_status_req_new
    - fu_steelseries_fizz_gen1_response
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_paired_status_res_parse
    - g_autoptr
    - fu_struct_steelseries_paired_status_res_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen1_get_paired_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   guint8 *status,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:104,1
    - Dst: fu_struct_steelseries_connection_status_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:107,1
    - Dst: fu_steelseries_fizz_gen1_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:109,1
    - Dst: fu_steelseries_fizz_gen1_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:111,1
    - Dst: fu_struct_steelseries_connection_status_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:114,1
    - Dst: fu_struct_steelseries_connection_status_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: fu_steelseries_fizz_gen1_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_connection_status_req_new
    - fu_steelseries_fizz_gen1_response
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_connection_status_res_parse
    - fu_struct_steelseries_connection_status_res_get_status
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen1_get_connection_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t       FuSteelseriesFizzConnectionStatus *status,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:133,1
    - Dst: fu_struct_steelseries_battery_level_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:138,1
    - Dst: fu_struct_steelseries_battery_level_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:139,1
    - Dst: fu_steelseries_fizz_gen1_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:140,1
    - Dst: fu_steelseries_fizz_gen1_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:142,1
    - Dst: fu_struct_steelseries_battery_level_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:146,1
    - Dst: fu_struct_steelseries_battery_level_res_get_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - tunnel
    - level
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 164
    functionName: fu_steelseries_fizz_gen1_get_battery_level
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_battery_level_res_parse
    - fu_steelseries_fizz_gen1_response
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_battery_level_res_get_level
    - fu_struct_steelseries_battery_level_req_set_cmd
    - g_autoptr
    - fu_struct_steelseries_battery_level_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_gen1_get_battery_level(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   gboolean tunnel,\n\t\t\t\t\t   guint8 *level,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:170,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: fu_steelseries_fizz_gen1_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen1_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuSteelseriesFizzImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: fu_steelseries_fizz_gen1_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen1_impl_iface_init(FuSteelseriesFizzImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzGen1Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: fu_steelseries_fizz_gen1_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen1_class_init(FuSteelseriesFizzGen1Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:201,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzGen1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: fu_steelseries_fizz_gen1_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_set_iface_idx_offset
    - FU_STEELSERIES_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_gen1_init(FuSteelseriesFizzGen1 *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:40,1
    - Dst: fu_struct_steelseries_sonic_wireless_status_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:43,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:45,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:45,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:47,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:47,1
    - Dst: fu_struct_steelseries_sonic_wireless_status_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:50,1
    - Dst: fu_struct_steelseries_sonic_wireless_status_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicWirelessStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: fu_steelseries_sonic_wireless_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_wireless_status_res_parse
    - fu_steelseries_device_response
    - fu_struct_steelseries_sonic_wireless_status_req_new
    - FU_STEELSERIES_DEVICE
    - g_autoptr
    - fu_struct_steelseries_sonic_wireless_status_res_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_wireless_status(FuSteelseriesSonic *self,\n\t\t\t\t
      \    FuSteelseriesSonicWirelessStatus *status,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:65,1
    - Dst: fu_struct_steelseries_sonic_battery_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:68,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:70,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:70,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:72,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:72,1
    - Dst: fu_struct_steelseries_sonic_battery_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:76,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:79,1
    - Dst: fu_struct_steelseries_sonic_battery_res_get_value
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesSonic*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 7
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: fu_steelseries_sonic_ensure_battery_state
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_device_set_battery_level
    - fu_struct_steelseries_sonic_battery_res_parse
    - fu_struct_steelseries_sonic_battery_req_new
    - fu_steelseries_device_response
    - fu_struct_steelseries_sonic_battery_res_get_value
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_sonic_ensure_battery_state(FuSteelseriesSonic
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:94,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:97,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:99,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:102,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:102,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:103,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:103,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:104,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:104,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:107,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:107,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:108,1
    - Dst: fu_struct_steelseries_sonic_read_from_ram_res_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:114,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:115,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:115,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:116,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - chip
    - chk
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 123
    functionName: fu_steelseries_sonic_read_from_ram_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_steelseries_device_request
    - fu_chunk_get_data_out
    - fu_struct_steelseries_sonic_read_from_ram_req_set_offset
    - fu_steelseries_device_response
    - fu_memcpy_safe
    - fu_struct_steelseries_sonic_read_from_ram_req_set_opcode
    - fu_struct_steelseries_sonic_read_from_ram_res_parse
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_read_from_ram_req_set_size
    - g_autoptr
    - fu_struct_steelseries_sonic_read_from_ram_res_get_data
    - fu_chunk_get_address
    - fu_struct_steelseries_sonic_read_from_ram_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_read_from_ram_chunk(FuSteelseriesSonic
      *self,\n\t\t\t\t\t FuSteelseriesSonicChip chip,\n\t\t\t\t\t FuChunk *chk,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:134,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:137,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:142,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:145,1
    - Dst: fu_steelseries_sonic_read_from_ram_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:146,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - self
    - chip
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint32
    - guint8*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 153
    functionName: fu_steelseries_sonic_read_from_ram
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - fu_steelseries_sonic_read_from_ram_chunk
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_read_from_ram(FuSteelseriesSonic *self,\n\t\t\t\t
      \  FuSteelseriesSonicChip chip,\n\t\t\t\t   guint32 address,\n\t\t\t\t   guint8
      *buf,\n\t\t\t\t   guint16 bufsz,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:162,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:163,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:165,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:168,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:170,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:171,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:172,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:172,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:173,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:173,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:177,1
    - Dst: fu_steelseries_sonic_read_from_ram
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:179,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:181,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:182,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - chip
    - chk
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 186
    functionName: fu_steelseries_sonic_read_from_flash_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_sonic_read_from_flash_req_set_chipid
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_sonic_read_from_flash_req_new
    - fu_steelseries_device_request
    - fu_chunk_get_data_out
    - fu_struct_steelseries_sonic_read_from_flash_req_set_size
    - fu_struct_steelseries_sonic_read_from_flash_req_set_opcode
    - fu_struct_steelseries_sonic_read_from_flash_req_set_offset
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_steelseries_sonic_read_from_ram
    - fu_chunk_get_address
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_read_from_flash_chunk(FuSteelseriesSonic
      *self,\n\t\t\t\t\t   FuSteelseriesSonicChip chip,\n\t\t\t\t\t   FuChunk *chk,\n\t\t\t\t\t
      \  FuProgress *progress,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:197,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:199,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:204,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:205,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:207,1
    - Dst: fu_steelseries_sonic_read_from_flash_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:208,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:211,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - self
    - chip
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: fu_steelseries_sonic_read_from_flash
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_steelseries_sonic_read_from_flash_chunk
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_read_from_flash(FuSteelseriesSonic *self,\n\t\t\t\t
      \    FuSteelseriesSonicChip chip,\n\t\t\t\t     guint32 address,\n\t\t\t\t     guint8
      *buf,\n\t\t\t\t     gsize bufsz,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:227,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:228,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:229,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:232,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:232,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:233,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:233,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:234,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:235,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:236,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:239,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:239,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - chip
    - chk
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: fu_steelseries_sonic_write_to_ram_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_write_to_ram_req_set_size
    - fu_struct_steelseries_sonic_write_to_ram_req_set_data
    - fu_struct_steelseries_sonic_write_to_ram_req_new
    - fu_struct_steelseries_sonic_write_to_ram_req_set_opcode
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_struct_steelseries_sonic_write_to_ram_req_set_offset
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_to_ram_chunk(FuSteelseriesSonic
      *self,\n\t\t\t\t\tFuSteelseriesSonicChip chip,\n\t\t\t\t\tFuChunk *chk,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:255,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:258,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:262,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:263,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:264,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:264,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:266,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:269,1
    - Dst: fu_steelseries_sonic_write_to_ram_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:272,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - self
    - chip
    - address
    - fw
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint16
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 279
    functionName: fu_steelseries_sonic_write_to_ram
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_steelseries_sonic_write_to_ram_chunk
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_to_ram(FuSteelseriesSonic *self,\n\t\t\t\t
      \ FuSteelseriesSonicChip chip,\n\t\t\t\t  guint16 address,\n\t\t\t\t  GBytes
      *fw,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:289,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:290,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:292,1
    - Dst: fu_steelseries_sonic_write_to_ram
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:293,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:295,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:301,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:304,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:306,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:307,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:308,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:308,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:309,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:309,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - self
    - chip
    - chk
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 315
    functionName: fu_steelseries_sonic_write_to_flash_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_sonic_write_to_flash_req_set_size
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_write_to_flash_req_set_opcode
    - fu_steelseries_sonic_write_to_ram
    - fu_struct_steelseries_sonic_write_to_flash_req_new
    - fu_struct_steelseries_sonic_write_to_flash_req_set_chipid
    - fu_struct_steelseries_sonic_write_to_flash_req_set_offset
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_chunk_get_address
    - fu_chunk_get_bytes
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_to_flash_chunk(FuSteelseriesSonic
      *self,\n\t\t\t\t\t  FuSteelseriesSonicChip chip,\n\t\t\t\t\t  FuChunk *chk,\n\t\t\t\t\t
      \ FuProgress *progress,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:325,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:327,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:331,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:332,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:333,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:333,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:335,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:338,1
    - Dst: fu_steelseries_sonic_write_to_flash_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:341,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:344,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - self
    - chip
    - address
    - fw
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint32
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 352
    functionName: fu_steelseries_sonic_write_to_flash
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_progress_get_child
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_step_done
    - fu_steelseries_sonic_write_to_flash_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_to_flash(FuSteelseriesSonic *self,\n\t\t\t\t
      \   FuSteelseriesSonicChip chip,\n\t\t\t\t    guint32 address,\n\t\t\t\t    GBytes
      *fw,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:360,1
    - Dst: fu_struct_steelseries_sonic_erase_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:361,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:363,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:364,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:365,1
    - Dst: fu_struct_steelseries_sonic_erase_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:367,1
    - Dst: fu_struct_steelseries_sonic_erase_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:369,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:370,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:370,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:374,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 379
    functionName: fu_steelseries_sonic_erase
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_device_sleep_full
    - fu_progress_get_child
    - fu_steelseries_device_request
    - fu_progress_step_done
    - fu_struct_steelseries_sonic_erase_req_set_opcode
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_struct_steelseries_sonic_erase_req_set_chipid
    - fu_progress_set_steps
    - fu_struct_steelseries_sonic_erase_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_erase(FuSteelseriesSonic *self,\n\t\t\t
      \  FuSteelseriesSonicChip chip,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:387,1
    - Dst: fu_struct_steelseries_sonic_restart_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:388,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:390,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:391,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:392,1
    - Dst: fu_struct_steelseries_sonic_restart_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:394,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:397,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:397,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 406
    functionName: fu_steelseries_sonic_restart
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_restart_req_set_opcode
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_struct_steelseries_sonic_restart_req_new
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_restart(FuSteelseriesSonic *self,\n\t\t\t
      \    FuSteelseriesSonicChip chip,\n\t\t\t     FuProgress *progress,\n\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:411,1
    - Dst: fu_steelseries_sonic_wireless_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:414,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:415,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:418,1
    - Dst: fu_steelseries_sonic_wireless_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:418,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 426
    functionName: fu_steelseries_sonic_wait_for_connect_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_steelseries_sonic_wireless_status_to_string
    - FU_STEELSERIES_SONIC
    - fu_steelseries_sonic_wireless_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_sonic_wait_for_connect_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:435,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:436,1
    - Dst: fu_steelseries_sonic_wireless_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:439,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:440,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:443,1
    - Dst: fu_steelseries_sonic_wireless_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:443,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:450,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:453,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:453,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:454,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:455,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:456,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:457,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:458,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:461,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:467,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - self
    - delay
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 475
    functionName: fu_steelseries_sonic_wait_for_connect
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_debug
    - fwupd_request_set_kind
    - g_prefix_error
    - g_strdup_printf
    - fu_steelseries_sonic_wireless_status_to_string
    - FU_DEVICE
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_set_error_literal
    - g_autoptr
    - fu_device_get_name
    - fu_steelseries_sonic_wireless_status
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_wait_for_connect(FuSteelseriesSonic
      *self,\n\t\t\t\t      guint delay,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:482,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:487,1
    - Dst: fu_steelseries_sonic_restart
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:491,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:491,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:492,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:495,1
    - Dst: fu_steelseries_sonic_restart
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:499,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:499,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:500,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:503,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:506,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:508,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:509,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:510,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:511,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:512,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:513,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:514,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 520
    functionName: fu_steelseries_sonic_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fwupd_request_set_kind
    - g_prefix_error
    - fu_progress_add_step
    - g_strdup_printf
    - fwupd_request_add_flag
    - FU_DEVICE
    - fu_steelseries_sonic_restart
    - fu_progress_set_id
    - fwupd_request_set_id
    - g_autoptr
    - fwupd_request_set_message
    - FU_STEELSERIES_SONIC
    - fu_device_add_flag
    - fu_device_get_name
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_sonic_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:528,1
    - Dst: fu_steelseries_sonic_wait_for_connect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:529,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:530,1
    - Dst: fu_steelseries_sonic_ensure_battery_state
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:534,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 522
    functionDepth: 8
    functionLinenumber: 522
    functionLinenumberEnd: 541
    functionName: fu_steelseries_sonic_prepare
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_remove_delay
    - FU_STEELSERIES_SONIC
    - fu_steelseries_sonic_ensure_battery_state
    - fu_steelseries_sonic_wait_for_connect
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_prepare(FuDevice *device,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:554,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:556,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:557,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:561,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:566,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:569,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:572,1
    - Dst: fu_steelseries_sonic_erase
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:575,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:579,1
    - Dst: fu_steelseries_sonic_write_to_flash
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:580,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:584,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:586,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - self
    - chip
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 543
    functionDepth: 7
    functionLinenumber: 543
    functionLinenumberEnd: 593
    functionName: fu_steelseries_sonic_write_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_data_safe
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - g_prefix_error
    - fu_progress_add_step
    - fu_steelseries_sonic_write_to_flash
    - fu_progress_set_id
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_steelseries_sonic_erase
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_chip(FuSteelseriesSonic *self,\n\t\t\t\tFuSteelseriesSonicChip
      chip,\n\t\t\t\tFuFirmware *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:602,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:605,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:606,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:609,1
    - Dst: fu_steelseries_sonic_read_from_flash
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:610,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:615,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:617,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:620,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:622,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:622,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 595
    functionDepth: 7
    functionLinenumber: 595
    functionLinenumberEnd: 624
    functionName: fu_steelseries_sonic_read_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - g_bytes_new_take
    - g_prefix_error
    - g_malloc0
    - fu_firmware_new_from_bytes
    - fu_steelseries_sonic_read_from_flash
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_set_steps
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_steelseries_sonic_read_chip(FuSteelseriesSonic *self,\n\t\t\t
      \      FuSteelseriesSonicChip chip,\n\t\t\t       FuProgress *progress,\n\t\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:633,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:636,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:638,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:639,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:641,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:644,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:647,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:647,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:649,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:652,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:655,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:656,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:658,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:659,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - self
    - chip
    - firmware
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 626
    functionDepth: 8
    functionLinenumber: 626
    functionLinenumberEnd: 666
    functionName: fu_steelseries_sonic_verify_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - g_prefix_error
    - g_bytes_get_size
    - fu_progress_add_step
    - fu_bytes_compare
    - fu_steelseries_sonic_read_chip
    - fu_progress_set_id
    - g_autoptr
    - fu_dump_raw
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_verify_chip(FuSteelseriesSonic *self,\n\t\t\t\t
      FuSteelseriesSonicChip chip,\n\t\t\t\t FuFirmware *firmware,\n\t\t\t\t FuProgress
      *progress,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:671,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:673,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:673,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:674,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:675,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:676,1
    - Dst: fu_steelseries_sonic_wait_for_connect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:678,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:679,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:684,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:685,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:686,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:687,1
    - Dst: fu_archive_firmware_set_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:689,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:689,1
    - Dst: fu_archive_firmware_set_compression
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:690,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:690,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:696,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:696,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:699,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:700,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:701,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:706,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:706,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:709,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:710,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:711,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:716,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:716,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:719,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:720,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:721,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:724,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 668
    functionDepth: 8
    functionLinenumber: 668
    functionLinenumberEnd: 726
    functionName: fu_steelseries_sonic_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_firmware_set_id
    - fu_progress_step_done
    - fu_archive_firmware_new
    - fu_firmware_add_image
    - fu_archive_firmware_set_format
    - g_steal_pointer
    - fu_archive_firmware_set_compression
    - fu_progress_add_step
    - fu_steelseries_sonic_read_chip
    - fu_progress_set_id
    - fu_device_get_remove_delay
    - g_autoptr
    - FU_STEELSERIES_SONIC
    - FU_ARCHIVE_FIRMWARE
    - fu_steelseries_sonic_wait_for_connect
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_steelseries_sonic_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:735,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:738,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:739,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:740,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:741,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:742,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:743,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:744,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:748,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:751,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:755,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:756,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:759,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:762,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:766,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:769,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:773,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:774,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:777,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:780,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:784,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:787,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:791,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:792,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:795,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 728
    functionDepth: 9
    functionLinenumber: 728
    functionLinenumberEnd: 802
    functionName: fu_steelseries_sonic_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_progress_add_step
    - fu_steelseries_sonic_verify_chip
    - fu_steelseries_sonic_write_chip
    - fu_progress_set_id
    - FU_STEELSERIES_SONIC
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:811,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:813,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:817,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:817,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:818,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:819,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:824,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:825,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:826,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:830,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:834,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:839,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 848
    functionName: fu_steelseries_sonic_parse_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - g_set_error
    - g_debug
    - fu_memread_uint32_safe
    - g_bytes_get_size
    - fu_firmware_get_id
    - g_autoptr
    - fu_crc32
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_sonic_parse_firmware(FuFirmware *firmware,\n\t\t\t\t
      \   FuFirmwareParseFlags flags,\n\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:857,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:858,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:859,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:860,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:862,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:863,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:867,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:873,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:877,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:883,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:887,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:893,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 850
    functionDepth: 5
    functionLinenumber: 850
    functionLinenumberEnd: 898
    functionName: fu_steelseries_sonic_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_archive_firmware_new
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_steelseries_sonic_parse_firmware
    - fu_firmware_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_steelseries_sonic_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:903,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:904,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:905,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:906,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:907,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: fu_steelseries_sonic_set_progress
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_sonic_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesSonicClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 922
    functionName: fu_steelseries_sonic_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_sonic_class_init(FuSteelseriesSonicClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:927,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:927,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:929,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:929,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:930,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:930,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:931,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:931,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:932,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:932,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:933,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:933,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:934,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:934,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:935,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:935,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:936,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:936,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:937,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:937,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:938,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:938,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:939,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:939,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:940,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesSonic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 924
    functionDepth: 7
    functionLinenumber: 924
    functionLinenumberEnd: 941
    functionName: fu_steelseries_sonic_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_request_flag
    - fu_device_set_battery_level
    - fu_device_add_private_flag
    - fu_device_set_battery_threshold
    - fu_device_add_protocol
    - fu_steelseries_device_set_iface_idx_offset
    - fu_device_add_flag
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_sonic_init(FuSteelseriesSonic *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:27,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:31,1
    - Dst: fu_steelseries_fizz_impl_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:35,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:35,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:38,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:41,1
    - Dst: fu_steelseries_fizz_connection_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:42,1
    - Dst: fu_steelseries_fizz_impl_get_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:50,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:50,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:58,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:65,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:66,1
    - Dst: fu_steelseries_fizz_impl_get_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:70,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:73,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:75,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - device
    - reached
    - error
    argTypes:
    - FuDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 82
    functionName: fu_steelseries_fizz_tunnel_ping
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version
    - g_debug
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_impl_get_battery_level
    - g_steal_pointer
    - g_error_matches
    - fu_device_set_battery_level
    - g_prefix_error
    - fu_device_get_id
    - g_set_error_literal
    - fu_steelseries_fizz_connection_status_to_string
    - fu_steelseries_fizz_impl_get_connection_status
    - g_autoptr
    - fu_steelseries_fizz_impl_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_ping(FuDevice *device, gboolean
      *reached, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:89,1
    - Dst: fu_steelseries_fizz_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:93,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:93,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:96,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:99,1
    - Dst: fu_steelseries_fizz_connection_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:102,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:107,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 8
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: fu_steelseries_fizz_tunnel_wait_for_reconnect_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_tunnel_ping
    - g_set_error
    - g_debug
    - fu_steelseries_fizz_get_connection_status
    - FU_STEELSERIES_FIZZ
    - g_prefix_error
    - fu_steelseries_fizz_connection_status_to_string
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_tunnel_wait_for_reconnect_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - delay
    - error
    argTypes:
    - FuDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: fu_steelseries_fizz_tunnel_wait_for_reconnect
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_wait_for_reconnect(FuDevice *device,
      guint delay, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:133,1
    - Dst: fu_steelseries_fizz_impl_is_updatable
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:136,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:136,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:139,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:143,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:143,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:149,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: fu_steelseries_fizz_tunnel_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_STEELSERIES_FIZZ_IMPL
    - FU_STEELSERIES_FIZZ
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_device_add_flag
    - fu_steelseries_fizz_impl_is_updatable
    - fu_steelseries_fizz_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:159,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:161,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:164,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:165,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:166,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:168,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:168,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:172,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:173,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:176,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:176,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:178,1
    - Dst: fu_steelseries_fizz_tunnel_wait_for_reconnect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:181,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:181,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 188
    functionName: fu_steelseries_fizz_tunnel_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_steelseries_fizz_tunnel_wait_for_reconnect
    - FU_STEELSERIES_FIZZ
    - g_prefix_error
    - fu_progress_add_step
    - fu_device_get_id
    - fu_progress_set_id
    - g_autoptr
    - fu_device_get_remove_delay
    - fu_steelseries_fizz_reset
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:197,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:202,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:202,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:204,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:205,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:206,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:210,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:211,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:211,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:212,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:212,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:213,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:214,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:221,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:222,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 190
    functionDepth: 6
    functionLinenumber: 190
    functionLinenumberEnd: 235
    functionName: fu_steelseries_fizz_tunnel_probe
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_proxy
    - fu_device_set_version_format
    - fu_device_get_version_format
    - fu_usb_device_get_release
    - fu_device_get_vid
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_USB_DEVICE
    - fu_device_set_version_raw
    - fu_device_add_instance_str
    - fu_device_build_instance_id_full
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_probe(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:243,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:246,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:252,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:253,1
    - Dst: fu_steelseries_fizz_impl_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:260,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:260,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:264,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:266,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 237
    functionDepth: 8
    functionLinenumber: 237
    functionLinenumberEnd: 278
    functionName: fu_steelseries_fizz_tunnel_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_tunnel_ping
    - fu_device_get_proxy
    - g_debug
    - FU_STEELSERIES_FIZZ_IMPL
    - g_set_error_literal
    - fu_device_add_flag
    - g_autoptr
    - fu_device_get_id
    - fu_device_set_serial
    - fu_steelseries_fizz_impl_get_serial
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_setup(FuDevice *device, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:283,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:291,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:293,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:293,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:295,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:295,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:302,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:307,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:312,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:319,1
    - Dst: fu_steelseries_fizz_get_crc32_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:321,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:321,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:328,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:338,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 345
    functionName: fu_steelseries_fizz_tunnel_poll
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_tunnel_ping
    - fu_device_get_proxy
    - g_warning
    - g_debug
    - FU_STEELSERIES_FIZZ_IMPL
    - FU_STEELSERIES_FIZZ
    - g_prefix_error
    - fu_steelseries_fizz_impl_get_file_id
    - fu_steelseries_fizz_get_crc32_fs
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_device_add_flag
    - fu_device_remove_flag
    - fu_device_get_name
    - g_autoptr
    - fu_device_get_parent
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_poll(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:354,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:355,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:359,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:359,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:361,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:361,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:367,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:368,1
    - Dst: fu_steelseries_fizz_write_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:370,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:370,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:375,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 383
    functionName: fu_steelseries_fizz_tunnel_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_STEELSERIES_FIZZ_IMPL
    - FU_STEELSERIES_FIZZ
    - fu_steelseries_fizz_impl_get_file_id
    - fu_progress_add_step
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_progress_set_id
    - fu_device_get_parent
    - fu_steelseries_fizz_write_firmware_fs
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_tunnel_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:388,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:392,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:394,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:394,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:396,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:396,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:403,1
    - Dst: fu_steelseries_fizz_read_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:405,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:405,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:409,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:410,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 418
    functionName: fu_steelseries_fizz_tunnel_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_read_firmware_fs
    - g_steal_pointer
    - FU_STEELSERIES_FIZZ
    - fu_steelseries_fizz_impl_get_file_id
    - fu_progress_add_step
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_progress_set_id
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_steelseries_fizz_tunnel_read_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:423,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:424,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:425,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:426,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:427,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: fu_steelseries_fizz_tunnel_set_progress
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_tunnel_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:434,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: fu_steelseries_fizz_tunnel_convert_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_tunnel_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzTunnelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: fu_steelseries_fizz_tunnel_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_tunnel_class_init(FuSteelseriesFizzTunnelClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:456,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:457,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:458,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:459,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:460,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:462,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:463,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:464,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:465,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:466,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:467,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:468,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:469,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:470,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzTunnel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 7
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: fu_steelseries_fizz_tunnel_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_battery_threshold
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_tunnel_init(FuSteelseriesFizzTunnel *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuSteelseriesFizz*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: fu_steelseries_fizz_tunnel_new
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuSteelseriesFizzTunnel
    signature: 'FuSteelseriesFizzTunnel *

      fu_steelseries_fizz_tunnel_new(FuSteelseriesFizz *parent)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - cmd
    - err
    - error
    argTypes:
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 65
    functionName: fu_steelseries_fizz_command_error_to_error
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_command_error_to_error(guint8 cmd, guint8
      err, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:72,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:75,1
    - Dst: fu_steelseries_fizz_cmd_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:76,1
    - Dst: fu_steelseries_fizz_impl_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:79,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: fu_steelseries_fizz_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_impl_request
    - g_set_error_literal
    - FU_DEVICE
    - fu_steelseries_fizz_cmd_to_string
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_request(FuSteelseriesFizz *self, GByteArray
      *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:87,1
    - Dst: fu_steelseries_fizz_impl_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:90,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: fu_steelseries_fizz_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_STEELSERIES_FIZZ_IMPL
    - g_set_error_literal
    - FU_DEVICE
    - fu_steelseries_fizz_impl_response
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_response(FuSteelseriesFizz *self, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:98,1
    - Dst: fu_steelseries_fizz_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:100,1
    - Dst: fu_steelseries_fizz_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:102,1
    - Dst: fu_struct_steelseries_fizz_generic_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:106,1
    - Dst: fu_struct_steelseries_fizz_generic_res_get_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:109,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:110,1
    - Dst: fu_struct_steelseries_fizz_generic_res_get_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:114,1
    - Dst: fu_steelseries_fizz_command_error_to_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:118,1
    - Dst: fu_struct_steelseries_fizz_generic_res_get_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:120,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 125
    functionName: fu_steelseries_fizz_request_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_steelseries_fizz_generic_res_get_cmd
    - fu_steelseries_fizz_request
    - fu_steelseries_fizz_command_error_to_error
    - g_steal_pointer
    - fu_struct_steelseries_fizz_generic_res_get_error
    - fu_steelseries_fizz_response
    - fu_struct_steelseries_fizz_generic_res_parse
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_request_response(FuSteelseriesFizz *self, GByteArray *buf,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:137,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:142,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:146,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:147,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:147,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:150,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:152,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:155,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:158,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:159,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:160,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:161,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:163,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:164,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:166,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:167,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:169,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:170,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:173,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 7
    argNames:
    - self
    - tunnel
    - fs
    - id
    - fw
    - progress
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: fu_steelseries_fizz_write_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_fizz_write_access_file_req_set_size
    - fu_steelseries_fizz_request_response
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_struct_steelseries_fizz_write_access_file_req_set_data
    - fu_progress_step_done
    - fu_struct_steelseries_fizz_write_access_file_req_set_filesystem
    - fu_struct_steelseries_fizz_write_access_file_req_set_cmd
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_struct_steelseries_fizz_write_access_file_req_new
    - fu_struct_steelseries_fizz_write_access_file_req_set_id
    - fu_chunk_get_address
    - fu_struct_steelseries_fizz_write_access_file_req_set_offset
    - fu_chunk_get_data
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_write_fs(FuSteelseriesFizz *self,\n\t\t\t
      \    gboolean tunnel,\n\t\t\t     guint8 fs,\n\t\t\t     guint8 id,\n\t\t\t
      \    GBytes *fw,\n\t\t\t     FuProgress *progress,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:192,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:197,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:198,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:199,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:200,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - self
    - tunnel
    - fs
    - id
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: fu_steelseries_fizz_erase_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_request_response
    - fu_struct_steelseries_fizz_erase_file_req_set_id
    - fu_struct_steelseries_fizz_erase_file_req_set_cmd
    - fu_struct_steelseries_fizz_erase_file_req_set_filesystem
    - g_autoptr
    - fu_struct_steelseries_fizz_erase_file_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_erase_fs(FuSteelseriesFizz *self,\n\t\t\t
      \    gboolean tunnel,\n\t\t\t     guint8 fs,\n\t\t\t     guint8 id,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:212,1
    - Dst: fu_struct_steelseries_fizz_reset_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:217,1
    - Dst: fu_struct_steelseries_fizz_reset_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:218,1
    - Dst: fu_struct_steelseries_fizz_reset_req_set_mode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:219,1
    - Dst: fu_steelseries_fizz_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - tunnel
    - mode
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - FuSteelseriesFizzResetMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 221
    functionName: fu_steelseries_fizz_reset
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 2
    functionsReached:
    - fu_struct_steelseries_fizz_reset_req_set_cmd
    - fu_steelseries_fizz_request
    - fu_struct_steelseries_fizz_reset_req_new
    - fu_struct_steelseries_fizz_reset_req_set_mode
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_reset(FuSteelseriesFizz *self,\n\t\t\t
      \ gboolean tunnel,\n\t\t\t  FuSteelseriesFizzResetMode mode,\n\t\t\t  GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:235,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:240,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:241,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:242,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:243,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:244,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:247,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_get_calculated
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:253,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_get_stored
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - self
    - tunnel
    - fs
    - id
    - calculated_crc
    - stored_crc
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 258
    functionName: fu_steelseries_fizz_get_crc32_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_steelseries_fizz_request_response
    - fu_struct_steelseries_fizz_file_crc32_req_set_filesystem
    - fu_struct_steelseries_fizz_file_crc32_req_new
    - fu_struct_steelseries_fizz_file_crc32_req_set_id
    - fu_struct_steelseries_fizz_file_crc32_res_get_calculated
    - fu_struct_steelseries_fizz_file_crc32_res_get_stored
    - g_autoptr
    - fu_struct_steelseries_fizz_file_crc32_res_parse
    - fu_struct_steelseries_fizz_file_crc32_req_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_get_crc32_fs(FuSteelseriesFizz *self,\n\t\t\t\t
      gboolean tunnel,\n\t\t\t\t guint8 fs,\n\t\t\t\t guint8 id,\n\t\t\t\t guint32
      *calculated_crc,\n\t\t\t\t guint32 *stored_crc,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:271,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:277,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:278,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:279,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:280,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:287,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:289,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:290,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:291,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:292,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:293,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:294,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:295,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:297,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:298,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:301,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_res_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:307,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:308,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:308,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:309,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:314,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 8
    argNames:
    - self
    - tunnel
    - fs
    - id
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 323
    functionName: fu_steelseries_fizz_read_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_struct_steelseries_fizz_read_access_file_req_new
    - fu_struct_steelseries_fizz_read_access_file_req_set_cmd
    - fu_progress_set_steps
    - fu_struct_steelseries_fizz_read_access_file_res_get_data
    - fu_chunk_get_data_out
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_struct_steelseries_fizz_read_access_file_res_parse
    - fu_struct_steelseries_fizz_read_access_file_req_set_filesystem
    - fu_steelseries_fizz_request_response
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_autoptr
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_fizz_read_access_file_req_set_id
    - fu_struct_steelseries_fizz_read_access_file_req_set_size
    - fu_memcpy_safe
    - fu_struct_steelseries_fizz_read_access_file_req_set_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_read_fs(FuSteelseriesFizz *self,\n\t\t\t
      \   gboolean tunnel,\n\t\t\t    guint8 fs,\n\t\t\t    guint8 id,\n\t\t\t    guint8
      *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:328,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:328,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:330,1
    - Dst: fu_steelseries_fizz_impl_get_paired_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:333,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizz*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: fu_steelseries_fizz_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_STEELSERIES_FIZZ_IMPL
    - g_set_error_literal
    - FU_DEVICE
    - fu_steelseries_fizz_impl_get_paired_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_get_paired_status(FuSteelseriesFizz *self,
      guint8 *status, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:343,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:345,1
    - Dst: fu_steelseries_fizz_impl_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:348,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizz*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 351
    functionName: fu_steelseries_fizz_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_device_get_proxy
    - FU_STEELSERIES_FIZZ_IMPL
    - g_set_error_literal
    - FU_DEVICE
    - fu_steelseries_fizz_impl_get_connection_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_get_connection_status(FuSteelseriesFizz
      *self,\n\t\t\t\t\t  FuSteelseriesFizzConnectionStatus *status,\n\t\t\t\t\t  GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:358,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:360,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:365,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:369,1
    - Dst: fu_steelseries_fizz_get_paired_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:372,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:378,1
    - Dst: fu_steelseries_fizz_tunnel_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:379,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:381,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 387
    functionName: fu_steelseries_fizz_ensure_children
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_add_child
    - fu_steelseries_fizz_get_paired_status
    - fu_device_set_proxy
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_set_error_literal
    - FU_DEVICE
    - g_autoptr
    - fu_steelseries_fizz_tunnel_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_ensure_children(FuSteelseriesFizz *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:393,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:395,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:399,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:400,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:404,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:410,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 415
    functionName: fu_steelseries_fizz_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_FIZZ
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_steelseries_fizz_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:422,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:424,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:428,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:432,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:434,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 417
    functionDepth: 6
    functionLinenumber: 417
    functionLinenumberEnd: 439
    functionName: fu_steelseries_fizz_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_STEELSERIES_FIZZ
    - fu_device_add_flag
    - fu_device_remove_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_steelseries_fizz_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:447,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:449,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:451,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:456,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:459,1
    - Dst: fu_steelseries_fizz_ensure_children
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:460,1
    - Dst: fu_steelseries_fizz_impl_get_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:465,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:465,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:467,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:470,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:472,1
    - Dst: fu_steelseries_fizz_impl_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:474,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:474,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:478,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 483
    functionName: fu_steelseries_fizz_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_device_add_private_flag
    - FU_STEELSERIES_FIZZ
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_set_error_literal
    - fu_steelseries_fizz_impl_get_version
    - g_autoptr
    - fu_device_set_serial
    - fu_steelseries_fizz_ensure_children
    - fu_steelseries_fizz_impl_get_serial
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:499,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:501,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:503,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:504,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:505,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:507,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:508,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:509,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:512,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:515,1
    - Dst: fu_steelseries_fizz_erase_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:518,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:519,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:522,1
    - Dst: fu_steelseries_fizz_write_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:523,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:528,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:530,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:533,1
    - Dst: fu_steelseries_fizz_get_crc32_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:535,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:542,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:546,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:547,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 8
    argNames:
    - self
    - tunnel
    - fs
    - id
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 555
    functionName: fu_steelseries_fizz_write_firmware_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - g_warning
    - fu_bytes_get_data_safe
    - fu_progress_step_done
    - fu_steelseries_fizz_erase_fs
    - fu_progress_get_child
    - fu_steelseries_fizz_write_fs
    - g_prefix_error
    - fu_steelseries_fizz_get_crc32_fs
    - fu_progress_add_step
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_get_name
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_write_firmware_fs(FuSteelseriesFizz *self,\n\t\t\t\t
      \     gboolean tunnel,\n\t\t\t\t      guint8 fs,\n\t\t\t\t      guint8 id,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:564,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:569,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:571,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:576,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:580,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:581,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:581,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:586,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:586,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:592,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:593,1
    - Dst: fu_steelseries_fizz_write_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:595,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:600,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 557
    functionDepth: 6
    functionLinenumber: 557
    functionLinenumberEnd: 608
    functionName: fu_steelseries_fizz_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_write_firmware_fs
    - FU_STEELSERIES_FIZZ
    - fu_steelseries_fizz_impl_get_file_id
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_progress_set_id
    - g_autoptr
    - fu_device_locker_new
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:619,1
    - Dst: fu_steelseries_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:619,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:620,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:623,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:624,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:626,1
    - Dst: fu_steelseries_fizz_read_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:627,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:633,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:635,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:638,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:640,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:641,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:641,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:642,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 7
    argNames:
    - self
    - tunnel
    - fs
    - id
    - size
    - progress
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - guint8
    - guint8
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 647
    functionName: fu_steelseries_fizz_read_firmware_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - g_bytes_new_take
    - g_prefix_error
    - fu_progress_add_step
    - g_malloc0
    - fu_steelseries_firmware_new
    - fu_steelseries_fizz_read_fs
    - fu_progress_set_id
    - g_autoptr
    - fu_dump_raw
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_steelseries_fizz_read_firmware_fs(FuSteelseriesFizz
      *self,\n\t\t\t\t     gboolean tunnel,\n\t\t\t\t     guint8 fs,\n\t\t\t\t     guint8
      id,\n\t\t\t\t     gsize size,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:652,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:657,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:658,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:660,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:665,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:669,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:670,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:672,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:673,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:673,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:678,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:678,1
    - Dst: fu_steelseries_fizz_read_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:684,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:688,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:689,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:693,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 649
    functionDepth: 6
    functionLinenumber: 649
    functionLinenumberEnd: 697
    functionName: fu_steelseries_fizz_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_progress_step_done
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_read_firmware_fs
    - g_steal_pointer
    - FU_STEELSERIES_FIZZ
    - fu_steelseries_fizz_impl_get_file_id
    - fu_progress_add_step
    - fu_device_has_private_flag
    - g_set_error_literal
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_progress_set_id
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_steelseries_fizz_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:706,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 708
    functionName: fu_steelseries_fizz_set_progress
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 721
    functionName: fu_steelseries_fizz_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_class_init(FuSteelseriesFizzClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:726,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:727,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:728,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:728,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:729,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:730,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:731,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:731,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:733,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:733,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:734,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:734,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:735,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:736,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:736,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:737,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:737,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:738,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:738,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizz*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 723
    functionDepth: 6
    functionLinenumber: 723
    functionLinenumberEnd: 740
    functionName: fu_steelseries_fizz_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_priority
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_init(FuSteelseriesFizz *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuSteelseriesFizzImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: fu_steelseries_fizz_impl_default_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_impl_default_init(FuSteelseriesFizzImplInterface
      *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:23,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:23,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:25,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: fu_steelseries_fizz_impl_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_impl_request(FuSteelseriesFizzImpl *self,
      GByteArray *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:41,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:41,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:43,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: fu_steelseries_fizz_impl_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_impl_response(FuSteelseriesFizzImpl *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:59,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:59,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: fu_steelseries_fizz_impl_get_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 2
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_impl_get_version(FuSteelseriesFizzImpl *self, gboolean tunnel,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:80,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:80,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - tunnel
    - level
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: fu_steelseries_fizz_impl_get_battery_level
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_impl_get_battery_level(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   gboolean tunnel,\n\t\t\t\t\t   guint8 *level,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:101,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:101,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - is_receiver
    - id
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: fu_steelseries_fizz_impl_get_fs_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 5
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_impl_get_fs_id(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t   gboolean is_receiver,\n\t\t\t\t   guint8 *id,\n\t\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:123,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:123,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:125,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - is_receiver
    - id
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: fu_steelseries_fizz_impl_get_file_id
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 5
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_impl_get_file_id(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t     gboolean is_receiver,\n\t\t\t\t     guint8 *id,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:144,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:144,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: fu_steelseries_fizz_impl_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_impl_get_paired_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t   guint8 *status,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:164,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:164,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 175
    functionName: fu_steelseries_fizz_impl_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 2
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_impl_get_connection_status(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t\t       FuSteelseriesFizzConnectionStatus *status,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:182,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:182,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: fu_steelseries_fizz_impl_is_updatable
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 1
    functionsReached:
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_impl_is_updatable(FuSteelseriesFizzImpl
      *self, FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:197,1
    - Dst: FU_IS_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:197,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:199,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: fu_steelseries_fizz_impl_get_serial
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
    functionUses: 2
    functionsReached:
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - g_return_val_if_fail
    - FU_STEELSERIES_FIZZ_IMPL_GET_IFACE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_fizz_impl_get_serial(FuSteelseriesFizzImpl *self, gboolean tunnel,
      GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:28,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:33,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:39,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:46,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:49,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:56,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:64,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:70,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 74
    functionName: fu_steelseries_firmware_parse
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_FIRMWARE
    - g_set_error
    - g_debug
    - fu_input_stream_read_u32
    - fu_input_stream_compute_crc32
    - FU_FIRMWARE
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_size
    - fu_firmware_add_flag
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:79,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: fu_steelseries_firmware_export
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: fu_steelseries_firmware_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_firmware_init(FuSteelseriesFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: fu_steelseries_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_firmware_class_init(FuSteelseriesFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:100,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: fu_steelseries_firmware_new
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_steelseries_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:29,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: fu_steelseries_plugin_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_plugin_init(FuSteelseriesPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:35,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:36,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:37,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:40,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:41,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:42,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:43,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:44,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:45,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: fu_steelseries_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_plugin_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:52,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:52,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:55,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial
    argTypes:
    - FuSteelseriesPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: fu_steelseries_plugin_find_device_by_serial
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_ptr_array_index
    - g_strcmp0
    - fu_device_get_serial
    - FU_PLUGIN
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_steelseries_plugin_find_device_by_serial(FuSteelseriesPlugin *self, const
      gchar *serial)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:64,1
    - Dst: fu_steelseries_plugin_find_device_by_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:66,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:66,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:68,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuSteelseriesPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: fu_steelseries_plugin_device_added_all
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_plugin_find_device_by_serial
    - fu_device_get_serial
    - fu_device_set_equivalent_id
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_plugin_device_added_all(FuSteelseriesPlugin *self,
      FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_PLUGIN
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:75,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:76,1
    - Dst: fu_steelseries_plugin_device_added_all
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:81,1
    - Dst: fu_steelseries_plugin_device_added_all
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: fu_steelseries_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_plugin_device_added_all
    - g_ptr_array_index
    - fu_device_get_children
    - FU_STEELSERIES_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_plugin_device_added(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: fu_steelseries_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_plugin_class_init(FuSteelseriesPluginClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:35,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:39,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:48,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:49,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:49,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:50,1
    - Dst: memset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:54,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:55,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:55,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:60,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:62,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:63,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:68,1
    - Dst: fu_struct_steelseries_fizz_hid_response_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:70,1
    - Dst: fu_struct_steelseries_fizz_hid_response_get_report_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:76,1
    - Dst: fu_struct_steelseries_fizz_hid_response_get_report_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:80,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 87
    functionName: fu_steelseries_fizz_hid_command_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_struct_steelseries_fizz_hid_response_get_report_id
    - g_prefix_error
    - fu_udev_device_pread
    - fu_memcpy_safe
    - fu_struct_steelseries_fizz_hid_response_parse
    - FU_UDEV_DEVICE
    - g_autoptr
    - memset
    - fu_dump_raw
    - g_byte_array_append
    - fu_udev_device_pwrite
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_hid_command_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:92,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:92,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - buf_in
    - error
    argTypes:
    - FuSteelseriesFizzHid*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: fu_steelseries_fizz_hid_command
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_steal_pointer
    - FU_DEVICE
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_fizz_hid_command(FuSteelseriesFizzHid *self, GByteArray *buf_in,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:117,1
    - Dst: fu_struct_steelseries_fizz_hid_get_version_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:118,1
    - Dst: fu_steelseries_fizz_hid_command
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:120,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:125,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzHid*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: fu_steelseries_fizz_hid_ensure_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - fu_struct_steelseries_fizz_hid_get_version_req_new
    - fu_steelseries_fizz_hid_command
    - FU_DEVICE
    - g_autoptr
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_hid_ensure_version(FuSteelseriesFizzHid
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:135,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:139,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:144,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:145,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:146,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:147,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:148,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:149,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: fu_steelseries_fizz_hid_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - g_strdup_printf
    - fu_device_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_message
    - g_autoptr
    - fu_device_get_name
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_hid_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_HID
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:160,1
    - Dst: fu_steelseries_fizz_hid_ensure_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: fu_steelseries_fizz_hid_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_hid_ensure_version
    - FU_STEELSERIES_FIZZ_HID
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_hid_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzHidClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: fu_steelseries_fizz_hid_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_hid_class_init(FuSteelseriesFizzHidClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:181,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:182,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:183,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:183,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:184,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:184,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:185,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:186,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:187,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzHid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: fu_steelseries_fizz_hid_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_add_request_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_fizz_hid_init(FuSteelseriesFizzHid *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:29,1
    - Dst: memset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:32,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:34,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:34,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:47,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:51,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:58,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:58,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:66,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:70,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:77,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 82
    functionName: fu_steelseries_mouse_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - fu_device_set_version
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - FU_DEVICE
    - FU_USB_DEVICE
    - memset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_mouse_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:87,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:88,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesMouse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: fu_steelseries_mouse_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_usb_device_add_interface
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_mouse_init(FuSteelseriesMouse *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesMouseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: fu_steelseries_mouse_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_mouse_class_init(FuSteelseriesMouseClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 1460
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iface_idx_offset
    argTypes:
    - FuSteelseriesDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_steelseries_device_set_iface_idx_offset
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 5
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_set_iface_idx_offset(FuSteelseriesDevice
      *self, gint iface_idx_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:34,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:34,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:36,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:39,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:40,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:41,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:42,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: fu_steelseries_device_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 12
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_byte_array_append
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_device_request(FuSteelseriesDevice *self, const
      GByteArray *buf, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:76,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:76,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:78,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:79,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:79,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:87,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:90,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:92,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: fu_steelseries_device_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 7
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_device_response(FuSteelseriesDevice *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:107,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:115,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:117,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:117,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:136,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:137,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:142,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:149,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:150,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:151,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:156,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 104
    functionDepth: 8
    functionLinenumber: 104
    functionLinenumberEnd: 160
    functionName: fu_steelseries_device_probe
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_interface_get_number
    - fu_usb_device_add_interface
    - g_ptr_array_index
    - FU_STEELSERIES_DEVICE
    - fu_usb_interface_get_endpoints
    - GET_PRIVATE
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_address
    - fu_usb_device_get_interfaces
    - fu_usb_endpoint_get_maximum_packet_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:165,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:166,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:167,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fu_steelseries_device_to_string
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_STEELSERIES_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: fu_steelseries_device_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_init(FuSteelseriesDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: fu_steelseries_device_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_class_init(FuSteelseriesDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:21,1
    - Dst: fu_struct_steelseries_gamepad_erase_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:22,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:25,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:25,1
    - Dst: fu_struct_steelseries_gamepad_erase_req_set_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:27,1
    - Dst: fu_struct_steelseries_gamepad_erase_req_set_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:30,1
    - Dst: fu_struct_steelseries_gamepad_erase_req_set_magic3
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:32,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:34,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:34,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:35,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:40,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: fu_steelseries_gamepad_cmd_erase
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_struct_steelseries_gamepad_erase_req_set_length
    - g_prefix_error
    - fu_struct_steelseries_gamepad_erase_req_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_STEELSERIES_DEVICE
    - g_autoptr
    - fu_struct_steelseries_gamepad_erase_req_set_magic3
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_cmd_erase(FuSteelseriesGamepad *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_GAMEPAD
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:50,1
    - Dst: fu_struct_steelseries_gamepad_get_versions_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:53,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:55,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:59,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:59,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:61,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:61,1
    - Dst: fu_struct_steelseries_gamepad_get_versions_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:64,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:71,1
    - Dst: fu_struct_steelseries_gamepad_get_versions_res_get_runtime_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:72,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:73,1
    - Dst: fu_struct_steelseries_gamepad_get_versions_res_get_bootloader_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:74,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:76,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 82
    functionName: fu_steelseries_gamepad_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_struct_steelseries_gamepad_get_versions_req_new
    - fu_steelseries_device_response
    - fu_struct_steelseries_gamepad_get_versions_res_parse
    - FU_STEELSERIES_GAMEPAD
    - fu_struct_steelseries_gamepad_get_versions_res_get_runtime_version
    - fu_device_set_version_bootloader
    - fu_device_has_flag
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_struct_steelseries_gamepad_get_versions_res_get_bootloader_version
    - fu_device_add_flag
    - g_autoptr
    - fu_device_set_version_raw
    - fu_version_from_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_GAMEPAD
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:88,1
    - Dst: fu_struct_steelseries_gamepad_reset_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:90,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:92,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:96,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:96,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:97,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: fu_steelseries_gamepad_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_struct_steelseries_gamepad_reset_req_new
    - g_debug
    - FU_STEELSERIES_GAMEPAD
    - fu_device_has_flag
    - FU_STEELSERIES_DEVICE
    - fu_device_add_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_GAMEPAD
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:109,1
    - Dst: fu_struct_steelseries_gamepad_bootloader_mode_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:110,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:112,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:116,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:116,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:117,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 123
    functionName: fu_steelseries_gamepad_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - g_debug
    - FU_STEELSERIES_GAMEPAD
    - fu_device_has_flag
    - FU_STEELSERIES_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_struct_steelseries_gamepad_bootloader_mode_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:132,1
    - Dst: fu_struct_steelseries_gamepad_write_chunk_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:133,1
    - Dst: fu_struct_steelseries_gamepad_write_chunk_req_set_block_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:136,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:136,1
    - Dst: fu_struct_steelseries_gamepad_write_chunk_req_set_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:137,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:138,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:139,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:143,1
    - Dst: fu_struct_steelseries_gamepad_write_chunk_req_set_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:145,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:148,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:148,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:149,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:149,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunk
    - checksum
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - FuChunk*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 156
    functionName: fu_steelseries_gamepad_write_firmware_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_gamepad_write_chunk_req_new
    - fu_steelseries_device_request
    - fu_struct_steelseries_gamepad_write_chunk_req_set_data
    - fu_sum16
    - g_prefix_error
    - fu_chunk_get_idx
    - fu_struct_steelseries_gamepad_write_chunk_req_set_block_id
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_chunk_get_data
    - fu_struct_steelseries_gamepad_write_chunk_req_set_checksum
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_gamepad_write_firmware_chunk(FuSteelseriesGamepad
      *self,\n\t\t\t\t\t    FuChunk *chunk,\n\t\t\t\t\t    guint32 *checksum,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:165,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:166,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:166,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:169,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:171,1
    - Dst: fu_steelseries_gamepad_write_firmware_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:174,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - chunks
    - progress
    - checksum
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - FuChunkArray*
    - FuProgress*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: fu_steelseries_gamepad_write_firmware_chunks
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_steelseries_gamepad_write_firmware_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_gamepad_write_firmware_chunks(FuSteelseriesGamepad
      *self,\n\t\t\t\t\t     FuChunkArray *chunks,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    guint32 *checksum,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:185,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:188,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_req_set_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:190,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:191,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:191,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:192,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:195,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:195,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 210
    functionName: fu_steelseries_gamepad_write_checksum
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - fu_steelseries_device_response
    - fu_struct_steelseries_gamepad_write_checksum_res_parse
    - g_prefix_error
    - fu_struct_steelseries_gamepad_write_checksum_req_set_checksum
    - FU_STEELSERIES_DEVICE
    - g_autoptr
    - fu_struct_steelseries_gamepad_write_checksum_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_write_checksum(FuSteelseriesGamepad
      *self, guint32 checksum, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_GAMEPAD
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:222,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:224,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:228,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:232,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:233,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:241,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:242,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:243,1
    - Dst: fu_steelseries_gamepad_cmd_erase
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:246,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:248,1
    - Dst: fu_steelseries_gamepad_write_firmware_chunks
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:250,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:252,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:256,1
    - Dst: fu_steelseries_gamepad_write_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:258,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 263
    functionName: fu_steelseries_gamepad_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_gamepad_write_firmware_chunks
    - fu_steelseries_gamepad_write_checksum
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_progress_get_child
    - FU_STEELSERIES_GAMEPAD
    - fu_progress_add_step
    - g_set_error_literal
    - fu_steelseries_gamepad_cmd_erase
    - fu_progress_set_id
    - g_autoptr
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_gamepad_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:268,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:269,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:270,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:271,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:272,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: fu_steelseries_gamepad_set_progress
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_gamepad_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:279,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: fu_steelseries_gamepad_convert_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_steelseries_gamepad_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesGamepadClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: fu_steelseries_gamepad_class_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_gamepad_class_init(FuSteelseriesGamepadClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_set_iface_idx_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:297,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:297,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:299,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:301,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:302,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:303,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:304,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesGamepad*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: fu_steelseries_gamepad_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_steelseries_device_set_iface_idx_offset
    - FU_STEELSERIES_DEVICE
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_max
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_gamepad_init(FuSteelseriesGamepad *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_dfu_plugin_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dfu_plugin_init(FuDfuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:26,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:27,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_dfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_dfu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_dfu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_plugin_class_init(FuDfuPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:32,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:33,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:34,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:35,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:36,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:39,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: fu_dfu_target_stm_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_stm_attach(FuDfuTarget *target, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:50,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:50,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:53,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:54,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:55,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: fu_dfu_target_stm_mass_erase
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_check_status
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_stm_mass_erase(FuDfuTarget *target, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:70,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:70,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:73,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:74,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:76,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:81,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - target
    - address
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 83
    functionName: fu_dfu_target_stm_set_address
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_dfu_target_check_status
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_set_address(FuDfuTarget *target,\n\t\t\t
      \     guint32 address,\n\t\t\t      FuProgress *progress,\n\t\t\t      GError
      **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:93,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:93,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:103,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:106,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:107,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:108,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:109,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:110,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:115,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:122,1
    - Dst: fu_dfu_sector_get_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:122,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:133,1
    - Dst: fu_dfu_target_stm_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:134,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:134,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:136,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:139,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:141,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:147,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:147,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:151,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:160,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:161,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:165,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:171,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:171,1
    - Dst: MIN
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:172,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:184,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:187,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:194,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:206,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:208,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:212,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:214,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:215,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 217
    functionName: fu_dfu_target_stm_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_get_sector_for_addr
    - fu_dfu_device_abort
    - fu_dfu_sector_has_cap
    - fu_dfu_target_upload_chunk
    - fu_progress_set_percentage_full
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - fu_progress_get_child
    - fu_chunk_bytes_new
    - fu_chunk_set_address
    - fu_progress_add_step
    - MIN
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_dfu_sector_get_id
    - fu_dfu_target_stm_set_address
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_dfu_utils_bytes_join_array
    - fu_bytes_new_offset
    - g_ptr_array_add
    - fu_progress_new
    - g_bytes_get_size
    - fu_dfu_device_get_transfer_size
    - FU_DEVICE
    - g_bytes_ref
    - FU_DFU_DEVICE
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfu_target_stm_upload_element(FuDfuTarget *target,\n\t\t\t\t
      guint32 address,\n\t\t\t\t gsize expected_size,\n\t\t\t\t gsize maximum_size,\n\t\t\t\t
      FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:235,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:235,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:238,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:239,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:240,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:241,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:246,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - target
    - address
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: fu_dfu_target_stm_erase_address
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_dfu_target_check_status
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_erase_address(FuDfuTarget *target,\n\t\t\t\tguint32
      address,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:257,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:257,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:263,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:263,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:266,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:267,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:271,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:280,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:288,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:297,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:298,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:299,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:299,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:300,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:301,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:302,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:303,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:304,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:306,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - target
    - chunks
    - sectors_array
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunkArray*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 312
    functionName: fu_dfu_target_stm_download_element1
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_dfu_target_get_sector_for_addr
    - g_set_error
    - g_hash_table_insert
    - fu_chunk_array_length
    - g_debug
    - fu_dfu_sector_get_address
    - fu_dfu_sector_has_cap
    - GINT_TO_POINTER
    - g_hash_table_new
    - fu_dfu_sector_get_size
    - g_autoptr
    - fu_chunk_array_index
    - g_hash_table_lookup
    - fu_chunk_get_address
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_download_element1(FuDfuTarget *target,\n\t\t\t\t
      \   FuChunkArray *chunks,\n\t\t\t\t    GPtrArray *sectors_array,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:321,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:322,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:325,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:326,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:326,1
    - Dst: fu_dfu_target_stm_erase_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:327,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:328,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:329,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - target
    - sectors_array
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 337
    functionName: fu_dfu_target_stm_download_element2
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_address
    - fu_progress_get_child
    - g_debug
    - fu_dfu_target_stm_erase_address
    - fu_progress_step_done
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_download_element2(FuDfuTarget *target,\n\t\t\t\t
      \   GPtrArray *sectors_array,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:349,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:350,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:350,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:354,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:355,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:358,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:363,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:363,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:365,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:369,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:374,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:375,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:376,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:376,1
    - Dst: fu_dfu_target_stm_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:377,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:378,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:382,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:386,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:387,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:388,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:389,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:392,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:393,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:399,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:404,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - target
    - chunks
    - sectors_array
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunkArray*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 413
    functionName: fu_dfu_target_stm_download_element3
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_get_sector_for_addr
    - fu_chunk_array_length
    - fu_dfu_target_check_status
    - g_prefix_error
    - fu_dfu_sector_get_zone
    - fu_dfu_target_download_chunk
    - fu_progress_set_steps
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_byte_array_append_bytes
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_dfu_target_stm_set_address
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_chunk_get_bytes
    - fu_progress_new
    - g_bytes_get_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_download_element3(FuDfuTarget *target,\n\t\t\t\t
      \   FuChunkArray *chunks,\n\t\t\t\t    GPtrArray *sectors_array,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:422,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:425,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:425,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:428,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:429,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:430,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:431,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:434,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:435,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:436,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:438,1
    - Dst: fu_dfu_target_stm_download_element1
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:439,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:445,1
    - Dst: fu_dfu_target_stm_download_element2
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:448,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:450,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:453,1
    - Dst: fu_dfu_target_stm_download_element3
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:456,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:459,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - target
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 415
    functionDepth: 5
    functionLinenumber: 415
    functionLinenumberEnd: 466
    functionName: fu_dfu_target_stm_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_stm_download_element3
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_chunk_array_new_from_bytes
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_progress_add_step
    - g_ptr_array_new
    - fu_dfu_device_get_transfer_size
    - fu_dfu_target_stm_download_element2
    - FU_DEVICE
    - fu_progress_set_id
    - fu_dfu_target_stm_download_element1
    - g_autoptr
    - FU_DFU_DEVICE
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_stm_download_element(FuDfuTarget *target,\n\t\t\t\t
      \  FuChunk *chk,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuDfuTargetTransferFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTargetStm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: fu_dfu_target_stm_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_stm_init(FuDfuTargetStm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetStmClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 481
    functionName: fu_dfu_target_stm_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - FU_DFU_TARGET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_stm_class_init(FuDfuTargetStmClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: fu_dfu_target_stm_new
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDfuTarget
    signature: 'FuDfuTarget *

      fu_dfu_target_stm_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 1465
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:46,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: fu_dfu_target_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_init(FuDfuTarget *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:53,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:54,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:56,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: fu_dfu_target_finalize
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_DFU_TARGET
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:64,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:65,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:66,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:67,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:69,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:70,1
    - Dst: fu_dfu_sector_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:71,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: fu_dfu_target_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_TARGET
    - g_strdup_printf
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_dfu_sector_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:82,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:83,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:85,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - self
    - addr
    argTypes:
    - FuDfuTarget*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: fu_dfu_target_get_sector_for_addr
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 3
    functionsReached:
    - fu_dfu_sector_get_address
    - g_ptr_array_index
    - fu_dfu_sector_get_size
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDfuSector
    signature: 'FuDfuSector *

      fu_dfu_target_get_sector_for_addr(FuDfuTarget *self, guint32 addr)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:100,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:108,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:120,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:131,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:140,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:140,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:193,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:204,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:210,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:211,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 6
    argNames:
    - self
    - dfuse_sector_id
    - addr
    - zone
    - number
    - error
    argTypes:
    - FuDfuTarget*
    - gchar*
    - guint32*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 217
    functionName: fu_dfu_target_parse_sector
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_size
    - fu_device_get_proxy
    - g_set_error
    - fu_device_has_private_flag
    - fu_dfu_sector_new
    - FU_DEVICE
    - GET_PRIVATE
    - g_ascii_strtoull
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_parse_sector(FuDfuTarget *self,\n\t\t\t   const
      gchar *dfuse_sector_id,\n\t\t\t   guint32 *addr,\n\t\t\t   guint16 zone,\n\t\t\t
      \  guint16 number,\n\t\t\t   GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:222,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:223,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:230,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:233,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:240,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:241,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:248,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:256,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:259,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:260,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:260,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:264,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:267,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:268,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:274,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:280,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:287,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:295,1
    - Dst: fu_dfu_target_parse_sector
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:297,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - self
    - alt_name
    - error
    argTypes:
    - FuDfuTarget*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 311
    functionName: fu_dfu_target_parse_sectors
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - g_debug
    - g_auto
    - g_str_has_prefix
    - g_prefix_error
    - g_strsplit
    - fu_dfu_sector_new
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_ptr_array_set_size
    - fu_dfu_target_parse_sector
    - g_ptr_array_add
    - g_strchomp
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_parse_sectors(FuDfuTarget *self, const gchar
      *alt_name, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: fu_dfu_target_new
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDfuTarget
    signature: 'FuDfuTarget *

      fu_dfu_target_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:340,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:341,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: fu_dfu_target_get_sectors
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_TARGET
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_dfu_target_get_sectors(FuDfuTarget *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:356,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:357,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:357,1
    - Dst: FU_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:360,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: fu_dfu_target_get_sector_default
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_TARGET
    - g_ptr_array_index
    - FU_DFU_SECTOR
    - GET_PRIVATE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuDfuSector
    signature: 'FuDfuSector *

      fu_dfu_target_get_sector_default(FuDfuTarget *self)'
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - status
    argTypes:
    - FuDfuStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 407
    functionName: fu_dfu_target_status_to_error_msg
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dfu_target_status_to_error_msg(FuDfuStatus status)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:412,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:412,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:416,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:420,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:421,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:422,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:425,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:432,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:433,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:434,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:439,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:440,1
    - Dst: fu_dfu_target_status_to_error_msg
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:444,1
    - Dst: fu_dfu_device_get_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 449
    functionName: fu_dfu_target_manifest_wait
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_debug
    - fu_dfu_device_get_state
    - fu_dfu_target_status_to_error_msg
    - fu_dfu_device_get_status
    - fu_dfu_device_get_download_timeout
    - fu_dfu_device_refresh
    - FU_DEVICE
    - g_set_error_literal
    - FU_DFU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_manifest_wait(FuDfuTarget *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:454,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:456,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:456,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:459,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:463,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:464,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:465,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:465,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:466,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:470,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:471,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:480,1
    - Dst: fu_dfu_device_get_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:484,1
    - Dst: fu_dfu_device_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:487,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:494,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:503,1
    - Dst: fu_dfu_target_status_to_error_msg
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 508
    functionName: fu_dfu_target_check_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 4
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - g_timer_new
    - fu_dfu_device_get_version
    - g_timer_elapsed
    - fu_dfu_device_get_state
    - fu_dfu_target_status_to_error_msg
    - fu_dfu_device_get_status
    - fu_dfu_device_get_download_timeout
    - fu_dfu_device_refresh
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - FU_DFU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_check_status(FuDfuTarget *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:522,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:522,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:523,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:526,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:526,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:527,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:530,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:534,1
    - Dst: fu_usb_device_set_interface_alt
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:535,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:535,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:536,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:539,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 551
    functionName: fu_dfu_target_use_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - FU_IS_DFU_TARGET
    - fu_dfu_device_get_interface
    - fu_usb_device_set_interface_alt
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - FU_DFU_DEVICE
    - g_return_val_if_fail
    - fu_dfu_device_ensure_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_use_alt_setting(FuDfuTarget *self, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:565,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:566,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:567,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:569,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:569,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:570,1
    - Dst: FuDfuTargetClass*::setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:578,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:584,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:590,1
    - Dst: strlen
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:591,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:592,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:600,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:603,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:606,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:609,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:609,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:612,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:615,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:615,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:618,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:628,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:628,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:631,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:631,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:632,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:632,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:637,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:638,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:638,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:647,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:653,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:654,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:655,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 660
    functionName: fu_dfu_target_setup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_usb_device_get_string_descriptor
    - g_return_val_if_fail
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - fu_device_get_logical_id
    - FU_IS_DFU_TARGET
    - fu_dfu_sector_new
    - FU_USB_DEVICE
    - fu_device_set_logical_id
    - g_ptr_array_add
    - FuDfuTargetClass*::setup
    - fu_device_has_private_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_dfu_target_parse_sectors
    - fu_device_get_serial
    - FU_DFU_TARGET_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_setup(FuDfuTarget *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:670,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:671,1
    - Dst: fu_dfu_device_get_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:676,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:679,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:680,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:680,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:686,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:694,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:695,1
    - Dst: fu_dfu_device_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:705,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:706,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:711,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:712,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:713,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:714,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:714,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:715,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:715,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:719,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:720,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - self
    - index
    - buf
    - timeout_ms
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - GByteArray*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 726
    functionName: fu_dfu_target_download_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 5
    functionsReached:
    - fu_progress_set_status
    - fu_dfu_device_get_version
    - fu_dfu_target_check_status
    - g_prefix_error
    - fu_dfu_device_get_download_timeout
    - fu_device_get_proxy
    - g_set_error
    - g_debug
    - g_assert_cmpint
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_dfu_device_get_interface
    - fu_dfu_device_refresh
    - g_autoptr
    - fu_dfu_device_get_timeout
    - FU_DEVICE
    - FU_DFU_DEVICE
    - fu_dfu_device_error_fixup
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_download_chunk(FuDfuTarget *self,\n\t\t\t     guint16
      index,\n\t\t\t     GByteArray *buf,\n\t\t\t     guint timeout_ms,\n\t\t\t     FuProgress
      *progress,\n\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:735,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:735,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:736,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:742,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:744,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:745,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:745,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:751,1
    - Dst: fu_dfu_device_get_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:755,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:759,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:760,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:769,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - self
    - index
    - buf_sz
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 772
    functionName: fu_dfu_target_upload_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 1
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - g_new0
    - fu_dfu_device_get_timeout
    - g_bytes_new_take
    - fu_usb_device_control_transfer
    - fu_dfu_device_get_interface
    - fu_dfu_device_get_transfer_size
    - FU_DEVICE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - FU_DFU_DEVICE
    - fu_dfu_device_error_fixup
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_dfu_target_upload_chunk(FuDfuTarget *self,\n\t\t\t   guint16
      index,\n\t\t\t   gsize buf_sz,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - alt_idx
    argTypes:
    - FuDfuTarget*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: fu_dfu_target_set_alt_idx
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_set_alt_idx(FuDfuTarget *self, guint8 alt_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - alt_setting
    argTypes:
    - FuDfuTarget*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 786
    functionName: fu_dfu_target_set_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_set_alt_setting(FuDfuTarget *self, guint8 alt_setting)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:791,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:791,1
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:792,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:795,1
    - Dst: FuDfuTargetClass*::attach
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:800,1
    - Dst: fu_dfu_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 788
    functionDepth: 6
    functionLinenumber: 788
    functionLinenumberEnd: 804
    functionName: fu_dfu_target_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_dfu_device_reset
    - fu_dfu_target_setup
    - FU_DEVICE
    - FuDfuTargetClass*::attach
    - FU_DFU_DEVICE
    - FU_DFU_TARGET_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_attach(FuDfuTarget *self, FuProgress *progress,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:814,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:814,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:818,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:819,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:820,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:823,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:826,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:831,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:840,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:846,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:847,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:851,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:861,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:873,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:876,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - self
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 806
    functionDepth: 4
    functionLinenumber: 806
    functionLinenumberEnd: 878
    functionName: fu_dfu_target_upload_element_dfu
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_device_get_proxy
    - fu_progress_set_percentage_full
    - g_debug
    - g_set_error
    - fu_dfu_utils_bytes_join_array
    - fu_chunk_bytes_new
    - g_bytes_get_size
    - fu_dfu_device_get_transfer_size
    - FU_DEVICE
    - fu_dfu_target_upload_chunk
    - g_autoptr
    - fu_progress_set_percentage
    - g_ptr_array_new_with_free_func
    - FU_DFU_DEVICE
    - g_ptr_array_add
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfu_target_upload_element_dfu(FuDfuTarget *self,\n\t\t\t\t
      guint32 address,\n\t\t\t\t gsize expected_size,\n\t\t\t\t gsize maximum_size,\n\t\t\t\t
      FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:888,1
    - Dst: FuDfuTargetClass*::upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:892,1
    - Dst: fu_dfu_target_upload_element_dfu
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - self
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 880
    functionDepth: 5
    functionLinenumber: 880
    functionLinenumberEnd: 901
    functionName: fu_dfu_target_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_upload_element_dfu
    - FU_DFU_TARGET_GET_CLASS
    - FuDfuTargetClass*::upload_element
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfu_target_upload_element(FuDfuTarget *self,\n\t\t\t
      \    guint32 address,\n\t\t\t     gsize expected_size,\n\t\t\t     gsize maximum_size,\n\t\t\t
      \    FuProgress *progress,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:906,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:909,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:910,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - zone
    argTypes:
    - FuDfuTarget*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 915
    functionName: fu_dfu_target_get_size_of_zone
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_size
    - g_ptr_array_index
    - GET_PRIVATE
    - fu_dfu_sector_get_zone
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dfu_target_get_size_of_zone(FuDfuTarget *self, guint16 zone)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:925,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:930,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:932,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:932,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:933,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:936,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:940,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:940,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:940,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:942,1
    - Dst: fu_dfu_target_use_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:950,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:955,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:963,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:964,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:964,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:964,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:965,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:968,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:969,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:971,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:974,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:975,1
    - Dst: fu_dfu_target_get_size_of_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:980,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:984,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:985,1
    - Dst: fu_dfu_target_upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:987,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:988,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:991,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:997,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:998,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1002,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 918
    functionDepth: 6
    functionLinenumber: 918
    functionLinenumberEnd: 1004
    functionName: fu_dfu_target_upload
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_zone
    - fu_dfu_target_upload_element
    - g_return_val_if_fail
    - fu_firmware_add_chunk
    - fu_progress_set_steps
    - fu_device_get_proxy
    - fu_progress_get_child
    - g_debug
    - fu_device_get_logical_id
    - fu_dfu_target_get_size_of_zone
    - FU_IS_DFU_TARGET
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_firmware_add_image
    - g_autoptr
    - fu_firmware_new
    - fu_dfu_target_use_alt_setting
    - fu_dfu_sector_get_address
    - fu_firmware_set_id
    - fu_device_has_private_flag
    - fu_dfu_target_setup
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - fu_firmware_set_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_upload(FuDfuTarget *self,\n\t\t     FuFirmware
      *firmware,\n\t\t     FuProgress *progress,\n\t\t     FuDfuTargetTransferFlags
      flags,\n\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1014,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1015,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1019,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - bytes1
    - bytes2
    argTypes:
    - GBytes*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1035
    functionName: _g_bytes_compare_verbose
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - g_bytes_get_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      _g_bytes_compare_verbose(GBytes *bytes1, GBytes *bytes2)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1044,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1044,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1044,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1047,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1050,1
    - Dst: ceil
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1051,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1051,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1053,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1059,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1063,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1063,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1070,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1071,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1074,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1077,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1079,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1080,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1081,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1037
    functionDepth: 4
    functionLinenumber: 1037
    functionLinenumberEnd: 1091
    functionName: fu_dfu_target_download_element_dfu
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_device_get_proxy
    - fu_progress_set_percentage_full
    - ceil
    - g_debug
    - fu_byte_array_append_bytes
    - g_prefix_error
    - g_bytes_get_size
    - g_byte_array_new
    - fu_dfu_device_get_transfer_size
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_bytes_new_offset
    - FU_DFU_DEVICE
    - fu_dfu_target_download_chunk
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_download_element_dfu(FuDfuTarget *self,\n\t\t\t\t
      \  FuChunk *chk,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuDfuTargetTransferFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1100,1
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1101,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1105,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1106,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1107,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1108,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1110,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1111,1
    - Dst: FuDfuTargetClass*::download_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1116,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1118,1
    - Dst: fu_dfu_target_download_element_dfu
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1123,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1125,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1130,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1137,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1138,1
    - Dst: fu_dfu_target_upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1139,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1140,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1141,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1142,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1143,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1147,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1148,1
    - Dst: _g_bytes_compare_verbose
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1151,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1093
    functionDepth: 6
    functionLinenumber: 1093
    functionLinenumberEnd: 1162
    functionName: fu_dfu_target_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FuDfuTargetClass*::download_element
    - fu_dfu_target_upload_element
    - fu_progress_set_steps
    - fu_device_get_proxy
    - fu_progress_get_child
    - _g_bytes_compare_verbose
    - g_set_error
    - fu_dfu_target_download_element_dfu
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_get_bytes
    - g_bytes_get_size
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_bytes_compare
    - FU_DFU_TARGET_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_download_element(FuDfuTarget *self,\n\t\t\t
      \      FuChunk *chk,\n\t\t\t       FuProgress *progress,\n\t\t\t       FuDfuTargetTransferFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1183,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1187,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1187,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1188,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1189,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1192,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1197,1
    - Dst: fu_dfu_target_use_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1205,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1209,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1213,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1219,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1222,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1223,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1223,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1229,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1231,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1232,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1233,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1234,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1234,1
    - Dst: fu_dfu_target_download_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1238,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1240,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1244,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1247,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1248,1
    - Dst: fu_dfu_target_manifest_wait
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1249,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 5
    argNames:
    - self
    - image
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1176
    functionDepth: 7
    functionLinenumber: 1176
    functionLinenumberEnd: 1254
    functionName: fu_dfu_target_download
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_chunks
    - fu_dfu_target_manifest_wait
    - fu_dfu_target_download_element
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_device_get_proxy
    - fu_progress_get_child
    - g_debug
    - FU_IS_DFU_TARGET
    - fu_chunk_set_address
    - FU_IS_FIRMWARE
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_dfu_target_use_alt_setting
    - fu_dfu_sector_get_address
    - fu_device_has_private_flag
    - fu_dfu_target_setup
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_download(FuDfuTarget *self,\n\t\t       FuFirmware
      *image,\n\t\t       FuProgress *progress,\n\t\t       FuDfuTargetTransferFlags
      flags,\n\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1268,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1270
    functionName: fu_dfu_target_get_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_TARGET
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dfu_target_get_alt_setting(FuDfuTarget *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1275,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1279
    functionName: fu_dfu_target_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_class_init(FuDfuTargetClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 1481
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:85,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:85,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:88,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:89,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:90,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: fu_dfu_target_avr_mass_erase
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_avr_mass_erase(FuDfuTarget *target, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:101,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:102,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:103,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:106,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:107,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:108,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:111,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:112,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:113,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:114,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:118,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:120,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:121,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:122,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:125,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:126,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:130,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:133,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:137,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:139,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:145,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 151
    functionName: fu_dfu_target_avr_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - g_debug
    - g_propagate_prefixed_error
    - fu_progress_step_done
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_error_matches
    - fu_progress_add_step
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_finished
    - fu_dfu_target_download_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_avr_attach(FuDfuTarget *target, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:169,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:169,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:172,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:172,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:174,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:179,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:180,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:181,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:183,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:184,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - target
    - memory_unit
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 189
    functionName: fu_dfu_target_avr_select_memory_unit
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_debug
    - fu_byte_array_append_uint8
    - g_prefix_error
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    - fu_dfu_target_download_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_select_memory_unit(FuDfuTarget *target,\n\t\t\t\t
      \    guint8 memory_unit,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:207,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:207,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:211,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:221,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:222,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:223,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:225,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:226,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - target
    - memory_page
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: fu_dfu_target_avr_select_memory_page
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_autoptr
    - fu_dfu_target_download_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_select_memory_page(FuDfuTarget *target,\n\t\t\t\t
      \    guint16 memory_page,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:249,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:249,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:252,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:253,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:254,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:255,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:256,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - target
    - memory_page
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 262
    functionName: fu_dfu_target_avr32_select_memory_page
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - g_autoptr
    - fu_dfu_target_download_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr32_select_memory_page(FuDfuTarget *target,\n\t\t\t\t
      \      guint16 memory_page,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:282,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:282,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:285,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:286,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:287,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:288,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:289,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:290,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - target
    - addr_start
    - addr_end
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 298
    functionName: fu_dfu_target_avr_read_memory
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - g_autoptr
    - fu_dfu_target_download_chunk
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_read_memory(FuDfuTarget *target,\n\t\t\t
      \     guint16 addr_start,\n\t\t\t      guint16 addr_end,\n\t\t\t      FuProgress
      *progress,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:317,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:317,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:320,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:321,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:323,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:324,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - target
    - page
    - addr
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint8
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: fu_dfu_target_avr_read_command
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_byte_array_new
    - g_autoptr
    - fu_dfu_target_download_chunk
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_read_command(FuDfuTarget *target,\n\t\t\t
      \      guint8 page,\n\t\t\t       guint8 addr,\n\t\t\t       FuProgress *progress,\n\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:343,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:346,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:347,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:348,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:349,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:350,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:351,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:354,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:356,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:359,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:360,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:362,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:365,1
    - Dst: fu_dfu_target_avr_read_memory
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:366,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:369,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:372,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:375,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:375,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:378,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 382
    functionName: fu_dfu_target_avr32_get_chip_signature
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - fu_dfu_target_avr_select_memory_unit
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_dfu_target_avr32_select_memory_page
    - fu_dfu_target_upload_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_dfu_target_avr_read_memory
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_target_avr32_get_chip_signature(FuDfuTarget *target, FuProgress *progress,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:391,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:394,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:395,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:396,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:397,1
    - Dst: fu_dfu_target_avr_read_command
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:400,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:403,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:406,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:409,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:412,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:413,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:420,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:423,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - target
    - page
    - addr
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint8
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 427
    functionName: fu_dfu_target_avr_get_chip_signature_for_addr
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - g_bytes_get_size
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_dfu_target_upload_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_dfu_target_avr_read_command
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_dfu_target_avr_get_chip_signature_for_addr(FuDfuTarget
      *target,\n\t\t\t\t\t      guint8 page,\n\t\t\t\t\t      guint addr,\n\t\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:449,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:452,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:453,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:454,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:456,1
    - Dst: fu_dfu_target_avr_get_chip_signature_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:457,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:460,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:464,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:464,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:465,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 438
    functionDepth: 6
    functionLinenumber: 438
    functionLinenumberEnd: 468
    functionName: fu_dfu_target_avr_get_chip_signature
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - fu_dfu_target_avr_get_chip_signature_for_addr
    - fu_progress_set_steps
    - fu_progress_set_id
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_dfu_utils_bytes_join_array
    - g_ptr_array_add
    - G_N_ELEMENTS
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_target_avr_get_chip_signature(FuDfuTarget *target, FuProgress *progress,
      GError **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_AVR
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:474,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:480,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:481,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:488,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:488,1
    - Dst: fu_dfu_target_avr_get_chip_signature
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:490,1
    - Dst: fu_dfu_target_avr32_get_chip_signature
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:494,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:496,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:502,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:503,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:504,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:505,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:510,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:512,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:514,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:526,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:526,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:526,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:527,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:528,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:528,1
    - Dst: fu_dfu_device_get_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:530,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:532,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:532,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:532,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:534,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:534,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:536,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - target
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 470
    functionDepth: 7
    functionLinenumber: 470
    functionLinenumberEnd: 546
    functionName: fu_dfu_target_avr_setup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_avr32_get_chip_signature
    - fu_device_remove_private_flag
    - g_prefix_error
    - fu_dfu_target_avr_get_chip_signature
    - fu_device_get_proxy
    - g_set_error
    - FU_DFU_TARGET_AVR
    - fu_dump_bytes
    - fu_dfu_device_get_chip_id
    - fu_device_set_logical_id
    - g_autoptr
    - g_bytes_get_data
    - fu_progress_new
    - fu_memread_uint32_safe
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_add_instance_str
    - FU_DFU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_avr_setup(FuDfuTarget *target, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:574,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:575,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:578,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:579,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:579,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:582,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:583,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:583,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:584,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:584,1
    - Dst: fu_dfu_target_avr_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:586,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:587,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:592,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:593,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:598,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:602,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:603,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:604,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:604,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:605,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:606,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:606,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:609,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:610,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:611,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:614,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:615,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:619,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:621,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:626,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 6
    argNames:
    - target
    - chunks
    - page_last
    - header_sz
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - GPtrArray*
    - guint16*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 548
    functionDepth: 5
    functionLinenumber: 548
    functionLinenumberEnd: 631
    functionName: fu_dfu_target_avr_download_element_chunks
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_avr_select_memory_page
    - g_prefix_error
    - fu_dfu_target_avr32_select_memory_page
    - fu_progress_set_steps
    - fu_dfu_target_download_chunk
    - fu_device_get_proxy
    - fu_progress_get_child
    - g_debug
    - fu_byte_array_append_bytes
    - fu_byte_array_append_uint16
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_page
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - g_autoptr
    - g_byte_array_new
    - fu_chunk_get_bytes
    - fu_chunk_get_data_sz
    - fu_progress_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_download_element_chunks(FuDfuTarget *target,\n\t\t\t\t\t
      \ GPtrArray *chunks,\n\t\t\t\t\t  guint16 *page_last,\n\t\t\t\t\t  gsize header_sz,\n\t\t\t\t\t
      \ FuProgress *progress,\n\t\t\t\t\t  GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:647,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:650,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:651,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:652,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:655,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:656,1
    - Dst: fu_dfu_target_avr_mass_erase
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:660,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:662,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:665,1
    - Dst: fu_dfu_target_get_sector_default
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:666,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:668,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:674,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:675,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:676,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:677,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:680,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:683,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:683,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:684,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:688,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:693,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:693,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:699,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:700,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:701,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:702,1
    - Dst: fu_dfu_target_avr_download_element_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:705,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:709,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - target
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 633
    functionDepth: 6
    functionLinenumber: 633
    functionLinenumberEnd: 716
    functionName: fu_dfu_target_avr_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_dfu_target_get_sector_default
    - fu_progress_step_done
    - fu_dfu_target_avr_select_memory_unit
    - g_autoptr
    - fu_dfu_sector_get_size
    - fu_dfu_target_avr_mass_erase
    - fu_chunk_get_bytes
    - g_bytes_get_data
    - fu_dfu_sector_get_address
    - g_warning
    - g_bytes_get_size
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_chunk_array_new
    - fu_dfu_target_avr_download_element_chunks
    - fu_dfu_target_get_alt_setting
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_target_avr_download_element(FuDfuTarget *target,\n\t\t\t\t
      \  FuChunk *chk,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuDfuTargetTransferFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:724,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:729,1
    - Dst: fu_dfu_target_avr_read_memory
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:732,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:733,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:734,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:734,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:736,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:739,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:742,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:744,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:745,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:746,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:748,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:752,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - target
    - chk
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 718
    functionDepth: 5
    functionLinenumber: 718
    functionLinenumberEnd: 756
    functionName: fu_dfu_target_avr_upload_element_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_chunk_get_address
    - g_debug
    - g_steal_pointer
    - fu_progress_add_step
    - fu_chunk_get_idx
    - fu_dfu_target_upload_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_dfu_target_avr_read_memory
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_dfu_target_avr_upload_element_chunk(FuDfuTarget *target,\n\t\t\t\t
      \      FuChunk *chk,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t       GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:771,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:774,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:775,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:778,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:781,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:784,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:785,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:785,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:786,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:786,1
    - Dst: fu_dfu_target_avr_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:788,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:789,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:794,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:795,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:800,1
    - Dst: fu_dfu_target_avr_upload_element_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:803,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:805,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:809,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:812,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:813,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:815,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:818,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:822,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:827,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:828,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:830,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:831,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:835,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:836,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:837,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:839,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:842,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:843,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:844,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - chunks
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 845
    functionName: fu_dfu_target_avr_upload_element_chunks
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_avr_select_memory_page
    - fu_dfu_target_avr32_select_memory_page
    - fu_dfu_target_avr_upload_element_chunk
    - fu_progress_set_steps
    - g_bytes_new_from_bytes
    - fu_device_get_proxy
    - fu_progress_get_child
    - g_debug
    - fu_chunk_bytes_new
    - fu_chunk_set_address
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_chunk_get_page
    - fu_progress_step_done
    - g_steal_pointer
    - g_autoptr
    - fu_bytes_is_empty
    - g_ptr_array_new_with_free_func
    - fu_dfu_utils_bytes_join_array
    - g_ptr_array_add
    - fu_progress_new
    - g_bytes_get_size
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_ptr_array_set_size
    - g_bytes_ref
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfu_target_avr_upload_element_chunks(FuDfuTarget *target,\n\t\t\t\t\tguint32
      address,\n\t\t\t\t\tgsize expected_size,\n\t\t\t\t\tGPtrArray *chunks,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:856,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:857,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:860,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:861,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:862,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:865,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:866,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:867,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:870,1
    - Dst: fu_dfu_target_get_sector_default
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:873,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:875,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:881,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:882,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:893,1
    - Dst: fu_dfu_target_avr_upload_element_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:898,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:902,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:906,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 847
    functionDepth: 7
    functionLinenumber: 847
    functionLinenumberEnd: 910
    functionName: fu_dfu_target_avr_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_address
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_dfu_target_avr_upload_element_chunks
    - g_steal_pointer
    - fu_dfu_target_avr_select_memory_unit
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_new
    - fu_dfu_target_get_sector_default
    - fu_dfu_target_get_alt_setting
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_dfu_target_avr_upload_element(FuDfuTarget *target,\n\t\t\t\t
      guint32 address,\n\t\t\t\t gsize expected_size,\n\t\t\t\t gsize maximum_size,\n\t\t\t\t
      FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTargetAvr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: fu_dfu_target_avr_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_avr_init(FuDfuTargetAvr *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetAvrClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 926
    functionName: fu_dfu_target_avr_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - FU_DFU_TARGET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_avr_class_init(FuDfuTargetAvrClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 934
    functionName: fu_dfu_target_avr_new
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDfuTarget
    signature: 'FuDfuTarget *

      fu_dfu_target_avr_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1482
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:78,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:79,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:80,1
    - Dst: fu_dfu_state_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:80,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:81,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:81,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:82,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:86,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:87,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:88,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:90,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:91,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:92,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:93,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:94,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:95,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:96,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:97,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:101,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: fu_dfu_device_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_status_to_string
    - fwupd_codec_string_append_bool
    - fu_device_add_string
    - g_ptr_array_index
    - FU_DEVICE
    - GET_PRIVATE
    - fwupd_codec_string_append_hex
    - FU_DFU_DEVICE
    - fu_dfu_state_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:118,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: fu_dfu_device_get_transfer_size
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_device_get_transfer_size(FuDfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:134,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_dfu_device_get_version
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_device_get_version(FuDfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:150,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: fu_dfu_device_get_download_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_dfu_device_get_download_timeout(FuDfuDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:157,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:158,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:158,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:161,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:162,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - dnload_timeout
    argTypes:
    - FuDfuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: fu_dfu_device_set_download_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_has_private_flag
    - g_return_if_fail
    - FU_IS_DFU_DEVICE
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_set_download_timeout(FuDfuDevice *self, guint dnload_timeout)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:182,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:186,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:186,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:187,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:188,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:189,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:190,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:191,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:193,1
    - Dst: fu_usb_dfu_descriptor_hdr_parse_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:197,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:200,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_dfu_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:201,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_attributes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:202,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:211,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:213,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:215,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:217,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - iface_data
    - error
    argTypes:
    - FuDfuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 221
    functionName: fu_dfu_device_parse_iface_data
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_usb_dfu_descriptor_hdr_get_transfer_size
    - fu_device_add_private_flag
    - g_bytes_get_size
    - fu_usb_dfu_descriptor_hdr_parse_bytes
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - g_bytes_ref
    - fu_usb_dfu_descriptor_hdr_get_attributes
    - fu_usb_dfu_descriptor_hdr_get_dfu_version
    - g_byte_array_new
    - g_byte_array_free_to_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_parse_iface_data(FuDfuDevice *self, GBytes *iface_data,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:227,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:228,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:229,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:234,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:235,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:240,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:241,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:244,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - iface
    argTypes:
    - FuDfuDevice*
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: fu_dfu_device_guess_state_from_iface
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_usb_interface_get_protocol
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_dfu_device_set_state
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_guess_state_from_iface(FuDfuDevice *self, FuUsbInterface
      *iface)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:252,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:256,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:264,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:264,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:271,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:273,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:276,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:278,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:280,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:285,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:285,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:289,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:290,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:291,1
    - Dst: fu_dfu_device_parse_iface_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:294,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:295,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:296,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:297,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:308,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:310,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:313,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:315,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:318,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:324,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:324,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:326,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:332,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:335,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:337,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:340,1
    - Dst: fu_dfu_target_stm_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:346,1
    - Dst: fu_dfu_target_avr_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:349,1
    - Dst: fu_dfu_target_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:352,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:355,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:355,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:355,1
    - Dst: fu_dfu_target_set_alt_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:356,1
    - Dst: fu_usb_interface_get_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:356,1
    - Dst: fu_dfu_target_set_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:357,1
    - Dst: fu_usb_interface_get_alternate
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:357,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:360,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:361,1
    - Dst: fu_dfu_device_guess_state_from_iface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:362,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:367,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:368,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:369,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:370,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:370,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:376,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:377,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:379,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:380,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:381,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:381,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:382,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:389,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:397,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:397,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:398,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:398,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 111
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 401
    functionName: fu_dfu_device_add_targets
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_guess_state_from_iface
    - fu_usb_interface_get_subclass
    - fu_device_set_proxy
    - fu_usb_device_get_release
    - fu_device_remove_private_flag
    - FU_FIRMWARE
    - fu_usb_interface_get_alternate
    - g_debug
    - fu_device_add_private_flag
    - g_ptr_array_index
    - FU_USB_DEVICE
    - g_info
    - fu_device_get_pid
    - fu_dfu_target_new
    - fu_usb_interface_get_number
    - fu_usb_interface_get_index
    - fu_firmware_get_image_by_idx_bytes
    - fu_dfu_target_avr_new
    - fu_dfu_target_set_alt_setting
    - fu_usb_interface_get_class
    - g_autoptr
    - fu_dfu_device_set_state
    - fu_usb_device_get_interfaces
    - fu_dfu_target_stm_new
    - fu_dfu_target_set_alt_idx
    - g_ptr_array_add
    - fu_dfu_device_parse_iface_data
    - g_warning
    - fu_device_get_vid
    - fu_device_add_protocol
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - g_ptr_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_add_targets(FuDfuDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:414,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:415,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: fu_dfu_device_get_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_dfu_device_get_timeout(FuDfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:430,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:431,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: fu_dfu_device_get_state
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDfuState
    signature: FuDfuState fu_dfu_device_get_state(FuDfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:447,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: fu_dfu_device_get_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDfuStatus
    signature: FuDfuStatus fu_dfu_device_get_status(FuDfuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:454,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:456,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:456,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:457,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:461,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:462,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:463,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - alt_setting
    - error
    argTypes:
    - FuDfuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 473
    functionName: fu_dfu_device_get_target_by_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_set_error
    - FU_IS_DFU_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    - g_return_val_if_fail
    - fu_dfu_target_get_alt_setting
    linkageType: ''
    returnType: FuDfuTarget
    signature: 'FuDfuTarget *

      fu_dfu_device_get_target_by_alt_setting(FuDfuDevice *self, guint8 alt_setting,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:479,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: fu_dfu_device_get_chip_id
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dfu_device_get_chip_id(FuDfuDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:486,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:487,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:487,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:488,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - chip_id
    argTypes:
    - FuDfuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 490
    functionName: fu_dfu_device_set_chip_id
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_return_if_fail
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_set_chip_id(FuDfuDevice *self, const gchar *chip_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:495,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:502,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:504,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - FuDfuDevice*
    - FuDfuState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 506
    functionName: fu_dfu_device_set_state
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_set_state(FuDfuDevice *self, FuDfuState state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuDfuDevice*
    - FuDfuStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: fu_dfu_device_set_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_set_status(FuDfuDevice *self, FuDfuStatus status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:521,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:532,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:532,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 548
    functionName: fu_dfu_device_ensure_interface
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - GET_PRIVATE
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_claim_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_ensure_interface(FuDfuDevice *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:553,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:554,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:560,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:560,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:561,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:565,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:565,1
    - Dst: fu_dfu_device_clear_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 573
    functionName: fu_dfu_device_refresh_and_clear
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_abort
    - fu_dfu_status_to_string
    - g_debug
    - fu_dfu_device_clear_status
    - fu_dfu_device_refresh
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_refresh_and_clear(FuDfuDevice *self, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:588,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:591,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:593,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:594,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:602,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:602,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:606,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:614,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:614,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:617,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:617,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:631,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:632,1
    - Dst: fu_dfu_device_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:633,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:634,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:637,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:645,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:654,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:655,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:656,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:657,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:659,1
    - Dst: fu_dfu_device_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:663,1
    - Dst: fu_dfu_device_set_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:664,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:664,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:665,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:666,1
    - Dst: fu_dfu_state_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuDfuDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 585
    functionDepth: 7
    functionLinenumber: 585
    functionLinenumberEnd: 670
    functionName: fu_dfu_device_refresh
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 4
    functionsReached:
    - fu_memread_uint24
    - g_return_val_if_fail
    - fu_dfu_state_to_string
    - fu_dfu_device_ensure_interface
    - g_set_error
    - g_debug
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - g_info
    - g_error_matches
    - fu_dfu_device_get_state
    - fu_dfu_device_set_download_timeout
    - FU_IS_DFU_DEVICE
    - g_autoptr
    - fu_dfu_device_set_state
    - fu_dfu_device_set_status
    - fu_dfu_status_to_string
    - fu_device_has_private_flag
    - FU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_refresh(FuDfuDevice *self, guint timeout_ms,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:675,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:678,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:680,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:681,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:683,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:683,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:697,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:699,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:700,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:703,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 713
    functionName: fu_dfu_device_request_detach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_error_matches
    - FU_BIT_SET
    - fu_usb_device_control_transfer
    - fu_device_has_private_flag
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dfu_device_error_fixup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_request_detach(FuDfuDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:718,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: fu_dfu_device_reload
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_refresh_and_clear
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_reload(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:725,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:726,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:728,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:728,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:729,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:732,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:734,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:739,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:743,1
    - Dst: fu_dfu_device_request_detach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:747,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:751,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:752,1
    - Dst: fu_dfu_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:753,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:759,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 722
    functionDepth: 6
    functionLinenumber: 722
    functionLinenumberEnd: 761
    functionName: fu_dfu_device_detach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_request_detach
    - fu_dfu_device_reset
    - fu_device_has_private_flag
    - FU_IS_DFU_DEVICE
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_add_flag
    - FU_DFU_DEVICE
    - g_return_val_if_fail
    - g_info
    - fu_dfu_device_refresh_and_clear
    - fu_dfu_device_ensure_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:776,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:778,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:779,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:783,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:784,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:792,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:795,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:795,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:809,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 772
    functionDepth: 4
    functionLinenumber: 772
    functionLinenumberEnd: 819
    functionName: fu_dfu_device_abort
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - fu_usb_device_control_transfer
    - fu_device_has_private_flag
    - FU_IS_DFU_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - g_return_val_if_fail
    - fu_dfu_device_error_fixup
    - fu_dfu_device_ensure_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_abort(FuDfuDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:824,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:825,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:829,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:829,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:830,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:838,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:841,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:841,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:855,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:856,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 821
    functionDepth: 4
    functionLinenumber: 821
    functionLinenumberEnd: 864
    functionName: fu_dfu_device_clear_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_usb_device_control_transfer
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dfu_device_error_fixup
    - fu_dfu_device_ensure_interface
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_clear_status(FuDfuDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:875,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:876,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: fu_dfu_device_get_interface
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DFU_DEVICE
    - g_return_val_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dfu_device_get_interface(FuDfuDevice *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:892,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:893,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:895,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:895,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:896,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:899,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:904,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:905,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:911,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:911,1
    - Dst: fu_usb_device_get_serial_number_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:915,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:915,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:918,1
    - Dst: fu_usb_device_get_string_descriptor_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:919,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:919,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:925,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:926,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:928,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:936,1
    - Dst: fu_dfu_device_set_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:937,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:940,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:941,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:941,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:946,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 889
    functionDepth: 7
    functionLinenumber: 889
    functionLinenumberEnd: 953
    functionName: fu_dfu_device_open
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_serial_number_index
    - g_return_val_if_fail
    - FU_DEVICE_CLASS
    - fu_dfu_device_set_chip_id
    - g_ptr_array_index
    - FU_USB_DEVICE
    - fu_dump_bytes
    - FU_IS_DFU_DEVICE
    - g_autoptr
    - fu_usb_device_get_string_descriptor_bytes
    - fu_dfu_device_set_state
    - fu_device_set_serial
    - g_bytes_get_data
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_dfu_target_setup
    - FU_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_strndup
    - FU_DFU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_open(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:967,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:972,1
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:973,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:973,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:977,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:978,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 986
    functionName: fu_dfu_device_close
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - FU_DEVICE_CLASS
    - g_error_matches
    - fu_usb_device_release_interface
    - GET_PRIVATE
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DFU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_close(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:991,1
    - Dst: fu_dfu_device_add_targets
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:994,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:995,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:997,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:998,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:998,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1003,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1004,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1005,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1006,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1006,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1011,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1011,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1013,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 988
    functionDepth: 9
    functionLinenumber: 988
    functionLinenumberEnd: 1019
    functionName: fu_dfu_device_probe
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_debug
    - fu_device_get_vid
    - fu_dfu_device_add_targets
    - g_prefix_error
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_DFU_DEVICE
    - g_info
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1024,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1025,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1025,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1027,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1027,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1028,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1030,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1030,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1031,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1039,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1041
    functionName: fu_dfu_device_reset
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - g_debug
    - g_timer_new
    - g_timer_elapsed
    - FU_IS_DFU_DEVICE
    - g_autoptr
    - FU_USB_DEVICE
    - g_return_val_if_fail
    - fu_usb_device_reset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_reset(FuDfuDevice *self, FuProgress *progress,
      GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1046,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1047,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1048,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1050,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1051,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1054,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1056,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1060,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1060,1
    - Dst: fu_dfu_device_request_detach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1061,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1063,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1069,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1069,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1071,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1072,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1073,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1074,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1077,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1083,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1088,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1088,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1089,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1089,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1090,1
    - Dst: fu_dfu_target_attach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1091,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1092,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1097,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1043
    functionDepth: 7
    functionLinenumber: 1043
    functionLinenumberEnd: 1104
    functionName: fu_dfu_device_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_dfu_device_request_detach
    - g_prefix_error
    - fu_device_has_private_flag
    - FU_IS_DFU_DEVICE
    - fu_device_has_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_add_flag
    - g_autoptr
    - fu_dfu_device_get_target_by_alt_setting
    - fu_dfu_target_upload_chunk
    - FU_DFU_DEVICE
    - g_return_val_if_fail
    - g_info
    - fu_dfu_device_refresh_and_clear
    - fu_dfu_target_attach
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1114,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1117,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1122,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1123,1
    - Dst: fu_dfuse_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1129,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1130,1
    - Dst: fu_dfu_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1132,1
    - Dst: fu_dfu_firmware_set_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1134,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1134,1
    - Dst: fu_dfu_firmware_set_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1135,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1135,1
    - Dst: fu_dfu_firmware_set_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1136,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1136,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1139,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1145,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1148,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1148,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1149,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1149,1
    - Dst: fu_dfu_target_upload
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1152,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1154,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1158,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1106
    functionDepth: 7
    functionLinenumber: 1106
    functionLinenumberEnd: 1166
    functionName: fu_dfu_device_upload
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_set_release
    - fu_dfu_target_upload
    - fu_progress_set_steps
    - fu_dfu_device_ensure_interface
    - g_object_ref
    - fu_dfu_firmware_new
    - g_debug
    - fu_progress_get_child
    - fu_device_get_logical_id
    - fu_dfu_firmware_set_pid
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_device_get_name
    - fu_dfuse_firmware_new
    - fu_progress_step_done
    - g_autoptr
    - FU_DFU_FIRMWARE
    - FU_DEVICE
    - GET_PRIVATE
    - g_strcmp0
    - fu_dfu_firmware_set_vid
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_dfu_device_upload(FuDfuDevice *self,\n\t\t     FuProgress
      *progress,\n\t\t     FuDfuTargetTransferFlags flags,\n\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - id_file
    - id_runtime
    - id_dev
    argTypes:
    - guint16
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1185
    functionName: fu_dfu_device_id_compatible
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_id_compatible(guint16 id_file, guint16 id_runtime,
      guint16 id_dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1192,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1196
    functionName: fu_dfu_device_calculate_chunks_size
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_ptr_array_index
    linkageType: ''
    returnType: gsize
    signature: gsize fu_dfu_device_calculate_chunks_size(GPtrArray *chunks)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1207,1
    - Dst: fu_dfu_device_ensure_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1212,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1216,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1217,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1217,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1218,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1218,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1227,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1236,1
    - Dst: fu_dfu_device_id_compatible
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1246,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1248,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1249,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1256,1
    - Dst: fu_dfu_device_id_compatible
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1263,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1265,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1266,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1273,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1279,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1281,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1281,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1282,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1284,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1285,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1285,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1288,1
    - Dst: fu_dfu_device_calculate_chunks_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1290,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1297,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1299,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1300,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1303,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1305,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1306,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1311,1
    - Dst: fu_dfu_firmware_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1312,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1312,1
    - Dst: fu_dfu_target_download
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1314,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1316,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1321,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDfuDevice*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1198
    functionDepth: 8
    functionLinenumber: 1198
    functionLinenumberEnd: 1329
    functionName: fu_dfu_device_download
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_chunks
    - fu_dfu_firmware_get_vid
    - fu_firmware_get_images
    - fu_dfu_device_ensure_interface
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_progress_get_child
    - fu_device_get_logical_id
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_progress_set_id
    - FU_IS_DFU_FIRMWARE
    - fu_device_get_pid
    - fu_dfu_device_calculate_chunks_size
    - fu_progress_step_done
    - fu_dfu_target_download
    - fu_firmware_get_idx
    - g_autoptr
    - fu_dfu_firmware_get_pid
    - g_ptr_array_add
    - FU_DFU_FIRMWARE
    - fu_dfu_firmware_get_version
    - fu_device_get_vid
    - fu_dfu_target_setup
    - FU_DEVICE
    - fu_dfu_device_get_target_by_alt_setting
    - GET_PRIVATE
    - fu_dfu_device_id_compatible
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_device_download(FuDfuDevice *self,\n\t\t       FuFirmware
      *firmware,\n\t\t       FuProgress *progress,\n\t\t       FuDfuTargetTransferFlags
      flags,\n\t\t       GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1334,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1341,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1345,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1358,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1361,1
    - Dst: fu_dfu_state_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1363,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1331
    functionDepth: 8
    functionLinenumber: 1331
    functionLinenumberEnd: 1367
    functionName: fu_dfu_device_error_fixup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 5
    functionsReached:
    - fu_dfu_status_to_string
    - g_error_matches
    - g_prefix_error
    - fu_dfu_device_refresh
    - GET_PRIVATE
    - fu_dfu_state_to_string
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_error_fixup(FuDfuDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1373,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1376,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1377,1
    - Dst: fu_dfu_device_upload
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1379,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1369
    functionDepth: 8
    functionLinenumber: 1369
    functionLinenumberEnd: 1385
    functionName: fu_dfu_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - g_autoptr
    - fu_dfu_device_upload
    - FU_DFU_DEVICE
    - fu_dfu_device_refresh_and_clear
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_device_dump_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1387
    functionDepth: 4
    functionLinenumber: 1387
    functionLinenumberEnd: 1403
    functionName: fu_dfu_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_gtypes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_dfu_device_prepare_firmware(FuDevice *device,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuProgress *progress,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1412,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1416,1
    - Dst: fu_dfu_device_download
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1405
    functionDepth: 9
    functionLinenumber: 1405
    functionLinenumberEnd: 1425
    functionName: fu_dfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_download
    - fu_dfu_device_refresh_and_clear
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dfu_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1430,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1431,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1434,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1440,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1441,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1446,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1447,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1452,1
    - Dst: fu_dfu_device_set_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1453,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1463
    functionName: fu_dfu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_set_chip_id
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - FU_DFU_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1468,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1469,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1470,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1471,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1472,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1465
    functionDepth: 3
    functionLinenumber: 1465
    functionLinenumberEnd: 1474
    functionName: fu_dfu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1479,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1480,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1483,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1486
    functionName: fu_dfu_device_dispose
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - FU_DFU_DEVICE
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1491,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1492,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1494,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1495,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1498
    functionName: fu_dfu_device_finalize
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - FU_DFU_DEVICE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1503,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1519
    functionName: fu_dfu_device_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_class_init(FuDfuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1524,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1531,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1536,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1537,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1537,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1538,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1539,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1540,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1540,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1541,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1541,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1542,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1542,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1544,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1544,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1545,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1545,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1546,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1547,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1548,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1548,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1549,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1549,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1550,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1551,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1551,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1552,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1553,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1554,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1555,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1555,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1556,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1556,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1557,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1557,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1558,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1558,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1559,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1559,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1560,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1560,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1561,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1561,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1562,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1563,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1563,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1564,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1565,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1566,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1566,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1521
    functionDepth: 6
    functionLinenumber: 1521
    functionLinenumberEnd: 1568
    functionName: fu_dfu_device_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_init(FuDfuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:30,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:31,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:35,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:39,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:40,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:43,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: fu_dfu_utils_bytes_join_array
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-common.c
    functionUses: 4
    functionsReached:
    - memcpy
    - g_bytes_new_take
    - g_bytes_get_size
    - g_malloc0
    - g_ptr_array_index
    - g_bytes_get_data
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_utils_bytes_join_array(GPtrArray *chunks)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 1515
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuSectorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: fu_dfu_sector_class_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dfu_sector_class_init(FuDfuSectorClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: fu_dfu_sector_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dfu_sector_init(FuDfuSector *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:58,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - address
    - size
    - size_left
    - zone
    - number
    - cap
    argTypes:
    - guint32
    - guint32
    - guint32
    - guint16
    - guint16
    - FuDfuSectorCap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: fu_dfu_sector_new
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 3
    functionsReached:
    - GET_PRIVATE
    - g_object_new
    linkageType: ''
    returnType: FuDfuSector
    signature: "FuDfuSector *\nfu_dfu_sector_new(guint32 address,\n\t\t  guint32 size,\n\t\t
      \ guint32 size_left,\n\t\t  guint16 zone,\n\t\t  guint16 number,\n\t\t  FuDfuSectorCap
      cap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:73,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fu_dfu_sector_get_address
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dfu_sector_get_address(FuDfuSector *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:81,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_dfu_sector_get_size
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dfu_sector_get_size(FuDfuSector *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:88,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:89,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: fu_dfu_sector_get_zone
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_dfu_sector_get_zone(FuDfuSector *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:99,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fu_dfu_sector_get_id
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dfu_sector_get_id(FuDfuSector *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:106,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:107,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cap
    argTypes:
    - FuDfuSector*
    - FuDfuSectorCap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: fu_dfu_sector_has_cap
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - GET_PRIVATE
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_sector_has_cap(FuDfuSector *self, FuDfuSectorCap cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:118,1
    - Dst: FU_IS_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:118,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:120,1
    - Dst: fu_dfu_sector_cap_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:121,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:122,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-sector.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuSector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: fu_dfu_sector_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 1
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fu_dfu_sector_cap_to_string
    - g_string_free
    - GET_PRIVATE
    - g_return_val_if_fail
    - FU_IS_DFU_SECTOR
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dfu_sector_to_string(FuDfuSector *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:20,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:22,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:24,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:26,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:28,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - txt1
    - txt2
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: fu_test_compare_lines
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 6
    functionsReached:
    - g_file_set_contents
    - g_spawn_command_line_sync
    - g_set_error_literal
    - g_strcmp0
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_compare_lines(const gchar *txt1, const gchar *txt2,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:40,1
    - Dst: fu_dfu_target_get_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:41,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:43,1
    - Dst: fu_dfu_sector_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:44,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:45,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:48,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - target
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: fu_dfu_target_sectors_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_new
    - fu_dfu_target_get_sectors
    - g_string_free
    - g_ptr_array_index
    - g_string_truncate
    - fu_dfu_sector_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dfu_target_sectors_to_string(FuDfuTarget *target)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:57,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:58,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:60,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:63,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:64,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:67,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:68,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:69,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:70,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:75,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:77,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:78,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:81,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:83,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:84,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:85,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:91,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:92,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:95,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:96,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:97,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:98,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:99,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:109,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:110,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:116,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:117,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:118,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:119,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:131,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:132,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:133,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:136,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:137,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:138,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:139,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:140,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 142
    functionName: fu_dfu_target_dfuse_func
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_device_set_proxy
    - g_assert_true
    - g_object_new
    - FU_DEVICE
    - g_assert_no_error
    - fu_dfu_target_parse_sectors
    - fu_dfu_target_sectors_to_string
    - g_autoptr
    - g_assert_false
    - g_free
    - fu_test_compare_lines
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_dfu_target_dfuse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:149,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:150,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:153,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:154,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:157,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:158,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:161,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:35,1
    - Dst: fu_pxi_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:36,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: fu_pxi_wireless_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ota_fw_state_to_string
    - fwupd_codec_string_append_hex
    - FU_PXI_WIRELESS_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pxi_wireless_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:47,1
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:50,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: fu_pxi_wireless_device_get_parent
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - FU_PXI_RECEIVER_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: FuPxiReceiverDevice
    signature: 'FuPxiReceiverDevice *

      fu_pxi_wireless_device_get_parent(FuDevice *self, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:61,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:61,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:63,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:67,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:70,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:71,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:73,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:75,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:77,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:80,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:82,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:83,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:84,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: fu_pxi_wireless_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_firmware_is_hpac
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_set_stream
    - fu_firmware_parse_stream
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_firmware_new
    - FU_PXI_FIRMWARE
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pxi_wireless_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:104,1
    - Dst: memset
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:110,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:113,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:115,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:115,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:130,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:140,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - device
    - buf
    - bufsz
    - error
    argTypes:
    - FuPxiWirelessDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 148
    functionName: fu_pxi_wireless_device_get_cmd_response
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hidraw_device_get_feature
    - g_debug
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_DEVICE
    - memset
    - fu_pxi_wireless_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_wireless_device_get_cmd_response(FuPxiWirelessDevice
      *device,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tguint bufsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:158,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:159,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:159,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:162,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:167,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:168,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:169,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:174,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:181,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:181,1
    - Dst: fu_pxi_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:187,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:190,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:192,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:202,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:211,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - device
    - checksum
    - error
    argTypes:
    - FuDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 221
    functionName: fu_pxi_wireless_device_check_crc
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_PXI_WIRELESS_DEVICE
    - fu_dump_raw
    - fu_pxi_wireless_device_get_cmd_response
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_check_crc(FuDevice *device, guint16
      checksum, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:230,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:231,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:231,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:234,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:239,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:240,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:241,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:241,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:242,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:242,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:248,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:256,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:256,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:264,1
    - Dst: fu_pxi_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:266,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:268,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:271,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 282
    functionName: fu_pxi_wireless_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_PXI_WIRELESS_DEVICE
    - fu_device_sleep
    - fu_pxi_wireless_device_get_cmd_response
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_chunk_get_address
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_fw_object_create(FuDevice *device,
      FuChunk *chk, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:289,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:290,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:290,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:293,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:298,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:298,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:299,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:300,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:301,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:307,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:314,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:314,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 326
    functionName: fu_pxi_wireless_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_PXI_WIRELESS_DEVICE
    - g_autoptr
    - fu_chunk_get_data
    - fu_pxi_wireless_device_get_parent
    - g_byte_array_append
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_write_payload(FuDevice *device, FuChunk
      *chk, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:334,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:334,1
    - Dst: fu_pxi_wireless_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:337,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:341,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:342,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:347,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:350,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:356,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:356,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:356,1
    - Dst: fu_pxi_wireless_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:357,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:363,1
    - Dst: fu_pxi_wireless_device_check_crc
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 374
    functionName: fu_pxi_wireless_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_pxi_wireless_device_write_payload
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_sum16
    - FU_PXI_WIRELESS_DEVICE
    - fu_pxi_wireless_device_fw_object_create
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_pxi_wireless_device_check_crc
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_write_chunk(FuDevice *device, FuChunk
      *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:381,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:382,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:382,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:385,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:389,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:390,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:395,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:403,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 408
    functionName: fu_pxi_wireless_device_fw_ota_preceding
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_PXI_WIRELESS_DEVICE
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_fw_ota_preceding(FuDevice *device,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:418,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:419,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:419,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:422,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:426,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:427,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:429,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:430,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:431,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:435,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:443,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:443,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:451,1
    - Dst: fu_pxi_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:453,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:455,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:458,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - device
    - bufsz
    - error
    argTypes:
    - FuDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 469
    functionName: fu_pxi_wireless_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_PXI_WIRELESS_DEVICE
    - fu_device_sleep
    - fu_pxi_wireless_device_get_cmd_response
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - g_byte_array_append
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_fw_ota_init_new(FuDevice *device, gsize
      bufsz, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:478,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:479,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:479,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:482,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:487,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:488,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:495,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:502,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:502,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:510,1
    - Dst: fu_pxi_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:512,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:514,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:517,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:521,1
    - Dst: fu_pxi_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 528
    functionName: fu_pxi_wireless_device_fw_ota_ini_new_check
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_pxi_ota_fw_state_parse
    - fu_memread_uint8_safe
    - FU_PXI_WIRELESS_DEVICE
    - fu_pxi_wireless_device_get_cmd_response
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_fw_ota_ini_new_check(FuDevice *device,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:542,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:542,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:543,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:544,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:547,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:548,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:549,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:552,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:556,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:561,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:562,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:565,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:566,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:568,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:569,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:572,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:573,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:574,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:578,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:585,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:589,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:596,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:599,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:599,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:607,1
    - Dst: fu_pxi_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:609,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:611,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:614,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:618,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - device
    - firmware
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 625
    functionName: fu_pxi_wireless_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_byte_array_append_uint32
    - g_set_error
    - fu_byte_array_append_uint16
    - FU_HIDRAW_DEVICE
    - FU_PXI_WIRELESS_DEVICE
    - fu_progress_add_step
    - fu_sum16_bytes
    - fu_progress_set_id
    - fu_pxi_wireless_device_get_cmd_response
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_firmware_get_version
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_byte_array_append
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_wireless_device_fw_upgrade(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:632,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:632,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:633,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:633,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:636,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:641,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:642,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:645,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:651,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:660,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:660,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:669,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:670,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:678,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 683
    functionName: fu_pxi_wireless_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_PXI_WIRELESS_DEVICE
    - g_byte_array_set_size
    - g_autoptr
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_wireless_device_reset(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:693,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:695,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:698,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:699,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:700,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:701,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:702,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:705,1
    - Dst: fu_pxi_wireless_device_fw_ota_preceding
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:710,1
    - Dst: fu_pxi_wireless_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:713,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:713,1
    - Dst: fu_pxi_wireless_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:715,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:717,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:719,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:728,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:729,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:732,1
    - Dst: fu_pxi_wireless_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:735,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:737,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:737,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:739,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:741,1
    - Dst: fu_pxi_wireless_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:744,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:746,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:749,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:752,1
    - Dst: fu_pxi_wireless_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:753,1
    - Dst: fu_pxi_wireless_device_get_parent
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:756,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:760,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:761,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 685
    functionDepth: 7
    functionLinenumber: 685
    functionLinenumberEnd: 765
    functionName: fu_pxi_wireless_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_pxi_wireless_device_write_chunk
    - fu_pxi_wireless_device_fw_ota_init_new
    - fu_pxi_wireless_device_fw_ota_preceding
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - FU_PXI_WIRELESS_DEVICE
    - fu_progress_add_step
    - fu_pxi_wireless_device_reset
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_pxi_wireless_device_fw_upgrade
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_chunk_array_index
    - fu_pxi_wireless_device_get_parent
    - fu_pxi_wireless_device_fw_ota_ini_new_check
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_wireless_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:770,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:771,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:772,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:773,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:774,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 776
    functionName: fu_pxi_wireless_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pxi_wireless_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:781,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:782,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:783,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:784,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:785,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:785,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:786,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:787,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:788,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiWirelessDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 789
    functionName: fu_pxi_wireless_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_pxi_wireless_device_init(FuPxiWirelessDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPxiWirelessDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 799
    functionName: fu_pxi_wireless_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_wireless_device_class_init(FuPxiWirelessDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - model
    argTypes:
    - FuContext*
    - struct ota_fw_dev_model*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 814
    functionName: fu_pxi_wireless_device_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPxiWirelessDevice
    signature: 'FuPxiWirelessDevice *

      fu_pxi_wireless_device_new(FuContext *ctx, struct ota_fw_dev_model *model)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:20,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:21,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:22,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:24,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:27,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:30,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:32,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:33,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:36,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:38,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:39,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:44,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:48,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:51,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:52,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 54
    functionName: fu_pxi_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - fu_firmware_write
    - g_file_get_contents
    - g_assert_cmpstr
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_pxi_firmware_new
    - fu_firmware_parse_bytes
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_pxi_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:59,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:60,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:63,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:66,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: main
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:54,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:54,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:54,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - info
    - error
    argTypes:
    - FuPxiBleDevice*
    - struct hidraw_devinfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: fu_pxi_ble_device_get_raw_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_get_raw_info(FuPxiBleDevice *self, struct
      hidraw_devinfo *info, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:72,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:73,1
    - Dst: fu_pxi_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:74,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:75,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:76,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: fu_pxi_ble_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ota_fw_state_to_string
    - fwupd_codec_string_append_hex
    - FU_PXI_BLE_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ble_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:88,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:88,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:90,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:93,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:94,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:96,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:98,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:100,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:103,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:106,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:107,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:107,1
    - Dst: fu_pxi_firmware_get_model_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:111,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 140
    functionName: fu_pxi_ble_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_firmware_is_hpac
    - FU_PXI_BLE_DEVICE
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_set_stream
    - fu_pxi_firmware_get_model_name
    - fu_firmware_parse_stream
    - fu_device_has_private_flag
    - g_set_error_literal
    - g_autoptr
    - g_strcmp0
    - fu_pxi_firmware_new
    - FU_PXI_FIRMWARE
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pxi_ble_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \  GInputStream *stream,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FuFirmwareParseFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:147,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: fu_pxi_ble_device_set_feature_cb
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_set_feature_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuPxiBleDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: fu_pxi_ble_device_set_feature
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_set_feature(FuPxiBleDevice *self, GByteArray
      *req, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:168,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:168,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:179,1
    - Dst: memmove
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPxiBleDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: fu_pxi_ble_device_get_feature
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_get_feature
    - g_debug
    - memmove
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_get_feature(FuPxiBleDevice *self, guint8
      *buf, guint bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:195,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:198,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:211,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:211,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:216,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - descriptor
    - usage_page
    - report_id
    - error
    argTypes:
    - FuHidDescriptor*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 218
    functionName: fu_pxi_ble_device_search_hid_feature_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - fu_firmware_get_image_by_id
    - FU_FIRMWARE
    - fu_hid_report_item_get_value
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_search_hid_feature_report_id(FuHidDescriptor
      *descriptor,\n\t\t\t\t\t       guint16 usage_page,\n\t\t\t\t\t       guint8
      *report_id,\n\t\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:227,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:230,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:243,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:243,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:248,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - descriptor
    - usage_page
    - report_id
    - error
    argTypes:
    - FuHidDescriptor*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 250
    functionName: fu_pxi_ble_device_search_hid_input_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - fu_firmware_get_image_by_id
    - FU_FIRMWARE
    - fu_hid_report_item_get_value
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_search_hid_input_report_id(FuHidDescriptor
      *descriptor,\n\t\t\t\t\t     guint16 usage_page,\n\t\t\t\t\t     guint8 *report_id,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:260,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:262,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:262,1
    - Dst: fu_pxi_ble_device_search_hid_feature_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:267,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:271,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:273,1
    - Dst: fu_pxi_ble_device_search_hid_feature_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:282,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:284,1
    - Dst: fu_pxi_ble_device_search_hid_input_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:293,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 301
    functionName: fu_pxi_ble_device_check_support_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - FU_HIDRAW_DEVICE
    - fu_pxi_ble_device_search_hid_feature_report_id
    - g_autoptr
    - fu_pxi_ble_device_search_hid_input_report_id
    - fu_hidraw_device_parse_descriptor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_check_support_report_id(FuPxiBleDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:306,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:306,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:309,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:310,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: fu_pxi_ble_device_fw_ota_check_retransmit
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_set_feature
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_fw_ota_check_retransmit(FuPxiBleDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:321,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:325,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:330,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:334,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:335,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:347,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:350,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:353,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:353,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:353,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPxiBleDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 370
    functionName: fu_pxi_ble_device_check_support_resume
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_sum16
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_check_support_resume(FuPxiBleDevice *self,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:379,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:379,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:384,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:385,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:385,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:397,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:406,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:410,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:413,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:426,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - self
    - port
    - status
    - checksum
    - error
    argTypes:
    - FuPxiBleDevice*
    - goffset
    - guint8*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 437
    functionName: fu_pxi_ble_device_wait_notify
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_timer_new
    - g_timer_elapsed
    - fu_memread_uint8_safe
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_pread
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_wait_notify(FuPxiBleDevice *self,\n\t\t\t
      \     goffset port,\n\t\t\t      guint8 *status,\n\t\t\t      guint16 *checksum,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:443,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:443,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:446,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:447,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:448,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:448,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:449,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:449,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:450,1
    - Dst: fu_pxi_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:454,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPxiBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 468
    functionName: fu_pxi_ble_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_byte_array_append_uint8
    - fu_pxi_ble_device_set_feature
    - fu_pxi_ble_device_wait_notify
    - g_autoptr
    - fu_chunk_get_address
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_fw_object_create(FuPxiBleDevice *self, FuChunk
      *chk, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:473,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:473,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:474,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:475,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:475,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:475,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPxiBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 477
    functionName: fu_pxi_ble_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_byte_array_append_uint8
    - fu_pxi_ble_device_set_feature
    - fu_chunk_get_data
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_write_payload(FuPxiBleDevice *self, FuChunk
      *chk, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:486,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:486,1
    - Dst: fu_pxi_ble_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:489,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:493,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:494,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:498,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:501,1
    - Dst: fu_pxi_ble_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:509,1
    - Dst: fu_pxi_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:518,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:530,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:530,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:530,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:533,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPxiBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 544
    functionName: fu_pxi_ble_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_sum16
    - fu_pxi_ble_device_wait_notify
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_chunk_get_bytes
    - fu_pxi_ble_device_fw_object_create
    - fu_pxi_ble_device_write_payload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_write_chunk(FuPxiBleDevice *self, FuChunk
      *chk, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:549,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:549,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:550,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:551,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:552,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:554,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: fu_pxi_ble_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_set_feature
    - fu_byte_array_append_uint8
    - g_prefix_error
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_reset(FuPxiBleDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:566,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:566,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:569,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:570,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 572
    functionName: fu_pxi_ble_device_fw_ota_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_set_feature
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_fw_ota_init(FuPxiBleDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:579,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:579,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:582,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:583,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:584,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:585,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:586,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:587,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:591,1
    - Dst: fu_pxi_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:596,1
    - Dst: fu_pxi_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:600,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:603,1
    - Dst: fu_pxi_ota_spec_check_result_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - bufsz
    - error
    argTypes:
    - FuPxiBleDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 574
    functionDepth: 5
    functionLinenumber: 574
    functionLinenumberEnd: 614
    functionName: fu_pxi_ble_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_get_feature
    - g_set_error
    - fu_byte_array_append_uint8
    - fu_pxi_ble_device_set_feature
    - fu_pxi_ota_fw_state_parse
    - fu_pxi_ota_spec_check_result_to_string
    - FU_DEVICE
    - fu_device_sleep
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_fw_ota_init_new(FuPxiBleDevice *self, gsize
      bufsz, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:626,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:627,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:627,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:629,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:632,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:633,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:634,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:635,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:635,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:636,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:637,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:637,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:638,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:639,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:643,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:645,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:649,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:652,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:655,1
    - Dst: fu_pxi_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:658,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:659,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:663,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPxiBleDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 677
    functionName: fu_pxi_ble_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_pxi_ble_device_set_feature
    - g_prefix_error
    - fu_byte_array_append_uint32
    - g_set_error
    - fu_byte_array_append_uint16
    - fu_sum16_bytes
    - fu_dump_raw
    - fu_byte_array_append_uint8
    - fu_pxi_ble_device_wait_notify
    - g_autoptr
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_firmware_get_version
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_fw_upgrade(FuPxiBleDevice *self,\n\t\t\t
      \    FuFirmware *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:689,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:692,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:693,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:696,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:697,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:700,1
    - Dst: fu_pxi_ble_device_fw_ota_check_retransmit
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:705,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:706,1
    - Dst: fu_pxi_ble_device_fw_ota_init
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:710,1
    - Dst: fu_pxi_ble_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:712,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:712,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:714,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:717,1
    - Dst: fu_pxi_ble_device_check_support_resume
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:721,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:723,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:725,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:729,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:732,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:733,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:736,1
    - Dst: fu_pxi_ble_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:739,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:741,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:741,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:743,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:745,1
    - Dst: fu_pxi_ble_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:748,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:748,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:750,1
    - Dst: fu_pxi_ble_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:753,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:755,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:756,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 679
    functionDepth: 6
    functionLinenumber: 679
    functionLinenumberEnd: 760
    functionName: fu_pxi_ble_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_fw_upgrade
    - fu_chunk_array_length
    - g_prefix_error
    - fu_pxi_ble_device_check_support_resume
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - FU_PXI_BLE_DEVICE
    - fu_pxi_ble_device_fw_ota_init
    - g_autoptr
    - fu_chunk_array_index
    - fu_pxi_ble_device_fw_ota_check_retransmit
    - fu_pxi_ble_device_write_chunk
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - fu_pxi_ble_device_fw_ota_init_new
    - fu_pxi_ble_device_reset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ble_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:770,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:770,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:772,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:773,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:774,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:778,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:778,1
    - Dst: fu_pxi_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:783,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:785,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:788,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:796,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:796,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:797,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:799,1
    - Dst: fu_pxi_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:807,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:809,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:809,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 762
    functionDepth: 5
    functionLinenumber: 762
    functionLinenumberEnd: 817
    functionName: fu_pxi_ble_device_fw_get_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_get_feature
    - g_set_error
    - fu_device_set_version
    - fu_memread_uint16_safe
    - fu_pxi_ble_device_set_feature
    - fu_byte_array_append_uint8
    - fu_memread_uint8_safe
    - fu_pxi_hpac_version_info_parse
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    - g_strndup
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_fw_get_info(FuPxiBleDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:825,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:825,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:827,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:828,1
    - Dst: fu_pxi_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:830,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:834,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:834,1
    - Dst: fu_pxi_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:837,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:839,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:847,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:856,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 819
    functionDepth: 5
    functionLinenumber: 819
    functionLinenumberEnd: 862
    functionName: fu_pxi_ble_device_get_model_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_get_feature
    - fu_pxi_ble_device_set_feature
    - fu_byte_array_append_uint8
    - fu_memread_uint8_safe
    - fu_memcpy_safe
    - FU_DEVICE
    - g_clear_pointer
    - g_autoptr
    - g_strndup
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_get_model_info(FuPxiBleDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:868,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:871,1
    - Dst: fu_pxi_ble_device_get_raw_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:874,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:876,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:876,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:877,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:878,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:881,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:882,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:883,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:886,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:887,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:888,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:889,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:890,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 864
    functionDepth: 6
    functionLinenumber: 864
    functionLinenumberEnd: 896
    functionName: fu_pxi_ble_device_setup_guid
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_string_ascii_up
    - g_string_replace
    - fu_device_build_instance_id
    - FU_DEVICE
    - g_autoptr
    - fu_device_add_instance_str
    - fu_pxi_ble_device_get_raw_info
    - fu_device_get_name
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_setup_guid(FuPxiBleDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:901,1
    - Dst: fu_pxi_ble_device_check_support_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:903,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:904,1
    - Dst: fu_pxi_ble_device_fw_ota_check_retransmit
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:907,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:908,1
    - Dst: fu_pxi_ble_device_fw_ota_init
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:911,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:912,1
    - Dst: fu_pxi_ble_device_fw_get_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:915,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:916,1
    - Dst: fu_pxi_ble_device_get_model_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:919,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:920,1
    - Dst: fu_pxi_ble_device_setup_guid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:923,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:924,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 898
    functionDepth: 7
    functionLinenumber: 898
    functionLinenumberEnd: 929
    functionName: fu_pxi_ble_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ble_device_setup_guid
    - FU_PXI_BLE_DEVICE
    - fu_pxi_ble_device_fw_ota_init
    - fu_pxi_ble_device_get_model_info
    - g_prefix_error
    - fu_pxi_ble_device_fw_get_info
    - fu_pxi_ble_device_check_support_report_id
    - fu_pxi_ble_device_fw_ota_check_retransmit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_ble_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:934,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:935,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:936,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:937,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:938,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 940
    functionName: fu_pxi_ble_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ble_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:945,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:946,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:946,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:947,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:947,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:948,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:948,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:949,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:950,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:951,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:951,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:952,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:952,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:956,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 942
    functionDepth: 6
    functionLinenumber: 942
    functionLinenumberEnd: 958
    functionName: fu_pxi_ble_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ble_device_init(FuPxiBleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:963,1
    - Dst: g_free
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:964,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 966
    functionName: fu_pxi_ble_device_finalize
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_PXI_BLE_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ble_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:971,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPxiBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 979
    functionName: fu_pxi_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ble_device_class_init(FuPxiBleDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:25,1
    - Dst: fu_pxi_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_pxi_receiver_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_ota_fw_state_to_string
    - FU_PXI_RECEIVER_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pxi_receiver_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:36,1
    - Dst: fu_pxi_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:36,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:38,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:41,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:42,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:44,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:46,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:48,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:51,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:53,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:54,1
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:55,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 63
    functionName: fu_pxi_receiver_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_firmware_is_hpac
    - fu_input_stream_read_u32
    - g_steal_pointer
    - fu_firmware_set_stream
    - fu_firmware_parse_stream
    - fu_device_has_private_flag
    - g_autoptr
    - fu_pxi_firmware_new
    - FU_PXI_FIRMWARE
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pxi_receiver_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:69,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:70,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:70,1
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:71,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:73,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:74,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:76,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:77,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:78,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:81,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:89,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - device
    - bufsz
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 94
    functionName: fu_pxi_receiver_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - g_byte_array_append
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_fw_ota_init_new(FuPxiReceiverDevice
      *device, gsize bufsz, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:101,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:102,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:102,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:105,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:106,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:111,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:119,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:119,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:127,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:129,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:129,1
    - Dst: fu_pxi_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 138
    functionName: fu_pxi_receiver_device_fw_ota_ini_new_check
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_pxi_ota_fw_state_parse
    - FU_DEVICE
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_fw_ota_ini_new_check(FuPxiReceiverDevice
      *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:149,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:152,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:154,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:154,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:161,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 181
    functionName: fu_pxi_receiver_device_get_cmd_response
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_DEVICE
    - memset
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_receiver_device_get_cmd_response(FuPxiReceiverDevice
      *self,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tguint bufsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:189,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:190,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:190,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:193,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:194,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:195,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:201,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:209,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:209,1
    - Dst: fu_pxi_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:216,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:219,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - checksum
    - error
    argTypes:
    - FuDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 183
    functionDepth: 5
    functionLinenumber: 183
    functionLinenumberEnd: 232
    functionName: fu_pxi_receiver_device_check_crc
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_pxi_receiver_device_get_cmd_response
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_check_crc(FuDevice *device, guint16
      checksum, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:240,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:241,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:241,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:244,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:245,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:246,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:246,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:247,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:247,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:253,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:261,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:261,1
    - Dst: fu_pxi_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:268,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:271,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:275,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 286
    functionName: fu_pxi_receiver_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_chunk_get_address
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_pxi_receiver_device_get_cmd_response
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_fw_object_create(FuDevice *device,
      FuChunk *chk, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:292,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:293,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:293,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:296,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:296,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:297,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:298,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:299,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:305,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:313,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 318
    functionName: fu_pxi_receiver_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_write_payload(FuDevice *device, FuChunk
      *chk, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:326,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:326,1
    - Dst: fu_pxi_receiver_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:329,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:333,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:334,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:339,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:342,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:348,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:348,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:348,1
    - Dst: fu_pxi_receiver_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:349,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:354,1
    - Dst: fu_pxi_receiver_device_check_crc
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - device
    - chk
    - error
    argTypes:
    - FuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 364
    functionName: fu_pxi_receiver_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_sum16
    - fu_pxi_receiver_device_fw_object_create
    - fu_pxi_receiver_device_check_crc
    - fu_pxi_receiver_device_write_payload
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_write_chunk(FuDevice *device, FuChunk
      *chk, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:377,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:378,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:379,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:382,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:383,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:384,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:386,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:391,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:392,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:395,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:396,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:398,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:399,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:402,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:403,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:404,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:408,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:415,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:416,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:420,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:427,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:430,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:430,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:438,1
    - Dst: fu_pxi_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:440,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:443,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:446,1
    - Dst: fu_pxi_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:450,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:454,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - device
    - firmware
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 458
    functionName: fu_pxi_receiver_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_pxi_receiver_device_get_cmd_response
    - fu_byte_array_append_uint32
    - g_set_error
    - fu_byte_array_append_uint16
    - FU_HIDRAW_DEVICE
    - fu_progress_add_step
    - fu_sum16_bytes
    - fu_progress_set_id
    - fu_dump_raw
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_pxi_wireless_module_ota_rsp_code_to_string
    - fu_hidraw_device_set_feature
    - fu_firmware_get_version
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_PXI_RECEIVER_DEVICE
    - g_byte_array_append
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_receiver_device_fw_upgrade(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:464,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:465,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:465,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:468,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:469,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:470,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:474,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:483,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 488
    functionName: fu_pxi_receiver_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_reset(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:499,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:502,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:503,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:504,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:505,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:506,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:509,1
    - Dst: fu_pxi_receiver_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:514,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:514,1
    - Dst: fu_pxi_receiver_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:517,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:519,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:521,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:530,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:531,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:534,1
    - Dst: fu_pxi_receiver_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:537,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:539,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:539,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:541,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:543,1
    - Dst: fu_pxi_receiver_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:546,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:548,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:551,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:554,1
    - Dst: fu_pxi_receiver_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:557,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:559,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 564
    functionName: fu_pxi_receiver_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_pxi_receiver_device_reset
    - fu_pxi_receiver_device_write_chunk
    - fu_pxi_receiver_device_fw_ota_init_new
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_pxi_receiver_device_fw_upgrade
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_pxi_receiver_device_fw_ota_ini_new_check
    - g_autoptr
    - fu_chunk_array_index
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - FU_PXI_RECEIVER_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_receiver_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:576,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:577,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:577,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:579,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:580,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:581,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:584,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:591,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:591,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:598,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:598,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:601,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:601,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:608,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:610,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:613,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:623,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:625,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:628,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:638,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:643,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:644,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:644,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:645,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:647,1
    - Dst: fu_pxi_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:649,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:651,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - self
    - model
    - idx
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - struct ota_fw_dev_model*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 654
    functionName: fu_pxi_receiver_device_get_peripheral_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_memread_uint16_safe
    - g_debug
    - fu_hidraw_device_set_feature
    - g_strndup
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - fu_pxi_hpac_version_info_parse
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    - fu_dump_raw
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_receiver_device_get_peripheral_info(FuPxiReceiverDevice
      *self,\n\t\t\t\t\t   struct ota_fw_dev_model *model,\n\t\t\t\t\t   guint idx,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:661,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:663,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:663,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:664,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:664,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:666,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:667,1
    - Dst: fu_pxi_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:672,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:679,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:679,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:686,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:689,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:689,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:695,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - num_of_models
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 701
    functionName: fu_pxi_receiver_device_get_peripheral_num
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - fu_memread_uint8_safe
    - FU_DEVICE
    - g_autoptr
    - FU_PXI_RECEIVER_DEVICE
    - fu_dump_raw
    - fu_pxi_composite_receiver_cmd
    - g_byte_array_new
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_receiver_device_get_peripheral_num(FuPxiReceiverDevice
      *device,\n\t\t\t\t\t  guint8 *num_of_models,\n\t\t\t\t\t  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_pxi_receiver_device_get_peripheral_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:712,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:714,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:715,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:717,1
    - Dst: fu_pxi_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:719,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:721,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:725,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:725,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:726,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:728,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:728,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:729,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:731,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:731,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:732,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:732,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:733,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:733,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:742,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:742,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:743,1
    - Dst: fu_pxi_wireless_device_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:743,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:744,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:745,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:745,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:747,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:747,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:748,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:748,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:750,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:751,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:752,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:752,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:760,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:761,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:762,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:763,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - device
    - idx
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 703
    functionDepth: 6
    functionLinenumber: 703
    functionLinenumberEnd: 766
    functionName: fu_pxi_receiver_device_add_peripherals
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_memread_uint16_safe
    - fu_pxi_hpac_version_info_parse
    - fu_device_set_version
    - fu_device_get_context
    - fu_pxi_wireless_device_new
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_get_vid
    - fu_pxi_receiver_device_get_peripheral_info
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strndup
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_add_peripherals(FuPxiReceiverDevice
      *device, guint idx, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:771,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:771,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:771,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:772,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:773,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:773,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 768
    functionDepth: 6
    functionLinenumber: 768
    functionLinenumberEnd: 781
    functionName: fu_pxi_receiver_device_setup_guid
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_string_new
    - g_string_replace
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_strup
    - g_autoptr
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_setup_guid(FuPxiReceiverDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pxi_receiver_device_get_peripheral_num
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:789,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:791,1
    - Dst: fu_pxi_receiver_device_add_peripherals
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuPxiReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 783
    functionDepth: 7
    functionLinenumber: 783
    functionLinenumberEnd: 797
    functionName: fu_pxi_receiver_device_check_peripherals
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_receiver_device_get_peripheral_num
    - g_debug
    - fu_pxi_receiver_device_add_peripherals
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_check_peripherals(FuPxiReceiverDevice
      *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:802,1
    - Dst: fu_pxi_receiver_device_setup_guid
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:804,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:805,1
    - Dst: fu_pxi_receiver_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:808,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:809,1
    - Dst: fu_pxi_receiver_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:812,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:813,1
    - Dst: fu_pxi_receiver_device_check_peripherals
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:816,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 799
    functionDepth: 8
    functionLinenumber: 799
    functionLinenumberEnd: 822
    functionName: fu_pxi_receiver_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pxi_receiver_device_fw_ota_init_new
    - g_prefix_error
    - fu_pxi_receiver_device_fw_ota_ini_new_check
    - FU_PXI_RECEIVER_DEVICE
    - fu_pxi_receiver_device_check_peripherals
    - fu_pxi_receiver_device_setup_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:828,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:831,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:834,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:834,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:840,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 824
    functionDepth: 5
    functionLinenumber: 824
    functionLinenumberEnd: 850
    functionName: fu_pxi_receiver_device_probe
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_strcmp0
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_receiver_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:855,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:856,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:857,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:858,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:859,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 861
    functionName: fu_pxi_receiver_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pxi_receiver_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:866,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:867,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:867,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:868,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:869,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:869,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:870,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:871,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:872,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:873,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:874,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:874,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:875,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:875,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiReceiverDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 6
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: fu_pxi_receiver_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_pxi_receiver_device_init(FuPxiReceiverDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPxiReceiverDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: fu_pxi_receiver_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_receiver_device_class_init(FuPxiReceiverDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_pxi_plugin_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pxi_plugin_init(FuPxiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:29,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: fu_pxi_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_pxi_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:36,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:37,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:40,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: fu_pxi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_pxi_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:47,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPxiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: fu_pxi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_plugin_class_init(FuPxiPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:16,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:17,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:18,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:19,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:20,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:21,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:22,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:26,1
    - Dst: fu_pxi_ota_spec_check_result_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fwstate
    - idt
    - str
    argTypes:
    - struct ota_fw_state*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: fu_pxi_ota_fw_state_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c
    functionUses: 3
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_pxi_ota_spec_check_result_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pxi_ota_fw_state_to_string(struct ota_fw_state *fwstate, guint
      idt, GString *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:40,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:42,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:44,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:51,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:58,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:65,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:72,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - fwstate
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - struct ota_fw_state*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 84
    functionName: fu_pxi_ota_fw_state_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c
    functionUses: 3
    functionsReached:
    - fu_memread_uint8_safe
    - fu_memread_uint16_safe
    - fu_memread_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_ota_fw_state_parse(struct ota_fw_state *fwstate,\n\t\t\t
      \ const guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  gsize offset,\n\t\t\t  GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:101,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:106,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:107,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:111,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:114,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:115,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:120,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:121,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:124,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:125,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - opcode
    - sn
    - target
    - wireless_mod_cmd
    - ota_cmd
    - error
    argTypes:
    - guint8
    - guint8
    - guint8
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: fu_pxi_composite_receiver_cmd
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c
    functionUses: 17
    functionsReached:
    - g_set_error_literal
    - fu_sum8
    - g_byte_array_prepend
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_composite_receiver_cmd(guint8 opcode,\n\t\t\t      guint8
      sn,\n\t\t\t      guint8 target,\n\t\t\t      GByteArray *wireless_mod_cmd,\n\t\t\t
      \     GByteArray *ota_cmd,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hpac_ver
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: fu_pxi_hpac_version_info_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c
    functionUses: 3
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pxi_hpac_version_info_parse(const guint16 hpac_ver)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:31,1
    - Dst: FU_IS_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_pxi_firmware_get_model_name
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PXI_FIRMWARE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pxi_firmware_get_model_name(FuPxiFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:38,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_pxi_firmware_export
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_PXI_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_pxi_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:46,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:53,1
    - Dst: fu_input_stream_read_u64
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:59,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:65,1
    - Dst: fu_input_stream_read_u64
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:71,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:77,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 94
    functionName: fu_pxi_firmware_validate
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u64
    - g_prefix_error
    - g_set_error_literal
    - fu_input_stream_size
    - FU_PXI_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:102,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:111,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:115,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:133,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:139,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:146,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:151,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:154,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:155,1
    - Dst: fu_pxi_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:164,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:169,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:171,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:172,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:175,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:183,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 190
    functionName: fu_pxi_firmware_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_pxi_firmware_is_hpac
    - g_strndup
    - g_prefix_error
    - fu_pxi_hpac_version_info_parse
    - fu_memcpy_safe
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_dump_raw
    - fu_firmware_set_version_raw
    - fu_version_from_uint32
    - fu_input_stream_size
    - FU_PXI_FIRMWARE
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pxi_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:195,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:199,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: fu_pxi_firmware_build
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_PXI_FIRMWARE
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:210,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:214,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:227,1
    - Dst: fu_pxi_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:231,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:232,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:232,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:233,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:234,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:237,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:237,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:238,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:241,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:255,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:255,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:256,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:257,1
    - Dst: MIN
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:265,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:265,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:266,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:274,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:279,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 281
    functionName: fu_pxi_firmware_write
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_pxi_firmware_is_hpac
    - g_byte_array_sized_new
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - strlen
    - fu_firmware_get_bytes_with_patches
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_firmware_get_version_raw
    - g_prefix_error
    - MIN
    - g_autoptr
    - g_byte_array_append
    - g_ascii_isdigit
    - FU_PXI_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pxi_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: fu_pxi_firmware_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pxi_firmware_init(FuPxiFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PXI_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:291,1
    - Dst: g_free
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:292,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: fu_pxi_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_PXI_FIRMWARE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:299,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPxiFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 307
    functionName: fu_pxi_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pxi_firmware_class_init(FuPxiFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:312,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: fu_pxi_firmware_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 4
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_pxi_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPxiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: fu_pxi_firmware_is_hpac
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pxi_firmware_is_hpac(FuPxiFirmware *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:30,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:30,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:33,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:35,1
    - Dst: fu_plugin_device_remove
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: fu_synaptics_mst_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_write_firmware
    - fu_device_has_private_flag
    - fu_plugin_device_remove
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_plugin_write_firmware(FuPlugin *plugin,\n\t\t\t\t
      \      FuDevice *device,\n\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t       FuProgress
      *progress,\n\t\t\t\t       FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: fu_synaptics_mst_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_plugin_init(FuSynapticsMstPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:48,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:49,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:50,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:51,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:52,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:53,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: fu_synaptics_mst_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsMstPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: fu_synaptics_mst_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_plugin_class_init(FuSynapticsMstPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:30,1
    - Dst: FU_IS_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: fu_synaptics_mst_firmware_get_board_id
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_MST_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_synaptics_mst_firmware_get_board_id(FuSynapticsMstFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:37,1
    - Dst: FU_IS_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - family
    argTypes:
    - FuSynapticsMstFirmware*
    - FuSynapticsMstFamily
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_synaptics_mst_firmware_set_family
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_SYNAPTICS_MST_FIRMWARE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_firmware_set_family(FuSynapticsMstFirmware *self,
      FuSynapticsMstFamily family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:47,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:48,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: fu_synaptics_mst_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_family_to_string
    - fu_xmlb_builder_insert_kx
    - FU_SYNAPTICS_MST_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_mst_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      FuFirmwareExportFlags flags,\n\t\t\t\t XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:59,1
    - Dst: fu_struct_synaptics_firmware_config_parse_stream
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:60,1
    - Dst: fu_struct_synaptics_firmware_config_get_magic1
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:65,1
    - Dst: fu_struct_synaptics_firmware_config_get_magic2
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:66,1
    - Dst: fu_struct_synaptics_firmware_config_get_version
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:67,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuSynapticsMstFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: fu_synaptics_mst_firmware_detect_family
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_firmware_config_parse_stream
    - fu_struct_synaptics_firmware_config_get_magic2
    - fu_struct_synaptics_firmware_config_get_version
    - fu_struct_synaptics_firmware_config_get_magic1
    - g_set_error_literal
    - g_autoptr
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_firmware_detect_family(FuSynapticsMstFirmware
      *self,\n\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\tgsize offset,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:84,1
    - Dst: fu_synaptics_mst_firmware_detect_family
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:89,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:107,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:111,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: fu_synaptics_mst_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - fu_synaptics_mst_family_to_string
    - fu_synaptics_mst_firmware_detect_family
    - FU_SYNAPTICS_MST_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_firmware_parse(FuFirmware *firmware,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:125,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:143,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:150,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:151,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:154,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:160,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:163,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 167
    functionName: fu_synaptics_mst_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - fu_memwrite_uint16_safe
    - FU_SYNAPTICS_MST_FIRMWARE
    - fu_firmware_get_idx
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_mst_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:172,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:176,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: fu_synaptics_mst_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_SYNAPTICS_MST_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:191,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: fu_synaptics_mst_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_firmware_init(FuSynapticsMstFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsMstFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: fu_synaptics_mst_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_firmware_class_init(FuSynapticsMstFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:207,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: fu_synaptics_mst_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_mst_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:23,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: fu_test_plugin_device_added_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_test_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:31,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:32,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:34,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:36,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:39,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:40,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:43,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:45,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:48,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:50,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:52,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:54,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:68,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:70,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:71,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:73,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - plugin
    - path
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 10
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: fu_test_add_fake_devices_from_dir
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_progress_new
    - g_str_has_prefix
    - fu_context_load_hwinfo
    - g_dir_read_name
    - fu_device_add_private_flag
    - g_build_filename
    - fu_plugin_device_add
    - g_assert_true
    - g_dir_open
    - g_object_new
    - g_assert_no_error
    - FU_DEVICE
    - g_assert_nonnull
    - g_autoptr
    - fu_device_locker_new
    - fu_context_load_quirks
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_test_add_fake_devices_from_dir(FuPlugin *plugin, const gchar
      *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:85,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:87,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:89,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:90,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:93,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:94,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:95,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:96,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:98,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:100,1
    - Dst: fu_synaptics_mst_plugin_get_type
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:100,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:101,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:101,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:103,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:105,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:106,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:110,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:111,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:113,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:114,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:115,1
    - Dst: fu_test_add_fake_devices_from_dir
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:118,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 11
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: fu_plugin_synaptics_mst_none_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_context_load_quirks
    - g_signal_connect
    - fu_context_new
    - fu_plugin_new_from_gtype
    - fu_test_add_fake_devices_from_dir
    - fu_context_load_hwinfo
    - g_assert_cmpint
    - fu_plugin_runner_startup
    - FU_PLUGIN
    - G_CALLBACK
    - g_error_matches
    - g_autoptr
    - g_file_test
    - g_ptr_array_new_with_free_func
    - fu_progress_new
    - fu_synaptics_mst_plugin_get_type
    - g_test_build_filename
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_synaptics_mst_none_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:127,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:128,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:131,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:132,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:135,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:136,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:137,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:139,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:140,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:142,1
    - Dst: fu_synaptics_mst_plugin_get_type
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:142,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:143,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:143,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:145,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:148,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:149,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:153,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:154,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:156,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:157,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:158,1
    - Dst: fu_test_add_fake_devices_from_dir
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:161,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:163,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:164,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:165,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 123
    functionDepth: 11
    functionLinenumber: 123
    functionLinenumberEnd: 168
    functionName: fu_plugin_synaptics_mst_tb16_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_to_string
    - fu_context_load_quirks
    - g_signal_connect
    - fu_context_new
    - fu_plugin_new_from_gtype
    - g_debug
    - fu_test_add_fake_devices_from_dir
    - fu_context_load_hwinfo
    - g_assert_cmpint
    - g_ptr_array_index
    - fu_plugin_runner_startup
    - FU_PLUGIN
    - G_CALLBACK
    - g_error_matches
    - g_autoptr
    - g_file_test
    - g_ptr_array_new_with_free_func
    - fu_progress_new
    - fu_synaptics_mst_plugin_get_type
    - g_test_build_filename
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_plugin_synaptics_mst_tb16_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:179,1
    - Dst: fu_synaptics_mst_firmware_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:180,1
    - Dst: fu_synaptics_mst_firmware_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:181,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:184,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:185,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:186,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:187,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:188,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:189,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:190,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:191,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:192,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:193,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:196,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:197,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:198,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:199,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:200,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:201,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 203
    functionName: fu_synaptics_mst_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_synaptics_mst_firmware_new
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:209,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:210,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:213,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:214,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:215,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:216,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:217,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:219,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:219,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:222,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:223,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:224,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_assert_cmpint
    - g_log_set_fatal_mask
    - g_test_build_filename
    - g_mkdir_with_parents
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: BIT
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:81,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:83,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: fu_synaptics_mst_device_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_finalize(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:93,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:94,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:94,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:95,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:97,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - udev_device
    - pspec
    - user_data
    argTypes:
    - FuUdevDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: fu_synaptics_mst_device_udev_device_notify_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_add_open_flag
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_mst_device_udev_device_notify_cb(FuUdevDevice *udev_device,\n\t\t\t\t\t
      \     GParamSpec *pspec,\n\t\t\t\t\t      gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:105,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:106,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:107,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:108,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:109,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:110,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:111,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:113,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:115,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:117,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:118,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:121,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:121,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: fu_synaptics_mst_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_request_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - g_signal_connect
    - fu_device_set_vendor
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_init(FuSynapticsMstDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:130,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:131,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:132,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:133,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: fu_synaptics_mst_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_SYNAPTICS_MST_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:168,1
    - Dst: fu_synaptics_mst_updc_rc_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - rc
    - error
    argTypes:
    - FuSynapticsMstUpdcRc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: fu_synaptics_mst_device_rc_to_error
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_mst_updc_rc_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_rc_to_error(FuSynapticsMstUpdcRc rc,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:187,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:191,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:191,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 211
    functionName: fu_synaptics_mst_device_rc_send_command_and_wait_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_read
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - g_set_error_literal
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_rc_send_command_and_wait_cb(FuDevice
      *device,\n\t\t\t\t\t\t    gpointer user_data,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:224,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:230,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:235,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:241,1
    - Dst: fu_synaptics_mst_device_rc_to_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:245,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - rc_cmd
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 251
    functionName: fu_synaptics_mst_device_rc_send_command_and_wait
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - FU_DEVICE
    - fu_synaptics_mst_device_rc_to_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_rc_send_command_and_wait(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t\t FuSynapticsMstUpdcCmd rc_cmd,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:261,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:261,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:265,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:266,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:273,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:276,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:277,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:278,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:281,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:281,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:283,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:287,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:292,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:292,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:293,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:293,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:299,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:304,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:304,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:305,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:305,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:311,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:316,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:317,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - self
    - rc_cmd
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 325
    functionName: fu_synaptics_mst_device_rc_set_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_debug
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - fu_memwrite_uint32
    - g_ptr_array_index
    - fu_dpaux_device_write
    - g_autoptr
    - fu_synaptics_mst_updc_cmd_to_string
    - fu_chunk_array_new
    - fu_chunk_get_data
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_rc_set_command(FuSynapticsMstDevice
      *self,\n\t\t\t\t       FuSynapticsMstUpdcCmd rc_cmd,\n\t\t\t\t       guint32
      offset,\n\t\t\t\t       const guint8 *buf,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:335,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:336,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:340,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:341,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:343,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:348,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:351,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:352,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:353,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:356,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:356,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:357,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:357,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:363,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:368,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:368,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:369,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:369,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:380,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:381,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:383,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:387,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:387,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:389,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:390,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - self
    - rc_cmd
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 400
    functionName: fu_synaptics_mst_device_rc_get_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_debug
    - fu_dpaux_device_read
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - FU_DPAUX_DEVICE
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - fu_memwrite_uint32
    - g_ptr_array_index
    - fu_dpaux_device_write
    - g_autoptr
    - fu_synaptics_mst_updc_cmd_to_string
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_rc_get_command(FuSynapticsMstDevice
      *self,\n\t\t\t\t       FuSynapticsMstUpdcCmd rc_cmd,\n\t\t\t\t       guint32
      offset,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:405,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:408,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:412,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:419,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:421,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 427
    functionName: fu_synaptics_mst_device_disable_rc
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_synaptics_mst_device_rc_set_command
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_disable_rc(FuSynapticsMstDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:435,1
    - Dst: fu_synaptics_mst_device_disable_rc
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:439,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:440,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:443,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:447,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 453
    functionName: fu_synaptics_mst_device_enable_rc
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_synaptics_mst_device_disable_rc
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_enable_rc(FuSynapticsMstDevice *self,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:470,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:470,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:476,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:482,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:483,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:483,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:489,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:494,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:495,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:495,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:501,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:507,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:508,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:512,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:512,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 8
    argNames:
    - self
    - rc_cmd
    - cmd_offset
    - cmd_data
    - cmd_datasz
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - guint32
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 525
    functionName: fu_synaptics_mst_device_rc_special_get_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_dpaux_device_read
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - fu_memwrite_uint32
    - fu_dpaux_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_rc_special_get_command(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t       FuSynapticsMstUpdcCmd rc_cmd,\n\t\t\t\t\t       guint32
      cmd_offset,\n\t\t\t\t\t       guint8 *cmd_data,\n\t\t\t\t\t       gsize cmd_datasz,\n\t\t\t\t\t
      \      guint8 *buf,\n\t\t\t\t\t       gsize bufsz,\n\t\t\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:535,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:537,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:546,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - offset
    - length
    - checksum
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - guint32
    - guint32
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 552
    functionName: fu_synaptics_mst_device_get_flash_checksum
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint32
    - fu_synaptics_mst_device_rc_special_get_command
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_get_flash_checksum(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t   guint32 offset,\n\t\t\t\t\t   guint32 length,\n\t\t\t\t\t
      \  guint32 *checksum,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:563,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - rc_cmd
    - offset
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 575
    functionName: fu_synaptics_mst_device_set_flash_sector_erase
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_memwrite_uint16
    - fu_synaptics_mst_device_rc_set_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_set_flash_sector_erase(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t       guint16 rc_cmd,\n\t\t\t\t\t       guint16 offset,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:589,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:591,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:593,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuSynapticsMstDeviceHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: fu_synaptics_mst_device_helper_free
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - g_bytes_unref
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_helper_free(FuSynapticsMstDeviceHelper
      *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: fu_synaptics_mst_device_helper_new
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    linkageType: ''
    returnType: FuSynapticsMstDeviceHelper
    signature: 'FuSynapticsMstDeviceHelper *

      fu_synaptics_mst_device_helper_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:610,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:616,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:620,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:625,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:626,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:626,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:629,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:630,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:630,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:632,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:633,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:636,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:639,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:642,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:643,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:644,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:646,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:649,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:653,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 673
    functionName: fu_synaptics_mst_device_update_esm_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_progress_set_steps
    - fu_synaptics_mst_device_get_flash_checksum
    - g_set_error
    - g_debug
    - fu_progress_set_id
    - FU_SYNAPTICS_MST_DEVICE
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_warning
    - fu_synaptics_mst_device_set_flash_sector_erase
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_update_esm_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:682,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:682,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:685,1
    - Dst: fu_sum32_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:688,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:689,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:697,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:700,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:702,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:703,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:707,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 675
    functionDepth: 5
    functionLinenumber: 675
    functionLinenumberEnd: 712
    functionName: fu_synaptics_mst_device_update_esm
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_synaptics_mst_device_get_flash_checksum
    - g_object_ref
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_sum32_bytes
    - fu_synaptics_mst_device_helper_new
    - FU_DEVICE
    - g_autoptr
    - fu_bytes_new_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_esm(FuSynapticsMstDevice *self,\n\t\t\t\t
      \  GBytes *fw,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:719,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:723,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:725,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:726,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:728,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:728,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:730,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:731,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:734,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:737,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:740,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:741,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:742,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:744,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:745,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:748,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:751,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:752,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:753,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:755,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:757,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:761,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:765,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:767,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:772,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 714
    functionDepth: 5
    functionLinenumber: 714
    functionLinenumberEnd: 783
    functionName: fu_synaptics_mst_device_update_tesla_leaf_firmware_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_progress_set_steps
    - fu_synaptics_mst_device_get_flash_checksum
    - g_set_error
    - g_debug
    - FU_SYNAPTICS_MST_DEVICE
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_warning
    - fu_synaptics_mst_device_set_flash_sector_erase
    - g_bytes_get_size
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_tesla_leaf_firmware_cb(FuDevice
      *device,\n\t\t\t\t\t\t      gpointer user_data,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:791,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:791,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:792,1
    - Dst: fu_sum32_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:793,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:794,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:795,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 804
    functionName: fu_synaptics_mst_device_update_tesla_leaf_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_object_ref
    - fu_chunk_array_new_from_bytes
    - fu_sum32_bytes
    - fu_synaptics_mst_device_helper_new
    - FU_DEVICE
    - g_autoptr
    - g_bytes_ref
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_tesla_leaf_firmware(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t\t   GBytes *fw,\n\t\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:812,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:818,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:821,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 806
    functionDepth: 4
    functionLinenumber: 806
    functionLinenumberEnd: 826
    functionName: fu_synaptics_mst_device_get_active_bank_panamera
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_synaptics_mst_device_rc_get_command
    - BIT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_get_active_bank_panamera(FuSynapticsMstDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:833,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:839,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:844,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:849,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:850,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:850,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:853,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:853,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:854,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:855,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:856,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:859,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:862,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:865,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:866,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:867,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:869,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:871,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:874,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:875,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:876,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:878,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:882,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:888,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:889,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:894,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:898,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:901,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:904,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 915
    functionName: fu_synaptics_mst_device_update_panamera_firmware_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_synaptics_mst_device_rc_special_get_command
    - fu_memread_uint32
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_progress_set_steps
    - g_set_error
    - g_debug
    - FU_SYNAPTICS_MST_DEVICE
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_warning
    - fu_synaptics_mst_device_set_flash_sector_erase
    - g_bytes_get_size
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_panamera_firmware_cb(FuDevice
      *device,\n\t\t\t\t\t\t    gpointer user_data,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:922,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:926,1
    - Dst: g_date_time_new_now_utc
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:926,1
    - Dst: g_date_time_get_month
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:929,1
    - Dst: g_date_time_get_day_of_month
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:930,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:931,1
    - Dst: fu_synaptics_mst_calculate_crc8
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:934,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:935,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:944,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:951,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:954,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:954,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:955,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:962,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:965,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 975
    functionName: fu_synaptics_mst_device_update_panamera_set_new_valid_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_date_time_get_day_of_month
    - g_date_time_new_now_utc
    - g_debug
    - g_date_time_get_month
    - g_prefix_error
    - g_date_time_get_year
    - fu_synaptics_mst_device_rc_set_command
    - FU_DEVICE
    - fu_synaptics_mst_device_rc_get_command
    - g_set_error_literal
    - memcmp
    - g_autoptr
    - FU_SYNAPTICS_MST_DEVICE
    - fu_synaptics_mst_calculate_crc8
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_panamera_set_new_valid_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:982,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:991,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:992,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1000,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1007,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1010,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1017,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1021,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 977
    functionDepth: 5
    functionLinenumber: 977
    functionLinenumberEnd: 1032
    functionName: fu_synaptics_mst_device_update_panamera_set_old_invalid_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_synaptics_mst_device_set_flash_sector_erase
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_synaptics_mst_device_rc_get_command
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_panamera_set_old_invalid_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t   gpointer user_data,\n\t\t\t\t\t\t\t   GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1042,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1042,1
    - Dst: fu_synaptics_mst_device_get_active_bank_panamera
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1045,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1049,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1052,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1052,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1053,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1061,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1070,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1072,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1074,1
    - Dst: fu_synaptics_mst_calculate_crc16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1077,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1078,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1079,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1080,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1081,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1085,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1085,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1094,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1094,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1102,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1109,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1118
    functionName: fu_synaptics_mst_device_update_panamera_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_set_error
    - g_object_ref
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_device_retry_full
    - g_prefix_error
    - fu_memread_uint32_safe
    - g_bytes_get_size
    - fu_synaptics_mst_calculate_crc16
    - fu_synaptics_mst_device_helper_new
    - FU_DEVICE
    - fu_synaptics_mst_device_rc_get_command
    - g_autoptr
    - fu_bytes_new_offset
    - fu_synaptics_mst_device_get_active_bank_panamera
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_panamera_firmware(FuSynapticsMstDevice
      *self,\n\t\t\t\t\t\t GBytes *fw,\n\t\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1130,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1136,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1141,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1144,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1150,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1155,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1161,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1166,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1172,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1176,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1188
    functionName: fu_synaptics_mst_device_panamera_prepare_write
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - BIT
    - FU_DEVICE
    - fu_synaptics_mst_device_rc_get_command
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_panamera_prepare_write(FuSynapticsMstDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1193,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1198,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1200,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1201,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1203,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1203,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1206,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1209,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1212,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1215,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1216,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1217,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1219,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1220,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1223,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1226,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1227,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1228,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1230,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1232,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1236,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1244,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1253,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1256,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1190
    functionDepth: 5
    functionLinenumber: 1190
    functionLinenumberEnd: 1269
    functionName: fu_synaptics_mst_device_update_firmware_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_synaptics_mst_device_rc_special_get_command
    - fu_memread_uint32
    - g_prefix_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_progress_set_steps
    - g_set_error
    - g_debug
    - FU_SYNAPTICS_MST_DEVICE
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_warning
    - fu_synaptics_mst_device_set_flash_sector_erase
    - g_bytes_get_size
    - FU_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_update_firmware_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1277,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1277,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1294,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1301,1
    - Dst: fu_synaptics_mst_calculate_crc16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1304,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1305,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1306,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1307,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1308,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1312,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1319,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1271
    functionDepth: 4
    functionLinenumber: 1271
    functionLinenumberEnd: 1330
    functionName: fu_synaptics_mst_device_update_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_set_error
    - g_object_ref
    - fu_chunk_array_new_from_bytes
    - g_prefix_error
    - fu_synaptics_mst_calculate_crc16
    - g_bytes_get_size
    - fu_synaptics_mst_device_rc_set_command
    - fu_synaptics_mst_device_helper_new
    - FU_DEVICE
    - g_autoptr
    - fu_bytes_new_offset
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_update_firmware(FuSynapticsMstDevice
      *self,\n\t\t\t\t\tGBytes *fw,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1353,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1360,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1369
    functionName: fu_synaptics_mst_device_restart
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_synaptics_mst_device_rc_set_command
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_restart(FuSynapticsMstDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1379,1
    - Dst: fu_synaptics_mst_firmware_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1379,1
    - Dst: fu_synaptics_mst_firmware_set_family
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1382,1
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1382,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1385,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1388,1
    - Dst: fu_synaptics_mst_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1390,1
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1392,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1371
    functionDepth: 3
    functionLinenumber: 1371
    functionLinenumberEnd: 1402
    functionName: fu_synaptics_mst_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_synaptics_mst_firmware_get_board_id
    - g_steal_pointer
    - FU_SYNAPTICS_MST_FIRMWARE
    - fu_firmware_parse_stream
    - fu_device_has_private_flag
    - fu_synaptics_mst_firmware_set_family
    - g_autoptr
    - FU_SYNAPTICS_MST_DEVICE
    - fu_synaptics_mst_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_mst_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1408,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1410,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1410,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1411,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1412,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1413,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1404
    functionDepth: 6
    functionLinenumber: 1404
    functionLinenumberEnd: 1421
    functionName: fu_synaptics_mst_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_kind
    - fu_device_has_private_flag
    - fwupd_request_add_flag
    - fu_device_add_flag
    - fwupd_request_set_id
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1430,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1432,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1435,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1438,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1440,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1445,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1447,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1451,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1452,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1454,1
    - Dst: fu_synaptics_mst_device_update_tesla_leaf_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1467,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1471,1
    - Dst: fu_synaptics_mst_device_panamera_prepare_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1476,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1477,1
    - Dst: fu_synaptics_mst_device_update_esm
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1480,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1481,1
    - Dst: fu_synaptics_mst_device_update_panamera_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1484,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1485,1
    - Dst: fu_synaptics_mst_device_update_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1492,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1493,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1498,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1504,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1507,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1507,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1508,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1423
    functionDepth: 6
    functionLinenumber: 1423
    functionLinenumberEnd: 1510
    functionName: fu_synaptics_mst_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_set_remove_delay
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - FU_SYNAPTICS_MST_DEVICE
    - fu_synaptics_mst_device_panamera_prepare_write
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_synaptics_mst_device_update_esm
    - fu_synaptics_mst_device_update_tesla_leaf_firmware
    - g_autoptr
    - fu_synaptics_mst_device_update_panamera_firmware
    - fu_synaptics_mst_device_update_firmware
    - fu_firmware_get_bytes
    - fu_device_locker_new_full
    - fu_device_has_private_flag
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1519,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1525,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1525,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1525,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1526,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1528,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1528,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1529,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1532,1
    - Dst: open
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1539,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1541,1
    - Dst: read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1548,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1549,1
    - Dst: close
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1554,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1557,1
    - Dst: close
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1558,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1570,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1573,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1595,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1602,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1609,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1612,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1512
    functionDepth: 4
    functionLinenumber: 1512
    functionLinenumberEnd: 1622
    functionName: fu_synaptics_mst_device_ensure_board_id
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - fu_device_get_logical_id
    - open
    - read
    - g_prefix_error
    - g_path_get_dirname
    - g_strdup_printf
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_synaptics_mst_device_rc_get_command
    - FU_UDEV_DEVICE
    - fu_device_query_file_exists
    - close
    - fu_udev_device_get_device_file
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_ensure_board_id(FuSynapticsMstDevice
      *self, GError **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1640,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1641,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1644,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1644,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1650,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1654,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1662,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1667,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1667,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1668,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1673,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1673,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1679,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1679,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1685,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1689,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1690,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1693,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1693,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1699,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1702,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1704,1
    - Dst: fu_synaptics_mst_family_from_chip_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1710,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1717,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1717,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1722,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1725,1
    - Dst: fu_synaptics_mst_device_get_active_bank_panamera
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1731,1
    - Dst: fu_synaptics_mst_device_ensure_board_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1736,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1739,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1741,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1743,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1745,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1747,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1747,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1750,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1751,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1754,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1756,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1760,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1761,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1762,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1763,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1765,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1766,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1770,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1771,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1775,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1776,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1776,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1777,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1781,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1785,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1799,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1805,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1806,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1806,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1807,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1808,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1808,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1809,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1810,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1810,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1814,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 108
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1624
    functionDepth: 6
    functionLinenumber: 1624
    functionLinenumberEnd: 1817
    functionName: fu_synaptics_mst_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_prefix_error
    - g_propagate_error
    - fu_device_set_remove_delay
    - fu_device_set_version
    - g_set_error
    - fu_device_add_private_flag
    - FU_DPAUX_DEVICE
    - fu_device_get_context
    - fu_device_add_flag
    - fu_context_get_hwid_value
    - FU_SYNAPTICS_MST_DEVICE
    - fu_device_get_parent
    - fu_device_get_name
    - fu_synaptics_mst_family_from_chip_id
    - fu_synaptics_mst_device_get_active_bank_panamera
    - fu_memread_uint16
    - fu_dpaux_device_read
    - g_steal_pointer
    - fu_device_add_instance_id
    - g_autoptr
    - fu_device_locker_new_full
    - g_warning
    - fu_device_add_instance_id_full
    - fu_synaptics_mst_family_to_string
    - g_strsplit
    - g_strdup_printf
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_synaptics_mst_device_ensure_board_id
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1825,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1826,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1827,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1835
    functionName: fu_synaptics_mst_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - g_strdup
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1840,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1841,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1842,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1843,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1844,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1837
    functionDepth: 3
    functionLinenumber: 1837
    functionLinenumberEnd: 1846
    functionName: fu_synaptics_mst_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1851,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsMstDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1861
    functionName: fu_synaptics_mst_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_mst_device_class_init(FuSynapticsMstDeviceClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 14
    argCount: 1
    argNames:
    - chip_id
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 29
    functionName: fu_synaptics_mst_family_from_chip_id
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FuSynapticsMstFamily
    signature: FuSynapticsMstFamily fu_synaptics_mst_family_from_chip_id(guint16 chip_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - crc
    - buf
    - bufsz
    argTypes:
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 63
    functionName: fu_synaptics_mst_calculate_crc8
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_synaptics_mst_calculate_crc8(guint8 crc, const guint8 *buf,
      gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - crc
    - buf
    - bufsz
    argTypes:
    - guint16
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: fu_synaptics_mst_calculate_crc16
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_synaptics_mst_calculate_crc16(guint16 crc, const guint8
      *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:23,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQsiDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_qsi_dock_plugin_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_plugin_init(FuQsiDockPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:29,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: fu_qsi_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_qsi_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_plugin_class_init(FuQsiDockPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chip_idx
    argTypes:
    - FuQsiDockChildDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_qsi_dock_child_device_set_chip_idx
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_child_device_set_chip_idx(FuQsiDockChildDevice *self,
      guint8 chip_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QSI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_qsi_dock_child_device_to_string
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_QSI_DOCK_CHILD_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_child_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:40,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:42,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: fu_qsi_dock_child_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_prepare_firmware
    - fu_device_get_parent
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_qsi_dock_child_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QSI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:56,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:57,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:59,1
    - Dst: fu_qsi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:62,1
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: fu_qsi_dock_child_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_qsi_dock_mcu_device_write_firmware_with_idx
    - g_set_error_literal
    - fu_device_get_parent
    - FU_QSI_DOCK_CHILD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_child_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQsiDockChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: fu_qsi_dock_child_device_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_child_device_init(FuQsiDockChildDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: fu_qsi_dock_child_device_class_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_child_device_class_init(FuQsiDockChildDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: fu_qsi_dock_child_device_new
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_qsi_dock_child_device_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:36,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - CmdPrimary
    - CmdSecond
    - inbuf
    - inbufsz
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: fu_qsi_dock_mcu_device_tx
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_tx(FuQsiDockMcuDevice *self,\n\t\t\t
      \ guint8 CmdPrimary,\n\t\t\t  guint8 CmdSecond,\n\t\t\t  const guint8 *inbuf,\n\t\t\t
      \ gsize inbufsz,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:50,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:50,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 71
    functionName: fu_qsi_dock_mcu_device_rx
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_memcpy_safe
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qsi_dock_mcu_device_rx(FuQsiDockMcuDevice *self, guint8
      *outbuf, gsize outbufsz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_qsi_dock_mcu_device_tx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:83,1
    - Dst: fu_qsi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - self
    - cmd1
    - cmd2
    - inbuf
    - inbufsz
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: fu_qsi_dock_mcu_device_txrx
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_qsi_dock_mcu_device_tx
    - fu_qsi_dock_mcu_device_rx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_txrx(FuQsiDockMcuDevice *self,\n\t\t\t
      \   guint8 cmd1,\n\t\t\t    guint8 cmd2,\n\t\t\t    const guint8 *inbuf,\n\t\t\t
      \   gsize inbufsz,\n\t\t\t    guint8 *outbuf,\n\t\t\t    gsize outbufsz,\n\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_qsi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: fu_qsi_dock_mcu_device_get_status
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_qsi_dock_mcu_device_txrx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qsi_dock_mcu_device_get_status(FuQsiDockMcuDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:118,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:127,1
    - Dst: fu_qsi_dock_child_device_new
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:129,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:130,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:133,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:149,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:153,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:154,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:156,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:157,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:159,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:163,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:163,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:164,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:164,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:165,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:166,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:168,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:169,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:170,1
    - Dst: fu_qsi_dock_child_device_set_chip_idx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:171,1
    - Dst: FU_QSI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:171,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:173,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 178
    functionName: fu_qsi_dock_mcu_device_enumerate_children
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_QSI_DOCK_CHILD_DEVICE
    - fu_device_add_child
    - G_STRUCT_OFFSET
    - fu_qsi_dock_child_device_new
    - fu_device_set_version
    - g_debug
    - fu_device_get_context
    - fu_device_get_name
    - fu_device_add_instance_u16
    - fu_device_get_pid
    - fu_device_set_logical_id
    - g_autoptr
    - g_warning
    - fu_device_set_version_format
    - fu_qsi_dock_child_device_set_chip_idx
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qsi_dock_mcu_device_enumerate_children(FuQsiDockMcuDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:183,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:186,1
    - Dst: fu_qsi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:190,1
    - Dst: fu_qsi_dock_mcu_device_enumerate_children
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 8
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: fu_qsi_dock_mcu_device_setup
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_qsi_dock_mcu_device_enumerate_children
    - FU_DEVICE_CLASS
    - fu_qsi_dock_mcu_device_get_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qsi_dock_mcu_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:212,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:213,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:216,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:227,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:238,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:238,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:246,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:247,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:247,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - checksum
    - length
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 263
    functionName: fu_qsi_dock_mcu_device_checksum
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_set_error
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - fu_memwrite_uint16
    - memset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_checksum(FuQsiDockMcuDevice *self,\n\t\t\t\tguint32
      checksum,\n\t\t\t\tguint32 length,\n\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:273,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:273,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:275,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:279,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:280,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:280,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:282,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:290,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:293,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:296,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:299,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:300,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:302,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:305,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:305,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:315,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:318,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:319,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:321,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:324,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:327,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:328,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:328,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:339,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - self
    - chk_page
    - checksum_tmp
    - progress
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - FuChunk*
    - guint32*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 351
    functionName: fu_qsi_dock_mcu_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_sum32
    - g_set_error
    - FU_HID_DEVICE
    - fu_progress_step_done
    - fu_memcpy_safe
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - memset
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_write_chunk(FuQsiDockMcuDevice *self,\n\t\t\t\t
      \  FuChunk *chk_page,\n\t\t\t\t   guint32 *checksum_tmp,\n\t\t\t\t   FuProgress
      *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:360,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:361,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:361,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:363,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:366,1
    - Dst: fu_qsi_dock_mcu_device_write_chunk
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:369,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:372,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:374,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - chunks
    - checksum
    - progress
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - FuChunkArray*
    - guint32*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 381
    functionName: fu_qsi_dock_mcu_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - fu_qsi_dock_mcu_device_write_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_write_chunks(FuQsiDockMcuDevice *self,\n\t\t\t\t
      \   FuChunkArray *chunks,\n\t\t\t\t    guint32 *checksum,\n\t\t\t\t    FuProgress
      *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:388,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:394,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:394,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:402,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:403,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 414
    functionName: fu_qsi_dock_mcu_device_wait_for_spi_initial_ready_cb
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - memset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_wait_for_spi_initial_ready_cb(FuDevice
      *device,\n\t\t\t\t\t\t     gpointer user_data,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:429,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:430,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:433,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:442,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:453,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:453,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:461,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:462,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - length
    - user_data
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint32
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 473
    functionName: fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - memset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb(FuQsiDockMcuDevice
      *self,\n\t\t\t\t\t\t   guint32 length,\n\t\t\t\t\t\t   gpointer user_data,\n\t\t\t\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:486,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:489,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:490,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:491,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:492,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:495,1
    - Dst: fu_bytes_align
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:498,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:506,1
    - Dst: fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:509,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:510,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:511,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:516,1
    - Dst: fu_qsi_dock_mcu_device_write_chunks
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:520,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:523,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:526,1
    - Dst: fu_qsi_dock_mcu_device_checksum
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:529,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:529,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - self
    - firmware
    - chip_idx
    - progress
    - flags
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - FuFirmware*
    - guint8
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 535
    functionName: fu_qsi_dock_mcu_device_write_firmware_with_idx
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_retry
    - fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb
    - fu_bytes_align
    - fu_progress_get_child
    - fu_chunk_array_new_from_bytes
    - fu_progress_step_done
    - g_prefix_error
    - g_bytes_get_size
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_qsi_dock_mcu_device_write_chunks
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_qsi_dock_mcu_device_checksum
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_write_firmware_with_idx(FuQsiDockMcuDevice
      *self,\n\t\t\t\t\t       FuFirmware *firmware,\n\t\t\t\t\t       guint8 chip_idx,\n\t\t\t\t\t
      \      FuProgress *progress,\n\t\t\t\t\t       FwupdInstallFlags flags,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_qsi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:544,1
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 537
    functionDepth: 8
    functionLinenumber: 537
    functionLinenumberEnd: 550
    functionName: fu_qsi_dock_mcu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_qsi_dock_mcu_device_write_firmware_with_idx
    - FU_QSI_DOCK_MCU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qsi_dock_mcu_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:555,1
    - Dst: fu_qsi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 552
    functionDepth: 8
    functionLinenumber: 552
    functionLinenumberEnd: 562
    functionName: fu_qsi_dock_mcu_device_attach
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_qsi_dock_mcu_device_get_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qsi_dock_mcu_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:567,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:568,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:569,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:570,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:571,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:572,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 574
    functionName: fu_qsi_dock_mcu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_mcu_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:579,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:580,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:581,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:581,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:582,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:582,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:583,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:584,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQsiDockMcuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 576
    functionDepth: 6
    functionLinenumber: 576
    functionLinenumberEnd: 586
    functionName: fu_qsi_dock_mcu_device_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_hid_device_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_mcu_device_init(FuQsiDockMcuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockMcuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 597
    functionName: fu_qsi_dock_mcu_device_class_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_mcu_device_class_init(FuQsiDockMcuDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_get_os_info
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:23,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:25,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:31,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:34,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:35,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:36,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 54
    functionName: fu_uefi_sbat_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_add_instance_str
    - fu_device_build_vendor_id
    - g_get_os_info
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_sbat_device_probe(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:64,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:65,1
    - Dst: fu_uefi_sbat_firmware_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:67,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:69,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:73,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:76,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:80,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:85,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:89,1
    - Dst: fu_firmware_check_compatible
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:90,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:91,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:93,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: fu_uefi_sbat_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_filename
    - g_steal_pointer
    - g_prefix_error
    - fu_firmware_get_image_by_id_stream
    - fu_firmware_parse_stream
    - fu_device_get_context
    - fu_uefi_sbat_firmware_new
    - g_ptr_array_index
    - g_autoptr
    - fu_firmware_check_compatible
    - fu_context_get_esp_files
    - fu_pefile_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_uefi_sbat_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:109,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:123,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:126,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:127,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:128,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:131,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:133,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:137,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:137,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:140,1
    - Dst: fu_context_get_esp_volume_by_hard_drive_device_path
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:143,1
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:145,1
    - Dst: fu_volume_locker
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:149,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:152,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:154,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:158,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:161,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:164,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:167,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:167,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:170,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:171,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:172,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:175,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:178,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:180,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:181,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: fu_uefi_sbat_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_efi_file_path_device_path_get_name
    - g_set_error
    - g_debug
    - fu_context_get_esp_volume_by_hard_drive_device_path
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - fu_progress_add_step
    - fu_efivars_get_boot_entry
    - fu_device_get_context
    - g_path_get_dirname
    - fu_volume_get_id
    - fu_progress_set_id
    - fu_progress_step_done
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - g_build_filename
    - g_autoptr
    - fu_bytes_set_contents
    - fu_firmware_get_bytes
    - fu_volume_locker
    - fu_volume_get_mount_point
    - fu_efivars_get_boot_current
    - fu_context_get_efivars
    - fu_firmware_get_image_by_gtype
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_sbat_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:190,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:191,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:192,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:193,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:194,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: fu_uefi_sbat_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:201,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:202,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:203,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:204,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:205,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:206,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:207,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:208,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:209,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiSbatDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: fu_uefi_sbat_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_set_physical_id
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_device_init(FuUefiSbatDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiSbatDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: fu_uefi_sbat_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_device_class_init(FuUefiSbatDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:226,1
    - Dst: fu_uefi_sbat_firmware_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:229,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:230,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:231,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:234,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:236,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:237,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:237,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - blob
    - error
    argTypes:
    - FuContext*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 241
    functionName: fu_uefi_sbat_device_new
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_steal_pointer
    - FU_IS_CONTEXT
    - fu_firmware_get_version
    - g_object_new
    - fu_uefi_sbat_firmware_new
    - FU_DEVICE
    - g_autoptr
    - g_return_val_if_fail
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: FuUefiSbatDevice
    signature: 'FuUefiSbatDevice *

      fu_uefi_sbat_device_new(FuContext *ctx, GBytes *blob, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:26,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:27,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:30,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:34,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:36,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:37,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:37,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:38,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:38,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:43,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:51,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:52,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:54,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:61,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:62,1
    - Dst: fu_strjoin
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:65,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 68
    functionName: fu_uefi_sbat_firmware_parse
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_strstr_len
    - fu_firmware_get_version_raw
    - g_strdup_printf
    - FU_FIRMWARE
    - fu_firmware_set_version
    - fu_firmware_get_images
    - g_ptr_array_index
    - FU_FIRMWARE_CLASS
    - g_set_error_literal
    - fu_strjoin
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_sbat_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:78,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:80,1
    - Dst: FU_IS_UEFI_SBAT_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:81,1
    - Dst: FU_IS_PEFILE_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:81,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:86,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:87,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:93,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:96,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:98,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:102,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:103,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:104,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:107,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:108,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:109,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:110,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:111,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:112,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:114,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:118,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:119,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:120,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - firmware
    - other
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 128
    functionName: fu_uefi_sbat_firmware_check_compatible
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_firmware_get_filename
    - fu_firmware_get_image_by_id
    - FU_IS_PEFILE_FIRMWARE
    - FU_IS_UEFI_SBAT_FIRMWARE
    - fu_firmware_get_version_raw
    - fu_firmware_get_images
    - g_ptr_array_index
    - g_autoptr
    - g_return_val_if_fail
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_sbat_firmware_check_compatible(FuFirmware *firmware,\n\t\t\t\t
      \      FuFirmware *other,\n\t\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:133,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:133,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:134,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:134,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:135,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiSbatFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_uefi_sbat_firmware_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CSV_FIRMWARE
    - fu_csv_firmware_add_column_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_firmware_init(FuUefiSbatFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiSbatFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_uefi_sbat_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_firmware_class_init(FuUefiSbatFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:149,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: fu_uefi_sbat_firmware_new
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uefi_sbat_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiSbatPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_uefi_sbat_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_plugin_init(FuUefiSbatPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:27,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:28,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:31,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: fu_uefi_sbat_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_get_efivars
    - fu_efivars_get_secure_boot
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_sbat_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:48,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:52,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:54,1
    - Dst: fu_uefi_sbat_device_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:57,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:60,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: fu_uefi_sbat_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_add
    - fu_plugin_get_context
    - fu_uefi_sbat_device_new
    - fu_efivars_get_data_bytes
    - FU_DEVICE
    - fu_context_get_efivars
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_sbat_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:73,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:77,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:82,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:82,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:82,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:83,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:84,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:84,1
    - Dst: g_file_delete
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: fu_uefi_sbat_plugin_reboot_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_file_delete
    - fu_firmware_get_filename
    - g_file_new_for_path
    - g_file_query_exists
    - fu_plugin_get_context
    - g_ptr_array_index
    - g_autoptr
    - fu_context_get_esp_files
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_sbat_plugin_reboot_cleanup(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:97,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:98,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: fu_uefi_sbat_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiSbatPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: fu_uefi_sbat_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_sbat_plugin_class_init(FuUefiSbatPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: fu_ti_tps6598x_byte_array_is_nonzero
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_byte_array_is_nonzero(GByteArray *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_ti_tps6598x_plugin_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_plugin_init(FuTiTps6598xPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:29,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: fu_ti_tps6598x_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_ti_tps6598x_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_plugin_class_init(FuTiTps6598xPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_PD_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:24,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:25,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:26,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:27,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:28,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: fu_ti_tps6598x_pd_device_probe
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_TI_TPS6598X_PD_DEVICE
    - fu_device_add_instance_u8
    - fu_device_set_logical_id
    - g_strdup_printf
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:36,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:36,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:37,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:40,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:47,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: fu_ti_tps6598x_pd_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version
    - FU_TI_TPS6598X_DEVICE
    - g_strdup_printf
    - FU_DEVICE
    - fu_ti_tps6598x_device_read_target_register
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_ensure_version(FuTiTps6598xPdDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:59,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:61,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:63,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:70,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:73,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:74,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:77,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:78,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 85
    functionName: fu_ti_tps6598x_pd_device_ensure_tx_identity
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_memread_uint16_safe
    - FU_TI_TPS6598X_DEVICE
    - FU_DEVICE
    - fu_ti_tps6598x_device_read_target_register
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_ensure_tx_identity(FuTiTps6598xPdDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_PD_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:90,1
    - Dst: fu_ti_tps6598x_pd_device_ensure_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:93,1
    - Dst: fu_ti_tps6598x_pd_device_ensure_tx_identity
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:95,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:99,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: fu_ti_tps6598x_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_TI_TPS6598X_PD_DEVICE
    - fu_ti_tps6598x_pd_device_ensure_tx_identity
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_ti_tps6598x_pd_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_PD_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:114,1
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:115,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:115,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:122,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:130,1
    - Dst: fu_ti_tps6598x_byte_array_is_nonzero
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:136,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:138,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:140,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 143
    functionName: fu_ti_tps6598x_pd_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_TI_TPS6598X_PD_DEVICE
    - fu_device_get_proxy
    - fu_ti_tps6598x_byte_array_is_nonzero
    - g_debug
    - g_hash_table_insert
    - FU_TI_TPS6598X_DEVICE
    - fu_byte_array_to_string
    - g_strdup_printf
    - fu_ti_tps6598x_device_read_target_register
    - g_autoptr
    - g_getenv
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_pd_device_report_metadata_pre(FuDevice *device,
      GHashTable *metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:148,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:148,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: fu_ti_tps6598x_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DEVICE
    - fu_device_attach_full
    - FU_TI_TPS6598X_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:159,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:159,1
    - Dst: fu_ti_tps6598x_device_write_firmware
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: fu_ti_tps6598x_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_ti_tps6598x_device_write_firmware
    - FU_DEVICE
    - FU_TI_TPS6598X_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_pd_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:170,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:171,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:172,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:173,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:174,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: fu_ti_tps6598x_pd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_pd_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:181,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:182,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:183,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:184,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:185,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:186,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:187,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: fu_ti_tps6598x_pd_device_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_pd_device_init(FuTiTps6598xPdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: fu_ti_tps6598x_pd_device_class_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_pd_device_class_init(FuTiTps6598xPdDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:206,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - target
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: fu_ti_tps6598x_pd_device_new
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_ti_tps6598x_pd_device_new(FuDevice *proxy, guint8 target)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ti_tps6598x_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: fu_ti_tps6598x_firmware_validate
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ti_tps6598x_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_firmware_validate(FuFirmware *firmware,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:40,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:41,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:42,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:45,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:49,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:54,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:57,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:59,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:60,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:65,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:68,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:70,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:71,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:75,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:78,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:80,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:88,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:89,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:90,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 95
    functionName: fu_ti_tps6598x_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_input_stream_read_safe
    - g_strdup_printf
    - fu_firmware_parse_stream
    - fu_firmware_set_version
    - g_autoptr
    - fu_input_stream_size
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:100,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:103,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:106,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:111,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:114,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:117,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:120,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:123,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 130
    functionName: fu_ti_tps6598x_firmware_write
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_image_by_id_bytes
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ti_tps6598x_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: fu_ti_tps6598x_firmware_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_firmware_init(FuTiTps6598xFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: fu_ti_tps6598x_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_firmware_class_init(FuTiTps6598xFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:34,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:35,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: fu_ti_tps6598x_device_to_string
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_TI_TPS6598X_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:48,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:48,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:51,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:53,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:53,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:66,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:71,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - addr
    - length
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 82
    functionName: fu_ti_tps6598x_device_usbep_read_raw
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_ti_tps6598x_device_usbep_read_raw(FuTiTps6598xDevice
      *self,\n\t\t\t\t     guint16 addr,\n\t\t\t\t     guint8 length,\n\t\t\t\t     GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:91,1
    - Dst: fu_ti_tps6598x_device_usbep_read_raw
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:100,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:108,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - addr
    - length
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 112
    functionName: fu_ti_tps6598x_device_usbep_read
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ti_tps6598x_device_usbep_read_raw
    - g_steal_pointer
    - g_byte_array_remove_index
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_ti_tps6598x_device_usbep_read(FuTiTps6598xDevice
      *self,\n\t\t\t\t guint16 addr,\n\t\t\t\t guint8 length,\n\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:120,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:121,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:123,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:127,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:134,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:134,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:141,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:147,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:151,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint16
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 163
    functionName: fu_ti_tps6598x_device_usbep_write
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_chunk_get_data_out
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_strdup_printf
    - fu_usb_device_control_transfer
    - g_ptr_array_index
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_usbep_write(FuTiTps6598xDevice *self,\n\t\t\t\t
      \ guint16 addr,\n\t\t\t\t  GByteArray *buf,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:169,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:170,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - bufsz
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: fu_ti_tps6598x_device_read_data
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error
    - g_autoptr
    - fu_ti_tps6598x_device_usbep_read
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ti_tps6598x_device_read_data(FuTiTps6598xDevice *self, gsize bufsz, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_ti_tps6598x_device_usbep_write
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:184,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: fu_ti_tps6598x_device_write_data
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_ti_tps6598x_device_usbep_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_write_data(FuTiTps6598xDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:199,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:199,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:203,1
    - Dst: fu_ti_tps6598x_device_write_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:210,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:214,1
    - Dst: fu_ti_tps6598x_device_usbep_write
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - cmd
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - gchar*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 216
    functionName: fu_ti_tps6598x_device_write_4cc
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_usbep_write
    - strlen
    - fu_byte_array_append_uint8
    - g_set_error_literal
    - fu_ti_tps6598x_device_write_data
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_write_4cc(FuTiTps6598xDevice *self,\n\t\t\t\tconst
      gchar *cmd,\n\t\t\t\tGByteArray *data,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: fu_ti_tps6598x_device_reset_hard
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_write_4cc
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_reset_hard(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:228,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:231,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: fu_ti_tps6598x_device_wait_for_command_cb
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_usbep_read
    - g_set_error
    - g_autoptr
    - FU_TI_TPS6598X_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_wait_for_command_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - count
    - delay
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: fu_ti_tps6598x_device_wait_for_command
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_wait_for_command(FuTiTps6598xDevice
      *self,\n\t\t\t\t       guint count,\n\t\t\t\t       guint delay,\n\t\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:268,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:268,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:269,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:270,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:271,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - slaveNum
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: fu_ti_tps6598x_device_target_reboot
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_wait_for_command
    - fu_byte_array_append_uint8
    - fu_ti_tps6598x_device_write_4cc
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_target_reboot(FuTiTps6598xDevice *self,
      guint8 slaveNum, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_ti_tps6598x_device_target_reboot
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:280,1
    - Dst: fu_ti_tps6598x_device_target_reboot
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:282,1
    - Dst: fu_ti_tps6598x_device_reset_hard
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: fu_ti_tps6598x_device_maybe_reboot
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_target_reboot
    - fu_ti_tps6598x_device_reset_hard
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_maybe_reboot(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:292,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:294,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:296,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:303,1
    - Dst: fu_ti_tps6598x_sfwi_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:307,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:313,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:314,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 317
    functionName: fu_ti_tps6598x_device_sfwi
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_sfwi_to_string
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_device_read_data
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_sfwi(FuTiTps6598xDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:324,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:326,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:328,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:330,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:335,1
    - Dst: fu_ti_tps6598x_sfwd_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 347
    functionName: fu_ti_tps6598x_device_sfwd
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_device_read_data
    - g_autoptr
    - fu_ti_tps6598x_sfwd_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_sfwd(FuTiTps6598xDevice *self, GByteArray
      *data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:354,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:356,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:358,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:360,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:365,1
    - Dst: fu_ti_tps6598x_sfws_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:369,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:376,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:377,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:378,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:379,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 350
    functionDepth: 6
    functionLinenumber: 350
    functionLinenumberEnd: 382
    functionName: fu_ti_tps6598x_device_sfws
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ti_tps6598x_sfws_to_string
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_device_read_data
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_sfws(FuTiTps6598xDevice *self, GByteArray
      *data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:392,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:392,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:394,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:395,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:396,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:397,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:399,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:407,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - self
    - target
    - addr
    - length
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 384
    functionDepth: 6
    functionLinenumber: 384
    functionLinenumberEnd: 418
    functionName: fu_ti_tps6598x_device_read_target_register
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fu_ti_tps6598x_device_wait_for_command
    - fu_byte_array_append_uint8
    - g_byte_array_remove_index
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_device_read_data
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_ti_tps6598x_device_read_target_register(FuTiTps6598xDevice
      *self,\n\t\t\t\t\t   guint8 target,\n\t\t\t\t\t   guint8 addr,\n\t\t\t\t\t   guint8
      length,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:424,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:427,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:430,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: fu_ti_tps6598x_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_strdup_printf
    - fu_ti_tps6598x_device_usbep_read
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_ensure_version(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:439,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:441,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:446,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:449,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:450,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:453,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:454,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 465
    functionName: fu_ti_tps6598x_device_ensure_mode
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ti_tps6598x_device_usbep_read
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_add_flag
    - fu_memstrsafe
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_ensure_mode(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:470,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:471,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:474,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: fu_ti_tps6598x_device_ensure_uid
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_to_string
    - g_free
    - g_autoptr
    - fu_ti_tps6598x_device_usbep_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_ensure_uid(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:482,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:483,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:486,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: fu_ti_tps6598x_device_ensure_ouid
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_to_string
    - g_free
    - g_autoptr
    - fu_ti_tps6598x_device_usbep_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_ensure_ouid(FuTiTps6598xDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:494,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:497,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:497,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:498,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:506,1
    - Dst: fu_ti_tps6598x_device_ensure_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:510,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:511,1
    - Dst: fu_ti_tps6598x_device_ensure_mode
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:514,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:515,1
    - Dst: fu_ti_tps6598x_device_ensure_uid
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:518,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:519,1
    - Dst: fu_ti_tps6598x_device_ensure_ouid
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:523,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:529,1
    - Dst: fu_ti_tps6598x_pd_device_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:529,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 491
    functionDepth: 7
    functionLinenumber: 491
    functionLinenumberEnd: 535
    functionName: fu_ti_tps6598x_device_setup
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_get_class
    - fu_device_add_child
    - FU_DEVICE_CLASS
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_pd_device_new
    - fu_ti_tps6598x_device_ensure_uid
    - g_prefix_error
    - fu_ti_tps6598x_device_ensure_mode
    - fu_ti_tps6598x_device_ensure_version
    - fu_ti_tps6598x_device_ensure_ouid
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:542,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:543,1
    - Dst: fu_ti_tps6598x_device_usbep_read_raw
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:545,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:547,1
    - Dst: fu_ti_tps6598x_byte_array_is_nonzero
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:550,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:552,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:553,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 556
    functionName: fu_ti_tps6598x_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_ti_tps6598x_byte_array_is_nonzero
    - g_debug
    - fu_ti_tps6598x_device_usbep_read_raw
    - FU_TI_TPS6598X_DEVICE
    - fu_byte_array_to_string
    - g_strdup_printf
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:565,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:566,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:566,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:568,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:569,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:569,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:572,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:577,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:577,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:577,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:578,1
    - Dst: fu_ti_tps6598x_device_sfwd
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:579,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:580,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 558
    functionDepth: 7
    functionLinenumber: 558
    functionLinenumberEnd: 590
    functionName: fu_ti_tps6598x_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_ti_tps6598x_device_sfwd
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - g_byte_array_new
    - fu_progress_set_id
    - fu_byte_array_align_up
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_write_chunks(FuTiTps6598xDevice *self,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:599,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:600,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:600,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:601,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:602,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:603,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:603,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:606,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:611,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:611,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:611,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:612,1
    - Dst: fu_ti_tps6598x_device_sfws
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:613,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:614,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 592
    functionDepth: 7
    functionLinenumber: 592
    functionLinenumberEnd: 624
    functionName: fu_ti_tps6598x_device_write_sfws_chunks
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_prefix_error
    - g_byte_array_new
    - fu_ti_tps6598x_device_sfws
    - fu_progress_set_id
    - fu_byte_array_align_up
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_write_sfws_chunks(FuTiTps6598xDevice
      *self,\n\t\t\t\t\tFuChunkArray *chunks,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:629,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:630,1
    - Dst: fu_ti_tps6598x_device_maybe_reboot
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:633,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:634,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:635,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:635,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:638,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 8
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: fu_ti_tps6598x_device_attach
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_ti_tps6598x_device_maybe_reboot
    - g_steal_pointer
    - g_error_matches
    - FU_TI_TPS6598X_DEVICE
    - fu_device_add_flag
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:653,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:654,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:655,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:657,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:658,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:659,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:665,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:666,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:670,1
    - Dst: fu_ti_tps6598x_device_sfwi
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:675,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:677,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:680,1
    - Dst: fu_ti_tps6598x_device_write_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:687,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:689,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:691,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:694,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:697,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:700,1
    - Dst: fu_ti_tps6598x_device_write_sfws_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:707,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:709,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:711,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:714,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:717,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:720,1
    - Dst: fu_ti_tps6598x_device_write_sfws_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:727,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:729,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:731,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:734,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 646
    functionDepth: 8
    functionLinenumber: 646
    functionLinenumberEnd: 738
    functionName: fu_ti_tps6598x_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 1
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_ti_tps6598x_device_sfwi
    - fu_progress_get_child
    - fu_ti_tps6598x_device_write_sfws_chunks
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_device_write_chunks
    - g_prefix_error
    - fu_progress_add_step
    - fu_firmware_get_image_by_id_stream
    - fu_progress_set_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ti_tps6598x_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:743,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:744,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:745,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:746,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:747,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: fu_ti_tps6598x_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:754,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:755,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:755,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:756,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:757,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:758,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:758,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:759,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:760,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:761,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:762,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:763,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:764,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:764,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:765,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 751
    functionDepth: 6
    functionLinenumber: 751
    functionLinenumberEnd: 766
    functionName: fu_ti_tps6598x_device_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_init(FuTiTps6598xDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:771,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:772,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:773,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 775
    functionName: fu_ti_tps6598x_device_finalize
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_TI_TPS6598X_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:780,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: fu_ti_tps6598x_device_class_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_device_class_init(FuTiTps6598xDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_legion_hid2_sipo_device_probe
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_sipo_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_SIPO_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:32,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:33,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:33,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: fu_legion_hid2_sipo_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_LEGION_HID2_DEVICE
    - g_set_error_literal
    - FU_DEVICE
    - FU_LEGION_HID2_SIPO_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_sipo_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:50,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: fu_legion_hid2_sipo_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid2_sipo_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:56,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:57,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:58,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:59,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:60,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:61,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:62,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:63,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:64,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2SipoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: fu_legion_hid2_sipo_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_instance_strsafe
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_sipo_device_init(FuLegionHid2SipoDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2SipoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: fu_legion_hid2_sipo_device_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_sipo_device_class_init(FuLegionHid2SipoDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: fu_legion_hid2_sipo_device_new
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_legion_hid2_sipo_device_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_legion_hid2_bl_device_probe
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_bl_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_BL_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:32,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:33,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:33,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: fu_legion_hid2_bl_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_LEGION_HID2_DEVICE
    - g_set_error_literal
    - FU_DEVICE
    - FU_LEGION_HID2_BL_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_bl_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:50,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: fu_legion_hid2_bl_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid2_bl_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:56,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:57,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:58,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:59,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:60,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:61,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:62,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:63,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:64,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2BlDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: fu_legion_hid2_bl_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_instance_strsafe
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_bl_device_init(FuLegionHid2BlDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2BlDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: fu_legion_hid2_bl_device_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_bl_device_class_init(FuLegionHid2BlDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: fu_legion_hid2_bl_device_new
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_legion_hid2_bl_device_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_legion_hid2_plugin_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_plugin_init(FuLegionHid2Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:33,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:34,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:35,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: fu_legion_hid2_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: fu_legion_hid2_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_plugin_class_init(FuLegionHid2PluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:24,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:26,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: fu_legion_hid2_firmware_export
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_LEGION_HID2_FIRMWARE
    - fu_version_from_uint32
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_legion_hid2_firmware_get_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_LEGION_HID2_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_legion_hid2_firmware_get_version(FuFirmware *firmware)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:45,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:46,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:50,1
    - Dst: fu_struct_legion_hid2_header_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:52,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:56,1
    - Dst: fu_struct_legion_hid2_header_get_sig_add
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:57,1
    - Dst: fu_struct_legion_hid2_header_get_sig_len
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:58,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:62,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:64,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:65,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:68,1
    - Dst: fu_struct_legion_hid2_header_get_data_add
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:69,1
    - Dst: fu_struct_legion_hid2_header_get_data_len
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:70,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:74,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:76,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:77,1
    - Dst: fu_struct_legion_hid2_version_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:79,1
    - Dst: fu_struct_legion_hid2_version_get_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 85
    functionName: fu_legion_hid2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid2_version_parse_stream
    - fu_struct_legion_hid2_header_get_data_add
    - fu_firmware_set_id
    - FU_LEGION_HID2_FIRMWARE
    - fu_firmware_add_image
    - fu_struct_legion_hid2_version_get_version
    - fu_struct_legion_hid2_header_parse_stream
    - fu_struct_legion_hid2_header_get_sig_len
    - fu_firmware_parse_stream
    - fu_struct_legion_hid2_header_get_sig_add
    - fu_struct_legion_hid2_header_get_data_len
    - g_autoptr
    - fu_firmware_new
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: fu_legion_hid2_firmware_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_firmware_init(FuLegionHid2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: fu_legion_hid2_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_firmware_class_init(FuLegionHid2FirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:103,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: fu_legion_hid2_firmware_new
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_legion_hid2_firmware_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:30,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:30,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:36,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:41,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:41,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuLegionHid2Device*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: fu_legion_hid2_device_transfer
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_udev_device_write
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_device_transfer(FuLegionHid2Device *self,\n\t\t\t
      \      GByteArray *req,\n\t\t\t       GByteArray *res,\n\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:59,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fu_legion_hid2_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid2_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:65,1
    - Dst: fu_struct_legion_get_version_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:66,1
    - Dst: fu_struct_legion_version_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:66,1
    - Dst: fu_legion_hid2_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:68,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:70,1
    - Dst: fu_struct_legion_version_get_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: fu_legion_hid2_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_device_transfer
    - fu_struct_legion_get_version_new
    - fu_struct_legion_version_new
    - FU_DEVICE
    - fu_struct_legion_version_get_version
    - g_autoptr
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_ensure_version(FuLegionHid2Device *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:82,1
    - Dst: fu_struct_legion_get_pl_test_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:83,1
    - Dst: fu_struct_legion_get_pl_test_result_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:84,1
    - Dst: fu_struct_legion_get_pl_test_result_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:86,1
    - Dst: fu_struct_legion_get_pl_test_set_index
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:89,1
    - Dst: fu_legion_hid2_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:91,1
    - Dst: fu_struct_legion_get_pl_test_result_get_content
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:94,1
    - Dst: fu_legion_hid2_bl_device_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:96,1
    - Dst: fu_legion_hid2_sipo_device_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:99,1
    - Dst: g_info
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:103,1
    - Dst: fu_struct_legion_get_pl_test_set_index
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:108,1
    - Dst: fu_legion_hid2_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:109,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:110,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:114,1
    - Dst: fu_struct_legion_get_pl_test_result_get_content
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:114,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: fu_legion_hid2_device_setup_touchpad_direct
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_debug
    - fu_legion_hid2_device_transfer
    - fu_struct_legion_get_pl_test_set_index
    - fu_legion_hid2_sipo_device_new
    - fu_struct_legion_get_pl_test_new
    - fu_struct_legion_get_pl_test_result_new
    - fu_struct_legion_get_pl_test_result_get_content
    - FU_DEVICE
    - g_autoptr
    - fu_device_set_version_raw
    - fu_legion_hid2_bl_device_new
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_device_setup_touchpad_direct(FuLegionHid2Device
      *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:126,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:129,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:133,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:133,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:139,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:139,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:143,1
    - Dst: fu_legion_hid2_sipo_device_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:144,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:145,1
    - Dst: fu_legion_hid2_bl_device_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:146,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:148,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:156,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:160,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 164
    functionName: fu_legion_hid2_device_setup_touchpad
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_bl_device_new
    - g_set_error
    - fu_device_add_child
    - fu_device_get_backend_parent_with_subsystem
    - fu_legion_hid2_sipo_device_new
    - fu_udev_device_read_property
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_set_version_raw
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_setup_touchpad(FuLegionHid2Device *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:169,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:172,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:172,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:173,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:173,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:174,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:185,1
    - Dst: fu_legion_hid2_device_ensure_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 193
    functionName: fu_legion_hid2_device_setup_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_legion_hid2_device_ensure_version
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_device_get_version_raw
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_setup_version(FuLegionHid2Device *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:200,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:202,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:202,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:205,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:217,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 227
    functionName: fu_legion_hid2_device_validate_descriptor
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_HIDRAW_DEVICE
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_autoptr
    - fu_hid_descriptor_find_report
    - fu_hidraw_device_parse_descriptor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_validate_descriptor(FuDevice *device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:232,1
    - Dst: fu_legion_hid2_device_validate_descriptor
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:234,1
    - Dst: fu_legion_hid2_device_setup_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:237,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:237,1
    - Dst: fu_legion_hid2_device_setup_touchpad
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:240,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:241,1
    - Dst: fu_legion_hid2_device_setup_touchpad_direct
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:243,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: fu_legion_hid2_device_setup
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_device_validate_descriptor
    - g_debug
    - FU_LEGION_HID2_DEVICE
    - fu_legion_hid2_device_setup_touchpad
    - fu_legion_hid2_device_setup_version
    - fu_legion_hid2_device_setup_touchpad_direct
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:258,1
    - Dst: fu_legion_hid2_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:258,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:261,1
    - Dst: fu_legion_hid2_firmware_get_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:264,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:265,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:267,1
    - Dst: g_info
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: fu_legion_hid2_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_steal_pointer
    - fu_legion_hid2_firmware_new
    - fu_legion_hid2_firmware_get_version
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_version_from_uint32
    - fu_device_get_version_raw
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_legion_hid2_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FuFirmwareParseFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:279,1
    - Dst: fu_struct_legion_start_iap_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:281,1
    - Dst: fu_struct_legion_iap_result_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:282,1
    - Dst: fu_legion_hid2_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:284,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:284,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:288,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:290,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:292,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:292,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 274
    functionDepth: 6
    functionLinenumber: 274
    functionLinenumberEnd: 300
    functionName: fu_legion_hid2_device_detach
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_start_iap_new
    - g_debug
    - fu_legion_hid2_device_transfer
    - g_steal_pointer
    - FU_LEGION_HID2_DEVICE
    - g_error_matches
    - fu_device_add_flag
    - g_propagate_error
    - g_autoptr
    - fu_struct_legion_iap_result_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:305,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:306,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:307,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:308,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:309,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:310,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:311,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:311,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:312,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: fu_legion_hid2_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_device_init(FuLegionHid2Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: fu_legion_hid2_device_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_device_class_init(FuLegionHid2DeviceClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:27,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:27,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:33,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:38,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:38,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 51
    functionName: fu_legion_hid2_iap_device_transfer
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_udev_device_write
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_iap_device_transfer(FuLegionHid2IapDevice
      *self,\n\t\t\t\t   GByteArray *req,\n\t\t\t\t   GByteArray *res,\n\t\t\t\t   GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:56,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:56,1
    - Dst: fu_struct_legion_iap_tlv_get_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:61,1
    - Dst: fu_legion_hid2_iap_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:66,1
    - Dst: fu_struct_legion_iap_tlv_get_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:71,1
    - Dst: fu_struct_legion_iap_tlv_get_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:80,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - cmd
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 89
    functionName: fu_legion_hid2_iap_device_tlv
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fu_legion_hid2_iap_device_transfer
    - fu_struct_legion_iap_tlv_get_value
    - fu_struct_legion_iap_tlv_get_tag
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_legion_hid2_iap_device_tlv(FuLegionHid2IapDevice *self, GByteArray *cmd,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:96,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:98,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:100,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:103,1
    - Dst: FU_LEGION_HID2_IAP_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:103,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:105,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: fu_legion_hid2_iap_device_attach
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_legion_hid2_iap_device_tlv
    - FU_LEGION_HID2_IAP_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_iap_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:119,1
    - Dst: fu_legion_hid2_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:119,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: fu_legion_hid2_iap_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_legion_hid2_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_legion_hid2_iap_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t   GInputStream *stream,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t
      \  FuFirmwareParseFlags flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:131,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:132,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:134,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: fu_legion_hid2_iap_device_unlock_flash
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_iap_device_unlock_flash(FuLegionHid2IapDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:148,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:149,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:151,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:153,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: fu_legion_hid2_iap_device_verify_signature
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_iap_device_verify_signature(FuLegionHid2IapDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:165,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:166,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:168,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:170,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: fu_legion_hid2_iap_device_verify_code
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_iap_device_verify_code(FuLegionHid2IapDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:186,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:187,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:187,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:190,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:191,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:193,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:195,1
    - Dst: fu_struct_legion_iap_tlv_set_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:199,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:200,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:201,1
    - Dst: fu_struct_legion_iap_tlv_set_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:205,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:205,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:207,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:209,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - self
    - chunks
    - progress
    - tag
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuChunkArray*
    - FuProgress*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: fu_legion_hid2_iap_device_write_data_chunks
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_legion_hid2_iap_device_tlv
    - fu_struct_legion_iap_tlv_set_value
    - fu_struct_legion_iap_tlv_set_length
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_struct_legion_iap_tlv_new
    - fu_chunk_get_data
    - fu_progress_set_steps
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_iap_device_write_data_chunks(FuLegionHid2IapDevice
      *self,\n\t\t\t\t\t    FuChunkArray *chunks,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t
      \   guint16 tag,\n\t\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:223,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:224,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:227,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:229,1
    - Dst: FU_LEGION_HID2_IAP_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:229,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:231,1
    - Dst: fu_struct_legion_iap_tlv_get_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: fu_legion_hid2_iap_device_wait_for_complete_cb
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error
    - FU_LEGION_HID2_IAP_DEVICE
    - fu_struct_legion_iap_tlv_get_value
    - g_autoptr
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_set_tag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_iap_device_wait_for_complete_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:254,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:256,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:260,1
    - Dst: fu_legion_hid2_iap_device_write_data_chunks
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 247
    functionDepth: 7
    functionLinenumber: 247
    functionLinenumberEnd: 272
    functionName: fu_legion_hid2_iap_device_write_data
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_legion_hid2_iap_device_write_data_chunks
    - fu_firmware_get_image_by_id_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_iap_device_write_data(FuLegionHid2IapDevice
      *self,\n\t\t\t\t     FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:281,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:283,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:287,1
    - Dst: fu_legion_hid2_iap_device_write_data_chunks
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 7
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: fu_legion_hid2_iap_device_write_sig
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_legion_hid2_iap_device_write_data_chunks
    - fu_firmware_get_image_by_id_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_iap_device_write_sig(FuLegionHid2IapDevice
      *self,\n\t\t\t\t    FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_IAP_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:308,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:312,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:313,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:314,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:315,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:316,1
    - Dst: fu_legion_hid2_iap_device_unlock_flash
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:318,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:320,1
    - Dst: fu_legion_hid2_iap_device_write_data
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:322,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:324,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:327,1
    - Dst: fu_legion_hid2_iap_device_write_sig
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:329,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:331,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:334,1
    - Dst: fu_legion_hid2_iap_device_verify_signature
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:338,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:340,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:347,1
    - Dst: fu_legion_hid2_iap_device_verify_code
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:349,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 301
    functionDepth: 8
    functionLinenumber: 301
    functionLinenumberEnd: 356
    functionName: fu_legion_hid2_iap_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_legion_hid2_iap_device_verify_signature
    - fu_legion_hid2_iap_device_write_data
    - fu_legion_hid2_iap_device_unlock_flash
    - FU_LEGION_HID2_IAP_DEVICE
    - fu_progress_add_step
    - fu_legion_hid2_iap_device_verify_code
    - fu_progress_set_id
    - fu_legion_hid2_iap_device_write_sig
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid2_iap_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:361,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:362,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:363,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:364,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:365,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: fu_legion_hid2_iap_device_set_progress
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_iap_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:372,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:373,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:374,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:375,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:376,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:377,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:378,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:378,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:379,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:379,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2IapDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 6
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: fu_legion_hid2_iap_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_iap_device_init(FuLegionHid2IapDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2IapDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: fu_legion_hid2_iap_device_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_iap_device_class_init(FuLegionHid2IapDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:26,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:28,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:29,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: fu_asus_hid_firmware_export
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ASUS_HID_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:41,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:42,1
    - Dst: fu_struct_asus_hid_desc_parse_stream
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:44,1
    - Dst: fu_struct_asus_hid_desc_get_fga
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:47,1
    - Dst: fu_struct_asus_hid_desc_get_product
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:48,1
    - Dst: fu_struct_asus_hid_desc_get_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:49,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:51,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:54,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:56,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: fu_asus_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_struct_asus_hid_desc_get_product
    - fu_struct_asus_hid_desc_get_version
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_struct_asus_hid_desc_parse_stream
    - fu_partial_input_stream_new
    - g_autoptr
    - FU_ASUS_HID_FIRMWARE
    - fu_firmware_new
    - fu_struct_asus_hid_desc_get_fga
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_asus_hid_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: fu_asus_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_firmware_init(FuAsusHidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:70,1
    - Dst: g_free
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:71,1
    - Dst: g_free
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:72,1
    - Dst: g_free
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:73,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: fu_asus_hid_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ASUS_HID_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:80,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: fu_asus_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_firmware_class_init(FuAsusHidFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_CHILD_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:26,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_asus_hid_child_device_to_string
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_ASUS_HID_CHILD_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_child_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:37,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:37,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:37,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:40,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:45,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:50,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - self
    - req
    - res
    - report
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GByteArray*
    - GByteArray*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: fu_asus_hid_child_device_transfer_feature
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    - g_prefix_error
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_asus_hid_child_device_transfer_feature(FuAsusHidChildDevice
      *self,\n\t\t\t\t\t  GByteArray *req,\n\t\t\t\t\t  GByteArray *res,\n\t\t\t\t\t
      \ guint8 report,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:67,1
    - Dst: fu_struct_asus_man_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:68,1
    - Dst: fu_struct_asus_man_result_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:68,1
    - Dst: fu_asus_hid_child_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:70,1
    - Dst: fu_struct_asus_man_result_get_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:77,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 88
    functionName: fu_asus_hid_child_device_ensure_manufacturer
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_asus_man_result_new
    - fu_struct_asus_man_result_get_data
    - fu_struct_asus_man_command_new
    - fu_asus_hid_child_device_transfer_feature
    - g_autoptr
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_ensure_manufacturer(FuAsusHidChildDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:93,1
    - Dst: fu_struct_asus_hid_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:94,1
    - Dst: fu_struct_asus_hid_fw_info_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:95,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:99,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:103,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:110,1
    - Dst: fu_asus_hid_child_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:112,1
    - Dst: fu_struct_asus_hid_fw_info_get_description
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:119,1
    - Dst: fu_struct_asus_hid_desc_get_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:120,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:121,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:123,1
    - Dst: fu_struct_asus_hid_desc_get_product
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:124,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:125,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:126,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 138
    functionName: fu_asus_hid_child_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_get_logical_id
    - fu_struct_asus_hid_fw_info_new
    - fu_struct_asus_hid_fw_info_get_description
    - fu_struct_asus_hid_desc_get_version
    - fu_struct_asus_hid_desc_get_product
    - fu_struct_asus_hid_command_set_length
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_asus_hid_child_device_transfer_feature
    - g_autoptr
    - fu_device_add_instance_strsafe
    - fu_struct_asus_hid_command_new
    - fu_struct_asus_hid_command_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_ensure_version(FuAsusHidChildDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_CHILD_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:143,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:147,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:151,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:152,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:154,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:154,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:156,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:159,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:160,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:167,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:168,1
    - Dst: fu_asus_hid_child_device_ensure_manufacturer
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:173,1
    - Dst: fu_asus_hid_child_device_ensure_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:176,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 140
    functionDepth: 7
    functionLinenumber: 140
    functionLinenumberEnd: 182
    functionName: fu_asus_hid_child_device_setup
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version
    - g_prefix_error
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - fu_device_has_flag
    - g_set_error_literal
    - FU_DEVICE
    - FU_ASUS_HID_CHILD_DEVICE
    - fu_device_add_instance_strsafe
    - fu_asus_hid_child_device_ensure_version
    - fu_asus_hid_child_device_ensure_manufacturer
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_CHILD_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:187,1
    - Dst: fu_asus_hid_child_device_ensure_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: fu_asus_hid_child_device_reload
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_asus_hid_child_device_ensure_version
    - FU_ASUS_HID_CHILD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_reload(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:198,1
    - Dst: fu_device_attach
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: fu_asus_hid_child_device_attach
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_attach
    - fu_device_get_proxy
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:211,1
    - Dst: fu_device_detach
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: fu_asus_hid_child_device_detach
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error_literal
    - fu_device_detach
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_child_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:221,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:222,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:224,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: fu_asus_hid_child_device_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_child_device_init(FuAsusHidChildDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: fu_asus_hid_child_device_class_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_child_device_class_init(FuAsusHidChildDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:242,1
    - Dst: FU_ASUS_HID_CHILD_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - idx
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: fu_asus_hid_child_device_new
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - FU_ASUS_HID_CHILD_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_asus_hid_child_device_new(FuDevice *proxy, guint8 idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_asus_hid_plugin_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_plugin_init(FuAsusHidPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:29,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:32,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_asus_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_asus_hid_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_plugin_class_init(FuAsusHidPluginClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:31,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:31,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:36,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:41,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:41,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - self
    - req
    - res
    - report
    - error
    argTypes:
    - FuAsusHidDevice*
    - GByteArray*
    - GByteArray*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 52
    functionName: fu_asus_hid_device_transfer_feature
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HIDRAW_DEVICE
    - g_prefix_error
    - fu_hidraw_device_get_feature
    - fu_hidraw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_asus_hid_device_transfer_feature(FuAsusHidDevice *self,\n\t\t\t\t
      \   GByteArray *req,\n\t\t\t\t    GByteArray *res,\n\t\t\t\t    guint8 report,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:57,1
    - Dst: fu_struct_asus_hid_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:57,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:59,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAsusHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: fu_asus_hid_device_init_seq
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_autoptr
    - fu_struct_asus_hid_command_new
    - fu_struct_asus_hid_command_set_cmd
    - fu_asus_hid_device_transfer_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_init_seq(FuAsusHidDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:76,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:77,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:78,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - child
    - user_data
    argTypes:
    - FuDevice*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fu_asus_hid_device_child_added_cb
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_set_proxy
    - fu_device_get_id
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_device_child_added_cb(FuDevice *device, FuDevice *child,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:86,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:88,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:88,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: fu_asus_hid_device_validate_descriptor
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_hid_descriptor_find_report
    - g_autoptr
    - fu_hidraw_device_parse_descriptor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_validate_descriptor(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:113,1
    - Dst: fu_asus_hid_child_device_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:113,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: fu_asus_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_asus_hid_child_device_new
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:123,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:126,1
    - Dst: fu_asus_hid_device_validate_descriptor
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:129,1
    - Dst: fu_asus_hid_device_init_seq
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: fu_asus_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - fu_asus_hid_device_init_seq
    - fu_asus_hid_device_validate_descriptor
    - FU_ASUS_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:142,1
    - Dst: fu_struct_asus_flash_reset_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:142,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:144,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:147,1
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:147,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:152,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: fu_asus_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_struct_asus_flash_reset_new
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    - fu_asus_hid_device_transfer_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:165,1
    - Dst: fu_struct_asus_pre_update_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:166,1
    - Dst: fu_struct_asus_hid_result_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:166,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:169,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:172,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:173,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:174,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:182,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:183,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:184,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:193,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:194,1
    - Dst: fu_struct_asus_pre_update_command_set_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:195,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:200,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:208,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:209,1
    - Dst: fu_struct_asus_pre_update_command_set_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:210,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:215,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:225,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:226,1
    - Dst: fu_struct_asus_pre_update_command_set_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:227,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:232,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:241,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:242,1
    - Dst: fu_struct_asus_pre_update_command_set_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:243,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:248,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 258
    functionName: fu_asus_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_asus_hid_command_set_length
    - fu_struct_asus_pre_update_command_new
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    - fu_struct_asus_pre_update_command_set_data
    - fu_struct_asus_hid_result_new
    - fu_struct_asus_hid_command_set_cmd
    - fu_asus_hid_device_transfer_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:264,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:265,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:267,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:268,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:275,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:276,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:276,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:277,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:282,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:283,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:288,1
    - Dst: fu_struct_asus_read_flash_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:290,1
    - Dst: fu_struct_asus_read_flash_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:291,1
    - Dst: fu_struct_asus_read_flash_command_set_offset
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:293,1
    - Dst: fu_struct_asus_read_flash_command_set_datasz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:294,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:294,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:296,1
    - Dst: fu_struct_asus_read_flash_command_get_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:302,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:303,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:303,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:304,1
    - Dst: fu_struct_asus_read_flash_command_get_datasz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:309,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:312,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:313,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 316
    functionName: fu_asus_hid_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_struct_asus_read_flash_command_get_datasz
    - fu_struct_asus_read_flash_command_set_offset
    - fu_device_has_flag
    - fu_struct_asus_read_flash_command_new
    - fu_progress_set_steps
    - g_set_error
    - fu_chunk_get_data_out
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    - fu_asus_hid_device_transfer_feature
    - fu_chunk_get_data_sz
    - fu_memcpy_safe
    - fu_struct_asus_read_flash_command_get_data
    - fu_device_get_firmware_size_max
    - FU_ASUS_HID_DEVICE
    - fu_struct_asus_read_flash_command_set_datasz
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_asus_hid_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:324,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:326,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:329,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: fu_asus_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_strtoull
    - FU_ASUS_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_asus_hid_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ASUS_HID_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:346,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:349,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: fu_asus_hid_device_dispose
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_signal_handler_disconnect
    - FU_DEVICE
    - G_OBJECT_CLASS
    - FU_ASUS_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_device_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:361,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:361,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:362,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:363,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:363,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: fu_asus_hid_device_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_device_init(FuAsusHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:372,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: fu_asus_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_asus_hid_device_class_init(FuAsusHidDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:21,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:29,1
    - Dst: fu_drm_device_get_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxDisplayPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: fu_linux_display_plugin_get_display_state
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_drm_device_get_state
    - g_ptr_array_index
    - fu_plugin_get_devices
    - FU_PLUGIN
    linkageType: ''
    returnType: FuDisplayState
    signature: FuDisplayState fu_linux_display_plugin_get_display_state(FuLinuxDisplayPlugin
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:41,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:41,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:42,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:42,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:44,1
    - Dst: fu_linux_display_plugin_get_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxDisplayPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: fu_linux_display_plugin_ensure_display_state
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_display_plugin_get_display_state
    - fu_plugin_has_flag
    - fu_plugin_get_context
    - fu_context_set_display_state
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_linux_display_plugin_ensure_display_state(FuLinuxDisplayPlugin
      *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_DISPLAY_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:53,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:56,1
    - Dst: fu_drm_device_get_edid
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:59,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:59,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:60,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:62,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: fu_linux_display_plugin_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_add
    - fu_device_setup
    - fu_linux_display_plugin_ensure_display_state
    - FU_DRM_DEVICE
    - FU_LINUX_DISPLAY_PLUGIN
    - fu_drm_device_get_edid
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_display_plugin_plugin_backend_device_added(FuPlugin
      *plugin,\n\t\t\t\t\t\t    FuDevice *device,\n\t\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_DISPLAY_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:71,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fu_linux_display_plugin_plugin_ready
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_display_plugin_ensure_display_state
    - FU_LINUX_DISPLAY_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_display_plugin_plugin_ready(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_DISPLAY_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:81,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: fu_linux_display_plugin_plugin_backend_device_removed
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_display_plugin_ensure_display_state
    - FU_LINUX_DISPLAY_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_display_plugin_plugin_backend_device_removed(FuPlugin
      *plugin,\n\t\t\t\t\t\t      FuDevice *device,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_DISPLAY_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:91,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:92,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: fu_linux_display_plugin_plugin_backend_device_changed
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_DRM_DEVICE
    - fu_linux_display_plugin_ensure_display_state
    - FU_LINUX_DISPLAY_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_display_plugin_plugin_backend_device_changed(FuPlugin
      *plugin,\n\t\t\t\t\t\t      FuDevice *device,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxDisplayPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: fu_linux_display_plugin_init
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_linux_display_plugin_init(FuLinuxDisplayPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:106,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: fu_linux_display_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_linux_display_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxDisplayPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: fu_linux_display_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_display_plugin_class_init(FuLinuxDisplayPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UPOWER_PLUGIN
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:33,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:37,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:40,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:41,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:42,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:47,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:49,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:50,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:53,1
    - Dst: g_variant_get_double
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:53,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:56,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:57,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:58,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: fu_upower_plugin_rescan_devices
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_context_set_battery_level
    - fu_plugin_get_context
    - g_dbus_proxy_get_cached_property
    - FU_UPOWER_PLUGIN
    - g_variant_get_uint32
    - g_autoptr
    - g_variant_get_double
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_rescan_devices(FuPlugin *plugin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UPOWER_PLUGIN
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:66,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:69,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:72,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:73,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:75,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:76,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:79,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:80,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:83,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:84,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 88
    functionName: fu_upower_plugin_update_lid
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_context_set_lid_state
    - g_variant_get_boolean
    - fu_plugin_get_context
    - g_dbus_proxy_get_cached_property
    - FU_UPOWER_PLUGIN
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_update_lid(FuPlugin *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UPOWER_PLUGIN
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:93,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:95,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:97,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:99,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:102,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:103,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: fu_upower_plugin_update_battery
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_variant_get_boolean
    - fu_plugin_get_context
    - g_dbus_proxy_get_cached_property
    - fu_context_set_power_state
    - FU_UPOWER_PLUGIN
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_update_battery(FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_upower_plugin_update_lid
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:111,1
    - Dst: fu_upower_plugin_update_battery
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: fu_upower_plugin_rescan_manager
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - fu_upower_plugin_update_battery
    - fu_upower_plugin_update_lid
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_rescan_manager(FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_upower_plugin_rescan_manager
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:121,1
    - Dst: fu_upower_plugin_rescan_devices
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - plugin
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: fu_upower_plugin_proxy_changed_cb
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - fu_upower_plugin_rescan_devices
    - fu_upower_plugin_rescan_manager
    linkageType: ''
    returnType: void
    signature: "void fu_upower_plugin_proxy_changed_cb(GDBusProxy *proxy,\n\t\t\t\t
      \ GVariant *changed_properties,\n\t\t\t\t  GStrv invalidated_properties,\n\t\t\t\t
      \ FuPlugin *plugin)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UPOWER_PLUGIN
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:128,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:131,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:140,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:152,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:155,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:157,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:161,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:164,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:164,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:166,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:168,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:168,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:170,1
    - Dst: fu_upower_plugin_rescan_devices
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:173,1
    - Dst: fu_upower_plugin_rescan_manager
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 178
    functionName: fu_upower_plugin_startup
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - G_DBUS_PROXY
    - g_prefix_error
    - g_dbus_proxy_get_name
    - g_dbus_proxy_get_name_owner
    - g_dbus_proxy_new_for_bus_sync
    - FU_UPOWER_PLUGIN
    - fu_upower_plugin_rescan_manager
    - g_signal_connect
    - fu_upower_plugin_rescan_devices
    - G_CALLBACK
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_upower_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUpowerPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: fu_upower_plugin_init
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_init(FuUpowerPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UPOWER_PLUGIN
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:188,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:190,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:192,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: fu_upower_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UPOWER_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:199,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUpowerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: fu_upower_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_class_init(FuUpowerPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd0
    - ','
    - cmd1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MAKE_CMD_EX
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_CMD_EX(cmd0, cmd1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixMocPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_goodixmoc_plugin_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_plugin_init(FuGoodixMocPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:27,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_goodixmoc_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_goodixmoc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:41,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixMocPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: fu_goodixmoc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_plugin_class_init(FuGoodixMocPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:39,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:39,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:42,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:43,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:44,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:45,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:46,1
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:47,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:48,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:49,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:50,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:51,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:52,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:55,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:63,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:66,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:69,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:69,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:77,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 6
    argNames:
    - self
    - cmd0
    - cmd1
    - type
    - req
    - error
    argTypes:
    - FuGoodixMocDevice*
    - guint8
    - guint8
    - GxPkgType
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 87
    functionName: fu_goodixmoc_device_cmd_send
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_prefix_error
    - fu_crc8
    - fu_dump_full
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_crc32
    - g_byte_array_append
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixmoc_device_cmd_send(FuGoodixMocDevice *self,\n\t\t\t
      \    guint8 cmd0,\n\t\t\t     guint8 cmd1,\n\t\t\t     GxPkgType type,\n\t\t\t
      \    GByteArray *req,\n\t\t\t     GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:109,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:109,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:110,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:111,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:119,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:126,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:134,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:136,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:144,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:145,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:153,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:171,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:177,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:184,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - self
    - presponse
    - data_reply
    - error
    argTypes:
    - FuGoodixMocDevice*
    - GxfpCmdResp*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 203
    functionName: fu_goodixmoc_device_cmd_recv
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    - fu_memcpy_safe
    - fu_dump_full
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_crc32
    - g_return_val_if_fail
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixmoc_device_cmd_recv(FuGoodixMocDevice *self,\n\t\t\t
      \    GxfpCmdResp *presponse,\n\t\t\t     gboolean data_reply,\n\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXMOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:215,1
    - Dst: fu_goodixmoc_device_cmd_send
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:216,1
    - Dst: fu_goodixmoc_device_cmd_recv
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - device
    - cmd0
    - cmd1
    - type
    - req
    - presponse
    - data_reply
    - error
    argTypes:
    - FuGoodixMocDevice*
    - guint8
    - guint8
    - GxPkgType
    - GByteArray*
    - GxfpCmdResp*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: fu_goodixmoc_device_cmd_xfer
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixmoc_device_cmd_send
    - fu_goodixmoc_device_cmd_recv
    - FU_GOODIXMOC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixmoc_device_cmd_xfer(FuGoodixMocDevice *device,\n\t\t\t
      \    guint8 cmd0,\n\t\t\t     guint8 cmd1,\n\t\t\t     GxPkgType type,\n\t\t\t
      \    GByteArray *req,\n\t\t\t     GxfpCmdResp *presponse,\n\t\t\t     gboolean
      data_reply,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:226,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:226,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:228,1
    - Dst: fu_goodixmoc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:229,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:238,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: fu_goodixmoc_device_setup_version
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_goodixmoc_device_cmd_xfer
    - g_autoptr
    - g_strndup
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixmoc_device_setup_version(FuGoodixMocDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:248,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:248,1
    - Dst: fu_goodixmoc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:251,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:259,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 273
    functionName: fu_goodixmoc_device_update_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_goodixmoc_device_cmd_xfer
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixmoc_device_update_init(FuGoodixMocDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXMOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:280,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:280,1
    - Dst: fu_goodixmoc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:283,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:291,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:297,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 306
    functionName: fu_goodixmoc_device_attach
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - FU_GOODIXMOC_DEVICE
    - fu_device_add_flag
    - fu_goodixmoc_device_cmd_xfer
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixmoc_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXMOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:311,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:314,1
    - Dst: fu_goodixmoc_device_setup_version
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:318,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 325
    functionName: fu_goodixmoc_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_GOODIXMOC_DEVICE
    - FU_DEVICE_CLASS
    - fu_goodixmoc_device_setup_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixmoc_device_setup(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXMOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:340,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:343,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:344,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:345,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:346,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:349,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:354,1
    - Dst: fu_goodixmoc_device_update_init
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:360,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:361,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:368,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:373,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:374,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:377,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:380,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:380,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:380,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:383,1
    - Dst: fu_goodixmoc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:387,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:395,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:405,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:414,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:414,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:416,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 422
    functionName: fu_goodixmoc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_goodixmoc_device_update_init
    - fu_goodixmoc_device_cmd_xfer
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - FU_GOODIXMOC_DEVICE
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixmoc_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:427,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:428,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:429,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:430,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:431,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:432,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 434
    functionName: fu_goodixmoc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:439,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:440,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:441,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:442,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:443,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:444,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:444,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:445,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:446,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:447,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:448,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:449,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:449,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:450,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:451,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:452,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixMocDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 436
    functionDepth: 6
    functionLinenumber: 436
    functionLinenumberEnd: 453
    functionName: fu_goodixmoc_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    - fu_device_set_firmware_size_max
    - fu_device_set_install_duration
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_device_init(FuGoodixMocDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixMocDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: fu_goodixmoc_device_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixmoc_device_class_init(FuGoodixMocDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:27,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: fu_dell_kestrel_rtshub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32_hex
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_rtshub_firmware_convert_version(FuFirmware *firmware, guint64
      version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:35,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: fu_dell_kestrel_rtshub_firmware_export
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_RTSHUB_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: "void fu_dell_kestrel_rtshub_firmware_export(FuFirmware *firmware,\n\t\t\t\t
      \      FuFirmwareExportFlags flags,\n\t\t\t\t       XbBuilderNode *bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - stream
    - version_offset
    - pid_offset
    - error
    argTypes:
    - GInputStream*
    - guint16*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: fu_dell_kestrel_rtshub_firmware_set_offset
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rtshub_firmware_set_offset(GInputStream *stream,\n\t\t\t\t\t
      \  guint16 *version_offset,\n\t\t\t\t\t   guint16 *pid_offset,\n\t\t\t\t\t   GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:69,1
    - Dst: fu_dell_kestrel_rtshub_firmware_set_offset
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:76,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:83,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:86,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: fu_dell_kestrel_rtshub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_RTSHUB_FIRMWARE
    - fu_dell_kestrel_rtshub_firmware_set_offset
    - fu_input_stream_read_u16
    - fu_firmware_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rtshub_firmware_parse(FuFirmware *firmware,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelRtshubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: fu_dell_kestrel_rtshub_firmware_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_firmware_init(FuDellKestrelRtshubFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelRtshubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: fu_dell_kestrel_rtshub_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_firmware_class_init(FuDellKestrelRtshubFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:20,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: fu_dell_kestrel_ilan_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint16_hex
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_ilan_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:26,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:27,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:27,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:33,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:33,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:34,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:35,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:38,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:39,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:40,1
    - Dst: fu_dell_kestrel_ec_get_ilan_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:43,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:43,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: fu_dell_kestrel_ilan_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_ilan_version
    - fu_device_set_version_raw
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_type
    - FU_DELL_KESTREL_EC
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ilan_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:55,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:56,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: fu_dell_kestrel_ilan_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_ilan_write(FuDevice *device,\n\t\t\t   FuFirmware
      *firmware,\n\t\t\t   FuProgress *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:67,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:68,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:69,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:70,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:71,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: fu_dell_kestrel_ilan_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ilan_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:78,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:79,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:80,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:81,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:82,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:83,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:84,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:85,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:86,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:87,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelIlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: fu_dell_kestrel_ilan_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ilan_init(FuDellKestrelIlan *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelIlanClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: fu_dell_kestrel_ilan_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ilan_class_init(FuDellKestrelIlanClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:104,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:106,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: fu_dell_kestrel_ilan_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelIlan
    signature: 'FuDellKestrelIlan *

      fu_dell_kestrel_ilan_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:27,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:29,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: fu_dell_kestrel_plugin_create_node
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_device_add
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_create_node(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:41,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:42,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:43,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:47,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:48,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:53,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:55,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:75,1
    - Dst: fu_dell_kestrel_rmm_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:77,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:77,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:79,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:86,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:90,1
    - Dst: fu_dell_kestrel_rmm_fix_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:104,1
    - Dst: fu_dell_kestrel_rtshub_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:106,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:108,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:116,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:125,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 132
    functionName: fu_dell_kestrel_plugin_device_add
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_device_add_child
    - fu_plugin_cache_add
    - fu_device_get_vid
    - g_prefix_error
    - g_strdup_printf
    - fu_plugin_cache_lookup
    - fu_dell_kestrel_rmm_fix_version
    - fu_dell_kestrel_rtshub_new
    - g_set_error_literal
    - FU_DEVICE
    - g_autoptr
    - fu_dell_kestrel_rmm_new
    - FU_USB_DEVICE
    - fu_device_locker_new
    - fu_dell_kestrel_ec_get_dock_type
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_device_add(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:153,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:154,1
    - Dst: fu_dell_kestrel_plugin_device_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:156,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - ec_device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 6
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: fu_dell_kestrel_plugin_ec_add_cached_devices
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_cache_remove
    - fu_dell_kestrel_plugin_device_add
    - g_strdup_printf
    - fu_plugin_cache_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_ec_add_cached_devices(FuPlugin *plugin,
      FuDevice *ec_device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:174,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:178,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:185,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:187,1
    - Dst: fu_dell_kestrel_ec_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:191,1
    - Dst: fu_dell_kestrel_plugin_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:198,1
    - Dst: fu_dell_kestrel_plugin_ec_add_cached_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:201,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:206,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:207,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:209,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:209,1
    - Dst: fu_dell_kestrel_plugin_device_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 165
    functionDepth: 7
    functionLinenumber: 165
    functionLinenumberEnd: 220
    functionName: fu_dell_kestrel_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - g_debug
    - g_steal_pointer
    - fu_device_get_vid
    - g_error_matches
    - fu_dell_kestrel_plugin_create_node
    - fu_dell_kestrel_plugin_ec_add_cached_devices
    - FU_DEVICE
    - FU_IS_USB_DEVICE
    - fu_dell_kestrel_ec_new
    - g_propagate_error
    - g_autoptr
    - fu_dell_kestrel_plugin_device_add
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_plugin_backend_device_added(FuPlugin *plugin,\n\t\t\t\t\t
      \   FuDevice *device,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:225,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:226,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:235,1
    - Dst: fu_dell_kestrel_ec_is_dev_present
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:240,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:240,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:244,1
    - Dst: fu_dell_kestrel_ec_is_dev_present
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:248,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:248,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:252,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:256,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:259,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:262,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 265
    functionName: fu_dell_kestrel_plugin_config_mst_dev
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_private_flag
    - fu_plugin_cache_lookup
    - fu_device_has_private_flag
    - fu_dell_kestrel_ec_is_dev_present
    - fu_dell_kestrel_ec_devicetype_to_str
    - FU_DELL_KESTREL_EC
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_config_mst_dev(FuPlugin *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:270,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:271,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:272,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:274,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:275,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:276,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:279,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:280,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: fu_dell_kestrel_plugin_config_parentship
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_cache_remove
    - fu_device_add_child
    - fu_plugin_cache_lookup
    - fu_device_get_parent
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_config_parentship(FuPlugin *plugin)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:289,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:290,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:292,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:292,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:294,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:295,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:296,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:300,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:301,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:302,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:303,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:307,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:311,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:312,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:313,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:316,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:317,1
    - Dst: fu_dell_kestrel_plugin_config_mst_dev
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:320,1
    - Dst: fu_dell_kestrel_plugin_config_parentship
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 324
    functionName: fu_dell_kestrel_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_plugin_get_name
    - fu_device_has_guid
    - fu_device_add_private_flag
    - fu_plugin_cache_add
    - fu_device_inhibit
    - fu_device_get_vid
    - g_strdup_printf
    - fu_dell_kestrel_plugin_config_mst_dev
    - fu_device_remove_flag
    - FU_IS_USB_DEVICE
    - fu_dell_kestrel_plugin_config_parentship
    - FU_IS_DELL_KESTREL_EC
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:330,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:331,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: fu_dell_kestrel_plugin_get_ec_from_devices
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_DELL_KESTREL_EC
    - g_ptr_array_index
    - fu_device_get_parent
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_dell_kestrel_plugin_get_ec_from_devices(GPtrArray *devices)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:346,1
    - Dst: fu_dell_kestrel_plugin_get_ec_from_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:349,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:354,1
    - Dst: fu_dell_kestrel_ec_own_dock
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:359,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 363
    functionName: fu_dell_kestrel_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_plugin_get_ec_from_devices
    - fu_dell_kestrel_ec_own_dock
    - g_autoptr
    - fu_device_locker_new
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_composite_cleanup(FuPlugin *plugin,
      GPtrArray *devices, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:369,1
    - Dst: fu_dell_kestrel_plugin_get_ec_from_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:372,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:377,1
    - Dst: fu_dell_kestrel_ec_is_dock_ready4update
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:382,1
    - Dst: fu_dell_kestrel_ec_own_dock
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:386,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:386,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:390,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:391,1
    - Dst: fu_dell_kestrel_ec_run_passive_update
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:392,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:392,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: fu_dell_kestrel_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_run_passive_update
    - fu_dell_kestrel_plugin_get_ec_from_devices
    - fu_dell_kestrel_ec_own_dock
    - FU_DELL_KESTREL_EC
    - fu_device_has_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_dell_kestrel_ec_is_dock_ready4update
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_composite_prepare(FuPlugin *plugin,
      GPtrArray *devices, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:408,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:409,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: fu_dell_kestrel_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_plugin_modify_config(FuPlugin *plugin,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:423,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:427,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:430,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:431,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:432,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:433,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:434,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:436,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 440
    functionName: fu_dell_kestrel_plugin_backend_device_removed
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_get_vid
    - g_strdup_printf
    - fu_plugin_cache_remove
    - FU_IS_USB_DEVICE
    - fu_device_get_parent
    - FU_IS_DELL_KESTREL_EC
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_backend_device_removed(FuPlugin *plugin,
      FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:445,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: fu_dell_kestrel_plugin_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_init(FuDellKestrelPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:451,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:454,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:455,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:456,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:457,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:458,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:459,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:460,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:461,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:464,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: fu_dell_kestrel_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: fu_dell_kestrel_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_plugin_class_init(FuDellKestrelPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:24,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: fu_dell_kestrel_pd_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_pd_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_PD
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:30,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:31,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:32,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:32,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:33,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:33,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:39,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:40,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:41,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:42,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:45,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:46,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:47,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:48,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:49,1
    - Dst: fu_dell_kestrel_ec_get_pd_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:59,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:59,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 65
    functionName: fu_dell_kestrel_pd_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_device_add_instance_u8
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_pd_version
    - FU_DELL_KESTREL_PD
    - g_strdup
    - fu_device_set_version_raw
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_type
    - FU_DELL_KESTREL_EC
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_pd_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_PD
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:74,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:75,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:76,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 82
    functionName: fu_dell_kestrel_pd_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DELL_KESTREL_HID_DEVICE
    - FU_DELL_KESTREL_PD
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_pd_write(FuDevice *device,\n\t\t\t FuFirmware
      *firmware,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:87,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:88,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:89,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:90,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:91,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: fu_dell_kestrel_pd_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_pd_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:98,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:99,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:100,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:101,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:102,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:103,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:104,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:105,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:106,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: fu_dell_kestrel_pd_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_pd_init(FuDellKestrelPd *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: fu_dell_kestrel_pd_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_pd_class_init(FuDellKestrelPdClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:125,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:127,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - proxy
    - subtype
    - instance
    argTypes:
    - FuDevice*
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: fu_dell_kestrel_pd_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelPd
    signature: "FuDellKestrelPd *\nfu_dell_kestrel_pd_new(FuDevice *proxy,\n\t\t       FuDellKestrelEcDevSubtype
      subtype,\n\t\t       FuDellKestrelEcDevInstance instance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:26,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:27,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: fu_dell_kestrel_rtshub_to_string
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_hex
    - FU_DELL_KESTREL_RTSHUB
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:35,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:35,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:37,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:38,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:39,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:40,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:42,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuDellKestrelRtsHub*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: fu_dell_kestrel_rtshub_set_clock_mode
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - g_prefix_error
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_set_clock_mode(FuDellKestrelRtsHub
      *self, gboolean enable, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:58,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:58,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:60,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:61,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:62,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:63,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:65,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:65,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelRtsHub*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: fu_dell_kestrel_rtshub_erase_spare_bank
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - g_prefix_error
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_erase_spare_bank(FuDellKestrelRtsHub
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:83,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:83,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:85,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:86,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:87,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:88,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:90,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:90,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:98,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:99,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDellKestrelRtsHub*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 116
    functionName: fu_dell_kestrel_rtshub_verify_update_fw
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_hid_device_set_report
    - fu_hid_device_get_report
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_DEVICE
    - g_set_error_literal
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rtshub_verify_update_fw(FuDellKestrelRtsHub
      *self,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:121,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:121,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:123,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:124,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:126,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:126,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:133,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:136,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelRtsHub*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: fu_dell_kestrel_rtshub_reset_device
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - g_debug
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - g_prefix_error
    - FU_DEVICE
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - fu_device_get_name
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_reset_device(FuDellKestrelRtsHub *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:147,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:147,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:151,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:153,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:154,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:155,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:156,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:157,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:160,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:160,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - self
    - addr
    - data
    - data_sz
    - error
    argTypes:
    - FuDellKestrelRtsHub*
    - guint32
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: fu_dell_kestrel_rtshub_write_flash
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - fu_struct_rtshub_hid_cmd_buf_set_data
    - g_prefix_error
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_return_val_if_fail
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rtshub_write_flash(FuDellKestrelRtsHub *self,\n\t\t\t\t
      \  guint32 addr,\n\t\t\t\t   const guint8 *data,\n\t\t\t\t   guint16 data_sz,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:180,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:183,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:186,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:187,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:188,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:189,1
    - Dst: fu_dell_kestrel_rtshub_set_clock_mode
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:192,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:196,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:200,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:201,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:202,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:203,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:205,1
    - Dst: fu_dell_kestrel_rtshub_erase_spare_bank
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:214,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:216,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:220,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:223,1
    - Dst: fu_dell_kestrel_rtshub_write_flash
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:228,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:229,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:230,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:231,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:236,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:236,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:238,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:240,1
    - Dst: fu_dell_kestrel_rtshub_verify_update_fw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:243,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:243,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:245,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:248,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:250,1
    - Dst: fu_dell_kestrel_rtshub_reset_device
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:251,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:252,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 261
    functionName: fu_dell_kestrel_rtshub_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_device_has_flag
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - g_debug
    - fu_device_get_version
    - fu_dell_kestrel_rtshub_set_clock_mode
    - fu_dell_kestrel_rtshub_verify_update_fw
    - fu_dell_kestrel_rtshub_erase_spare_bank
    - fu_progress_add_step
    - fu_dell_kestrel_rtshub_write_flash
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_device_get_parent
    - fu_chunk_get_address
    - fu_device_get_name
    - fu_device_get_pid
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_firmware_get_version
    - fu_dell_kestrel_rtshub_reset_device
    - FU_DELL_KESTREL_RTSHUB
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rtshub_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:268,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:268,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:270,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:271,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:272,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:273,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:275,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:275,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:283,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:283,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:293,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 303
    functionName: fu_dell_kestrel_rtshub_get_status
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - fu_device_set_version
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - g_strdup_printf
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - g_autoptr
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - FU_DELL_KESTREL_RTSHUB
    - fu_struct_rtshub_hid_cmd_buf_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_get_status(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:308,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:311,1
    - Dst: fu_dell_kestrel_rtshub_get_status
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:314,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:318,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 324
    functionName: fu_dell_kestrel_rtshub_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_dell_kestrel_rtshub_get_status
    - fu_device_set_update_error
    - fu_device_add_flag
    - FU_DELL_KESTREL_RTSHUB
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:330,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:333,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:334,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:339,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:344,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:346,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:349,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:355,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:359,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:364,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:364,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:365,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:368,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 371
    functionName: fu_dell_kestrel_rtshub_probe
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DELL_KESTREL_RTSHUB
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:376,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:378,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: fu_dell_kestrel_rtshub_open
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_open
    - FU_DEVICE_CLASS
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:389,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:390,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:392,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:393,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:394,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: fu_dell_kestrel_rtshub_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:401,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:402,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:403,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:404,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:405,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:405,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:406,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:407,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:408,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:409,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelRtsHub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 6
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: fu_dell_kestrel_rtshub_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_init(FuDellKestrelRtsHub *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelRtsHubClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: fu_dell_kestrel_rtshub_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_class_init(FuDellKestrelRtsHubClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:428,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - dock_type
    argTypes:
    - FuUsbDevice*
    - FuDellDockBaseType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 9
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: fu_dell_kestrel_rtshub_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelRtsHub
    signature: 'FuDellKestrelRtsHub *

      fu_dell_kestrel_rtshub_new(FuUsbDevice *device, FuDellDockBaseType dock_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:20,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: fu_dell_kestrel_wtpd_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_wtpd_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:26,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:27,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:27,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:28,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:28,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:34,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:34,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:35,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:36,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:39,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:40,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:41,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:42,1
    - Dst: fu_dell_kestrel_ec_get_wtpd_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:45,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:45,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: fu_dell_kestrel_wtpd_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_dell_kestrel_ec_get_wtpd_version
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_device_set_version_raw
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_type
    - FU_DELL_KESTREL_EC
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_wtpd_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:58,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:59,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: fu_dell_kestrel_wtpd_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_wtpd_write(FuDevice *device,\n\t\t\t   FuFirmware
      *firmware,\n\t\t\t   FuProgress *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:70,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:71,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:72,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:73,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:74,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: fu_dell_kestrel_wtpd_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_wtpd_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:81,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:82,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:83,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:84,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:85,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:86,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:87,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:88,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:89,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelWtpd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: fu_dell_kestrel_wtpd_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_wtpd_init(FuDellKestrelWtpd *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelWtpdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: fu_dell_kestrel_wtpd_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_wtpd_class_init(FuDellKestrelWtpdClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:106,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:108,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: fu_dell_kestrel_wtpd_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelWtpd
    signature: 'FuDellKestrelWtpd *

      fu_dell_kestrel_wtpd_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:36,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - delay_ms
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: fu_dell_kestrel_hid_device_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_write(FuDellKestrelHidDevice *self,\n\t\t\t\t
      GByteArray *buf,\n\t\t\t\t guint delay_ms,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:51,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:52,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:53,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:56,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:57,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_chunk_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:58,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_sub_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:63,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_dev_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:65,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_dev_identifier
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:66,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_set_fw_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:67,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:70,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:70,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - chk
    - fw_size
    - dev_type
    - dev_identifier
    argTypes:
    - FuChunk*
    - gsize
    - FuDellKestrelEcDevType
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: fu_dell_kestrel_hid_device_fwup_pkg_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_cmd
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_dev_identifier
    - fu_byte_array_append_bytes
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_chunk_sz
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_ext
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_fw_sz
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_sub_cmd
    - g_autoptr
    - g_bytes_new
    - fu_struct_dell_kestrel_hid_fw_update_pkg_new
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_dev_type
    - fu_chunk_get_bytes
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_dell_kestrel_hid_device_fwup_pkg_new(FuChunk *chk,\n\t\t\t\t\tgsize
      fw_size,\n\t\t\t\t\tFuDellKestrelEcDevType dev_type,\n\t\t\t\t\tguint8 dev_identifier)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:79,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: fu_dell_kestrel_hid_device_hid_set_report_cb
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_hid_device_hid_set_report_cb(FuDevice *self,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - outbuffer
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: fu_dell_kestrel_hid_device_hid_set_report
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_hid_set_report(FuDellKestrelHidDevice
      *self,\n\t\t\t\t\t  guint8 *outbuffer,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:104,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: fu_dell_kestrel_hid_device_get_report_cb
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_hid_device_get_report_cb(FuDevice *self, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - inbuffer
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: fu_dell_kestrel_hid_device_get_report
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_get_report(FuDellKestrelHidDevice
      *self,\n\t\t\t\t      guint8 *inbuffer,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:131,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:134,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:136,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:137,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:138,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:139,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_databytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:140,1
    - Dst: fu_dell_kestrel_hid_device_hid_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - cmd_buf
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: fu_dell_kestrel_hid_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
    - fu_dell_kestrel_hid_device_hid_set_report
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_databytes
    - fu_struct_dell_kestrel_hid_cmd_buffer_new
    - g_autoptr
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_i2c_write(FuDellKestrelHidDevice
      *self,\n\t\t\t\t     GByteArray *cmd_buf,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:155,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:156,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:159,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:160,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:161,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:162,1
    - Dst: fu_dell_kestrel_hid_device_hid_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:163,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:167,1
    - Dst: fu_dell_kestrel_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:169,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cmd
    - res
    - delayms
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuDellKestrelEcCmd
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: fu_dell_kestrel_hid_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
    - fu_dell_kestrel_hid_device_get_report
    - fu_dell_kestrel_hid_device_hid_set_report
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_struct_dell_kestrel_hid_cmd_buffer_new
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_i2c_read(FuDellKestrelHidDevice
      *self,\n\t\t\t\t    FuDellKestrelEcCmd cmd,\n\t\t\t\t    GByteArray *res,\n\t\t\t\t
      \   guint delayms,\n\t\t\t\t    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - dev_type
    argTypes:
    - FuDellKestrelEcDevType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: fu_dell_kestrel_hid_device_get_chunk_delaytime
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: guint fu_dell_kestrel_hid_device_get_chunk_delaytime(FuDellKestrelEcDevType
      dev_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:199,1
    - Dst: fu_dell_kestrel_ec_is_chunk_supported
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:200,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dev_type
    argTypes:
    - FuDellKestrelHidDevice*
    - FuDellKestrelEcDevType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: fu_dell_kestrel_hid_device_get_chunk_size
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DELL_KESTREL_EC
    - FU_DELL_KESTREL_EC
    - fu_dell_kestrel_ec_is_chunk_supported
    linkageType: ''
    returnType: gsize
    signature: "gsize fu_dell_kestrel_hid_device_get_chunk_size(FuDellKestrelHidDevice
      *self,\n\t\t\t\t\t  FuDellKestrelEcDevType dev_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:216,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:217,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:217,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:220,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:222,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:229,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:233,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:236,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:237,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:238,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:239,1
    - Dst: fu_dell_kestrel_hid_device_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:246,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:256,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:257,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:258,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:259,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:262,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:263,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:271,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:272,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:272,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:276,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:277,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:280,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 7
    argNames:
    - self
    - pages
    - progress
    - dev_type
    - chunk_idx
    - chunks_num
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuChunkArray*
    - FuProgress*
    - FuDellKestrelEcDevType
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 283
    functionName: fu_dell_kestrel_hid_device_write_firmware_pages
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_version_compare
    - fu_device_sleep
    - fu_progress_set_steps
    - g_debug
    - g_propagate_prefixed_error
    - fu_device_get_version
    - fu_dell_kestrel_hid_device_write
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_device_get_name
    - fu_progress_step_done
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_device_get_version_format
    - FU_DEVICE
    - g_byte_array_append
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_write_firmware_pages(FuDellKestrelHidDevice
      *self,\n\t\t\t\t\t\tFuChunkArray *pages,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuDellKestrelEcDevType
      dev_type,\n\t\t\t\t\t\tguint chunk_idx,\n\t\t\t\t\t\tguint chunks_num,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:292,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:292,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - resp
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuDellKestrelHidEcChunkResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 302
    functionName: fu_dell_kestrel_hid_device_verify_chunk_result
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_memread_uint8_safe
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_verify_chunk_result(FuDellKestrelHidDevice
      *self,\n\t\t\t\t\t       FuDellKestrelHidEcChunkResponse *resp,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_kestrel_hid_device_get_chunk_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:313,1
    - Dst: fu_dell_kestrel_hid_device_get_chunk_delaytime
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:315,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:316,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:319,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:324,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:326,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:327,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:328,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:328,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:329,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:329,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:330,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:334,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:340,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:341,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:341,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:349,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:351,1
    - Dst: fu_dell_kestrel_hid_device_fwup_pkg_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:356,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:359,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware_pages
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:365,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:368,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:371,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:376,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:377,1
    - Dst: fu_dell_kestrel_hid_device_verify_chunk_result
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:380,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:384,1
    - Dst: fu_dell_kestrel_hid_ec_chunk_response_to_string
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:387,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:391,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:394,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:397,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:401,1
    - Dst: fu_dell_kestrel_hid_ec_chunk_response_to_string
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 6
    argNames:
    - self
    - firmware
    - progress
    - dev_type
    - dev_identifier
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuFirmware*
    - FuProgress*
    - FuDellKestrelEcDevType
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 304
    functionDepth: 7
    functionLinenumber: 304
    functionLinenumberEnd: 410
    functionName: fu_dell_kestrel_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 3
    functionsReached:
    - fu_chunk_array_length
    - fu_dell_kestrel_hid_device_get_chunk_size
    - fu_progress_set_steps
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_device_get_version
    - fu_progress_set_id
    - fu_dell_kestrel_hid_device_fwup_pkg_new
    - fu_progress_finished
    - fu_device_get_name
    - fu_dell_kestrel_hid_device_write_firmware_pages
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_chunk_array_index
    - fu_dell_kestrel_hid_ec_chunk_response_to_string
    - fu_firmware_get_bytes
    - fu_firmware_get_version
    - g_bytes_get_size
    - FU_DEVICE
    - fu_dell_kestrel_hid_device_get_chunk_delaytime
    - fu_dell_kestrel_hid_device_verify_chunk_result
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_hid_device_write_firmware(FuDellKestrelHidDevice
      *self,\n\t\t\t\t\t  FuFirmware *firmware,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t
      \ FuDellKestrelEcDevType dev_type,\n\t\t\t\t\t  guint8 dev_identifier,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: fu_dell_kestrel_hid_device_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_hid_device_init(FuDellKestrelHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: fu_dell_kestrel_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_hid_device_class_init(FuDellKestrelHidDeviceClass
      *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:28,1
    - Dst: fu_struct_dell_kestrel_dock_info_get_header
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:31,1
    - Dst: fu_struct_dell_kestrel_dock_info_header_get_total_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:32,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:40,1
    - Dst: fu_struct_dell_kestrel_dock_info_get_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:42,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_ec_addr_map
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:44,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_addr_map_get_device_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:47,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_addr_map_get_subtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:51,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_addr_map_get_instance
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:57,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - self
    - dev_type
    - subtype
    - instance
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevType
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 63
    functionName: fu_dell_kestrel_ec_dev_entry
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_info_header_get_total_devices
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_ec_addr_map
    - g_debug
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_device_type
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_instance
    - g_steal_pointer
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_subtype
    - fu_struct_dell_kestrel_dock_info_get_devices
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_get_header
    linkageType: ''
    returnType: FuStructDellKestrelDockInfoEcQueryEntry
    signature: "FuStructDellKestrelDockInfoEcQueryEntry *\nfu_dell_kestrel_ec_dev_entry(FuDellKestrelEc
      *self,\n\t\t\t     FuDellKestrelEcDevType dev_type,\n\t\t\t     FuDellKestrelEcDevSubtype
      subtype,\n\t\t\t     FuDellKestrelEcDevInstance instance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:71,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - dev_type
    - subtype
    - instance
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevType
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: fu_dell_kestrel_ec_is_dev_present
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_ec_is_dev_present(FuDellKestrelEc *self,\n\t\t\t\t
      \ FuDellKestrelEcDevType dev_type,\n\t\t\t\t  FuDellKestrelEcDevSubtype subtype,\n\t\t\t\t
      \ FuDellKestrelEcDevInstance instance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_dell_kestrel_dock_data_get_chunk_support
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dev_type
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: fu_dell_kestrel_ec_is_chunk_supported
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_get_chunk_support
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_is_chunk_supported(FuDellKestrelEc *self,
      FuDellKestrelEcDevType dev_type)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - dev_type
    - subtype
    - instance
    argTypes:
    - FuDellKestrelEcDevType
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 141
    functionName: fu_dell_kestrel_ec_devicetype_to_str
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_dell_kestrel_ec_devicetype_to_str(FuDellKestrelEcDevType
      dev_type,\n\t\t\t\t     FuDellKestrelEcDevSubtype subtype,\n\t\t\t\t     FuDellKestrelEcDevInstance
      instance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: fu_dell_kestrel_ec_get_dock_type
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: FuDellDockBaseType
    signature: FuDellDockBaseType fu_dell_kestrel_ec_get_dock_type(FuDellKestrelEc
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: fu_dell_kestrel_ec_get_dock_sku
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FuDellKestrelDockSku
    signature: FuDellKestrelDockSku fu_dell_kestrel_ec_get_dock_sku(FuDellKestrelEc
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_kestrel_hid_device_i2c_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:161,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - cmd
    - res
    - error
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcCmd
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: fu_dell_kestrel_ec_read
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_i2c_read
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_ec_read(FuDellKestrelEc *self,\n\t\t\tFuDellKestrelEcCmd
      cmd,\n\t\t\tGByteArray *res,\n\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:175,1
    - Dst: fu_dell_kestrel_hid_device_i2c_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:177,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuDellKestrelEc*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: fu_dell_kestrel_ec_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_i2c_write
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_write(FuDellKestrelEc *self, GByteArray
      *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:188,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:190,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - new_device
    - error
    argTypes:
    - FuDellKestrelEc*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: fu_dell_kestrel_ec_create_node
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - FU_DEVICE
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_create_node(FuDellKestrelEc *self, FuDevice
      *new_device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:202,1
    - Dst: fu_dell_kestrel_package_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:204,1
    - Dst: fu_dell_kestrel_ec_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: fu_dell_kestrel_ec_probe_package
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_package_new
    - FU_DEVICE
    - fu_dell_kestrel_ec_create_node
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_probe_package(FuDellKestrelEc *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:216,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:218,1
    - Dst: fu_dell_kestrel_pd_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:222,1
    - Dst: fu_dell_kestrel_ec_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - dev_type
    - subtype
    - instance
    - error
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevType
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: fu_dell_kestrel_ec_probe_pd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_pd_new
    - FU_DEVICE
    - fu_dell_kestrel_ec_create_node
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_ec_probe_pd(FuDellKestrelEc *self,\n\t\t\t
      \   FuDellKestrelEcDevType dev_type,\n\t\t\t    FuDellKestrelEcDevSubtype subtype,\n\t\t\t
      \   FuDellKestrelEcDevInstance instance,\n\t\t\t    GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:231,1
    - Dst: fu_dell_kestrel_ec_probe_package
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:234,1
    - Dst: fu_dell_kestrel_ec_probe_pd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:238,1
    - Dst: fu_dell_kestrel_ec_probe_pd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:246,1
    - Dst: fu_dell_kestrel_ec_probe_pd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:254,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:265,1
    - Dst: fu_dell_kestrel_dpmux_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:267,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:267,1
    - Dst: fu_dell_kestrel_ec_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:268,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:275,1
    - Dst: fu_dell_kestrel_wtpd_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:277,1
    - Dst: fu_dell_kestrel_ec_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:278,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:285,1
    - Dst: fu_dell_kestrel_ilan_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:287,1
    - Dst: fu_dell_kestrel_ec_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:288,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_board_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:292,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:293,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:295,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 226
    functionDepth: 7
    functionLinenumber: 226
    functionLinenumberEnd: 299
    functionName: fu_dell_kestrel_ec_probe_subcomponents
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_wtpd_new
    - fu_dell_kestrel_ec_probe_pd
    - fu_dell_kestrel_ec_probe_package
    - fu_struct_dell_kestrel_dock_data_get_board_id
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_dell_kestrel_ec_create_node
    - fu_dell_kestrel_ilan_new
    - fu_dell_kestrel_dpmux_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_probe_subcomponents(FuDellKestrelEc *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:304,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:309,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:314,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:315,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:315,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: fu_dell_kestrel_ec_dock_type_extract
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_dell_kestrel_ec_get_dock_type
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_dock_type_extract(FuDellKestrelEc *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:332,1
    - Dst: g_byte_array_new_take
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:332,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:332,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:335,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:336,1
    - Dst: fu_dell_kestrel_ec_dock_type_extract
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: fu_dell_kestrel_ec_dock_type_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_read
    - g_prefix_error
    - g_malloc0
    - fu_dell_kestrel_ec_dock_type_extract
    - g_autoptr
    - g_byte_array_new_take
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_dock_type_cmd(FuDellKestrelEc *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:350,1
    - Dst: fu_struct_dell_kestrel_dock_info_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:350,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:353,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:354,1
    - Dst: fu_struct_dell_kestrel_dock_info_parse
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 346
    functionDepth: 6
    functionLinenumber: 346
    functionLinenumberEnd: 359
    functionName: fu_dell_kestrel_ec_dock_info_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_info_parse
    - fu_struct_dell_kestrel_dock_info_new
    - fu_dell_kestrel_ec_read
    - g_prefix_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_dock_info_cmd(FuDellKestrelEc *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_dell_kestrel_dock_data_get_marketing_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:369,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:370,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_service_tag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:373,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:375,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_module_serial
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:377,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 381
    functionName: fu_dell_kestrel_ec_dock_data_extract
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - FU_DEVICE
    - fu_struct_dell_kestrel_dock_data_get_marketing_name
    - fu_struct_dell_kestrel_dock_data_get_service_tag
    - fu_device_set_serial
    - fu_struct_dell_kestrel_dock_data_get_module_serial
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_dock_data_extract(FuDellKestrelEc *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:387,1
    - Dst: fu_struct_dell_kestrel_dock_data_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:387,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:390,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:391,1
    - Dst: fu_struct_dell_kestrel_dock_data_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:396,1
    - Dst: fu_struct_dell_kestrel_dock_data_parse
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:397,1
    - Dst: fu_dell_kestrel_ec_dock_data_extract
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: fu_dell_kestrel_ec_dock_data_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_read
    - g_prefix_error
    - fu_struct_dell_kestrel_dock_data_unref
    - fu_dell_kestrel_ec_dock_data_extract
    - fu_struct_dell_kestrel_dock_data_parse
    - g_autoptr
    - fu_struct_dell_kestrel_dock_data_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_dock_data_cmd(FuDellKestrelEc *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:408,1
    - Dst: fu_dell_kestrel_ec_dock_data_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:412,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_dock_status
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:415,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 405
    functionDepth: 7
    functionLinenumber: 405
    functionLinenumberEnd: 426
    functionName: fu_dell_kestrel_ec_is_dock_ready4update
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_dock_data_cmd
    - fu_struct_dell_kestrel_dock_data_get_dock_status
    - FU_DELL_KESTREL_EC
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_is_dock_ready4update(FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:431,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:432,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:433,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:435,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:436,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: fu_dell_kestrel_ec_is_new_ownership_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - FU_DEVICE
    - fu_device_get_version
    - fu_version_compare
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_is_new_ownership_cmd(FuDellKestrelEc *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:448,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:449,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:452,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:453,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:456,1
    - Dst: fu_dell_kestrel_ec_is_new_ownership_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:457,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:459,1
    - Dst: fu_dell_kestrel_ec_is_new_ownership_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:460,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:462,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:468,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:469,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:470,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:471,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:473,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:473,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:474,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - self
    - lock
    - error
    argTypes:
    - FuDellKestrelEc*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 444
    functionDepth: 6
    functionLinenumber: 444
    functionLinenumberEnd: 481
    functionName: fu_dell_kestrel_ec_own_dock
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 2
    functionsReached:
    - fu_struct_dell_kestrel_ec_databytes_new
    - g_debug
    - g_steal_pointer
    - fu_dell_kestrel_ec_is_new_ownership_cmd
    - g_error_matches
    - g_prefix_error
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - FU_DEVICE
    - g_strdup
    - g_autoptr
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - g_propagate_error
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_own_dock(FuDellKestrelEc *self, gboolean
      lock, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:487,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:487,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:491,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:492,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:493,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:500,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:502,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:505,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 483
    functionDepth: 6
    functionLinenumber: 483
    functionLinenumberEnd: 508
    functionName: fu_dell_kestrel_ec_run_passive_update
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_struct_dell_kestrel_ec_databytes_new
    - g_debug
    - g_prefix_error
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - FU_DEVICE
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - g_autoptr
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_run_passive_update(FuDellKestrelEc *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:514,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:517,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:525,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 542
    functionName: fu_dell_kestrel_ec_set_dock_sku
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_set_dock_sku(FuDellKestrelEc *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:550,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:552,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - subtype
    - instance
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: fu_dell_kestrel_ec_get_pd_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: "guint32 fu_dell_kestrel_ec_get_pd_version(FuDellKestrelEc *self,\n\t\t\t\t
      \ FuDellKestrelEcDevSubtype subtype,\n\t\t\t\t  FuDellKestrelEcDevInstance instance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:562,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:564,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: fu_dell_kestrel_ec_get_ilan_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_ilan_version(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:574,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:576,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: fu_dell_kestrel_ec_get_wtpd_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_wtpd_version(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:586,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:588,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: fu_dell_kestrel_ec_get_dpmux_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_dpmux_version(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:598,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:600,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 604
    functionName: fu_dell_kestrel_ec_get_rmm_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_rmm_version(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:610,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:612,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: fu_dell_kestrel_ec_get_ec_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_version_32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_ec_version(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_dell_kestrel_dock_data_get_dock_firmware_pkg_ver
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: fu_dell_kestrel_ec_get_package_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_get_dock_firmware_pkg_ver
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_kestrel_ec_get_package_version(FuDellKestrelEc *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:627,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:628,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:632,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:636,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:645,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:651,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:652,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:653,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:656,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:658,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuDellKestrelEc*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 663
    functionName: fu_dell_kestrel_ec_commit_package
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_ec_databytes_new
    - g_set_error
    - g_prefix_error
    - fu_input_stream_read_byte_array
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - fu_dump_raw
    - g_autoptr
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_commit_package(FuDellKestrelEc *self, GInputStream
      *stream, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:672,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:673,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 665
    functionDepth: 8
    functionLinenumber: 665
    functionLinenumberEnd: 679
    functionName: fu_dell_kestrel_ec_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_HID_DEVICE
    - FU_DELL_KESTREL_EC
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_ec_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:684,1
    - Dst: fu_dell_kestrel_ec_dock_data_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:687,1
    - Dst: fu_dell_kestrel_ec_dock_info_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:691,1
    - Dst: fu_dell_kestrel_ec_set_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 681
    functionDepth: 7
    functionLinenumber: 681
    functionLinenumberEnd: 699
    functionName: fu_dell_kestrel_ec_query_cb
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_dock_data_cmd
    - fu_dell_kestrel_ec_dock_info_cmd
    - fu_dell_kestrel_ec_set_dock_sku
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_query_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:704,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:707,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:707,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: fu_dell_kestrel_ec_reload
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - FU_DELL_KESTREL_EC
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_reload(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:722,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:726,1
    - Dst: fu_dell_kestrel_ec_dock_type_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:730,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:734,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:740,1
    - Dst: fu_dell_kestrel_ec_get_ec_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:745,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:746,1
    - Dst: fu_dell_kestrel_ec_probe_subcomponents
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:749,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 754
    functionName: fu_dell_kestrel_ec_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_dell_kestrel_ec_probe_subcomponents
    - g_debug
    - fu_dell_kestrel_ec_dock_type_cmd
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_dell_kestrel_ec_get_ec_version
    - fu_device_set_version_raw
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:759,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: fu_dell_kestrel_ec_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_ec_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 767
    functionName: fu_dell_kestrel_ec_open
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:772,1
    - Dst: fu_struct_dell_kestrel_dock_data_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:774,1
    - Dst: fu_struct_dell_kestrel_dock_info_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:776,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: fu_dell_kestrel_ec_finalize
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_unref
    - FU_DELL_KESTREL_EC
    - G_OBJECT_CLASS
    - fu_struct_dell_kestrel_dock_info_unref
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ec_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:783,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:784,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:785,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:786,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:787,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 789
    functionName: fu_dell_kestrel_ec_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ec_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:794,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:795,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:795,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:796,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:796,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:797,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:797,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:798,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:799,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:800,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:800,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:801,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:801,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:802,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:802,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:803,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:803,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:804,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:804,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:805,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:805,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:806,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:806,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:807,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 791
    functionDepth: 6
    functionLinenumber: 791
    functionLinenumberEnd: 808
    functionName: fu_dell_kestrel_ec_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ec_init(FuDellKestrelEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:813,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelEcClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: fu_dell_kestrel_ec_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_ec_class_init(FuDellKestrelEcClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:828,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:830,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:831,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:832,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:834,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - uod
    argTypes:
    - FuDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 824
    functionDepth: 9
    functionLinenumber: 824
    functionLinenumberEnd: 836
    functionName: fu_dell_kestrel_ec_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - fu_device_set_logical_id
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    - fu_device_add_flag
    linkageType: ''
    returnType: FuDellKestrelEc
    signature: 'FuDellKestrelEc *

      fu_dell_kestrel_ec_new(FuDevice *device, gboolean uod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:22,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_dell_kestrel_package_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_package_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:28,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:29,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:29,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:30,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:30,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:34,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:35,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:36,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:37,1
    - Dst: fu_dell_kestrel_ec_get_package_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:40,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:40,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: fu_dell_kestrel_package_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_set_version_raw
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_device_add_instance_strup
    - fu_dell_kestrel_ec_get_package_version
    - fu_dell_kestrel_ec_get_dock_sku
    - FU_DELL_KESTREL_EC
    - fu_dell_kestrel_ec_get_dock_type
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_package_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:55,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:58,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:59,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:59,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:62,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:67,1
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:72,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:72,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:73,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:74,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:75,1
    - Dst: fu_dell_kestrel_ec_commit_package
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:79,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:79,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: fu_dell_kestrel_package_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_firmware_get_stream
    - g_debug
    - fu_device_get_version_format
    - fu_device_get_version
    - fu_input_stream_read_u32
    - fu_device_set_version
    - fu_dell_kestrel_ec_commit_package
    - FU_IS_FIRMWARE
    - fu_device_get_name
    - g_autoptr
    - g_return_val_if_fail
    - fu_version_from_uint32_hex
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_package_write(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:91,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:95,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:95,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:97,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:98,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:99,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: fu_dell_kestrel_package_attach
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_device_has_flag
    - fwupd_request_set_id
    - g_autoptr
    - fwupd_request_new
    - fu_device_emit_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_package_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:108,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:109,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:110,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:111,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:112,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: fu_dell_kestrel_package_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_package_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:119,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:120,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:121,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:122,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:123,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:124,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:125,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:126,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:127,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:128,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPackage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: fu_dell_kestrel_package_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_request_flag
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_name
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_package_init(FuDellKestrelPackage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPackageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: fu_dell_kestrel_package_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_package_class_init(FuDellKestrelPackageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:146,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:148,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:149,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: fu_dell_kestrel_package_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 1
    functionsReached:
    - fu_device_set_proxy
    - fu_device_set_logical_id
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    linkageType: ''
    returnType: FuDellKestrelPackage
    signature: 'FuDellKestrelPackage *

      fu_dell_kestrel_package_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:20,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: fu_dell_kestrel_dpmux_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_dpmux_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:26,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:27,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:27,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:28,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:28,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:34,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:34,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:35,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:36,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:39,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:40,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:41,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:42,1
    - Dst: fu_dell_kestrel_ec_get_dpmux_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:45,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:45,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: fu_dell_kestrel_dpmux_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_get_dpmux_version
    - fu_device_get_proxy
    - fu_dell_kestrel_ec_get_dock_sku
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_device_set_version_raw
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_type
    - FU_DELL_KESTREL_EC
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_dpmux_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:58,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:59,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: fu_dell_kestrel_dpmux_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_dpmux_write(FuDevice *device,\n\t\t\t    FuFirmware
      *firmware,\n\t\t\t    FuProgress *progress,\n\t\t\t    FwupdInstallFlags flags,\n\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:70,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:71,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:72,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:73,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:74,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: fu_dell_kestrel_dpmux_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_dpmux_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:81,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:82,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:83,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:84,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:85,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:86,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:87,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:88,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:89,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:90,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelDpmux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: fu_dell_kestrel_dpmux_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_dpmux_init(FuDellKestrelDpmux *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelDpmuxClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: fu_dell_kestrel_dpmux_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_dpmux_class_init(FuDellKestrelDpmuxClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:107,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:109,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: fu_dell_kestrel_dpmux_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_context
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelDpmux
    signature: 'FuDellKestrelDpmux *

      fu_dell_kestrel_dpmux_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:20,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: fu_dell_kestrel_rmm_convert_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_rmm_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:26,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:26,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:31,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:33,1
    - Dst: fu_device_reload
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:38,1
    - Dst: fu_dell_kestrel_ec_get_rmm_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:41,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:41,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelRmm*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: fu_dell_kestrel_rmm_fix_version
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 1
    functionsReached:
    - fu_dell_kestrel_ec_get_rmm_version
    - fu_device_reload
    - fu_device_set_version_raw
    - FU_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - FU_IS_DELL_KESTREL_EC
    - FU_DELL_KESTREL_EC
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rmm_fix_version(FuDellKestrelRmm *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RMM
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:51,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:54,1
    - Dst: fu_dell_kestrel_rmm_fix_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:57,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: fu_dell_kestrel_rmm_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DELL_KESTREL_RMM
    - fu_dell_kestrel_rmm_fix_version
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rmm_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:72,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: fu_dell_kestrel_rmm_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_dell_kestrel_hid_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_kestrel_rmm_write(FuDevice *device,\n\t\t\t  FuFirmware
      *firmware,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:83,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:84,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:85,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:86,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:87,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: fu_dell_kestrel_rmm_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rmm_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:94,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:95,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:96,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:97,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:98,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:99,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:100,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelRmm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: fu_dell_kestrel_rmm_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rmm_init(FuDellKestrelRmm *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelRmmClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: fu_dell_kestrel_rmm_class_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rmm_class_init(FuDellKestrelRmmClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:117,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: fu_dell_kestrel_rmm_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 1
    functionsReached:
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelRmm
    signature: 'FuDellKestrelRmm *

      fu_dell_kestrel_rmm_new(FuUsbDevice *device)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:26,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:29,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:30,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:31,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:34,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:35,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:36,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:38,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:39,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:42,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:44,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:45,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:50,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:52,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:53,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:54,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:55,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: fu_acpi_facp_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_acpi_facp_new
    - g_debug
    - fu_acpi_facp_get_s2i
    - fwupd_security_attr_add_flag
    - g_build_filename
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_bytes_get_contents
    - fu_path_from_kind
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiFacpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: fu_acpi_facp_plugin_init
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_plugin_init(FuAcpiFacpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiFacpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: fu_acpi_facp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_plugin_class_init(FuAcpiFacpPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:27,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:30,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:33,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: fu_acpi_facp_new
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 1
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - g_bytes_get_data
    - g_object_new
    linkageType: ''
    returnType: FuAcpiFacp
    signature: 'FuAcpiFacp *

      fu_acpi_facp_new(GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:43,1
    - Dst: FU_IS_ACPI_FACP
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiFacp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_acpi_facp_get_s2i
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_FACP
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_facp_get_s2i(FuAcpiFacp *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiFacpClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: fu_acpi_facp_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_class_init(FuAcpiFacpClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiFacp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: fu_acpi_facp_init
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_init(FuAcpiFacp *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:19,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:21,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:22,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:23,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:27,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:28,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:30,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:31,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:32,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 33
    functionName: fu_acpi_facp_s2i_disabled_func
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_new
    - g_test_skip
    - fu_acpi_facp_get_s2i
    - g_test_build_filename
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - g_assert_false
    - fu_bytes_get_contents
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_s2i_disabled_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:41,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:43,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:44,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:45,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:48,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:49,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:50,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:51,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:53,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:54,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: fu_acpi_facp_s2i_enabled_func
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_new
    - g_test_skip
    - fu_acpi_facp_get_s2i
    - g_test_build_filename
    - g_assert_true
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_bytes_get_contents
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_s2i_enabled_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:60,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:61,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:64,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:65,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:68,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:69,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:24,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:25,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:26,1
    - Dst: strlen
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:26,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:27,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - filename
    - bytes
    - user_data
    - error
    argTypes:
    - FuArchive*
    - gchar*
    - GBytes*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: fu_aver_hid_firmware_parse_archive_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_str_has_suffix
    - fu_firmware_set_filename
    - g_strndup
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_hid_firmware_parse_archive_cb(FuArchive *self,\n\t\t\t\t
      \     const gchar *filename,\n\t\t\t\t      GBytes *bytes,\n\t\t\t\t      gpointer
      user_data,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:39,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:40,1
    - Dst: fu_archive_iterate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: fu_aver_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_iterate
    - fu_archive_new_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_hid_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \  GInputStream *stream,\n\t\t\t   FuFirmwareParseFlags flags,\n\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: fu_aver_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_firmware_init(FuAverHidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: fu_aver_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_firmware_class_init(FuAverHidFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:63,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: fu_aver_hid_firmware_new
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_aver_hid_firmware_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:31,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:31,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:38,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:43,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:43,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:53,1
    - Dst: fu_aver_hid_custom_isp_cmd_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:54,1
    - Dst: fu_struct_aver_hid_res_isp_get_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:55,1
    - Dst: fu_struct_aver_hid_res_isp_get_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuAverHidDevice*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: fu_aver_hid_device_transfer
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_debug
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_struct_aver_hid_res_isp_get_custom_isp_cmd
    - fu_aver_hid_custom_isp_cmd_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_transfer(FuAverHidDevice *self, GByteArray
      *req, GByteArray *res, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:64,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:65,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:65,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:67,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:68,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:70,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:73,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:77,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: fu_aver_hid_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_struct_aver_hid_req_isp_new
    - fu_struct_aver_hid_res_isp_status_new
    - g_autoptr
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_aver_hid_device_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_ensure_status(FuAverHidDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:88,1
    - Dst: fu_struct_aver_hid_req_device_version_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:89,1
    - Dst: fu_struct_aver_hid_res_device_version_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:90,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:92,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:94,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:95,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:98,1
    - Dst: fu_struct_aver_hid_res_device_version_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:101,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:103,1
    - Dst: fu_struct_aver_hid_res_device_version_get_ver
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:103,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 107
    functionName: fu_aver_hid_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_aver_hid_res_device_version_get_ver
    - g_debug
    - fu_struct_aver_hid_res_device_version_new
    - g_steal_pointer
    - g_error_matches
    - fu_struct_aver_hid_res_device_version_validate
    - FU_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_strsafe
    - fu_struct_aver_hid_req_device_version_new
    - fu_aver_hid_device_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_ensure_version(FuAverHidDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:112,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:115,1
    - Dst: fu_aver_hid_device_ensure_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:119,1
    - Dst: fu_aver_hid_device_ensure_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: fu_aver_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_aver_hid_device_ensure_status
    - FU_AVER_HID_DEVICE
    - fu_aver_hid_device_ensure_version
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:137,1
    - Dst: fu_aver_hid_firmware_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:137,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:138,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: fu_aver_hid_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_aver_hid_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_aver_hid_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FuFirmwareParseFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:150,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:151,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:151,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:154,1
    - Dst: fu_struct_aver_hid_req_isp_file_dnload_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:155,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:155,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:158,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:163,1
    - Dst: fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:164,1
    - Dst: fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:168,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:172,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:175,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:176,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:178,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:183,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:184,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:185,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:185,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:186,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:188,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:194,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:198,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:199,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAverHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 209
    functionName: fu_aver_hid_device_isp_file_dnload
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_chunk_array_length
    - fu_progress_set_steps
    - fu_aver_hid_device_transfer
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_struct_aver_hid_req_isp_file_dnload_new
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_res_isp_status_new
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd
    - fu_memcpy_safe
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_hid_device_isp_file_dnload(FuAverHidDevice *self,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:215,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:216,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:216,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:218,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:219,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:221,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:223,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:224,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:228,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 233
    functionName: fu_aver_hid_device_wait_for_ready_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_new
    - FU_AVER_HID_DEVICE
    - g_autoptr
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_wait_for_ready_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:241,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:242,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:242,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:244,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:245,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:249,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_file_name
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:253,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_file_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:255,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:256,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - sz
    - name
    - error
    argTypes:
    - FuAverHidDevice*
    - gsize
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 261
    functionName: fu_aver_hid_device_isp_file_start
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd
    - fu_device_has_private_flag
    - fu_struct_aver_hid_req_isp_file_start_new
    - fu_struct_aver_hid_req_isp_file_start_set_file_size
    - FU_DEVICE
    - fu_struct_aver_hid_req_isp_file_start_set_file_name
    - g_autoptr
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_hid_device_isp_file_start(FuAverHidDevice *self,\n\t\t\t\t
      \ gsize sz,\n\t\t\t\t  const gchar *name,\n\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:266,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:267,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:267,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:269,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:270,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:274,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_file_name
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:278,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_end_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:280,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_file_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:281,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:282,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - sz
    - name
    - error
    argTypes:
    - FuAverHidDevice*
    - gsize
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: fu_aver_hid_device_isp_file_end
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_end_new
    - fu_struct_aver_hid_req_isp_file_end_set_file_name
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_struct_aver_hid_req_isp_file_end_set_end_flag
    - g_autoptr
    - fu_struct_aver_hid_req_isp_file_end_set_file_size
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_isp_file_end(FuAverHidDevice *self, gsize
      sz, const gchar *name, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:293,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:294,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:294,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:296,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:297,1
    - Dst: g_info
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:300,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:301,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:301,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:303,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:307,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: fu_aver_hid_device_wait_for_untar_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_end_new
    - FU_AVER_HID_DEVICE
    - g_autoptr
    - fu_struct_aver_hid_res_isp_status_get_status
    - g_info
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_wait_for_untar_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:317,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:318,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:318,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:320,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:320,1
    - Dst: fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:321,1
    - Dst: fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:325,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:329,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: fu_aver_hid_device_isp_start
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_autoptr
    - fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_isp_start(FuAverHidDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:339,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:339,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:340,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: fu_aver_hid_device_isp_reboot
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_req_isp_new
    - g_autoptr
    - fu_aver_hid_device_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_isp_reboot(FuAverHidDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:347,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:349,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:350,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:350,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:352,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:353,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:355,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_progress
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:356,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:358,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:359,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:363,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:364,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:368,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:372,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 377
    functionName: fu_aver_hid_device_wait_for_reboot_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_aver_hid_device_transfer
    - FU_PROGRESS
    - fu_struct_aver_hid_req_isp_new
    - fu_struct_aver_hid_res_isp_status_get_progress
    - FU_AVER_HID_DEVICE
    - g_autoptr
    - fu_progress_set_percentage
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_wait_for_reboot_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:392,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:395,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:396,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:397,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:399,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:401,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:404,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:409,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:412,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:413,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:416,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:419,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:426,1
    - Dst: fu_aver_hid_device_isp_file_start
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:429,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:431,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:434,1
    - Dst: fu_aver_hid_device_isp_file_dnload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:439,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:441,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:444,1
    - Dst: fu_aver_hid_device_isp_file_end
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:447,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:451,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:455,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:458,1
    - Dst: fu_aver_hid_device_isp_start
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:461,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:463,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:466,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:470,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:474,1
    - Dst: fu_aver_hid_device_isp_reboot
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:477,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 483
    functionName: fu_aver_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_firmware_get_stream
    - fu_archive_lookup_by_fn
    - fu_progress_get_child
    - fu_firmware_get_filename
    - fu_progress_add_step
    - fu_aver_hid_device_isp_reboot
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_aver_hid_device_isp_file_end
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_aver_hid_device_isp_file_start
    - FU_AVER_HID_DEVICE
    - fu_aver_hid_device_isp_file_dnload
    - g_autoptr
    - fu_archive_new_stream
    - fu_aver_hid_device_isp_start
    - g_bytes_get_size
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_hid_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:488,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:489,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:490,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:491,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:492,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: fu_aver_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:499,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:499,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:500,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:500,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:501,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:502,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:503,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:504,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:504,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:505,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:505,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:506,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:507,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:507,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:508,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:508,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:509,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:509,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:510,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:510,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:511,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:511,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:512,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 513
    functionName: fu_aver_hid_device_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_poll_interval
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    - fu_hid_device_add_flag
    - fu_device_register_private_flag
    - fu_usb_device_set_claim_retry_count
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_device_init(FuAverHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: fu_aver_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_device_class_init(FuAverHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:23,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_aver_hid_plugin_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_plugin_init(FuAverHidPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: fu_aver_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_aver_hid_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_aver_hid_plugin_class_init(FuAverHidPluginClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:31,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:31,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:38,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:43,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:43,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:53,1
    - Dst: fu_aver_safeisp_custom_cmd_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:54,1
    - Dst: fu_struct_aver_safeisp_res_get_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:55,1
    - Dst: fu_struct_aver_safeisp_res_get_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuAverSafeispDevice*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 59
    functionName: fu_aver_safeisp_device_transfer
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_debug
    - fu_struct_aver_safeisp_res_get_custom_cmd
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_aver_safeisp_custom_cmd_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_transfer(FuAverSafeispDevice *self,\n\t\t\t\tGByteArray
      *req,\n\t\t\t\tGByteArray *res,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:65,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:66,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:66,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:67,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:68,1
    - Dst: fu_struct_aver_safeisp_res_device_version_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:70,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:73,1
    - Dst: fu_struct_aver_safeisp_res_device_version_get_ver
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:73,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverSafeispDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: fu_aver_safeisp_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_aver_safeisp_res_device_version_validate
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - FU_DEVICE
    - fu_struct_aver_safeisp_res_device_version_get_ver
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_strsafe
    - fu_aver_safeisp_device_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_safeisp_device_ensure_version(FuAverSafeispDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_SAFEISP_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:82,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:85,1
    - Dst: fu_aver_safeisp_device_ensure_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: fu_aver_safeisp_device_setup
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_aver_safeisp_device_ensure_version
    - FU_AVER_SAFEISP_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_safeisp_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:98,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:99,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:99,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:101,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:102,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:104,1
    - Dst: fu_struct_aver_safeisp_res_get_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverSafeispDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: fu_aver_safeisp_device_support
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_safeisp_res_get_custom_cmd
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_struct_aver_safeisp_res_validate
    - fu_aver_safeisp_device_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_safeisp_device_support(FuAverSafeispDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:117,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:118,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:118,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:120,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:121,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:122,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:123,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - partition
    - size
    - error
    argTypes:
    - FuAverSafeispDevice*
    - FuAverSafeIspPartition
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 6
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: fu_aver_safeisp_device_upload_prepare
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_struct_aver_safeisp_res_validate
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_set_custom_parm0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_upload_prepare(FuAverSafeispDevice
      *self,\n\t\t\t\t      FuAverSafeIspPartition partition,\n\t\t\t\t      gsize
      size,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:136,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:137,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:137,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:139,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:140,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:141,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:142,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: fu_aver_safeisp_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_struct_aver_safeisp_res_validate
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_set_custom_parm0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_erase_flash(FuAverSafeispDevice *self,\n\t\t\t\t
      \  gsize param0,\n\t\t\t\t   gsize param1,\n\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:157,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:158,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:158,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:161,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:162,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:162,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:165,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:171,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:179,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:187,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:187,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:188,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:188,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:190,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:193,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:194,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:196,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:201,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:202,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:203,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:203,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:204,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:204,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:206,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:208,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - self
    - chunks
    - progress
    - partition
    - error
    argTypes:
    - FuAverSafeispDevice*
    - FuChunkArray*
    - FuProgress*
    - FuAverSafeIspPartition
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 217
    functionName: fu_aver_safeisp_device_upload
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_progress_set_steps
    - g_set_error
    - fu_struct_aver_safeisp_res_new
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - fu_aver_safeisp_device_transfer
    - fu_chunk_get_data_sz
    - fu_memcpy_safe
    - fu_struct_aver_safeisp_req_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_upload(FuAverSafeispDevice *self,\n\t\t\t
      \     FuChunkArray *chunks,\n\t\t\t      FuProgress *progress,\n\t\t\t      FuAverSafeIspPartition
      partition,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:225,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:226,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:226,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:228,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:231,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:232,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:233,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:235,1
    - Dst: fu_struct_aver_safeisp_req_get_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: fu_aver_safeisp_device_upload_checksum
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_safeisp_req_get_custom_cmd
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_struct_aver_safeisp_res_validate
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_set_custom_parm0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_upload_checksum(FuAverSafeispDevice
      *self,\n\t\t\t\t       gsize param0,\n\t\t\t\t       gsize param1,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:245,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:245,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:247,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:248,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:249,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: fu_aver_safeisp_device_update
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_req_new
    - g_autoptr
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_set_custom_parm0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_safeisp_device_update(FuAverSafeispDevice *self, gsize
      param0, gsize param1, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_SAFEISP_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:273,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:276,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:277,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:278,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:279,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:280,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:281,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:282,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:285,1
    - Dst: fu_archive_new_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:290,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:293,1
    - Dst: fu_archive_lookup_by_fn
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:296,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:303,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:312,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:317,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:325,1
    - Dst: fu_aver_safeisp_device_support
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:328,1
    - Dst: fu_aver_safeisp_device_upload_prepare
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:332,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:334,1
    - Dst: fu_aver_safeisp_device_erase_flash
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:337,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:341,1
    - Dst: fu_aver_safeisp_device_upload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:345,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:347,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:351,1
    - Dst: fu_aver_safeisp_device_upload_checksum
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:354,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:356,1
    - Dst: fu_aver_safeisp_device_upload_prepare
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:359,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:361,1
    - Dst: fu_aver_safeisp_device_erase_flash
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:364,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:368,1
    - Dst: fu_aver_safeisp_device_upload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:372,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:374,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:378,1
    - Dst: fu_aver_safeisp_device_upload_checksum
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:381,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:383,1
    - Dst: fu_aver_safeisp_device_update
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:386,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:389,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 255
    functionDepth: 7
    functionLinenumber: 255
    functionLinenumberEnd: 393
    functionName: fu_aver_safeisp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_aver_safeisp_device_upload_checksum
    - fu_aver_safeisp_device_upload_prepare
    - fu_aver_safeisp_device_update
    - fu_archive_lookup_by_fn
    - g_set_error
    - fu_aver_safeisp_device_erase_flash
    - fu_progress_get_child
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - FU_AVER_SAFEISP_DEVICE
    - fu_aver_safeisp_device_support
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_autoptr
    - fu_archive_new_stream
    - g_bytes_get_data
    - fu_sum32
    - FU_DEVICE
    - fu_aver_safeisp_device_upload
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_aver_safeisp_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:399,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: fu_aver_safeisp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_aver_safeisp_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:409,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:410,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:411,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:412,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:413,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:415,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:416,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:417,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:418,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:418,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:419,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverSafeispDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 420
    functionName: fu_aver_safeisp_device_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - FU_HID_DEVICE
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_hid_device_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_aver_safeisp_device_init(FuAverSafeispDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverSafeispDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: fu_aver_safeisp_device_class_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_aver_safeisp_device_class_init(FuAverSafeispDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:25,1
    - Dst: fu_heci_device_read_file
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:28,1
    - Dst: FU_HECI_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:28,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:33,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:34,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:35,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:36,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuIntelMkhiDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: fu_intel_mkhi_device_add_checksum_for_filename
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_str_has_prefix
    - FU_HECI_DEVICE
    - fu_byte_array_to_string
    - fu_heci_device_read_file
    - FU_DEVICE
    - g_autoptr
    - fu_device_add_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_mkhi_device_add_checksum_for_filename(FuIntelMkhiDevice
      *self,\n\t\t\t\t\t       const gchar *filename,\n\t\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_MKHI_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:52,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:55,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:55,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:56,1
    - Dst: fu_intel_mkhi_device_add_checksum_for_filename
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:62,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: fu_intel_mkhi_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_MKHI_DEVICE
    - g_prefix_error
    - fu_intel_mkhi_device_add_checksum_for_filename
    - FU_MEI_DEVICE
    - g_set_error_literal
    - fu_device_get_checksums
    - fu_mei_device_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_mkhi_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:81,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_intel_mkhi_device_version_notify_cb
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_device_version_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:88,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:89,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:90,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:91,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:92,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:93,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:94,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:95,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:96,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:96,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMkhiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 100
    functionName: fu_intel_mkhi_device_init
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_logical_id
    - G_CALLBACK
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - FWUPD_DEVICE
    - g_signal_connect
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_device_init(FuIntelMkhiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMkhiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: fu_intel_mkhi_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_device_class_init(FuIntelMkhiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMkhiPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_intel_mkhi_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_plugin_init(FuIntelMkhiPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_intel_mkhi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMkhiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_intel_mkhi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_mkhi_plugin_class_init(FuIntelMkhiPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciPspPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: fu_pci_psp_plugin_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_init(FuPciPspPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:31,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_pci_psp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciPspPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_pci_psp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_class_init(FuPciPspPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:31,1
    - Dst: fu_device_get_smbios_string
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:35,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:35,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:41,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:44,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:45,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:46,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:53,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPciPspDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 57
    functionName: fu_pci_psp_device_ensure_agesa_version
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - fu_device_set_summary
    - g_prefix_error
    - g_strsplit
    - fu_device_get_smbios_string
    - g_strdup_printf
    - FU_DEVICE
    - g_strv_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pci_psp_device_ensure_agesa_version(FuPciPspDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:67,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:70,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:70,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:75,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:77,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:79,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:79,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:84,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:86,1
    - Dst: fu_pci_psp_device_ensure_agesa_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:88,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: fu_pci_psp_device_probe
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_pci_psp_device_ensure_agesa_version
    - fu_device_set_version_bootloader
    - FU_UDEV_DEVICE
    - g_autoptr
    - FU_PCI_PSP_DEVICE
    - g_info
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pci_psp_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:102,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:106,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:107,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:108,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - path
    - file
    - out
    - error
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: fu_pci_psp_device_get_attr
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - fwupd_security_attr_add_flag
    - g_build_filename
    - g_prefix_error
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pci_psp_device_get_attr(FwupdSecurityAttr *attr,\n\t\t\t
      \  const gchar *path,\n\t\t\t   const gchar *file,\n\t\t\t   gboolean *out,\n\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:121,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:128,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: fu_pci_psp_device_set_valid_data
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - FU_PCI_PSP_DEVICE
    - fwupd_security_attr_add_flag
    - g_autoptr
    - fu_security_attrs_get_by_appstream_id
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_set_valid_data(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:140,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:142,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:144,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:145,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:147,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - attrs
    - appstream_id
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: fu_pci_psp_device_get_security_attr
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_remove_flag
    - g_debug
    - g_steal_pointer
    - fwupd_security_attr_has_flag
    - fu_security_attrs_append
    - g_autoptr
    - fu_security_attrs_get_by_appstream_id
    - fu_device_security_attr_new
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: "FwupdSecurityAttr *\nfu_pci_psp_device_get_security_attr(FuDevice
      *device,\n\t\t\t\t    FuSecurityAttrs *attrs,\n\t\t\t\t    const gchar *appstream_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:159,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:162,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:166,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:169,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:171,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:172,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:173,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:177,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:180,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:183,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:184,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:188,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 190
    functionName: fu_pci_psp_device_add_security_attrs_tsme
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fwupd_security_attr_add_obsolete
    - fu_pci_psp_device_get_security_attr
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_tsme(FuDevice *device,\n\t\t\t\t\t
      \ const gchar *path,\n\t\t\t\t\t  FuSecurityAttrs *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:198,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:201,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:204,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:205,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:208,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:210,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:211,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:212,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:216,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:219,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:220,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:221,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 227
    functionName: fu_pci_psp_device_add_security_attrs_fused_part
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_fused_part(FuDevice *device,\n\t\t\t\t\t\tconst
      gchar *path,\n\t\t\t\t\t\tFuSecurityAttrs *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:235,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:238,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:241,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:242,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:245,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:247,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:248,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:249,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:256,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:257,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:258,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 264
    functionName: fu_pci_psp_device_add_security_attrs_debug_locked_part
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_debug_locked_part(FuDevice
      *device,\n\t\t\t\t\t\t       const gchar *path,\n\t\t\t\t\t\t       FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:272,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:275,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:279,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:282,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:284,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:285,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:286,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:290,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:293,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:294,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:295,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:296,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 301
    functionName: fu_pci_psp_device_add_security_attrs_rollback_protection
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rollback_protection(FuDevice
      *device,\n\t\t\t\t\t\t\t const gchar *path,\n\t\t\t\t\t\t\t FuSecurityAttrs
      *attrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:309,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:313,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:316,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:317,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:320,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:322,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:323,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:324,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:328,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:331,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:332,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:333,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 339
    functionName: fu_pci_psp_device_add_security_attrs_rom_armor
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rom_armor(FuDevice *device,\n\t\t\t\t\t
      \      const gchar *path,\n\t\t\t\t\t       FuSecurityAttrs *attrs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:347,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:352,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:355,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:356,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:360,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:362,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:363,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:364,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:368,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:371,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:372,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:376,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:381,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:386,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:387,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - device
    - path
    - attrs
    argTypes:
    - FuDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 393
    functionName: fu_pci_psp_device_add_security_attrs_rpmc
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_has_flag
    - fu_pci_psp_device_get_attr
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_set_result
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rpmc(FuDevice *device,\n\t\t\t\t\t
      \ const gchar *path,\n\t\t\t\t\t  FuSecurityAttrs *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:398,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:402,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:402,1
    - Dst: fu_pci_psp_device_add_security_attrs_tsme
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:409,1
    - Dst: fu_pci_psp_device_add_security_attrs_fused_part
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:410,1
    - Dst: fu_pci_psp_device_add_security_attrs_debug_locked_part
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:411,1
    - Dst: fu_pci_psp_device_add_security_attrs_rollback_protection
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:412,1
    - Dst: fu_pci_psp_device_add_security_attrs_rpmc
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:413,1
    - Dst: fu_pci_psp_device_add_security_attrs_rom_armor
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: fu_pci_psp_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_pci_psp_device_add_security_attrs_rollback_protection
    - fu_pci_psp_device_add_security_attrs_rpmc
    - fu_pci_psp_device_add_security_attrs_rom_armor
    - fu_pci_psp_device_add_security_attrs_tsme
    - fu_pci_psp_device_add_security_attrs_fused_part
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - FU_PCI_PSP_DEVICE
    - fu_pci_psp_device_add_security_attrs_debug_locked_part
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:420,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:421,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:422,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:423,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:424,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:425,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciPspDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 6
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: fu_pci_psp_device_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_physical_id
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_init(FuPciPspDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciPspDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: fu_pci_psp_device_class_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_class_init(FuPciPspDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:53,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:54,1
    - Dst: fu_logitech_bulkcontroller_device_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:57,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:58,1
    - Dst: fu_logitech_bulkcontroller_update_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:62,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:64,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: fu_logitech_bulkcontroller_device_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_state_to_string
    - fu_logitech_bulkcontroller_update_state_to_string
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_to_string(FuDevice *device,
      guint idt, GString *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:76,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:78,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:82,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:83,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:84,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:86,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:87,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:88,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:92,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:95,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:98,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:102,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:103,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:108,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:111,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:114,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:119,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:119,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:120,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 72
    functionDepth: 8
    functionLinenumber: 72
    functionLinenumberEnd: 122
    functionName: fu_logitech_bulkcontroller_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_interface_get_subclass
    - fu_usb_device_add_interface
    - fu_usb_interface_get_protocol
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - fu_usb_interface_get_endpoints
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_address
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_probe(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:133,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_logitech_bulkcontroller_device_response_new
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_byte_array_new
    linkageType: ''
    returnType: FuLogitechBulkcontrollerResponse
    signature: 'FuLogitechBulkcontrollerResponse *

      fu_logitech_bulkcontroller_device_response_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:142,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - response
    argTypes:
    - FuLogitechBulkcontrollerResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_logitech_bulkcontroller_device_response_free
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_response_free(FuLogitechBulkcontrollerResponse
      *response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:155,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:156,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:163,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_sequence_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:164,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:166,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:168,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:170,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:171,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:173,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - cmd
    - buf
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 187
    functionName: fu_logitech_bulkcontroller_device_sync_send_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_bulkcontroller_send_sync_req_set_sequence_id
    - g_debug
    - fu_struct_logitech_bulkcontroller_send_sync_req_set_cmd
    - g_prefix_error
    - fu_struct_logitech_bulkcontroller_send_sync_req_to_string
    - fu_usb_device_bulk_transfer
    - g_autoptr
    - fu_struct_logitech_bulkcontroller_send_sync_req_new
    - FU_USB_DEVICE
    - fu_struct_logitech_bulkcontroller_send_sync_req_set_payload_length
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_send_cmd(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tFuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\tGByteArray
      *buf,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:194,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:194,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:195,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:200,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - cmd
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: fu_logitech_bulkcontroller_device_sync_send_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_cmd_to_string
    - g_prefix_error
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - g_autoptr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_send_ack(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tFuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:215,1
    - Dst: fu_logitech_bulkcontroller_device_response_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:216,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:218,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:218,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:226,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:229,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:229,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_parse
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:231,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:237,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_sequence_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:238,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:239,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:241,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:245,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 252
    functionName: fu_logitech_bulkcontroller_device_sync_wait_any
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_bulkcontroller_send_sync_res_parse
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_logitech_bulkcontroller_send_sync_res_get_payload_length
    - g_malloc0
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - MIN
    - fu_struct_logitech_bulkcontroller_send_sync_res_get_sequence_id
    - FU_USB_DEVICE
    - g_autoptr
    - fu_logitech_bulkcontroller_device_response_new
    - fu_dump_raw
    - g_byte_array_append
    - fu_struct_logitech_bulkcontroller_send_sync_res_get_cmd
    linkageType: ''
    returnType: FuLogitechBulkcontrollerResponse
    signature: "FuLogitechBulkcontrollerResponse *\nfu_logitech_bulkcontroller_device_sync_wait_any(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:260,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_any
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:262,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:266,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:270,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:271,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:277,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - cmd
    - sequence_id
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 288
    functionName: fu_logitech_bulkcontroller_device_sync_wait_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_bulkcontroller_cmd_to_string
    - fu_logitech_bulkcontroller_device_sync_wait_any
    - g_steal_pointer
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_sync_wait_cmd(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tFuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\tguint32 sequence_id,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:295,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_wait_cmd_retry_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - cmd
    - sequence_id
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_sync_wait_cmd_retry(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\t      FuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\t      guint32
      sequence_id,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:342,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:345,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:346,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:352,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:355,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:356,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:359,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:363,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - cmd
    - error
    argTypes:
    - GByteArray*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 370
    functionName: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_logitech_bulkcontroller_cmd_to_string
    - g_prefix_error
    - fu_memcpy_safe
    - fu_dump_raw
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_check_ack_cmd(GByteArray
      *buf,\n\t\t\t\t\t\t     FuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\t     GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:379,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:381,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 372
    functionDepth: 5
    functionLinenumber: 372
    functionLinenumberEnd: 392
    functionName: fu_logitech_bulkcontroller_device_sync_wait_ack_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_wait_ack_cb(FuDevice
      *device,\n\t\t\t\t\t\t   gpointer user_data,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cmd
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: fu_logitech_bulkcontroller_device_sync_wait_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_wait_ack(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tFuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:417,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - response
    - cmd
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerResponse*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: fu_logitech_bulkcontroller_device_sync_check_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_sync_check_ack(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\t FuLogitechBulkcontrollerResponse *response,\n\t\t\t\t\t\t
      FuLogitechBulkcontrollerCmd cmd,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:435,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:438,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:443,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:452,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:457,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:468,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_any
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:469,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:471,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:476,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:482,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:487,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:490,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:493,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:499,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:504,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:508,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:513,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:519,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:524,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:528,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:533,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 428
    functionDepth: 5
    functionLinenumber: 428
    functionLinenumberEnd: 534
    functionName: fu_logitech_bulkcontroller_device_sync_write
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_sync_send_ack
    - fu_logitech_bulkcontroller_device_sync_wait_ack
    - fu_logitech_bulkcontroller_device_sync_wait_any
    - g_steal_pointer
    - fu_logitech_bulkcontroller_device_sync_check_ack
    - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    - g_prefix_error
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - g_set_error_literal
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_sync_write(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t     GByteArray *req,\n\t\t\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:546,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:547,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_set_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:549,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_set_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:551,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:553,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:554,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:557,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:557,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:558,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:558,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:566,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:567,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:572,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:572,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:580,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:583,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:583,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:585,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:587,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:591,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:592,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:595,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:596,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:601,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:602,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - guint32
    - GBytes*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 607
    functionName: fu_logitech_bulkcontroller_device_upd_send_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_bulkcontroller_update_res_get_cmd
    - g_set_error
    - fu_struct_logitech_bulkcontroller_update_req_new
    - fu_byte_array_append_bytes
    - fu_logitech_bulkcontroller_cmd_to_string
    - fu_struct_logitech_bulkcontroller_update_req_set_cmd
    - g_prefix_error
    - g_bytes_get_size
    - fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
    - fu_struct_logitech_bulkcontroller_update_req_set_payload_length
    - g_malloc0
    - fu_usb_device_bulk_transfer
    - MIN
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_upd_send_cmd(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t       guint32 cmd,\n\t\t\t\t\t       GBytes *buf,\n\t\t\t\t\t
      \      guint timeout,\n\t\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - update_state
    argTypes:
    - FuLogitechBulkcontrollerUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 622
    functionName: fu_logitech_bulkcontroller_device_update_state_to_status
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FwupdStatus
    signature: "FwupdStatus fu_logitech_bulkcontroller_device_update_state_to_status(\n
      \   FuLogitechBulkcontrollerUpdateState update_state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:630,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:630,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:631,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:644,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:645,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:646,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:654,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:654,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:658,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:660,1
    - Dst: fu_logitech_bulkcontroller_device_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:664,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:669,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:671,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:672,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:672,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:673,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:674,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:675,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:681,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:682,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:683,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:684,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:684,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:685,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:686,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:686,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:687,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:688,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:688,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:689,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:691,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:692,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - self
    - json_device
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 698
    functionName: fu_logitech_bulkcontroller_device_ensure_child
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_object_new
    - fu_device_set_vendor
    - g_set_error
    - fu_logitech_bulkcontroller_device_state_to_string
    - g_debug
    - fu_device_set_version
    - fu_device_get_logical_id
    - fu_device_add_private_flag
    - g_ptr_array_index
    - fu_device_add_instance_strup
    - json_object_get_string_member
    - fu_device_get_children
    - fu_device_set_logical_id
    - g_autoptr
    - fu_device_set_serial
    - json_object_get_int_member
    - G_N_ELEMENTS
    - fu_device_build_instance_id
    - FU_DEVICE
    - json_object_has_member
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_ensure_child(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t       JsonObject *json_device,\n\t\t\t\t\t       GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:710,1
    - Dst: json_parser_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:710,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:713,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:717,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:720,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:722,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:728,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:729,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:731,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:737,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:739,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:745,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:747,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:753,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:754,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:755,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:756,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:757,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:758,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:759,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:760,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:761,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:764,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:765,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:766,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:767,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:769,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:770,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:773,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:774,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:775,1
    - Dst: fu_logitech_bulkcontroller_device_ensure_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:776,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:777,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - self
    - decoded_pkt
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 700
    functionDepth: 7
    functionLinenumber: 700
    functionLinenumberEnd: 782
    functionName: fu_logitech_bulkcontroller_device_json_parser
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - json_parser_load_from_data
    - g_prefix_error
    - json_parser_get_root
    - json_object_get_object_member
    - fu_device_set_version
    - json_array_get_object_element
    - json_parser_new
    - json_object_get_array_member
    - json_object_get_string_member
    - fu_logitech_bulkcontroller_device_ensure_child
    - g_autoptr
    - json_node_get_object
    - json_object_get_int_member
    - g_warning
    - fu_device_add_instance_id_full
    - g_set_error_literal
    - FU_DEVICE
    - json_object_has_member
    - json_array_get_length
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_json_parser(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t      GByteArray *decoded_pkt,\n\t\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:791,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_decode_message
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:793,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:798,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:801,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:802,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:807,1
    - Dst: fu_logitech_bulkcontroller_device_json_parser
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:813,1
    - Dst: g_string_assign
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 784
    functionDepth: 8
    functionLinenumber: 784
    functionLinenumberEnd: 819
    functionName: fu_logitech_bulkcontroller_device_parse_info
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_json_parser
    - g_debug
    - g_prefix_error
    - g_string_assign
    - g_set_error_literal
    - g_autoptr
    - fu_strsafe
    - fu_logitech_bulkcontroller_proto_manager_decode_message
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_parse_info(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t     GByteArray *buf,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:826,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:827,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:838,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:839,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:841,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:846,1
    - Dst: fu_logitech_bulkcontroller_device_parse_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 821
    functionDepth: 9
    functionLinenumber: 821
    functionLinenumberEnd: 855
    functionName: fu_logitech_bulkcontroller_device_ensure_info_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_write
    - fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
    - g_autoptr
    - fu_logitech_bulkcontroller_device_parse_info
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_ensure_info_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:862,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - send_req
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: fu_logitech_bulkcontroller_device_ensure_info
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_ensure_info(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t      gboolean send_req,\n\t\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:874,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 869
    functionDepth: 4
    functionLinenumber: 869
    functionLinenumberEnd: 880
    functionName: fu_logitech_bulkcontroller_device_upd_send_init_cmd_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_upd_send_init_cmd_cb(FuDevice
      *device,\n\t\t\t\t\t\t       gpointer user_data,\n\t\t\t\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:888,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:890,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:898,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:899,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:899,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:900,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:901,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:902,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:905,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:908,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:909,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:915,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 921
    functionName: fu_logitech_bulkcontroller_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    - g_prefix_error
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_bytes
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_write_fw(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t   GInputStream *stream,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:926,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:927,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:928,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:929,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:932,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:938,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:939,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:941,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:943,1
    - Dst: fu_logitech_bulkcontroller_device_parse_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:947,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:950,1
    - Dst: fu_logitech_bulkcontroller_update_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:951,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:953,1
    - Dst: fu_logitech_bulkcontroller_device_update_state_to_status
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:955,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:964,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:965,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 923
    functionDepth: 9
    functionLinenumber: 923
    functionLinenumberEnd: 970
    functionName: fu_logitech_bulkcontroller_device_verify_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_debug
    - fu_logitech_bulkcontroller_update_state_to_string
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - FU_PROGRESS
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_write
    - fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
    - fu_logitech_bulkcontroller_device_update_state_to_status
    - g_set_error_literal
    - g_autoptr
    - fu_progress_get_percentage
    - fu_progress_set_percentage
    - fu_logitech_bulkcontroller_device_parse_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_verify_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:979,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:983,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:984,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:984,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:985,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:985,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:986,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:988,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:991,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:992,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:993,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:994,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:995,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:996,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:997,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1000,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1005,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1006,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1009,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1010,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1013,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1018,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1024,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1026,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1027,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1028,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1034,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1037,1
    - Dst: fu_logitech_bulkcontroller_device_write_fw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1040,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1042,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1044,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1047,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1051,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1052,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1053,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1056,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1056,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1057,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1058,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1064,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1067,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1070,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1075,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1078,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1091,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1095,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1099,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1105,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1112,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1113,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1117,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 73
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 1122
    functionName: fu_logitech_bulkcontroller_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_from_string
    - fu_device_retry
    - fu_firmware_get_stream
    - fu_device_retry_full
    - strlen
    - fu_device_remove_private_flag
    - g_prefix_error
    - fu_device_set_remove_delay
    - fu_byte_array_append_uint32
    - fu_firmware_get_checksum
    - fu_progress_get_child
    - g_debug
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    - fu_progress_add_step
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_device_add_flag
    - fu_progress_set_id
    - fu_progress_step_done
    - g_autoptr
    - g_bytes_new
    - g_base64_encode
    - g_byte_array_new
    - fu_byte_array_append_uint64
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_logitech_bulkcontroller_device_write_fw
    - fu_input_stream_size
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_write_firmware(FuDevice
      *device,\n\t\t\t\t\t\t FuFirmware *firmware,\n\t\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t\t
      FwupdInstallFlags flags,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1132,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_generate_set_device_time_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1136,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1140,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_decode_message
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1148,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1151,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1124
    functionDepth: 6
    functionLinenumber: 1124
    functionLinenumberEnd: 1166
    functionName: fu_logitech_bulkcontroller_device_set_time_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_write
    - g_set_error_literal
    - g_autoptr
    - fu_logitech_bulkcontroller_proto_manager_generate_set_device_time_request
    - fu_strsafe
    - fu_logitech_bulkcontroller_proto_manager_decode_message
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_set_time_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1176
    functionName: fu_logitech_bulkcontroller_device_set_time
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_set_time(FuLogitechBulkcontrollerDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1187,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_generate_transition_to_device_mode_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1189,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1191,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_decode_message
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1200,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1203,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1178
    functionDepth: 6
    functionLinenumber: 1178
    functionLinenumberEnd: 1214
    functionName: fu_logitech_bulkcontroller_device_transition_to_device_mode_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - fu_logitech_bulkcontroller_proto_manager_generate_transition_to_device_mode_request
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_write
    - g_set_error_literal
    - g_autoptr
    - fu_logitech_bulkcontroller_proto_manager_decode_message
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_transition_to_device_mode_cb(FuDevice
      *device,\n\t\t\t\t\t\t\t       gpointer user_data,\n\t\t\t\t\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1225
    functionName: fu_logitech_bulkcontroller_device_transition_to_device_mode
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_transition_to_device_mode(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1232,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1235,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1237,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1237,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1245,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1246,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1249,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1227
    functionDepth: 3
    functionLinenumber: 1227
    functionLinenumberEnd: 1256
    functionName: fu_logitech_bulkcontroller_device_clear_queue_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_malloc0
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_usb_device_bulk_transfer
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_clear_queue_cb(FuDevice
      *device,\n\t\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1261,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1267
    functionName: fu_logitech_bulkcontroller_device_clear_queue
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_clear_queue(FuLogitechBulkcontrollerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1274,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1276,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1281,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1284,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1269
    functionDepth: 4
    functionLinenumber: 1269
    functionLinenumberEnd: 1297
    functionName: fu_logitech_bulkcontroller_device_check_buffer_size
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    - g_prefix_error
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_check_buffer_size(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1302,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1305,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1307,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1308,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1315,1
    - Dst: fu_logitech_bulkcontroller_device_clear_queue
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1320,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1321,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1326,1
    - Dst: fu_logitech_bulkcontroller_device_check_buffer_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1328,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1329,1
    - Dst: fu_logitech_bulkcontroller_device_transition_to_device_mode
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1335,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1336,1
    - Dst: fu_logitech_bulkcontroller_device_set_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1341,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1342,1
    - Dst: fu_logitech_bulkcontroller_device_ensure_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1347,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1299
    functionDepth: 5
    functionLinenumber: 1299
    functionLinenumberEnd: 1354
    functionName: fu_logitech_bulkcontroller_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_remove_private_flag
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_logitech_bulkcontroller_device_check_buffer_size
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_device_has_private_flag
    - fu_logitech_bulkcontroller_device_ensure_info
    - fu_logitech_bulkcontroller_device_set_time
    - fu_logitech_bulkcontroller_device_clear_queue
    - fu_logitech_bulkcontroller_device_transition_to_device_mode
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_setup(FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1359,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1360,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1361,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1362,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1363,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1356
    functionDepth: 3
    functionLinenumber: 1356
    functionLinenumberEnd: 1365
    functionName: fu_logitech_bulkcontroller_device_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_set_progress(FuDevice *self,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1371,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1372,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1373,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1374,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1375,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1376,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1377,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1377,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1378,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1379,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1381,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1383,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1387,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1367
    functionDepth: 6
    functionLinenumber: 1367
    functionLinenumberEnd: 1392
    functionName: fu_logitech_bulkcontroller_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - g_string_new
    - fu_device_add_private_flag
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - FU_USB_DEVICE
    - fu_device_register_private_flag
    - fu_usb_device_set_claim_retry_count
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_init(FuLogitechBulkcontrollerDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1397,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1398,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1400
    functionName: fu_logitech_bulkcontroller_device_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - G_OBJECT_CLASS
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1405,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1413
    functionName: fu_logitech_bulkcontroller_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_device_class_init(FuLogitechBulkcontrollerDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_PLUGIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:23,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_logitech_bulkcontroller_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    - fwupd_codec_string_append_bool
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_plugin_to_string(FuPlugin *plugin,
      guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: fu_logitech_bulkcontroller_plugin_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_plugin_init(FuLogitechBulkcontrollerPlugin
      *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_PLUGIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:41,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:43,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: fu_logitech_bulkcontroller_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    - fu_device_write_firmware
    - g_autoptr
    - fu_device_locker_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_plugin_write_firmware(FuPlugin
      *plugin,\n\t\t\t\t\t\t FuDevice *device,\n\t\t\t\t\t\t FuFirmware *firmware,\n\t\t\t\t\t\t
      FuProgress *progress,\n\t\t\t\t\t\t FwupdInstallFlags flags,\n\t\t\t\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_PLUGIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:55,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: fu_logitech_bulkcontroller_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    - fu_device_add_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_plugin_device_created(FuPlugin
      *plugin, FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:67,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:68,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fu_logitech_bulkcontroller_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: fu_logitech_bulkcontroller_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_plugin_class_init(FuLogitechBulkcontrollerPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:24,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:29,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: fu_logitech_bulkcontroller_child_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_device_add_private_flag
    - fu_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_child_write_firmware(FuDevice
      *device,\n\t\t\t\t\t\tFuFirmware *firmware,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFwupdInstallFlags
      flags,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:37,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:38,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:39,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:40,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:41,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: fu_logitech_bulkcontroller_child_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_child_set_progress(FuDevice *self,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:48,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:49,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:50,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:51,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:52,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:53,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerChild*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: fu_logitech_bulkcontroller_child_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_child_init(FuLogitechBulkcontrollerChild
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerChildClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fu_logitech_bulkcontroller_child_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_bulkcontroller_child_class_init(FuLogitechBulkcontrollerChildClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:21,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:24,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:25,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:27,1
    - Dst: g_get_real_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:31,1
    - Dst: g_uuid_string_random
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:32,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - header_msg
    argTypes:
    - FuDevice*
    - Logi__Device__Proto__Header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: fu_logitech_bulkcontroller_proto_manager_set_header
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 0
    functionsReached:
    - g_get_real_time
    - g_uuid_string_random
    - g_strdup_printf
    - g_return_if_fail
    - fu_device_has_flag
    - g_strdup
    linkageType: ''
    returnType: void
    signature: "void fu_logitech_bulkcontroller_proto_manager_set_header(FuDevice
      *device,\n\t\t\t\t\t\t    Logi__Device__Proto__Header *header_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:39,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_set_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:48,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:53,1
    - Dst: logi__device__proto__usb_msg__get_packed_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:53,1
    - Dst: logi__device__proto__usb_msg__pack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:54,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:55,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 2
    functionsReached:
    - logi__device__proto__usb_msg__get_packed_size
    - g_free
    - fu_logitech_bulkcontroller_proto_manager_set_header
    - logi__device__proto__usb_msg__pack
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request(FuDevice
      *device)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:64,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_set_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:74,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:79,1
    - Dst: logi__device__proto__usb_msg__get_packed_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:79,1
    - Dst: logi__device__proto__usb_msg__pack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:80,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:81,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 84
    functionName: fu_logitech_bulkcontroller_proto_manager_generate_transition_to_device_mode_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 1
    functionsReached:
    - logi__device__proto__usb_msg__get_packed_size
    - g_free
    - fu_logitech_bulkcontroller_proto_manager_set_header
    - logi__device__proto__usb_msg__pack
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_proto_manager_generate_transition_to_device_mode_request(\n
      \   FuDevice *device)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:91,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:91,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:99,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:100,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:101,1
    - Dst: fu_common_get_olson_timezone_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:103,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:112,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:113,1
    - Dst: g_get_real_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:116,1
    - Dst: fu_logitech_bulkcontroller_proto_manager_set_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:119,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:124,1
    - Dst: logi__device__proto__usb_msg__get_packed_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:124,1
    - Dst: logi__device__proto__usb_msg__pack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:125,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:126,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:127,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 129
    functionName: fu_logitech_bulkcontroller_proto_manager_generate_set_device_time_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 1
    functionsReached:
    - fu_common_get_olson_timezone_id
    - g_steal_pointer
    - g_get_real_time
    - fu_device_has_flag
    - logi__device__proto__usb_msg__get_packed_size
    - g_strdup
    - g_autoptr
    - g_free
    - fu_logitech_bulkcontroller_proto_manager_set_header
    - logi__device__proto__usb_msg__pack
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_proto_manager_generate_set_device_time_request(FuDevice
      *device,\n\t\t\t\t\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:136,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:139,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:151,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:158,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - usb_msg
    - proto_id
    - error
    argTypes:
    - Logi__Device__Proto__UsbMsg*
    - FuLogitechBulkcontrollerProtoId*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 174
    functionName: fu_logitech_bulkcontroller_usb_msg_parse_msg_response
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - strlen
    - g_steal_pointer
    - g_set_error_literal
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_usb_msg_parse_msg_response(Logi__Device__Proto__UsbMsg
      *usb_msg,\n\t\t\t\t\t\t      FuLogitechBulkcontrollerProtoId *proto_id,\n\t\t\t\t\t\t
      \     GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:181,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:184,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:193,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:193,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - usb_msg
    - proto_id
    - error
    argTypes:
    - Logi__Device__Proto__UsbMsg*
    - FuLogitechBulkcontrollerProtoId*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 209
    functionName: fu_logitech_bulkcontroller_usb_msg_parse_msg_event
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_steal_pointer
    - g_set_error_literal
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_usb_msg_parse_msg_event(Logi__Device__Proto__UsbMsg
      *usb_msg,\n\t\t\t\t\t\t   FuLogitechBulkcontrollerProtoId *proto_id,\n\t\t\t\t\t\t
      \  GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:217,1
    - Dst: logi__device__proto__usb_msg__unpack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:219,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:223,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:232,1
    - Dst: fu_logitech_bulkcontroller_usb_msg_parse_msg_response
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:237,1
    - Dst: fu_logitech_bulkcontroller_usb_msg_parse_msg_event
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:242,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:247,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:248,1
    - Dst: logi__device__proto__usb_msg__free_unpacked
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:251,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - data
    - len
    - proto_id
    - error
    argTypes:
    - guint8*
    - guint32
    - FuLogitechBulkcontrollerProtoId*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 253
    functionName: fu_logitech_bulkcontroller_proto_manager_decode_message
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
    functionUses: 3
    functionsReached:
    - logi__device__proto__usb_msg__free_unpacked
    - g_debug
    - logi__device__proto__usb_msg__unpack
    - g_steal_pointer
    - fu_logitech_bulkcontroller_usb_msg_parse_msg_event
    - g_set_error_literal
    - fu_logitech_bulkcontroller_usb_msg_parse_msg_response
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_proto_manager_decode_message(const
      guint8 *data,\n\t\t\t\t\t\t\tguint32 len,\n\t\t\t\t\t\t\tFuLogitechBulkcontrollerProtoId
      *proto_id,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:28,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:29,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: fu_uefi_esrt_plugin_check_esrt
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_path_from_kind
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esrt_plugin_check_esrt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:37,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:39,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:41,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:44,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:45,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:46,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:47,1
    - Dst: fu_uefi_esrt_plugin_check_esrt
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:49,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:50,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:52,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: fu_uefi_esrt_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_uefi_esrt_plugin_check_esrt
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_efivars_supported
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - fwupd_security_attr_set_result
    - fu_context_get_efivars
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_esrt_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:60,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiEsrtPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: fu_uefi_esrt_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_uefi_esrt_plugin_init(FuUefiEsrtPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiEsrtPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_uefi_esrt_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_esrt_plugin_class_init(FuUefiEsrtPluginClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:18,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:25,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:32,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - FuVliUsbhubI2cStatus
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 54
    functionName: fu_vli_usbhub_i2c_check_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_i2c_check_status(FuVliUsbhubI2cStatus status,
      GError **error)
  - BBCount: 41
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 82
    argCount: 1
    argNames:
    - device_kind
    argTypes:
    - FuVliDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 96
    functionName: fu_vli_common_device_kind_get_size
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_vli_common_device_kind_get_size(FuVliDeviceKind device_kind)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - device_kind
    argTypes:
    - FuVliDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: fu_vli_common_device_kind_get_offset
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_vli_common_device_kind_get_offset(FuVliDeviceKind device_kind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:43,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:45,1
    - Dst: fu_struct_vli_usbhub_hdr_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:48,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:49,1
    - Dst: fu_struct_vli_usbhub_hdr_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:51,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: fu_vli_usbhub_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fwupd_codec_string_append_bool
    - fu_struct_vli_usbhub_hdr_to_string
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: fu_vli_usbhub_device_header_crc8
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_crc8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_vli_usbhub_device_header_crc8(GByteArray *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:66,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:66,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: fu_vli_usbhub_device_vdr_unlock_813
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_vdr_unlock_813(FuVliUsbhubDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:88,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:88,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: fu_vli_usbhub_device_read_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_read_reg(FuVliUsbhubDevice *self, guint16
      addr, guint8 *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - addr
    - value
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: fu_vli_usbhub_device_write_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_write_reg(FuVliUsbhubDevice *self, guint16
      addr, guint8 value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:133,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:133,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:138,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 151
    functionName: fu_vli_usbhub_device_spi_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_spi_read_status(FuVliDevice *self, guint8
      *status, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:163,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:163,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:170,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: fu_vli_usbhub_device_spi_read_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_spi_read_data(FuVliDevice *self,\n\t\t\t\t
      \  guint32 addr,\n\t\t\t\t   guint8 *buf,\n\t\t\t\t   gsize bufsz,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:189,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:189,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:194,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:194,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: fu_vli_usbhub_device_spi_write_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_spi_write_status(FuVliDevice *self, guint8
      status, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:219,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:219,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:224,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 241
    functionName: fu_vli_usbhub_device_spi_write_enable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_spi_write_enable(FuVliDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:247,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:247,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:252,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: fu_vli_usbhub_device_spi_chip_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_spi_chip_erase(FuVliDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:276,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:276,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:283,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: fu_vli_usbhub_device_spi_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_spi_sector_erase(FuVliDevice *self, guint32
      addr, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:310,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:310,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:317,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:320,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:320,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 339
    functionName: fu_vli_usbhub_device_spi_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_memdup_safe
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - fu_device_sleep
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_spi_write_data(FuVliDevice *self,\n\t\t\t\t
      \   guint32 addr,\n\t\t\t\t    const guint8 *buf,\n\t\t\t\t    gsize bufsz,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:349,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:353,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:353,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:354,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:355,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:356,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:357,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:359,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:363,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:363,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:364,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:365,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:366,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:367,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:369,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:374,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:374,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:375,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:379,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:379,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:380,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:380,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:385,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:385,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:392,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:392,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:397,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:397,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:404,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:404,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:404,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:417,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:418,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:419,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:420,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:421,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:423,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:424,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:432,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 434
    functionName: fu_vli_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_device_read_reg
    - fwupd_request_add_flag
    - fu_device_get_id
    - fu_vli_device_get_kind
    - fu_device_emit_request
    - g_debug
    - g_propagate_prefixed_error
    - fu_usb_device_control_transfer
    - fu_vli_usbhub_device_write_reg
    - fu_device_add_flag
    - FU_VLI_DEVICE
    - FU_USB_DEVICE
    - g_info
    - fwupd_request_new
    - FU_VLI_USBHUB_DEVICE
    - fwupd_request_set_kind
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - fu_device_get_proxy_with_fallback
    - fu_device_has_private_flag
    - fwupd_request_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:444,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:447,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:451,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:454,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:458,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:461,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:465,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 471
    functionName: fu_vli_usbhub_device_disable_u1u2
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_device_read_reg
    - fu_vli_usbhub_device_write_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_disable_u1u2(FuVliUsbhubDevice *self,
      GError **error)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:484,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:486,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:487,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:490,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:491,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:492,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:495,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:496,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:497,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:500,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:501,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:502,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:505,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:507,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:510,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:511,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:512,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:515,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:516,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:517,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:520,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:521,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:522,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:525,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:528,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:528,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:535,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:535,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:540,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:540,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:545,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:545,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:550,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:550,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:555,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:555,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:560,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:560,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:565,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:565,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:569,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:577,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:577,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:580,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:580,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:584,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:584,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:586,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:586,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:588,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:588,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:590,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:590,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:593,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:593,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:595,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:603,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:603,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:605,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:605,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:607,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:607,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:609,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:609,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:611,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:611,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:613,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:613,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:615,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:615,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:618,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:618,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:620,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:620,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:622,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:622,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:625,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:625,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:627,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:627,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:629,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 134
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 638
    functionName: fu_vli_usbhub_device_guess_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_vli_usbhub_device_read_reg
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_vli_device_set_kind
    - FU_DEVICE
    - FU_VLI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_guess_kind(FuVliUsbhubDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:643,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:644,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:644,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:647,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:648,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:651,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:653,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:654,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:656,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:660,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:661,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 667
    functionName: fu_vli_usbhub_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_priority
    - fu_device_set_summary
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_usb_device_get_spec
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:672,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:673,1
    - Dst: fu_vli_usbhub_pd_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:676,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:677,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:679,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:680,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:681,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:683,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 669
    functionDepth: 5
    functionLinenumber: 669
    functionLinenumberEnd: 689
    functionName: fu_vli_usbhub_device_pd_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_child
    - g_debug
    - g_error_matches
    - fu_device_setup
    - FU_DEVICE
    - fu_vli_usbhub_pd_device_new
    - g_autoptr
    - fu_device_probe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_pd_setup(FuVliUsbhubDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:695,1
    - Dst: fu_vli_usbhub_msp430_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:698,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:699,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:701,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:702,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:703,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:705,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:709,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 711
    functionName: fu_vli_usbhub_device_msp430_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_child
    - g_debug
    - fu_device_setup
    - g_error_matches
    - fu_vli_usbhub_msp430_device_new
    - FU_DEVICE
    - fu_device_probe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_msp430_setup(FuVliUsbhubDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:716,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:717,1
    - Dst: fu_vli_usbhub_rtd21xx_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:720,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:721,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:723,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:724,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:725,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:727,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:731,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 713
    functionDepth: 5
    functionLinenumber: 713
    functionLinenumberEnd: 733
    functionName: fu_vli_usbhub_device_rtd21xx_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_child
    - g_debug
    - fu_device_setup
    - g_error_matches
    - fu_vli_usbhub_rtd21xx_device_new
    - FU_DEVICE
    - fu_device_probe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_rtd21xx_setup(FuVliUsbhubDevice *self,
      GError **error)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:738,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:739,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:742,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:746,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:749,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:750,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:750,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:755,1
    - Dst: fu_vli_usbhub_device_vdr_unlock_813
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:756,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:758,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:758,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:763,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:766,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:768,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:768,1
    - Dst: fu_vli_usbhub_device_guess_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:770,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:775,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:775,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:780,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:785,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:790,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:791,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:792,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:792,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:804,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:804,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:805,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:805,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:806,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:806,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:807,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:807,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:808,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:808,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:812,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:813,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:814,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:815,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:815,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:816,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:819,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:823,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:829,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:829,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:834,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:840,1
    - Dst: fu_vli_usbhub_device_pd_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:841,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:846,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:846,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:847,1
    - Dst: fu_vli_usbhub_device_msp430_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:848,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:851,1
    - Dst: fu_vli_usbhub_device_rtd21xx_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:852,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 858
    functionName: fu_vli_usbhub_device_ready
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_device_vdr_unlock_813
    - g_prefix_error
    - fu_vli_usbhub_device_msp430_setup
    - g_set_error
    - g_debug
    - FU_DEVICE_CLASS
    - FU_VLI_DEVICE
    - fu_device_add_flag
    - FU_USB_DEVICE
    - fu_vli_device_spi_read_block
    - FU_VLI_USBHUB_DEVICE
    - fu_vli_device_set_kind
    - fu_vli_usbhub_device_rtd21xx_setup
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - g_autoptr
    - fu_usb_device_get_spec
    - g_warning
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_vli_usbhub_device_pd_setup
    - fu_device_set_install_duration
    - fu_vli_usbhub_device_guess_kind
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_ready(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:867,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:869,1
    - Dst: fu_vli_usbhub_firmware_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:869,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:872,1
    - Dst: fu_vli_usbhub_firmware_get_device_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:874,1
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:874,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:875,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:875,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:876,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:881,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:882,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:882,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:882,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:885,1
    - Dst: fu_vli_usbhub_firmware_get_device_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:886,1
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:886,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:887,1
    - Dst: fu_vli_usbhub_firmware_get_device_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:891,1
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:891,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:892,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:897,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:897,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 899
    functionName: fu_vli_usbhub_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_set_error
    - fu_vli_usbhub_firmware_get_device_id
    - g_steal_pointer
    - fu_firmware_get_version
    - fu_firmware_parse_stream
    - FU_VLI_DEVICE
    - FU_VLI_USBHUB_FIRMWARE
    - fu_vli_device_kind_to_string
    - g_autoptr
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - fu_vli_usbhub_firmware_new
    - fu_vli_usbhub_firmware_get_device_kind
    - g_info
    - fu_vli_device_get_kind
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_vli_usbhub_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \     GInputStream *stream,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      FuFirmwareParseFlags
      flags,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:909,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:912,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:913,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:914,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:915,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:918,1
    - Dst: fu_vli_device_spi_erase_all
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:923,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:923,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:924,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:926,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:929,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:932,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:933,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:933,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:937,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 944
    functionName: fu_vli_usbhub_device_update_v1
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_vli_device_spi_erase_all
    - g_prefix_error
    - fu_progress_add_flag
    - fu_progress_add_step
    - FU_VLI_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_vli_device_spi_write
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_update_v1(FuVliUsbhubDevice *self,\n\t\t\t
      \      FuFirmware *firmware,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:954,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:957,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:958,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:959,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:960,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:964,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:964,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:965,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:968,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:968,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:972,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:975,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:975,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:979,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 986
    functionName: fu_vli_usbhub_device_update_v2_recovery
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_vli_device_spi_erase_sector
    - g_prefix_error
    - fu_progress_add_step
    - fu_progress_add_flag
    - FU_VLI_DEVICE
    - fu_progress_set_id
    - fu_vli_device_spi_write
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_update_v2_recovery(FuVliUsbhubDevice
      *self,\n\t\t\t\t\tGBytes *fw,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_vli_usbhub_hdr_get_prev_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:991,1
    - Dst: fu_struct_vli_usbhub_hdr_get_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:993,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 988
    functionDepth: 5
    functionLinenumber: 988
    functionLinenumberEnd: 996
    functionName: fu_vli_usbhub_device_hd1_is_valid
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_device_header_crc8
    - fu_struct_vli_usbhub_hdr_get_checksum
    - fu_struct_vli_usbhub_hdr_get_prev_ptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_hd1_is_valid(GByteArray *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1005,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1006,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1007,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1007,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1011,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1011,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1014,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1019,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1019,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1025,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1032,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - hdr
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1035
    functionName: fu_vli_usbhub_device_hd1_recover
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_erase_sector
    - g_prefix_error
    - fu_vli_usbhub_device_header_crc8
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write_block
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - fu_struct_vli_usbhub_hdr_set_checksum
    - g_byte_array_ref
    - g_byte_array_unref
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_hd1_recover(FuVliUsbhubDevice *self,\n\t\t\t\t
      GByteArray *hdr,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1049,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1050,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1053,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1058,1
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1060,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1063,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1063,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1066,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1069,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1069,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1075,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1078,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1082,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1089,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1090,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1090,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1095,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1100,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1101,1
    - Dst: fu_vli_usbhub_device_update_v2_recovery
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1102,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1104,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1105,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1111,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1113,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1124,1
    - Dst: fu_struct_vli_usbhub_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1125,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1128,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1130,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1138,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1141,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1142,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1143,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1144,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1147,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1147,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1150,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1153,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1156,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1156,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1160,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1162,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1165,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1168,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1169,1
    - Dst: fu_struct_vli_usbhub_hdr_set_prev_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1170,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1171,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1172,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1172,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1173,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1176,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1179,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1179,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1183,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1185,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1188,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1191,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1192,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1037
    functionDepth: 6
    functionLinenumber: 1037
    functionLinenumberEnd: 1194
    functionName: fu_vli_usbhub_device_update_v2
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_vli_usbhub_hdr_parse
    - g_prefix_error
    - fu_vli_device_spi_erase
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - g_byte_array_ref
    - fu_vli_usbhub_device_header_crc8
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - fu_vli_usbhub_device_hd1_recover
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write_block
    - fu_progress_set_id
    - fu_vli_device_spi_read_block
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    - g_info
    - fu_progress_step_done
    - fu_vli_device_spi_erase_sector
    - fu_struct_vli_usbhub_hdr_set_prev_ptr
    - g_autoptr
    - fu_vli_device_spi_write
    - g_byte_array_unref
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
    - fu_vli_usbhub_device_hd1_is_valid
    - fu_struct_vli_usbhub_hdr_set_checksum
    - fu_vli_usbhub_device_update_v2_recovery
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_update_v2(FuVliUsbhubDevice *self,\n\t\t\t
      \      FuFirmware *firmware,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1208,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1211,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1216,1
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1218,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1221,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1221,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1224,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1227,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1227,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1233,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1240,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1247,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1248,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1253,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1258,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1259,1
    - Dst: fu_vli_usbhub_device_update_v2_recovery
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1260,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1262,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1263,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1269,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1269,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1275,1
    - Dst: fu_struct_vli_usbhub_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1276,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1279,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1280,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1282,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1289,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1290,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1291,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1294,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1295,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1296,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1297,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1300,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1300,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1303,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1306,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1309,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1309,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1315,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1318,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1321,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1322,1
    - Dst: fu_struct_vli_usbhub_hdr_set_prev_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1323,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1324,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1325,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1325,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1326,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1326,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1329,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1332,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1332,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1336,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1338,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1341,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1344,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1345,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 81
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1196
    functionDepth: 6
    functionLinenumber: 1196
    functionLinenumberEnd: 1347
    functionName: fu_vli_usbhub_device_update_v3
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz_high
    - fu_struct_vli_usbhub_hdr_parse
    - g_prefix_error
    - fu_vli_device_spi_erase
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - g_byte_array_ref
    - fu_vli_usbhub_device_header_crc8
    - fu_vli_device_get_kind
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_step
    - fu_vli_usbhub_device_hd1_recover
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write_block
    - fu_progress_set_id
    - fu_vli_device_spi_read_block
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    - g_info
    - fu_progress_step_done
    - fu_vli_device_spi_erase_sector
    - fu_struct_vli_usbhub_hdr_set_prev_ptr
    - g_autoptr
    - fu_vli_device_spi_write
    - g_byte_array_unref
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr_high
    - fu_vli_usbhub_device_hd1_is_valid
    - fu_struct_vli_usbhub_hdr_set_checksum
    - fu_vli_usbhub_device_update_v2_recovery
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_update_v3(FuVliUsbhubDevice *self,\n\t\t\t
      \      FuFirmware *firmware,\n\t\t\t       FuProgress *progress,\n\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1352,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1353,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1354,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1354,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1359
    functionName: fu_vli_usbhub_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_progress_set_status
    - fu_vli_device_spi_read
    - FU_VLI_DEVICE
    - fu_device_get_firmware_size_max
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_vli_usbhub_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1368,1
    - Dst: fu_vli_usbhub_device_disable_u1u2
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1372,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1373,1
    - Dst: fu_vli_usbhub_device_update_v1
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1380,1
    - Dst: fu_vli_usbhub_device_update_v2
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1382,1
    - Dst: fu_vli_usbhub_device_update_v3
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1384,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1361
    functionDepth: 7
    functionLinenumber: 1361
    functionLinenumberEnd: 1393
    functionName: fu_vli_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_vli_usbhub_device_disable_u1u2
    - g_set_error
    - fu_vli_usbhub_device_update_v3
    - fu_vli_usbhub_device_update_v1
    - g_prefix_error
    - fu_vli_usbhub_device_update_v2
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1399,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1395
    functionDepth: 3
    functionLinenumber: 1395
    functionLinenumberEnd: 1404
    functionName: fu_vli_usbhub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_vli_usbhub_hdr_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1409,1
    - Dst: fu_struct_vli_usbhub_hdr_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1410,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1411,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1412,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1413,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1414,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1415,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1416,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1418,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1419,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1420,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1422,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1424,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1425,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1426,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1406
    functionDepth: 3
    functionLinenumber: 1406
    functionLinenumberEnd: 1430
    functionName: fu_vli_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_struct_vli_usbhub_hdr_new
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_device_init(FuVliUsbhubDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1435,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1436,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1437,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1439
    functionName: fu_vli_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - G_OBJECT_CLASS
    - g_byte_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1444,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1445,1
    - Dst: FU_VLI_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1463
    functionName: fu_vli_usbhub_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_CLASS
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_device_class_init(FuVliUsbhubDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-self-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/vli/fu-self-test.c:32,1
    - Dst: fu_vli_pd_common_guess_device_kind
      Src: /src/fwupd/plugins/vli/fu-self-test.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: fu_test_vli_pd_common_func
    functionSourceFile: /src/fwupd/plugins/vli/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_vli_pd_common_guess_device_kind
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_test_vli_pd_common_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/vli/fu-self-test.c:41,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/vli/fu-self-test.c:42,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/vli/fu-self-test.c:43,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/vli/fu-self-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/fwupd/plugins/vli/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_log_set_fatal_mask
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:24,1
    - Dst: FU_IS_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_vli_usbhub_firmware_get_device_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_VLI_USBHUB_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVliDeviceKind
    signature: FuVliDeviceKind fu_vli_usbhub_firmware_get_device_kind(FuVliUsbhubFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:31,1
    - Dst: FU_IS_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_vli_usbhub_firmware_get_device_id
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_VLI_USBHUB_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_vli_usbhub_firmware_get_device_id(FuVliUsbhubFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:38,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:39,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: fu_vli_usbhub_firmware_export
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - FU_VLI_USBHUB_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:58,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:59,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:64,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:65,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:74,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:75,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:84,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:85,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:89,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:96,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:101,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:109,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:117,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:125,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - self
    - stream
    - strapping1
    - error
    argTypes:
    - FuVliUsbhubFirmware*
    - GInputStream*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 127
    functionName: fu_vli_usbhub_firmware_parse_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_read_u16
    - g_prefix_error
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - fu_input_stream_read_u24
    - fu_firmware_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_firmware_parse_version(FuVliUsbhubFirmware
      *self,\n\t\t\t\t     GInputStream *stream,\n\t\t\t\t     guint8 strapping1,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:140,1
    - Dst: fu_struct_vli_usbhub_hdr_parse_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:143,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:145,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:148,1
    - Dst: fu_struct_vli_usbhub_hdr_get_strapping1
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:149,1
    - Dst: fu_vli_usbhub_firmware_parse_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:152,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb2_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:160,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:161,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:162,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:167,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:170,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:175,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:216,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:217,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:221,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:222,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:227,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:228,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:260,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:267,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:268,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:301,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:306,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:310,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:320,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:337,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 141
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 346
    functionName: fu_vli_usbhub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_struct_vli_usbhub_hdr_parse_stream
    - g_prefix_error
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - fu_input_stream_read_u8
    - fu_struct_vli_usbhub_hdr_get_usb2_fw_addr
    - g_set_error_literal
    - fu_struct_vli_usbhub_hdr_get_strapping1
    - FU_VLI_USBHUB_FIRMWARE
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - g_autoptr
    - fu_input_stream_read_u24
    - fu_vli_usbhub_firmware_parse_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:351,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: fu_vli_usbhub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_usbhub_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:357,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: fu_vli_usbhub_firmware_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_firmware_init(FuVliUsbhubFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: fu_vli_usbhub_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_firmware_class_init(FuVliUsbhubFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:372,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: fu_vli_usbhub_firmware_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_vli_usbhub_firmware_new(void)'
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 24
    argCount: 1
    argNames:
    - fwver
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 42
    functionName: fu_vli_pd_common_guess_device_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FuVliDeviceKind
    signature: FuVliDeviceKind fu_vli_pd_common_guess_device_kind(guint32 fwver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: fu_vli_plugin_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_vli_plugin_init(FuVliPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:33,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:34,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:35,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:36,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:37,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:40,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:41,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:42,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:43,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: fu_vli_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_vli_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_vli_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_plugin_class_init(FuVliPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:58,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:62,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:71,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:72,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:72,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:85,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: fu_vli_usbhub_rtd21xx_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_memcpy_safe
    - fu_usb_device_control_transfer
    - g_malloc0
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_i2c_write(FuVliUsbhubDevice
      *self,\n\t\t\t\t       guint8 target_addr,\n\t\t\t\t       guint8 sub_addr,\n\t\t\t\t
      \      guint8 *data,\n\t\t\t\t       gsize datasz,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:100,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:113,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: fu_vli_usbhub_rtd21xx_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_raw
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_i2c_read(FuVliUsbhubDevice *self,\n\t\t\t\t
      \     guint8 target_addr,\n\t\t\t\t      guint8 sub_addr,\n\t\t\t\t      guint8
      *data,\n\t\t\t\t      gsize datasz,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:125,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:125,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: fu_vli_usbhub_rtd21xx_device_read_status_raw
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - FU_DEVICE
    - fu_vli_usbhub_rtd21xx_device_i2c_read
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_read_status_raw(FuVliUsbhubRtd21xxDevice
      *self,\n\t\t\t\t\t     guint8 *status,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:142,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:144,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: fu_vli_usbhub_rtd21xx_device_read_status_cb
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_rtd21xx_device_read_status_raw
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_read_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: fu_vli_usbhub_rtd21xx_device_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_read_status(FuVliUsbhubRtd21xxDevice
      *self,\n\t\t\t\t\t guint8 *status,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:168,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:168,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:179,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:184,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:185,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:191,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:196,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_set_version
    - g_prefix_error
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - g_strdup_printf
    - FU_DEVICE
    - fu_vli_usbhub_rtd21xx_device_i2c_read
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked(FuVliUsbhubRtd21xxDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:205,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:208,1
    - Dst: fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 219
    functionName: fu_vli_usbhub_rtd21xx_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:224,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:224,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:226,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: fu_vli_usbhub_rtd21xx_device_detach_raw
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_prefix_error
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - FU_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_detach_raw(FuVliUsbhubRtd21xxDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:236,1
    - Dst: fu_vli_usbhub_rtd21xx_device_detach_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:238,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:240,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 251
    functionName: fu_vli_usbhub_rtd21xx_device_detach_cb
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_rtd21xx_device_read_status_raw
    - fu_vli_usbhub_rtd21xx_device_detach_raw
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_detach_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:256,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:257,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:260,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:263,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: fu_vli_usbhub_rtd21xx_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_retry
    - fu_device_add_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:274,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:276,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:279,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:288,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 295
    functionName: fu_vli_usbhub_rtd21xx_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_prefix_error
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - fu_device_remove_flag
    - g_autoptr
    - fu_device_locker_new
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:304,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:304,1
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:312,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:315,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:316,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:317,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:318,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:319,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:322,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:327,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:340,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:343,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:348,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:354,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:359,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:360,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:366,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:370,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:375,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:384,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:391,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:394,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:400,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:403,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:408,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:409,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:415,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:418,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:421,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:429,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:432,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:435,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:437,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:440,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:441,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:443,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:445,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:450,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:450,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:452,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:454,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:457,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:460,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:466,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:469,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:472,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:475,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:481,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:487,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:490,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 93
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 492
    functionName: fu_vli_usbhub_rtd21xx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_rtd21xx_device_read_status
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_memwrite_uint16
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_chunk_get_data_out
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_device_get_parent
    - fu_chunk_get_address
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - FU_VLI_USBHUB_DEVICE
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - fu_vli_usbhub_rtd21xx_device_i2c_read
    - g_autoptr
    - fu_device_locker_new
    - fu_chunk_array_index
    - fu_input_stream_read_safe
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_memread_uint32_safe
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:497,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:498,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:501,1
    - Dst: fu_vli_usbhub_rtd21xx_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 6
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: fu_vli_usbhub_rtd21xx_device_reload
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - fu_vli_usbhub_rtd21xx_device_setup
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:511,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:511,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:513,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:513,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:515,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:516,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:521,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:521,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 507
    functionDepth: 9
    functionLinenumber: 507
    functionLinenumberEnd: 523
    functionName: fu_vli_usbhub_rtd21xx_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_incorporate
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_vli_device_kind_to_string
    - fu_device_add_instance_str
    - fu_device_get_parent
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:528,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:529,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:530,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:531,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:532,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:533,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 535
    functionName: fu_vli_usbhub_rtd21xx_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_rtd21xx_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:540,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:540,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:541,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:541,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:542,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:542,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:543,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:544,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:544,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:545,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:545,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:546,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: fu_vli_usbhub_rtd21xx_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_rtd21xx_device_init(FuVliUsbhubRtd21xxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubRtd21xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 561
    functionName: fu_vli_usbhub_rtd21xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_rtd21xx_device_class_init(FuVliUsbhubRtd21xxDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuVliUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: fu_vli_usbhub_rtd21xx_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_vli_usbhub_rtd21xx_device_new(FuVliUsbhubDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: VLI_USBHUB_FLASHMAP_ADDR_TO_IDX
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLI_USBHUB_FLASHMAP_ADDR_TO_IDX(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: VLI_USBHUB_FLASHMAP_IDX_TO_ADDR
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLI_USBHUB_FLASHMAP_IDX_TO_ADDR(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:24,1
    - Dst: FU_IS_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_vli_pd_firmware_get_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_VLI_PD_FIRMWARE
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuVliDeviceKind
    signature: FuVliDeviceKind fu_vli_pd_firmware_get_kind(FuVliPdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:31,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:32,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: fu_vli_pd_firmware_export
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_FIRMWARE
    - fu_vli_device_kind_to_string
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:46,1
    - Dst: fu_struct_vli_pd_hdr_parse_stream
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:49,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:51,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:54,1
    - Dst: fu_struct_vli_pd_hdr_get_fwver
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:58,1
    - Dst: fu_vli_pd_common_guess_device_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:59,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:61,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:68,1
    - Dst: fu_vli_common_device_kind_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:72,1
    - Dst: fu_vli_common_device_kind_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:88,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:94,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:99,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:102,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 123
    functionName: fu_vli_pd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_vli_common_device_kind_get_size
    - g_set_error
    - fu_input_stream_read_u16
    - FU_VLI_PD_FIRMWARE
    - fu_struct_vli_pd_hdr_parse_stream
    - g_prefix_error
    - fu_vli_pd_common_guess_device_kind
    - g_set_error_literal
    - fu_struct_vli_pd_hdr_get_fwver
    - g_autoptr
    - fu_firmware_set_version_raw
    - fu_input_stream_size
    - fu_input_stream_compute_crc16
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_firmware_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:128,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: fu_vli_pd_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_pd_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:134,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: fu_vli_pd_firmware_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_firmware_init(FuVliPdFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: fu_vli_pd_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_firmware_class_init(FuVliPdFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:150,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: fu_vli_pd_firmware_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_vli_pd_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:42,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:55,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: fu_vli_usbhub_msp430_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_raw
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_i2c_read(FuVliUsbhubDevice *self,\n\t\t\t\t
      \    guint8 cmd,\n\t\t\t\t     guint8 *buf,\n\t\t\t\t     gsize bufsz,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_usbhub_msp430_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuVliUsbhubI2cStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: fu_vli_usbhub_msp430_device_i2c_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_msp430_device_i2c_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_i2c_read_status(FuVliUsbhubDevice
      *self,\n\t\t\t\t\t    FuVliUsbhubI2cStatus *status,\n\t\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:90,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:91,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:94,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:94,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - disable_start_bit
    - disable_end_bit
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 111
    functionName: fu_vli_usbhub_msp430_device_i2c_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_i2c_write_data(FuVliUsbhubDevice
      *self,\n\t\t\t\t\t   guint8 disable_start_bit,\n\t\t\t\t\t   guint8 disable_end_bit,\n\t\t\t\t\t
      \  const guint8 *buf,\n\t\t\t\t\t   gsize bufsz,\n\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:116,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:116,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:131,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:139,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: fu_vli_usbhub_msp430_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_set_version
    - fu_vli_usbhub_msp430_device_i2c_read
    - g_prefix_error
    - g_strdup_printf
    - g_set_error_literal
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:147,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:149,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:156,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:159,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:163,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:166,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:167,1
    - Dst: fu_vli_usbhub_i2c_check_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: fu_vli_usbhub_msp430_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_sleep_full
    - fu_vli_usbhub_msp430_device_i2c_read_status
    - g_prefix_error
    - fu_vli_usbhub_i2c_check_status
    - fu_vli_usbhub_msp430_device_i2c_write_data
    - fu_device_locker_new
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:184,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:184,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:187,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:188,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:188,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:189,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:198,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:200,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:214,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:215,1
    - Dst: fu_vli_usbhub_i2c_check_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 218
    functionName: fu_vli_usbhub_msp430_device_write_firmware_cb
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_vli_usbhub_msp430_device_i2c_read_status
    - fu_vli_usbhub_i2c_check_status
    - FU_USB_DEVICE
    - fu_usb_device_get_spec
    - fu_vli_usbhub_msp430_device_i2c_write_data
    - fu_device_get_parent
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_write_firmware_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:227,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:227,1
    - Dst: fu_ihex_firmware_get_records
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:228,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:229,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:232,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:237,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:238,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:239,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:241,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:248,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:261,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:263,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:265,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:268,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:275,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:284,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 298
    functionName: fu_vli_usbhub_msp430_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_progress_set_status
    - g_set_error
    - fu_device_retry
    - fu_progress_step_done
    - FU_IHEX_FIRMWARE
    - fu_firmware_strparse_uint8_safe
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_device_add_flag
    - fu_progress_set_id
    - g_autoptr
    - fu_ihex_firmware_get_records
    - fu_device_locker_new
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:304,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:304,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:306,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:306,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:309,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:314,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:314,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 300
    functionDepth: 9
    functionLinenumber: 300
    functionLinenumberEnd: 316
    functionName: fu_vli_usbhub_msp430_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_device_incorporate
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_vli_device_kind_to_string
    - fu_device_add_instance_str
    - fu_device_get_parent
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:321,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:322,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:323,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:324,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:325,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: fu_vli_usbhub_msp430_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_msp430_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:332,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:333,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:333,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:334,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:335,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:336,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:337,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:338,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:339,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubMsp430Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: fu_vli_usbhub_msp430_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_msp430_device_init(FuVliUsbhubMsp430Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubMsp430DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: fu_vli_usbhub_msp430_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_msp430_device_class_init(FuVliUsbhubMsp430DeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuVliUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: fu_vli_usbhub_msp430_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_vli_usbhub_msp430_device_new(FuVliUsbhubDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1522
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: fu_vli_device_get_cfi_device
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 7
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuCfiDevice
    signature: 'FuCfiDevice *

      fu_vli_device_get_cfi_device(FuVliDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:37,1
    - Dst: FuVliDeviceClass*::spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:39,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: fu_vli_device_spi_write_enable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error
    - FuVliDeviceClass*::spi_write_enable
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_write_enable(FuVliDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:50,1
    - Dst: FuVliDeviceClass*::spi_chip_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:52,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: fu_vli_device_spi_chip_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error
    - FuVliDeviceClass*::spi_chip_erase
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_chip_erase(FuVliDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:63,1
    - Dst: FuVliDeviceClass*::spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:65,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: fu_vli_device_spi_write_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error
    - FuVliDeviceClass*::spi_write_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_write_status(FuVliDevice *self, guint8 status,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:76,1
    - Dst: FuVliDeviceClass*::spi_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: fu_vli_device_spi_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error
    - FuVliDeviceClass*::spi_read_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_read_status(FuVliDevice *self, guint8 *status,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:89,1
    - Dst: FuVliDeviceClass*::spi_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: fu_vli_device_spi_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - FuVliDeviceClass*::spi_sector_erase
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_sector_erase(FuVliDevice *self, guint32
      addr, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:106,1
    - Dst: FuVliDeviceClass*::spi_read_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:108,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: fu_vli_device_spi_read_block
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 3
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - FuVliDeviceClass*::spi_read_data
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_device_spi_read_block(FuVliDevice *self,\n\t\t\t     guint32
      addr,\n\t\t\t     guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:123,1
    - Dst: FuVliDeviceClass*::spi_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: fu_vli_device_spi_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_GET_CLASS
    - FuVliDeviceClass*::spi_write_data
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_device_spi_write_data(FuVliDevice *self,\n\t\t\t     guint32
      addr,\n\t\t\t     const guint8 *buf,\n\t\t\t     gsize bufsz,\n\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_device_spi_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:143,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: fu_vli_device_spi_wait_finish
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DEVICE
    - fu_vli_device_spi_read_status
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_wait_finish(FuVliDevice *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:163,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:164,1
    - Dst: fu_vli_device_spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:168,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:172,1
    - Dst: fu_vli_device_spi_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:175,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:176,1
    - Dst: fu_vli_device_spi_wait_finish
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:179,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:180,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:187,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 205
    functionName: fu_vli_device_spi_erase_sector
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 4
    functionsReached:
    - fu_vli_device_spi_write_status
    - g_set_error
    - fu_vli_device_spi_write_enable
    - g_prefix_error
    - fu_vli_device_spi_read_block
    - fu_vli_device_spi_sector_erase
    - fu_vli_device_spi_wait_finish
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_erase_sector(FuVliDevice *self, guint32
      addr, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:215,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:218,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:219,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:222,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:223,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:224,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:225,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:226,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:228,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:230,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:233,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:235,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - address
    - bufsz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: fu_vli_device_spi_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_data_out
    - g_steal_pointer
    - g_bytes_new_take
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - g_malloc0
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_vli_device_spi_read_block
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_vli_device_spi_read(FuVliDevice *self,\n\t\t       guint32
      address,\n\t\t       gsize bufsz,\n\t\t       FuProgress *progress,\n\t\t       GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:250,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:259,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:260,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:261,1
    - Dst: fu_vli_device_spi_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:264,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:265,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:268,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:271,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:272,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 276
    functionName: fu_vli_device_spi_write_block
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_debug
    - fu_vli_device_spi_write_enable
    - g_prefix_error
    - fu_vli_device_spi_write_data
    - g_malloc0
    - FU_DEVICE
    - fu_memcmp_safe
    - fu_vli_device_spi_read_block
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_device_spi_write_block(FuVliDevice *self,\n\t\t\t
      \     guint32 address,\n\t\t\t      const guint8 *buf,\n\t\t\t      gsize bufsz,\n\t\t\t
      \     FuProgress *progress,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:287,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:290,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:291,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:292,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:295,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:296,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:298,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:299,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:300,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:302,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:303,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:304,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:305,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:306,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:307,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:309,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:311,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:314,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:317,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:320,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:321,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:322,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:323,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:324,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:325,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:327,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 332
    functionName: fu_vli_device_spi_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 4
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - g_debug
    - fu_progress_step_done
    - g_prefix_error
    - fu_progress_add_step
    - g_ptr_array_index
    - fu_vli_device_spi_write_block
    - fu_chunk_get_idx
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_device_spi_write(FuVliDevice *self,\n\t\t\tguint32
      address,\n\t\t\tconst guint8 *buf,\n\t\t\tgsize bufsz,\n\t\t\tFuProgress *progress,\n\t\t\tGError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:338,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:339,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:340,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:342,1
    - Dst: fu_vli_device_spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:344,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:346,1
    - Dst: fu_vli_device_spi_chip_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:348,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:350,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:350,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:350,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:351,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:356,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:357,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:362,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:370,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:370,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 376
    functionName: fu_vli_device_spi_erase_all
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1
    functionsReached:
    - fu_vli_device_spi_write_status
    - fu_device_sleep_full
    - fu_progress_get_child
    - fu_progress_step_done
    - g_set_error
    - fu_vli_device_spi_write_enable
    - fu_progress_set_percentage_full
    - g_prefix_error
    - fu_progress_add_step
    - fu_vli_device_spi_chip_erase
    - FU_DEVICE
    - fu_progress_set_id
    - fu_vli_device_spi_read_block
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_erase_all(FuVliDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:385,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:385,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:386,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:387,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:388,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:390,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:391,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:391,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:392,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:392,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:393,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:395,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:397,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - addr
    - sz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: fu_vli_device_spi_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 2
    functionsReached:
    - fu_progress_step_done
    - g_debug
    - fu_vli_device_spi_erase_sector
    - g_prefix_error
    - g_ptr_array_index
    - FU_VLI_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_new
    - fu_chunk_get_address
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_device_spi_erase(FuVliDevice *self,\n\t\t\tguint32
      addr,\n\t\t\tgsize sz,\n\t\t\tFuProgress *progress,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:408,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:410,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:412,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:414,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: fu_vli_device_get_flash_id_str
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_device_get_flash_id_str(FuVliDevice *self)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:421,1
    - Dst: g_object_notify
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:427,1
    - Dst: G_OBJECT
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:427,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:474,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:474,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:477,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:480,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:481,1
    - Dst: fu_vli_common_device_kind_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:487,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:489,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:492,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:494,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 2
    argNames:
    - self
    - device_kind
    argTypes:
    - FuVliDevice*
    - FuVliDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 496
    functionName: fu_vli_device_set_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 2
    functionsReached:
    - g_warning
    - fu_vli_common_device_kind_get_size
    - g_object_notify
    - fu_device_build_instance_id
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - fu_vli_device_kind_to_string
    - G_OBJECT
    - fu_device_add_instance_str
    - fu_device_set_firmware_size_max
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_set_kind(FuVliDevice *self, FuVliDeviceKind device_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spi_auto_detect
    argTypes:
    - FuVliDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: fu_vli_device_set_spi_auto_detect
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_set_spi_auto_detect(FuVliDevice *self, gboolean
      spi_auto_detect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 510
    functionName: fu_vli_device_get_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 3
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuVliDeviceKind
    signature: FuVliDeviceKind fu_vli_device_get_kind(FuVliDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:515,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: fu_vli_device_get_offset
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_common_device_kind_get_offset
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_vli_device_get_offset(FuVliDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:522,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:523,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:526,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:529,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:530,1
    - Dst: fu_vli_device_get_flash_id_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:532,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:533,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 519
    functionDepth: 4
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: fu_vli_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - fu_device_add_string
    - FU_VLI_DEVICE
    - FU_DEVICE
    - fu_vli_device_kind_to_string
    - GET_PRIVATE
    - fu_vli_device_get_flash_id_str
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:541,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:545,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:547,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:560,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:563,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:565,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:574,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:579,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 584
    functionName: fu_vli_device_spi_read_flash_id
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memread_uint32_safe
    - fu_usb_device_control_transfer
    - fu_memread_uint8_safe
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_read_flash_id(FuVliDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:589,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:590,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:593,1
    - Dst: fu_vli_device_spi_read_flash_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:598,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:599,1
    - Dst: fu_vli_device_get_flash_id_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:603,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:606,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:607,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:607,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:611,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:612,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 633
    functionName: fu_vli_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_device_setup
    - g_prefix_error
    - fu_vli_device_spi_read_flash_id
    - fu_device_build_instance_id
    - FU_VLI_DEVICE
    - FU_DEVICE
    - GET_PRIVATE
    - fu_vli_device_get_flash_id_str
    - fu_device_add_instance_str
    - fu_cfi_device_set_flash_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_setup(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:638,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:639,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:642,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:643,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:648,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:649,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:654,1
    - Dst: fu_vli_device_kind_from_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:656,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:658,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:665,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 635
    functionDepth: 7
    functionLinenumber: 635
    functionLinenumberEnd: 673
    functionName: fu_vli_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_vli_device_kind_from_string
    - fu_vli_device_set_kind
    - FU_VLI_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:678,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:679,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:679,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:679,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: fu_vli_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - FU_VLI_DEVICE
    - g_strdup
    - G_OBJECT_TYPE_NAME
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_report_metadata_pre(FuDevice *device, GHashTable
      *metadata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:685,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:686,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:689,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 695
    functionName: fu_vli_device_get_property
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - FU_VLI_DEVICE
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:700,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:703,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:703,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 697
    functionDepth: 7
    functionLinenumber: 697
    functionLinenumberEnd: 709
    functionName: fu_vli_device_set_property
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_set_kind
    - FU_VLI_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:714,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:715,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:716,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 717
    functionName: fu_vli_device_constructed
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_context
    - FU_VLI_DEVICE
    - FU_DEVICE
    - GET_PRIVATE
    - fu_cfi_device_new
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:722,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:725,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:725,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:726,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 728
    functionName: fu_vli_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - GET_PRIVATE
    - fu_device_add_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_init(FuVliDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:733,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:734,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:735,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 737
    functionName: fu_vli_device_finalize
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE
    - g_object_unref
    - GET_PRIVATE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:742,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:743,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:757,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 770
    functionName: fu_vli_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_device_class_init(FuVliDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:28,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:29,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:33,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:37,1
    - Dst: fu_vli_common_device_kind_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: fu_vli_usbhub_pd_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_common_device_kind_get_size
    - fu_vli_common_device_kind_get_offset
    - fu_vli_device_kind_to_string
    - FU_VLI_USBHUB_PD_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:46,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:47,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:47,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:56,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:61,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:67,1
    - Dst: fu_struct_vli_pd_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:70,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:76,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:76,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:77,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:77,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:83,1
    - Dst: fu_struct_vli_pd_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:86,1
    - Dst: fu_struct_vli_pd_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:87,1
    - Dst: fu_struct_vli_pd_hdr_get_fwver
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:95,1
    - Dst: fu_vli_pd_common_guess_device_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:102,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:109,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:110,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:113,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:116,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:116,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:117,1
    - Dst: fu_struct_vli_pd_hdr_get_pid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:117,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:118,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:119,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:120,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:127,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:129,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:131,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:135,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:136,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 140
    functionName: fu_vli_usbhub_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_vli_pd_hdr_get_pid
    - g_prefix_error
    - fu_struct_vli_pd_hdr_get_fwver
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_device_build_instance_id_full
    - fu_struct_vli_pd_hdr_unref
    - g_set_error
    - g_debug
    - fu_vli_common_device_kind_get_offset
    - FU_VLI_DEVICE
    - fu_device_add_flag
    - fu_struct_vli_pd_hdr_get_vid
    - fu_vli_device_spi_read_block
    - fu_device_get_parent
    - fu_device_add_instance_u16
    - FU_VLI_USBHUB_DEVICE
    - fu_vli_pd_common_guess_device_kind
    - g_autoptr
    - fu_device_set_version_raw
    - fu_struct_vli_pd_hdr_parse
    - fu_device_add_instance_u8
    - g_malloc0
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_vli_device_kind_to_string
    - fu_device_add_instance_str
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:145,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:146,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:149,1
    - Dst: fu_vli_usbhub_pd_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: fu_vli_usbhub_pd_device_reload
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - fu_vli_usbhub_pd_device_setup
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_reload(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:164,1
    - Dst: fu_vli_pd_firmware_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:164,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:167,1
    - Dst: fu_vli_pd_firmware_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:169,1
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:171,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:175,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:176,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:181,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:181,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: fu_vli_usbhub_pd_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - FU_VLI_PD_FIRMWARE
    - fu_firmware_get_version
    - fu_vli_pd_firmware_new
    - fu_firmware_parse_stream
    - fu_vli_device_kind_to_string
    - g_autoptr
    - FU_VLI_USBHUB_PD_DEVICE
    - g_info
    - fu_vli_pd_firmware_get_kind
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_vli_usbhub_pd_device_prepare_firmware(FuDevice *device,\n\t\t\t\t\t
      GInputStream *stream,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t FuFirmwareParseFlags
      flags,\n\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:188,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:188,1
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:190,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:193,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:198,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:199,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:199,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:200,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: fu_vli_usbhub_pd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_progress_set_status
    - fu_vli_common_device_kind_get_offset
    - fu_vli_device_spi_read
    - FU_VLI_DEVICE
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_new
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_vli_usbhub_pd_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:213,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:214,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:218,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:223,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:226,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:231,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:236,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:237,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:237,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:238,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:240,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:243,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:246,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:246,1
    - Dst: fu_vli_common_device_kind_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:247,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:250,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 257
    functionName: fu_vli_usbhub_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_progress_get_child
    - fu_vli_common_device_kind_get_offset
    - fu_progress_step_done
    - fu_vli_device_spi_erase
    - fu_progress_add_step
    - FU_VLI_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_device_get_parent
    - fu_vli_device_spi_write
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_device_locker_new
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_pd_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:264,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:264,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: fu_vli_usbhub_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_attach_full
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:273,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:273,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: fu_vli_usbhub_pd_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - FU_DEVICE
    - fu_device_incorporate
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:285,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:286,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:287,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:288,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:289,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:290,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: fu_vli_usbhub_pd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:297,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: fu_vli_usbhub_pd_device_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_usbhub_pd_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:303,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:304,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:305,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:306,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:307,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:308,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:309,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:310,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: fu_vli_usbhub_pd_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_init(FuVliUsbhubPdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: fu_vli_usbhub_pd_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_class_init(FuVliUsbhubPdDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuVliUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: fu_vli_usbhub_pd_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_vli_usbhub_pd_device_new(FuVliUsbhubDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_PARADE_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:29,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:30,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: fu_vli_pd_parade_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_PARADE_DEVICE
    - fwupd_codec_string_append_hex
    - fu_vli_device_kind_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_parade_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:50,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:56,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:56,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - self
    - page2
    - reg_offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: fu_vli_pd_parade_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_i2c_read(FuVliPdParadeDevice *self,\n\t\t\t\t
      guint8 page2,\n\t\t\t\t guint8 reg_offset, /* customers addr offset */\n\t\t\t\t
      guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:89,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:89,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - page2
    - reg_offset
    - val
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: fu_vli_pd_parade_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_i2c_write(FuVliPdParadeDevice *self,\n\t\t\t\t
      \ guint8 page2,\n\t\t\t\t  guint8 reg_offset, /* customers addr offset */\n\t\t\t\t
      \ guint8 val,\t     /* only one byte supported */\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: fu_vli_pd_parade_device_start_mcu
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_start_mcu(FuVliPdParadeDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:122,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: fu_vli_pd_parade_device_stop_mcu
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_stop_mcu(FuVliPdParadeDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:135,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: fu_vli_pd_parade_device_set_offset
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_set_offset(FuVliPdParadeDevice *self,
      guint16 addr, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_stop_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:149,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:151,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:153,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:154,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:157,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:165,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:166,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:168,1
    - Dst: fu_vli_pd_parade_device_start_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:172,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:176,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 179
    functionName: fu_vli_pd_parade_device_read_fw_ver
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - g_debug
    - fu_vli_pd_parade_device_stop_mcu
    - g_strdup_printf
    - FU_DEVICE
    - fu_vli_pd_parade_device_start_mcu
    - fu_vli_pd_parade_device_i2c_read
    - fu_vli_pd_parade_device_set_offset
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_read_fw_ver(FuVliPdParadeDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: fu_vli_pd_parade_device_set_wp
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_set_wp(FuVliPdParadeDevice *self,
      gboolean val, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:191,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:193,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:195,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:197,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: fu_vli_pd_parade_device_write_enable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_set_wp
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_write_enable(FuVliPdParadeDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: fu_vli_pd_parade_device_write_disable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_write_disable(FuVliPdParadeDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:218,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:220,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:222,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:224,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:226,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - target_status
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 231
    functionName: fu_vli_pd_parade_device_write_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_set_wp
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_write_status(FuVliPdParadeDevice
      *self,\n\t\t\t\t     guint8 target_status,\n\t\t\t\t     GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:243,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:260,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:273,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:275,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:277,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:283,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:296,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:318,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 327
    functionName: fu_vli_pd_parade_device_wait_ready
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_vli_pd_parade_device_i2c_read
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_wait_ready(FuVliPdParadeDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:333,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:335,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:337,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:339,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:341,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 346
    functionName: fu_vli_pd_parade_device_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_sector_erase(FuVliPdParadeDevice *self,
      guint16 addr, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:351,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:353,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:355,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:357,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:359,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: fu_vli_pd_parade_device_enable_mapping
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_enable_mapping(FuVliPdParadeDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:371,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:373,1
    - Dst: fu_vli_pd_parade_device_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:375,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:379,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:381,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:388,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - self
    - block_idx
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 407
    functionName: fu_vli_pd_parade_device_block_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_vli_pd_parade_device_set_wp
    - fu_vli_pd_parade_device_sector_erase
    - fu_vli_pd_parade_device_write_enable
    - fu_vli_pd_parade_device_wait_ready
    - fu_vli_pd_parade_device_i2c_read
    - fu_vli_pd_parade_device_set_offset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_block_erase(FuVliPdParadeDevice *self,
      guint8 block_idx, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:416,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - self
    - block_idx
    - txbuf
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 431
    functionName: fu_vli_pd_parade_device_block_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_set_offset
    - fu_vli_pd_parade_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_block_write(FuVliPdParadeDevice *self,\n\t\t\t\t
      \   guint8 block_idx,\n\t\t\t\t    const guint8 *txbuf,\n\t\t\t\t    GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:441,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - self
    - block_idx
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 433
    functionDepth: 5
    functionLinenumber: 433
    functionLinenumberEnd: 455
    functionName: fu_vli_pd_parade_device_block_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_read
    - fu_vli_pd_parade_device_set_offset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_block_read(FuVliPdParadeDevice *self,\n\t\t\t\t
      \  guint8 block_idx,\n\t\t\t\t   guint8 *buf,\n\t\t\t\t   gsize bufsz,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_PARADE_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:464,1
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:465,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:472,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:473,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:476,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:481,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:484,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:489,1
    - Dst: fu_vli_pd_parade_device_stop_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:494,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:498,1
    - Dst: fu_vli_pd_parade_device_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:500,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:502,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:509,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:509,1
    - Dst: fu_vli_pd_parade_device_block_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:512,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:512,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:514,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:514,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:518,1
    - Dst: fu_vli_pd_parade_device_enable_mapping
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:521,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:523,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:525,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:526,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:530,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:531,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:531,1
    - Dst: fu_vli_pd_parade_device_block_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:534,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:535,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:536,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:539,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:539,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:541,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:543,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:545,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:548,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:548,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:549,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:552,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:552,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:552,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:557,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:559,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:562,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:562,1
    - Dst: fu_vli_pd_parade_device_block_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:563,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:564,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:566,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:569,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:569,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:570,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:570,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:572,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:574,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:575,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:577,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:580,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:582,1
    - Dst: fu_vli_pd_parade_device_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:584,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:586,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:588,1
    - Dst: fu_vli_pd_parade_device_enable_mapping
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:592,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:596,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:598,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:600,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:602,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:608,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:614,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:618,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:620,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:624,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:632,1
    - Dst: fu_vli_pd_parade_device_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:634,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:636,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:638,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:640,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 120
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 457
    functionDepth: 7
    functionLinenumber: 457
    functionLinenumberEnd: 644
    functionName: fu_vli_pd_parade_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_byte_array_sized_new
    - fu_vli_pd_parade_device_stop_mcu
    - FU_VLI_PD_DEVICE
    - fu_vli_pd_parade_device_block_read
    - fu_chunk_get_idx
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_vli_pd_parade_device_block_erase
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_vli_pd_parade_device_write_status
    - fu_chunk_get_data
    - fu_device_get_parent
    - fu_vli_pd_parade_device_set_offset
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_vli_pd_parade_device_i2c_read
    - FU_VLI_PD_PARADE_DEVICE
    - fu_vli_pd_parade_device_write_disable
    - fu_vli_pd_parade_device_set_wp
    - g_autoptr
    - fu_chunk_array_index
    - fu_device_locker_new
    - fu_vli_pd_parade_device_i2c_write
    - fu_vli_pd_parade_device_block_write
    - g_bytes_new
    - fu_vli_pd_parade_device_wait_ready
    - fu_firmware_get_bytes
    - fu_chunk_get_data_sz
    - fu_vli_pd_parade_device_enable_mapping
    - g_bytes_get_size
    - fu_vli_pd_parade_device_sector_erase
    - fu_bytes_compare
    - g_malloc0
    - fu_vli_pd_parade_device_write_enable
    - g_set_error_literal
    - g_byte_array_append
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_parade_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:649,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:649,1
    - Dst: FU_VLI_PD_PARADE_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:652,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:652,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:653,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:656,1
    - Dst: fu_vli_pd_parade_device_stop_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:661,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:665,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:666,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:666,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:667,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:668,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:669,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:671,1
    - Dst: fu_vli_pd_parade_device_block_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:672,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:673,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:674,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:675,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:678,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 646
    functionDepth: 6
    functionLinenumber: 646
    functionLinenumberEnd: 681
    functionName: fu_vli_pd_parade_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_vli_pd_parade_device_stop_mcu
    - FU_VLI_PD_DEVICE
    - fu_vli_pd_parade_device_block_read
    - fu_chunk_get_idx
    - fu_progress_set_steps
    - fu_chunk_get_data_out
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_device_get_parent
    - fu_progress_step_done
    - FU_VLI_PD_PARADE_DEVICE
    - fu_chunk_array_mutable_new
    - g_autoptr
    - fu_device_locker_new
    - g_bytes_new
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_device_get_firmware_size_max
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_vli_pd_parade_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_PARADE_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:686,1
    - Dst: fu_vli_pd_parade_device_read_fw_ver
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:689,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:693,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:693,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 695
    functionName: fu_vli_pd_parade_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_read_fw_ver
    - FU_VLI_PD_PARADE_DEVICE
    - fu_device_build_instance_id
    - fu_vli_device_kind_to_string
    - fu_device_add_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_parade_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:700,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:701,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 707
    functionName: fu_vli_pd_parade_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_parade_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:715,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:716,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:717,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:717,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:718,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:719,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:720,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:720,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:721,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:722,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdParadeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 709
    functionDepth: 6
    functionLinenumber: 709
    functionLinenumberEnd: 724
    functionName: fu_vli_pd_parade_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_parade_device_init(FuVliPdParadeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdParadeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 735
    functionName: fu_vli_pd_parade_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_parade_device_class_init(FuVliPdParadeDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:741,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 743
    functionName: fu_vli_pd_parade_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_vli_pd_parade_device_new(FuVliDevice *parent)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:31,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:32,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:32,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:45,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliPdDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: fu_vli_pd_device_read_regs
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_read_regs(FuVliPdDevice *self,\n\t\t\t   guint16
      addr,\n\t\t\t   guint8 *buf,\n\t\t\t   gsize bufsz,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_device_read_regs
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - addr
    - value
    - error
    argTypes:
    - FuVliPdDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: fu_vli_pd_device_read_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_device_read_regs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_read_reg(FuVliPdDevice *self, guint16 addr,
      guint8 *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:61,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:62,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:63,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:63,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - addr
    - value
    - error
    argTypes:
    - FuVliPdDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: fu_vli_pd_device_write_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - g_strdup_printf
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_write_reg(FuVliPdDevice *self, guint16 addr,
      guint8 value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:86,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:86,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:91,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: fu_vli_pd_device_spi_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_spi_read_status(FuVliDevice *self, guint8
      *status, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:116,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:116,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:123,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 136
    functionName: fu_vli_pd_device_spi_read_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_spi_read_data(FuVliDevice *self,\n\t\t\t
      \      guint32 addr,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:143,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:143,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:149,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:149,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 168
    functionName: fu_vli_pd_device_spi_write_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_spi_write_status(FuVliDevice *self, guint8
      status, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:174,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:174,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:179,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: fu_vli_pd_device_spi_write_enable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_spi_write_enable(FuVliDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:201,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:201,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:206,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: fu_vli_pd_device_spi_chip_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_spi_chip_erase(FuVliDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:230,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:230,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:237,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: fu_vli_pd_device_spi_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_spi_sector_erase(FuVliDevice *self, guint32
      addr, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:264,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:264,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:272,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:275,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 291
    functionName: fu_vli_pd_device_spi_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_cfi_device
    - fu_memdup_safe
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_spi_write_data(FuVliDevice *self,\n\t\t\t\tguint32
      addr,\n\t\t\t\tconst guint8 *buf,\n\t\t\t\tgsize bufsz,\n\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:297,1
    - Dst: fu_vli_pd_parade_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:300,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:300,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:301,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:302,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:303,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:305,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:309,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:310,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 315
    functionName: fu_vli_pd_device_parade_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_device_add_child
    - g_debug
    - g_error_matches
    - fu_device_setup
    - g_prefix_error
    - fu_vli_pd_parade_device_new
    - FU_VLI_DEVICE
    - FU_DEVICE
    - fu_device_probe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_parade_setup(FuVliPdDevice *self, GError
      **error)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:320,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:327,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:331,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:331,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:344,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:347,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:349,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:352,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:352,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:353,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:361,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:361,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:366,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:366,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:370,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:370,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:374,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:374,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:378,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:378,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:382,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:382,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:386,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:386,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:390,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:398,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:403,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:409,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:409,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:412,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:412,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:415,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:427,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:430,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:432,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:435,1
    - Dst: fu_vli_pd_device_parade_setup
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:436,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 442
    functionName: fu_vli_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_DEVICE_CLASS
    - fu_vli_pd_device_parade_setup
    - g_prefix_error
    - fu_memread_uint32_safe
    - fu_usb_device_control_transfer
    - FU_VLI_PD_DEVICE
    - fu_device_has_private_flag
    - fu_vli_device_set_kind
    - FU_DEVICE
    - FU_VLI_DEVICE
    - fu_device_add_flag
    - fu_device_remove_flag
    - FU_USB_DEVICE
    - fu_device_set_version_raw
    - fu_vli_pd_device_read_reg
    - fu_vli_device_get_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:453,1
    - Dst: fu_vli_pd_firmware_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:453,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:456,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:458,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:458,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:459,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:463,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:464,1
    - Dst: fu_vli_pd_firmware_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:469,1
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:469,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:470,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:470,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:471,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:476,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:477,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:477,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:477,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:482,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:482,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 484
    functionName: fu_vli_pd_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - g_debug
    - g_steal_pointer
    - FU_VLI_PD_FIRMWARE
    - fu_vli_device_get_kind
    - fu_firmware_get_version
    - fu_vli_pd_firmware_new
    - fu_firmware_parse_stream
    - FU_VLI_PD_DEVICE
    - FU_VLI_DEVICE
    - fu_device_get_firmware_size_max
    - fu_vli_device_kind_to_string
    - g_autoptr
    - fu_vli_pd_firmware_get_kind
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_vli_pd_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \ GInputStream *stream,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:489,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:490,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:493,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:499,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:500,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:500,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 505
    functionName: fu_vli_pd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_vli_device_spi_read
    - FU_VLI_PD_DEVICE
    - FU_VLI_DEVICE
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_vli_pd_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:511,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:514,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 520
    functionName: fu_vli_pd_device_write_gpios
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_device_write_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_write_gpios(FuVliPdDevice *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:535,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:538,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:539,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:540,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:541,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:542,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:545,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:545,1
    - Dst: fu_vli_device_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:546,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:546,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:547,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:548,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:552,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:556,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:562,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:563,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:567,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:570,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:572,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:572,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:579,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:580,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:580,1
    - Dst: fu_vli_device_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:581,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:581,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:584,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:587,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:591,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:591,1
    - Dst: fu_vli_device_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:592,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:592,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:595,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:598,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:599,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:599,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:603,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuVliPdDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 611
    functionName: fu_vli_pd_device_write_dual_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_memread_uint16_safe
    - fu_progress_step_done
    - fu_vli_device_spi_read
    - g_prefix_error
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_crc16
    - FU_VLI_DEVICE
    - FU_DEVICE
    - fu_progress_set_id
    - fu_device_get_firmware_size_max
    - g_autoptr
    - g_set_error_literal
    - fu_vli_device_spi_write
    - fu_vli_device_get_offset
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_write_dual_firmware(FuVliPdDevice *self,\n\t\t\t\t
      \    GBytes *fw,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:620,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:624,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:627,1
    - Dst: fu_vli_pd_device_write_gpios
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:632,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:636,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:641,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:648,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:648,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:649,1
    - Dst: fu_vli_pd_device_write_dual_firmware
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:650,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:654,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:655,1
    - Dst: fu_vli_device_spi_erase_all
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:658,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:658,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:659,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:661,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:664,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:667,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:668,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:668,1
    - Dst: fu_vli_device_get_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:669,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:669,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:672,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 613
    functionDepth: 6
    functionLinenumber: 613
    functionLinenumberEnd: 679
    functionName: fu_vli_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_erase_all
    - g_prefix_error
    - FU_VLI_PD_DEVICE
    - fu_device_has_flag
    - fu_vli_device_get_kind
    - fu_progress_get_child
    - fu_progress_add_step
    - FU_VLI_DEVICE
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_vli_pd_device_write_reg
    - fu_vli_pd_device_write_dual_firmware
    - g_autoptr
    - fu_vli_pd_device_read_reg
    - fu_vli_device_spi_write
    - fu_vli_device_get_offset
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_vli_pd_device_write_gpios
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_write_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:685,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:689,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:690,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:695,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:695,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:696,1
    - Dst: fu_vli_pd_device_write_gpios
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:701,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:705,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:711,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:718,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:718,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:719,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:719,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:720,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:720,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:720,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:733,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:734,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:735,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:737,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:738,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:743,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:748,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:748,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:749,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:749,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:751,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:757,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:759,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:761,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:763,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:769,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:769,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:769,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:785,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:785,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:785,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:798,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:799,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:800,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:802,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:803,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:808,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 681
    functionDepth: 6
    functionLinenumber: 681
    functionLinenumberEnd: 810
    functionName: fu_vli_pd_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - fu_vli_pd_device_write_gpios
    - fu_vli_pd_device_write_reg
    - g_error_matches
    - g_steal_pointer
    - fu_usb_device_control_transfer
    - FU_VLI_PD_DEVICE
    - fu_device_has_private_flag
    - fu_device_has_flag
    - FU_VLI_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - FU_USB_DEVICE
    - fu_vli_pd_device_read_reg
    - fu_vli_device_get_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:815,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:816,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:823,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:823,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:824,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:826,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:828,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:833,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:834,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:839,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:839,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:839,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:852,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:853,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:854,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:855,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:856,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:858,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:859,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:866,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 812
    functionDepth: 6
    functionLinenumber: 812
    functionLinenumberEnd: 868
    functionName: fu_vli_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - fu_vli_pd_device_write_reg
    - g_error_matches
    - fu_usb_device_control_transfer
    - FU_VLI_PD_DEVICE
    - fu_device_has_flag
    - FU_VLI_DEVICE
    - fu_device_add_flag
    - g_autoptr
    - FU_USB_DEVICE
    - fu_vli_device_get_kind
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:873,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuVliDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: fu_vli_pd_device_kind_changed_cb
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_vli_device_get_kind
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_device_kind_changed_cb(FuVliDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:882,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:883,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:884,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:885,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:886,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 888
    functionName: fu_vli_pd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:893,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: fu_vli_pd_device_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_pd_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:899,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:900,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:901,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:902,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:903,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:904,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:905,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:905,1
    - Dst: fu_vli_device_set_spi_auto_detect
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:906,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:906,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:907,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:907,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:908,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:908,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:911,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:911,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 915
    functionName: fu_vli_pd_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_set_summary
    - fu_vli_device_set_spi_auto_detect
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - FU_VLI_DEVICE
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_register_private_flag
    - g_signal_connect
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_device_init(FuVliPdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:920,1
    - Dst: FU_VLI_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 937
    functionName: fu_vli_pd_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_device_class_init(FuVliPdDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:18,1
    - Dst: fu_acpi_ivrs_new
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:20,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:23,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:24,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:25,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:29,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:30,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:31,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:36,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:37,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:38,1
    - Dst: fu_acpi_ivrs_get_dma_remap
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:38,1
    - Dst: fu_acpi_table_get_revision
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:40,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:40,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:41,1
    - Dst: fu_acpi_table_get_oem_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:43,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:44,1
    - Dst: fu_acpi_table_get_oem_table_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:46,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:46,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:47,1
    - Dst: fu_acpi_table_get_oem_revision
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:49,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:49,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: fu_acpi_ivrs_dma_remap_func
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpuint
    - fu_acpi_ivrs_new
    - g_assert_true
    - FU_FIRMWARE
    - fu_acpi_table_get_oem_id
    - fu_acpi_table_get_oem_table_id
    - fu_acpi_ivrs_get_dma_remap
    - fu_acpi_table_get_oem_revision
    - fu_firmware_parse_stream
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_acpi_table_get_revision
    - g_assert_cmpstr
    - FU_ACPI_TABLE
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_dma_remap_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:59,1
    - Dst: fu_acpi_ivrs_new
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:61,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:64,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:65,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:66,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:69,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:70,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:71,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:78,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:79,1
    - Dst: fu_acpi_ivrs_get_dma_remap
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:79,1
    - Dst: fu_acpi_table_get_revision
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:81,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:81,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:82,1
    - Dst: fu_acpi_table_get_oem_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:84,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:84,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:85,1
    - Dst: fu_acpi_table_get_oem_table_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:87,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:87,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:88,1
    - Dst: fu_acpi_table_get_oem_revision
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:90,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:90,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: fu_acpi_ivrs_no_dma_remap_func
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_cmpuint
    - fu_acpi_ivrs_new
    - g_assert_true
    - FU_FIRMWARE
    - fu_acpi_table_get_oem_id
    - fu_acpi_table_get_oem_table_id
    - fu_acpi_ivrs_get_dma_remap
    - fu_acpi_table_get_oem_revision
    - g_assert_false
    - fu_firmware_parse_stream
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_acpi_table_get_revision
    - g_assert_cmpstr
    - FU_ACPI_TABLE
    - g_test_build_filename
    - fu_input_stream_from_path
    - g_assert_no_error
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_no_dma_remap_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:97,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:98,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:101,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:102,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:105,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:106,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:24,1
    - Dst: fu_acpi_ivrs_new
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:27,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:30,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:34,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:35,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:36,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:39,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:40,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:43,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:44,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:47,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:47,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:52,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:53,1
    - Dst: fu_acpi_ivrs_get_dma_remap
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:56,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:57,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:58,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:59,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 65
    functionName: fu_acpi_ivrs_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_acpi_ivrs_new
    - fwupd_security_attr_add_flag
    - fu_cpu_get_vendor
    - fu_acpi_ivrs_get_dma_remap
    - g_build_filename
    - fu_plugin_security_attr_new
    - fu_security_attrs_append
    - fu_input_stream_from_path
    - fu_firmware_parse_stream
    - fwupd_security_attr_set_result_success
    - FU_FIRMWARE
    - fwupd_security_attr_set_result
    - g_autoptr
    - fu_path_from_kind
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiIvrsPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: fu_acpi_ivrs_plugin_init
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_plugin_init(FuAcpiIvrsPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiIvrsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: fu_acpi_ivrs_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_plugin_class_init(FuAcpiIvrsPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_IVRS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:28,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:32,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:33,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:37,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:37,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:38,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:42,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:45,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: fu_acpi_ivrs_parse
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - FU_ACPI_IVRS
    - FU_FIRMWARE
    - fu_input_stream_read_u8
    - FU_FIRMWARE_CLASS
    - g_strcmp0
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_ivrs_parse(FuFirmware *firmware,\n\t\t   GInputStream
      *stream,\n\t\t   FuFirmwareParseFlags flags,\n\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: fu_acpi_ivrs_new
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 3
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuAcpiIvrs
    signature: 'FuAcpiIvrs *

      fu_acpi_ivrs_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:61,1
    - Dst: FU_IS_ACPI_IVRS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiIvrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: fu_acpi_ivrs_get_dma_remap
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_IVRS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_ivrs_get_dma_remap(FuAcpiIvrs *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiIvrsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: fu_acpi_ivrs_class_init
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_class_init(FuAcpiIvrsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiIvrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: fu_acpi_ivrs_init
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_acpi_ivrs_init(FuAcpiIvrs *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:25,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_jabra_gnp_firmware_export
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:33,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:35,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:35,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:35,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:37,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:43,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:46,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 55
    functionName: fu_jabra_gnp_firmware_parse_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_firmware_get_version
    - g_strsplit
    - FU_FIRMWARE
    - g_set_error_literal
    - g_strv_length
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_firmware_parse_version(FuJabraGnpFirmware *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:64,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:66,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:68,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:75,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:81,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:81,1
    - Dst: fu_jabra_gnp_firmware_parse_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:82,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:84,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:86,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:89,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:91,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:94,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - self
    - silo
    - error
    argTypes:
    - FuJabraGnpFirmware*
    - XbSilo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 102
    functionName: fu_jabra_gnp_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_silo_query_first
    - xb_node_get_attr
    - g_prefix_error
    - fu_firmware_set_version
    - fu_jabra_gnp_firmware_parse_version
    - FU_FIRMWARE
    - g_set_error_literal
    - g_autoptr
    - xb_node_query_text
    - fwupd_error_convert
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_firmware_parse_info(FuJabraGnpFirmware *self,
      XbSilo *silo, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:111,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:115,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:116,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:117,1
    - Dst: fu_archive_firmware_set_format
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:120,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:120,1
    - Dst: fu_archive_firmware_set_compression
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:122,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:122,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:124,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:128,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:128,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:133,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:136,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:137,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:140,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:141,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:143,1
    - Dst: fu_jabra_gnp_firmware_parse_info
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:146,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:148,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:150,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:155,1
    - Dst: fu_jabra_gnp_image_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:156,1
    - Dst: fu_jabra_gnp_image_parse
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:157,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:158,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:159,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:162,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:165,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:165,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 171
    functionName: fu_jabra_gnp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_archive_firmware_set_format
    - xb_builder_new
    - xb_builder_import_source
    - fu_archive_firmware_get_image_fnmatch
    - FU_FIRMWARE
    - g_propagate_error
    - xb_silo_query
    - fwupd_error_convert
    - g_debug
    - fu_firmware_add_image_full
    - g_ptr_array_index
    - FU_ARCHIVE_FIRMWARE
    - fu_jabra_gnp_firmware_parse_info
    - fu_jabra_gnp_image_parse
    - fu_jabra_gnp_image_new
    - fu_archive_firmware_new
    - g_steal_pointer
    - g_error_matches
    - fu_firmware_parse_stream
    - xb_builder_source_new
    - g_autoptr
    - xb_builder_source_load_bytes
    - fu_firmware_get_bytes
    - xb_builder_compile
    - FU_JABRA_GNP_FIRMWARE
    - fu_archive_firmware_set_compression
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:176,1
    - Dst: FU_IS_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fu_jabra_gnp_firmware_get_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_GNP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_jabra_gnp_firmware_get_dfu_pid(FuJabraGnpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:183,1
    - Dst: FU_IS_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: fu_jabra_gnp_firmware_get_version_data
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_GNP_FIRMWARE
    linkageType: ''
    returnType: FuJabraGnpVersionData
    signature: 'FuJabraGnpVersionData *

      fu_jabra_gnp_firmware_get_version_data(FuJabraGnpFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:190,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:191,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: fu_jabra_gnp_firmware_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_firmware_init(FuJabraGnpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: fu_jabra_gnp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_firmware_class_init(FuJabraGnpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:205,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: fu_jabra_gnp_firmware_new
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_jabra_gnp_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - delta
    argTypes:
    - guint64
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 56
    functionName: fu_jabra_gnp_update_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_jabra_gnp_update_crc(guint64 acc, guint64 delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:63,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:63,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:65,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:66,1
    - Dst: fu_jabra_gnp_update_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:70,1
    - Dst: fu_jabra_gnp_update_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: fu_jabra_gnp_calculate_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_update_crc
    - fu_byte_array_append_bytes
    - g_autoptr
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_jabra_gnp_calculate_crc(GBytes *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_jabra_gnp_image_export
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_IMAGE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:41,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:44,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:46,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:49,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:50,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:59,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:61,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:64,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:65,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:72,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:79,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:82,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:82,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:87,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:90,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:90,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:91,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:91,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:96,1
    - Dst: fu_jabra_gnp_calculate_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:103,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:113,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 4
    argNames:
    - self
    - n
    - firmware_archive
    - error
    argTypes:
    - FuJabraGnpImage*
    - XbNode*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 115
    functionName: fu_jabra_gnp_image_parse
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_firmware_set_id
    - fu_jabra_gnp_calculate_crc
    - xb_node_get_attr
    - FU_ARCHIVE_FIRMWARE
    - g_prefix_error
    - fu_firmware_get_bytes
    - FU_FIRMWARE
    - fu_archive_firmware_get_image_fnmatch
    - g_set_error_literal
    - g_autoptr
    - fu_firmware_set_idx
    - g_strcmp0
    - xb_node_query_text
    - fwupd_error_convert
    - fu_firmware_set_bytes
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_image_parse(FuJabraGnpImage *self,\n\t\t\t XbNode
      *n,\n\t\t\t FuFirmware *firmware_archive,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:120,1
    - Dst: FU_IS_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: fu_jabra_gnp_image_get_crc32
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_GNP_IMAGE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_jabra_gnp_image_get_crc32(FuJabraGnpImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:127,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:127,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:128,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: fu_jabra_gnp_image_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_image_init(FuJabraGnpImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: fu_jabra_gnp_image_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_image_class_init(FuJabraGnpImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:141,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: fu_jabra_gnp_image_new
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 1
    functionsReached:
    - FU_JABRA_GNP_IMAGE
    - g_object_new
    linkageType: ''
    returnType: FuJabraGnpImage
    signature: 'FuJabraGnpImage *

      fu_jabra_gnp_image_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_jabra_gnp_plugin_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_plugin_init(FuJabraGnpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:28,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:32,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: fu_jabra_gnp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_jabra_gnp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_plugin_class_init(FuJabraGnpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:53,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: fu_jabra_gnp_device_to_string
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_JABRA_GNP_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:60,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:61,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:65,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:66,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - usb_device
    - intf_class
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: _fu_usb_device_get_interface_for_class
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 1
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_autoptr
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: guint8
    signature: guint8 _fu_usb_device_get_interface_for_class(FuUsbDevice *usb_device,
      guint8 intf_class, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:75,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:78,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:79,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:80,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: fu_jabra_gnp_device_tx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_usb_device_control_transfer
    - FU_JABRA_GNP_DEVICE
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_tx_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:102,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:108,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:108,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:109,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:119,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:133,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 150
    functionName: fu_jabra_gnp_device_rx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error
    - g_prefix_error
    - FU_JABRA_GNP_DEVICE
    - fu_memcmp_safe
    - FU_USB_DEVICE
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_rx_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:155,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:158,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 176
    functionName: fu_jabra_gnp_device_rx_with_sequence_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_JABRA_GNP_DEVICE
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_rx_with_sequence_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:199,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:206,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:213,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 222
    functionName: fu_jabra_gnp_device_read_name
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memstrsafe
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_read_name(FuJabraGnpDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:247,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:249,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:256,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:265,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - child_dfu_pid
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 274
    functionName: fu_jabra_gnp_device_read_child_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error
    - FU_DEVICE
    - g_return_val_if_fail
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_read_child_dfu_pid(FuJabraGnpDevice *self,\n\t\t\t\t
      \      guint16 *child_dfu_pid,\n\t\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:297,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:304,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:311,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:314,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:317,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 320
    functionName: fu_jabra_gnp_device_read_child_battery_level
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error
    - fu_device_set_battery_level
    - fu_device_set_battery_threshold
    - fu_memread_uint8_safe
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_read_child_battery_level(FuJabraGnpDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:343,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:350,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:350,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 359
    functionName: fu_jabra_gnp_device_read_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_read_dfu_pid(FuJabraGnpDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:382,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:389,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:396,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 405
    functionName: fu_jabra_gnp_device_read_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memstrsafe
    - fu_device_set_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_read_version(FuJabraGnpDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:428,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:435,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - part
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 452
    functionName: fu_jabra_gnp_device_write_partition
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_write_partition(FuJabraGnpDevice *self,
      guint8 part, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:474,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:474,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:481,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 498
    functionName: fu_jabra_gnp_device_start
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_start(FuJabraGnpDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:509,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 524
    functionName: fu_jabra_gnp_device_flash_erase_done
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_flash_erase_done(FuJabraGnpDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:551,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:552,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:553,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:555,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:555,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:562,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - crc
    - total_chunks
    - preload_count
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint32
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 579
    functionName: fu_jabra_gnp_device_write_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_set_error
    - fu_memwrite_uint32
    - FU_DEVICE
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_crc(FuJabraGnpDevice *self,\n\t\t\t
      \     guint32 crc,\n\t\t\t      guint total_chunks,\n\t\t\t      guint preload_count,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:602,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:603,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:604,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - chunk_number
    - buf
    - bufsz
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 619
    functionName: fu_jabra_gnp_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memwrite_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_chunk(FuJabraGnpDevice *self,\n\t\t\t\tguint32
      chunk_number,\n\t\t\t\tconst guint8 *buf,\n\t\t\t\tgsize bufsz,\n\t\t\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:644,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:645,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:645,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:648,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:651,1
    - Dst: fu_jabra_gnp_device_write_chunk
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:654,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:656,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:657,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:661,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:662,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:670,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:676,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:683,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuJabraGnpDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 688
    functionName: fu_jabra_gnp_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - g_set_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_jabra_gnp_device_write_chunk
    - FU_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_progress_set_steps
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_chunks(FuJabraGnpDevice *self,\n\t\t\t\t
      FuChunkArray *chunks,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:699,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 714
    functionName: fu_jabra_gnp_device_read_verify_status
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_read_verify_status(FuJabraGnpDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:741,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:741,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:748,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:748,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - version_data
    - error
    argTypes:
    - FuJabraGnpDevice*
    - FuJabraGnpVersionData*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 765
    functionName: fu_jabra_gnp_device_write_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_version(FuJabraGnpDevice *self,\n\t\t\t\t
      \ FuJabraGnpVersionData *version_data,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:787,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:794,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 811
    functionName: fu_jabra_gnp_device_write_dfu_from_squif
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_write_dfu_from_squif(FuJabraGnpDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:820,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:821,1
    - Dst: fu_jabra_gnp_firmware_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:821,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:824,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:826,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:826,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:827,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:831,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:831,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 836
    functionName: fu_jabra_gnp_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - fu_firmware_parse_stream
    - FU_JABRA_GNP_DEVICE
    - g_autoptr
    - FU_JABRA_GNP_FIRMWARE
    - fu_jabra_gnp_firmware_get_dfu_pid
    - fu_jabra_gnp_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_jabra_gnp_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:841,1
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:842,1
    - Dst: _fu_usb_device_get_interface_for_class
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:848,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:848,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:852,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:859,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 861
    functionName: fu_jabra_gnp_device_probe
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_add_interface
    - FU_JABRA_GNP_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - _fu_usb_device_get_interface_for_class
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:866,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:867,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:871,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:880,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:887,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:887,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:889,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:889,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:890,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:892,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:894,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:895,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:899,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:899,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:900,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:901,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - device
    - dfu_pid
    - error
    argTypes:
    - FuDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 863
    functionDepth: 9
    functionLinenumber: 863
    functionLinenumberEnd: 914
    functionName: fu_jabra_gnp_device_add_child
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - g_set_error
    - fu_device_add_child
    - fu_device_add_private_flag
    - fu_device_setup
    - fu_device_get_vid
    - g_prefix_error
    - fu_device_set_logical_id
    - g_object_new
    - FU_JABRA_GNP_DEVICE
    - FU_DEVICE
    - g_autoptr
    - fu_device_build_instance_id_full
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_add_child(FuDevice *device, guint dfu_pid,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:919,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:920,1
    - Dst: fu_jabra_gnp_device_read_name
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:921,1
    - Dst: fu_jabra_gnp_device_read_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:923,1
    - Dst: fu_jabra_gnp_device_read_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:925,1
    - Dst: fu_jabra_gnp_device_read_child_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:929,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:930,1
    - Dst: fu_jabra_gnp_device_add_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:934,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:934,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:935,1
    - Dst: fu_jabra_gnp_device_read_child_battery_level
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 916
    functionDepth: 10
    functionLinenumber: 916
    functionLinenumberEnd: 952
    functionName: fu_jabra_gnp_device_setup
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_jabra_gnp_device_add_child
    - fu_jabra_gnp_device_read_child_battery_level
    - g_prefix_error
    - fu_jabra_gnp_device_read_dfu_pid
    - FU_JABRA_GNP_DEVICE
    - fu_jabra_gnp_device_read_child_dfu_pid
    - FU_DEVICE
    - g_autoptr
    - fu_jabra_gnp_device_read_version
    - fu_jabra_gnp_device_read_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_setup(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:962,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:963,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:966,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:967,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:968,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:969,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:970,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:971,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:972,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:975,1
    - Dst: fu_jabra_gnp_device_write_partition
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:978,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:978,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:980,1
    - Dst: fu_jabra_gnp_device_start
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:983,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:985,1
    - Dst: fu_jabra_gnp_device_flash_erase_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:988,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:990,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:993,1
    - Dst: fu_jabra_gnp_device_write_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1000,1
    - Dst: fu_jabra_gnp_image_get_crc32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1001,1
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1001,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1002,1
    - Dst: fu_jabra_gnp_device_write_chunks
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1006,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1006,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1008,1
    - Dst: fu_jabra_gnp_device_read_verify_status
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1011,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1013,1
    - Dst: fu_jabra_gnp_device_write_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1016,1
    - Dst: fu_jabra_gnp_firmware_get_version_data
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1018,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1018,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - self
    - firmware
    - img
    - progress
    - error
    argTypes:
    - FuJabraGnpDevice*
    - FuFirmware*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 954
    functionDepth: 5
    functionLinenumber: 954
    functionLinenumberEnd: 1025
    functionName: fu_jabra_gnp_device_write_image
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - fu_jabra_gnp_device_read_verify_status
    - fu_jabra_gnp_image_get_crc32
    - fu_progress_get_child
    - fu_jabra_gnp_device_start
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_jabra_gnp_device_write_partition
    - fu_jabra_gnp_device_flash_erase_done
    - FU_JABRA_GNP_FIRMWARE
    - fu_progress_step_done
    - fu_jabra_gnp_device_write_chunks
    - fu_firmware_get_idx
    - g_autoptr
    - fu_jabra_gnp_firmware_get_version_data
    - fu_chunk_array_new_from_stream
    - fu_jabra_gnp_device_write_version
    - fu_jabra_gnp_device_write_crc
    - FU_JABRA_GNP_IMAGE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_image(FuJabraGnpDevice *self,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuFirmware *img,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1034,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1035,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1035,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1038,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1039,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1041,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1042,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1044,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1045,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1048,1
    - Dst: fu_jabra_gnp_device_write_image
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1049,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1052,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1054,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1054,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1057,1
    - Dst: fu_jabra_gnp_device_write_dfu_from_squif
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1027
    functionDepth: 6
    functionLinenumber: 1027
    functionLinenumberEnd: 1064
    functionName: fu_jabra_gnp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_jabra_gnp_device_write_dfu_from_squif
    - fu_firmware_get_images
    - FU_JABRA_GNP_DEVICE
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_jabra_gnp_device_write_image
    - g_autoptr
    - fu_firmware_get_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1069,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1072,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1072,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1073,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1073,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1074,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 6
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    functionName: fu_jabra_gnp_device_attach
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_device_add_flag
    - FU_JABRA_GNP_DEVICE
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1085,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1087,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1089,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1101
    functionName: fu_jabra_gnp_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - FU_JABRA_GNP_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      const gchar *key,\n\t\t\t\t const gchar *value,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1106,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1107,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1108,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1109,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1110,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1103
    functionDepth: 3
    functionLinenumber: 1103
    functionLinenumberEnd: 1112
    functionName: fu_jabra_gnp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1118,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1119,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1120,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1121,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1122,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1123,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1124,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1114
    functionDepth: 6
    functionLinenumber: 1114
    functionLinenumberEnd: 1126
    functionName: fu_jabra_gnp_device_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_device_init(FuJabraGnpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1140
    functionName: fu_jabra_gnp_device_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_device_class_init(FuJabraGnpDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wacom_raw_response_get_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:18,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:19,1
    - Dst: fu_struct_wacom_raw_request_get_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:24,1
    - Dst: fu_struct_wacom_raw_request_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:27,1
    - Dst: fu_struct_wacom_raw_response_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:28,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:29,1
    - Dst: fu_struct_wacom_raw_request_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:33,1
    - Dst: fu_struct_wacom_raw_response_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:34,1
    - Dst: fu_struct_wacom_raw_request_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:37,1
    - Dst: fu_struct_wacom_raw_response_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:39,1
    - Dst: fu_struct_wacom_raw_request_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:43,1
    - Dst: fu_struct_wacom_raw_response_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - st_req
    - st_rsp
    - error
    argTypes:
    - FuStructWacomRawRequest*
    - FuStructWacomRawResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 48
    functionName: fu_wacom_common_check_reply
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_wacom_raw_request_get_cmd
    - fu_struct_wacom_raw_request_get_report_id
    - fu_struct_wacom_raw_response_get_report_id
    - fu_struct_wacom_raw_request_get_echo
    - fu_struct_wacom_raw_response_get_cmd
    - fu_struct_wacom_raw_response_get_echo
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_common_check_reply(const FuStructWacomRawRequest
      *st_req,\n\t\t\t    const FuStructWacomRawResponse *st_rsp,\n\t\t\t    GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wacom_raw_response_get_resp
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:61,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:68,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:86,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - st_rsp
    - error
    argTypes:
    - FuStructWacomRawResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: fu_wacom_common_rc_set_error
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_wacom_raw_response_get_resp
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_common_rc_set_error(const FuStructWacomRawResponse
      *st_rsp, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - datasz
    argTypes:
    - guint8*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: fu_wacom_common_block_is_empty
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_common_block_is_empty(const guint8 *data, guint16
      datasz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_EMR_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:23,1
    - Dst: fu_wacom_device_check_mpu
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:26,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:26,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:30,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:31,1
    - Dst: fu_wacom_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:35,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:35,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:37,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:44,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 50
    functionName: fu_wacom_emr_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - FU_WACOM_EMR_DEVICE
    - fu_wacom_device_check_mpu
    - fu_device_has_flag
    - fu_device_remove_flag
    - fu_device_set_version_raw
    - fu_wacom_device_get_feature
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_emr_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - init1
    - buf
    - bufsz
    argTypes:
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: fu_wacom_emr_device_calc_checksum
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_sum8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_emr_device_calc_checksum(guint8 init1, const guint8
      *buf, gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:61,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:61,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:64,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:65,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:66,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:67,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:67,1
    - Dst: fu_wacom_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:69,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:72,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:72,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:78,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomEmrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 83
    functionName: fu_wacom_emr_device_w9013_erase_data
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_device_cmd
    - FU_WACOM_DEVICE
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - g_usleep
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_wacom_device_get_echo_next
    - fu_wacom_emr_device_calc_checksum
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_emr_device_w9013_erase_data(FuWacomEmrDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:91,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:91,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:94,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:95,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:96,1
    - Dst: fu_wacom_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:98,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:101,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:101,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:107,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - self
    - idx
    - block_nr
    - error
    argTypes:
    - FuWacomEmrDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 112
    functionName: fu_wacom_emr_device_w9013_erase_code
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_device_cmd
    - FU_WACOM_DEVICE
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - g_usleep
    - fu_wacom_emr_device_calc_checksum
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_emr_device_w9013_erase_code(FuWacomEmrDevice *self,\n\t\t\t\t
      \    guint8 idx,\n\t\t\t\t     guint8 block_nr,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:117,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:117,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:119,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:120,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:121,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:122,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:122,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:128,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomEmrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: fu_wacom_emr_device_w9021_erase_all
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_device_cmd
    - FU_WACOM_DEVICE
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - g_usleep
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_emr_device_w9021_erase_all(FuWacomEmrDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:139,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:139,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:142,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:146,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:147,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:148,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:149,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:149,1
    - Dst: fu_wacom_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:151,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:156,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:157,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 164
    functionName: fu_wacom_emr_device_attach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_struct_wacom_raw_request_set_echo
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_struct_wacom_raw_request_set_cmd
    - fu_wacom_device_get_echo_next
    - FU_WACOM_DEVICE
    - fu_wacom_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_emr_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_device_get_block_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:174,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:175,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:188,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:198,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:199,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:200,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:201,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:202,1
    - Dst: fu_struct_wacom_raw_request_set_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:203,1
    - Dst: fu_wacom_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:208,1
    - Dst: fu_wacom_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:209,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:210,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:210,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - self
    - idx
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuWacomEmrDevice*
    - guint32
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 220
    functionName: fu_wacom_emr_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_addr
    - g_set_error
    - fu_wacom_device_cmd
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_wacom_device_get_block_sz
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_set_data
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_cmd
    - fu_wacom_emr_device_calc_checksum
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_emr_device_write_block(FuWacomEmrDevice *self,\n\t\t\t\tguint32
      idx,\n\t\t\t\tguint32 address,\n\t\t\t\tconst guint8 *data,\n\t\t\t\tgsize datasz,\n\t\t\t\tGError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_EMR_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:228,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:232,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:235,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:238,1
    - Dst: fu_wacom_emr_device_w9013_erase_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:239,1
    - Dst: fu_wacom_emr_device_w9013_erase_code
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:242,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:248,1
    - Dst: fu_wacom_emr_device_w9021_erase_all
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:249,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:252,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:256,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:259,1
    - Dst: fu_wacom_common_block_is_empty
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:262,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:262,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:263,1
    - Dst: fu_wacom_emr_device_write_block
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:265,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:266,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:267,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:268,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:269,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:272,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:272,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:274,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - device
    - chunks
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 279
    functionName: fu_wacom_emr_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_chunk_get_idx
    - fu_wacom_emr_device_w9013_erase_data
    - fu_wacom_emr_device_w9013_erase_code
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_wacom_common_block_is_empty
    - FU_WACOM_EMR_DEVICE
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_device_has_instance_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_wacom_emr_device_w9021_erase_all
    - fu_wacom_emr_device_write_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_emr_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:284,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: fu_wacom_emr_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wacom_emr_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:290,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomEmrDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: fu_wacom_emr_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_wacom_emr_device_init(FuWacomEmrDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:297,1
    - Dst: FU_WACOM_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomEmrDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: fu_wacom_emr_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_emr_device_class_init(FuWacomEmrDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 1536
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:25,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:26,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: fu_wacom_device_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: fu_wacom_device_get_echo_next
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_device_get_echo_next(FuWacomDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_wacom_device_get_block_sz
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gsize
    signature: gsize fu_wacom_device_get_block_sz(FuWacomDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:56,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:56,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:58,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:59,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:60,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:60,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:67,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:73,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 94
    functionName: fu_wacom_device_check_mpu
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 1
    functionsReached:
    - fu_device_add_instance_id_full
    - g_set_error
    - fu_wacom_device_cmd
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - FU_DEVICE
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_wacom_device_get_echo_next
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_check_mpu(FuWacomDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:100,1
    - Dst: fu_struct_wacom_raw_fw_detach_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:101,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:103,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:104,1
    - Dst: fu_wacom_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:107,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:109,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:112,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:119,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:120,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:122,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: fu_wacom_device_detach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_propagate_prefixed_error
    - g_steal_pointer
    - g_error_matches
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    - fu_struct_wacom_raw_fw_detach_request_new
    - FU_WACOM_DEVICE
    - fu_wacom_device_set_feature
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:132,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:132,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:134,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:135,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:136,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:136,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:137,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: fu_wacom_device_check_mode
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_wacom_device_cmd
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_wacom_device_get_echo_next
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_check_mode(FuWacomDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:162,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:162,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:164,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:165,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:166,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:166,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:173,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:176,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: fu_wacom_device_set_version_bootloader
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_device_cmd
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - g_strdup_printf
    - fu_device_set_version_bootloader
    - fu_struct_wacom_raw_request_set_echo
    - FU_DEVICE
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_wacom_device_get_echo_next
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_set_version_bootloader(FuWacomDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:188,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:189,1
    - Dst: FU_WACOM_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:192,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:195,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:195,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:198,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:199,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:203,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:206,1
    - Dst: fu_wacom_device_check_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:211,1
    - Dst: fu_wacom_device_set_version_bootloader
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:213,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:217,1
    - Dst: FuWacomDeviceClass*::write_firmware
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 222
    functionName: fu_wacom_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_WACOM_DEVICE_GET_CLASS
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_wacom_device_check_mode
    - FuWacomDeviceClass*::write_firmware
    - fu_firmware_get_addr
    - GET_PRIVATE
    - g_autoptr
    - fu_wacom_device_set_version_bootloader
    - FU_WACOM_DEVICE
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_device_write_firmware(FuDevice *device,\n\t\t\t
      \      FuFirmware *firmware,\n\t\t\t       FuProgress *progress,\n\t\t\t       FwupdInstallFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:227,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuWacomDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: fu_wacom_device_get_feature
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 1
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_get_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_get_feature(FuWacomDevice *self, guint8 *data,
      guint datasz, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:237,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuWacomDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: fu_wacom_device_set_feature
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 2
    functionsReached:
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_set_feature(FuWacomDevice *self, const guint8
      *data, guint datasz, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:252,1
    - Dst: fu_wacom_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:254,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:255,1
    - Dst: fu_struct_wacom_raw_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:258,1
    - Dst: fu_wacom_common_check_reply
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:261,1
    - Dst: fu_wacom_common_rc_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:264,1
    - Dst: fu_struct_wacom_raw_response_get_resp
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - self
    - st_req
    - rsp_value
    - flags
    - error
    argTypes:
    - FuWacomDevice*
    - FuStructWacomRawRequest*
    - guint8*
    - FuWacomDeviceCmdFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: fu_wacom_device_cmd_response
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_common_rc_set_error
    - fu_struct_wacom_raw_response_parse
    - g_prefix_error
    - fu_wacom_common_check_reply
    - g_autoptr
    - fu_wacom_device_get_feature
    - fu_struct_wacom_raw_response_get_resp
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_device_cmd_response(FuWacomDevice *self,\n\t\t\t
      \    const FuStructWacomRawRequest *st_req,\n\t\t\t     guint8 *rsp_value,\n\t\t\t
      \    FuWacomDeviceCmdFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:285,1
    - Dst: fu_wacom_device_cmd_response
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: fu_wacom_device_cmd_response_cb
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_DEVICE
    - fu_wacom_device_cmd_response
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_cmd_response_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:302,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:303,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:306,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:311,1
    - Dst: fu_wacom_device_cmd_response
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - st_req
    - rsp_value
    - delay_ms
    - flags
    - error
    argTypes:
    - FuWacomDevice*
    - FuStructWacomRawRequest*
    - guint8*
    - guint
    - FuWacomDeviceCmdFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 319
    functionName: fu_wacom_device_cmd
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 7
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    - FU_DEVICE
    - fu_wacom_device_cmd_response
    - fu_wacom_device_set_feature
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_device_cmd(FuWacomDevice *self,\n\t\t    const FuStructWacomRawRequest
      *st_req,\n\t\t    guint8 *rsp_value,\n\t\t    guint delay_ms,\n\t\t    FuWacomDeviceCmdFlags
      flags,\n\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:324,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:328,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:329,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:334,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:335,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 345
    functionName: fu_wacom_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - FU_WACOM_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_device_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:350,1
    - Dst: FU_IS_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:350,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:351,1
    - Dst: FU_IS_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:351,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:354,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: fu_wacom_device_replace
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - fu_device_add_private_flag
    - FU_IS_WACOM_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_wacom_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:363,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:364,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:365,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:366,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:367,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: fu_wacom_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wacom_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:374,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:376,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:377,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:378,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:379,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:380,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:381,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:381,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:382,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:382,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:383,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:384,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:385,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:386,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 389
    functionName: fu_wacom_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - GET_PRIVATE
    - FU_UDEV_DEVICE
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_wacom_device_init(FuWacomDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: fu_wacom_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_device_class_init(FuWacomDeviceClass *klass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:22,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:23,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:25,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:26,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:27,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:28,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:29,1
    - Dst: fu_wacom_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:30,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:30,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:31,1
    - Dst: fu_wacom_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:34,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:34,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:35,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:39,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_get_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:42,1
    - Dst: fu_struct_wacom_raw_request_get_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:43,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:44,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_get_pid
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:50,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:52,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:61,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:62,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:63,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:65,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomAesDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 67
    functionName: fu_wacom_aes_device_add_recovery_hwid
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_get_size8
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_cmd
    - g_set_error
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_set_report_id
    - fu_device_add_instance_u16
    - g_autoptr
    - fu_struct_wacom_raw_bl_verify_response_parse
    - fu_wacom_device_set_feature
    - fu_struct_wacom_raw_request_set_addr
    - fu_struct_wacom_raw_bl_verify_response_get_size8
    - fu_struct_wacom_raw_request_new
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_wacom_device_get_feature
    - fu_struct_wacom_raw_bl_verify_response_get_pid
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_aes_device_add_recovery_hwid(FuWacomAesDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:74,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:75,1
    - Dst: fu_wacom_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:77,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:77,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:80,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_response_get_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuWacomAesDevice*
    - FuWacomRawOperationMode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: fu_wacom_aes_device_query_operation_mode
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_fw_query_mode_response_parse
    - fu_struct_wacom_raw_fw_query_mode_request_new
    - g_autoptr
    - fu_wacom_device_get_feature
    - FU_WACOM_DEVICE
    - fu_struct_wacom_raw_fw_query_mode_response_get_mode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_aes_device_query_operation_mode(FuWacomAesDevice
      *self,\n\t\t\t\t\t FuWacomRawOperationMode *mode,\n\t\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_AES_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:93,1
    - Dst: fu_wacom_aes_device_query_operation_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:96,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:100,1
    - Dst: fu_wacom_aes_device_add_recovery_hwid
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:102,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:106,1
    - Dst: fu_struct_wacom_raw_fw_status_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:108,1
    - Dst: fu_wacom_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:111,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:111,1
    - Dst: fu_struct_wacom_raw_fw_status_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:116,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:122,1
    - Dst: fu_struct_wacom_raw_fw_status_response_get_version_major
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:124,1
    - Dst: fu_struct_wacom_raw_fw_status_response_get_version_minor
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:125,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 138
    functionName: fu_wacom_aes_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_fw_status_response_get_version_major
    - fu_device_set_version
    - g_set_error
    - g_debug
    - fu_struct_wacom_raw_fw_status_request_new
    - fu_struct_wacom_raw_fw_status_response_get_version_minor
    - g_strdup_printf
    - fu_struct_wacom_raw_fw_status_response_parse
    - g_autoptr
    - fu_wacom_aes_device_query_operation_mode
    - fu_wacom_device_get_feature
    - FU_WACOM_AES_DEVICE
    - fu_wacom_aes_device_add_recovery_hwid
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_aes_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:144,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:144,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:147,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:151,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:152,1
    - Dst: fu_wacom_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:153,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:154,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:159,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:160,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:163,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 169
    functionName: fu_wacom_aes_device_attach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_struct_wacom_raw_request_set_cmd
    - FU_WACOM_DEVICE
    - fu_wacom_device_set_feature
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_aes_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:174,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:174,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:176,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:177,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:178,1
    - Dst: fu_wacom_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:179,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:179,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:180,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:186,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuWacomAesDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 171
    functionDepth: 7
    functionLinenumber: 171
    functionLinenumberEnd: 191
    functionName: fu_wacom_aes_device_erase_all
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_wacom_device_cmd
    - FU_WACOM_DEVICE
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_struct_wacom_raw_request_set_echo
    - FU_DEVICE
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_wacom_device_get_echo_next
    - fu_struct_wacom_raw_request_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_aes_device_erase_all(FuWacomAesDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_device_get_block_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:201,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:202,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:202,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:206,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:216,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:217,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:218,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:219,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:220,1
    - Dst: fu_struct_wacom_raw_request_set_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:221,1
    - Dst: fu_wacom_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:223,1
    - Dst: FU_WACOM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:223,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - idx
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuWacomAesDevice*
    - guint32
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 233
    functionName: fu_wacom_aes_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_addr
    - g_set_error
    - fu_wacom_device_cmd
    - fu_struct_wacom_raw_request_new
    - g_prefix_error
    - fu_wacom_device_get_block_sz
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_set_data
    - g_autoptr
    - fu_struct_wacom_raw_request_set_report_id
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_cmd
    - FU_WACOM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_aes_device_write_block(FuWacomAesDevice *self,\n\t\t\t\tguint32
      idx,\n\t\t\t\tguint32 address,\n\t\t\t\tconst guint8 *data,\n\t\t\t\tgsize datasz,\n\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_AES_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:241,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:244,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:245,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:246,1
    - Dst: fu_wacom_aes_device_erase_all
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:249,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:249,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:251,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:255,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:258,1
    - Dst: fu_wacom_aes_device_write_block
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:261,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:262,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:263,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:264,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:265,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:268,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:268,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:270,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - device
    - chunks
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 235
    functionDepth: 8
    functionLinenumber: 235
    functionLinenumberEnd: 274
    functionName: fu_wacom_aes_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_add_step
    - fu_wacom_aes_device_write_block
    - fu_chunk_get_idx
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - FU_WACOM_AES_DEVICE
    - fu_wacom_aes_device_erase_all
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_aes_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuChunkArray *chunks,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:279,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomAesDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: fu_wacom_aes_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_wacom_aes_device_init(FuWacomAesDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:286,1
    - Dst: FU_WACOM_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomAesDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: fu_wacom_aes_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_aes_device_class_init(FuWacomAesDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:24,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:24,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:25,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:27,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:28,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: fu_wacom_raw_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_get_devices
    - fu_plugin_cache_add
    - fu_device_has_flag
    - g_ptr_array_index
    - FU_IS_DRM_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:37,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: fu_wacom_raw_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_cache_lookup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_plugin_device_created(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: fu_wacom_raw_plugin_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_plugin_init(FuWacomRawPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:51,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:52,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:53,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:54,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:55,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:56,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:57,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: fu_wacom_raw_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomRawPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: fu_wacom_raw_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_plugin_class_init(FuWacomRawPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:25,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:28,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:32,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:32,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:34,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:42,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:43,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:45,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:46,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:48,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:48,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:52,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 57
    functionName: fu_thelio_io_device_probe
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_set_version
    - g_file_get_contents
    - g_debug
    - g_steal_pointer
    - g_error_matches
    - g_build_filename
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - G_UNLIKELY
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thelio_io_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:64,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:67,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:67,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:69,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:76,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:77,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:80,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 89
    functionName: fu_thelio_io_device_detach
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - g_build_filename
    - fu_io_channel_new_file
    - g_set_error_literal
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - G_UNLIKELY
    - fu_io_channel_write_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thelio_io_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:94,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:95,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:96,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:97,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:98,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:99,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: fu_thelio_io_device_set_progress
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:106,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:107,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:108,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:109,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:110,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:111,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThelioIoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: fu_thelio_io_device_init
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_device_init(FuThelioIoDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThelioIoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: fu_thelio_io_device_class_init
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_device_class_init(FuThelioIoDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThelioIoPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_thelio_io_plugin_init
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_plugin_init(FuThelioIoPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_thelio_io_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThelioIoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_thelio_io_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_plugin_class_init(FuThelioIoPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:71,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:71,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:73,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:74,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:75,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:78,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:79,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:79,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 101
    functionName: fu_hpi_cfu_device_start_entire_transaction
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_hpi_cfu_buf_set_report_data
    - fu_usb_device_control_transfer
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_struct_hpi_cfu_buf_new
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_start_entire_transaction(FuHpiCfuDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:108,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:110,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:118,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: fu_hpi_cfu_device_start_entire_transaction_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_start_entire_transaction_accepted(FuHpiCfuDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:137,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:137,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:139,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:140,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:141,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:144,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:145,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 167
    functionName: fu_hpi_cfu_device_send_start_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_hpi_cfu_buf_set_report_data
    - fu_usb_device_control_transfer
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_struct_hpi_cfu_buf_new
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_send_start_offer_list(FuHpiCfuDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:174,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:176,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:176,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:184,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:190,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:194,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:197,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:197,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:200,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 207
    functionName: fu_hpi_cfu_device_send_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_warning
    - g_debug
    - g_set_error_literal
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_send_offer_list_accepted(FuHpiCfuDevice
      *self, gint8 *status, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:217,1
    - Dst: fu_struct_hpi_cfu_offer_cmd_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:219,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:221,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:224,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:226,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:227,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:230,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:231,1
    - Dst: fu_struct_hpi_cfu_offer_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:232,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:234,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:235,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:235,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - fw_offer
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 257
    functionName: fu_hpi_cfu_device_send_offer_update_command
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    - fu_struct_hpi_cfu_offer_cmd_set_flags
    - fu_memcpy_safe
    - fu_usb_device_control_transfer
    - fu_struct_hpi_cfu_offer_cmd_new
    - g_set_error_literal
    - fu_struct_hpi_cfu_payload_cmd_set_report_id
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_send_offer_update_command(FuHpiCfuDevice
      *self,\n\t\t\t\t\t    FuFirmware *fw_offer,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:267,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:269,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:269,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:277,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:283,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:288,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:291,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:291,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:293,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - reply
    - reason
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gint8*
    - gint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 301
    functionName: fu_hpi_cfu_device_firmware_update_offer_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_debug
    - g_set_error_literal
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_firmware_update_offer_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t gint8 *reply,\n\t\t\t\t\t\t gint8 *reason,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:313,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:315,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:316,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:316,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:324,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:330,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:335,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:336,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:337,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:344,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:346,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 6
    argNames:
    - self
    - lastpacket
    - report_id
    - reason
    - status
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gboolean*
    - guint8*
    - guint8*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 360
    functionName: fu_hpi_cfu_device_read_content_ack
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_debug
    - fu_cfu_offer_status_to_string
    - fu_cfu_content_status_to_string
    - g_set_error_literal
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_read_content_ack(FuHpiCfuDevice *self,\n\t\t\t\t
      \  gboolean *lastpacket,\n\t\t\t\t   guint8 *report_id,\n\t\t\t\t   guint8 *reason,\n\t\t\t\t
      \  guint8 *status,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reply
    argTypes:
    - gint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: fu_hpi_cfu_device_firmware_update_offer_rejected
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_firmware_update_offer_rejected(gint8 reply)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:376,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:376,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:378,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:379,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:380,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:383,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:384,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 406
    functionName: fu_hpi_cfu_device_send_end_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_hpi_cfu_buf_set_report_data
    - fu_usb_device_control_transfer
    - g_set_error_literal
    - g_autoptr
    - FU_USB_DEVICE
    - fu_struct_hpi_cfu_buf_new
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_send_end_offer_list(FuHpiCfuDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:413,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:415,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:415,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:423,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:429,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:431,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:432,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:432,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:437,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:438,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:440,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 447
    functionName: fu_hpi_cfu_device_end_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_interrupt_transfer
    - g_warning
    - g_debug
    - g_set_error_literal
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_end_offer_list_accepted(FuHpiCfuDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_start_entire_transaction
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:455,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 462
    functionName: fu_hpi_cfu_device_handler_start_entire_transaction
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hpi_cfu_device_start_entire_transaction
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_start_entire_transaction(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t\t   FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_start_entire_transaction_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:470,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:472,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 479
    functionName: fu_hpi_cfu_device_handler_start_entire_transaction_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_prefix_error
    - fu_hpi_cfu_device_start_entire_transaction_accepted
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_start_entire_transaction_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t\t\t    FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_start_offer_list
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:487,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 481
    functionDepth: 4
    functionLinenumber: 481
    functionLinenumberEnd: 496
    functionName: fu_hpi_cfu_device_handler_send_start_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_send_start_offer_list
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_start_offer_list(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_offer_list_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:508,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: fu_hpi_cfu_device_handler_send_start_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_prefix_error
    - fu_hpi_cfu_device_send_offer_list_accepted
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_start_offer_list_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t\t\t FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_offer_update_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:527,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 534
    functionName: fu_hpi_cfu_device_handler_send_offer_update_command
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_send_offer_update_command
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_offer_update_command(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t\t    FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_firmware_update_offer_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:545,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:547,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:551,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:552,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:560,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:561,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:564,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:565,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:571,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 584
    functionName: fu_hpi_cfu_device_handler_send_offer_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_progress_step_done
    - g_debug
    - fu_hpi_cfu_firmware_update_offer_to_string
    - fu_hpi_cfu_device_firmware_update_offer_accepted
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_offer_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t      FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:589,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:589,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:590,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:592,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:596,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:598,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_length
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:600,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_seq_number
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:601,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_address
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:602,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:604,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:609,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:610,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:610,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - cfu_buf
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 632
    functionName: fu_hpi_cfu_device_send_payload
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_hpi_cfu_payload_cmd_new
    - fu_struct_hpi_cfu_payload_cmd_set_flags
    - fu_struct_hpi_cfu_payload_cmd_set_data
    - fu_usb_device_control_transfer
    - fu_struct_hpi_cfu_payload_cmd_set_seq_number
    - fu_struct_hpi_cfu_payload_cmd_set_address
    - fu_struct_hpi_cfu_payload_cmd_set_report_id
    - g_set_error_literal
    - fu_struct_hpi_cfu_payload_cmd_set_length
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_send_payload(FuHpiCfuDevice *self, GByteArray
      *cfu_buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:643,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - payload_data
    - untransmitted_data
    - payload_header_length
    - fill_from_position
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - gint8
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 652
    functionName: fu_hpi_cfu_device_untransmitted_data
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_untransmitted_data(GByteArray *payload_data,\n\t\t\t\t
      \    GByteArray *untransmitted_data,\n\t\t\t\t     gint8 payload_header_length,\n\t\t\t\t
      \    guint32 fill_from_position,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:660,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - payload_header
    - payload_buf
    - read_index
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 669
    functionName: fu_hpi_cfu_device_get_payload_header
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_get_payload_header(GByteArray *payload_header,\n\t\t\t\t
      \    GByteArray *payload_buf,\n\t\t\t\t     guint32 read_index,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:678,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - payload_data
    - payload_buf
    - payload_header_length
    - read_index
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - gint8
    - gint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: fu_hpi_cfu_device_get_payload_data
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_get_payload_data(GByteArray *payload_data,\n\t\t\t\t
      \  GByteArray *payload_buf,\n\t\t\t\t   gint8 payload_header_length,\n\t\t\t\t
      \  gint32 read_index,\n\t\t\t\t   GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:702,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:703,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:709,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:709,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:712,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:717,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:726,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:732,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:733,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:737,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:737,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:740,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:743,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:751,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:756,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - self
    - payload_header_length
    - payload_data
    - untransmitted_data
    - cfu_data
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gint32
    - GByteArray*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 689
    functionDepth: 4
    functionLinenumber: 689
    functionLinenumberEnd: 763
    functionName: fu_hpi_cfu_device_send_append_untransmitted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hpi_cfu_device_send_payload
    - g_prefix_error
    - g_autoptr
    - g_byte_array_append
    - fu_hpi_cfu_device_untransmitted_data
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_send_append_untransmitted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t    gint32 payload_header_length,\n\t\t\t\t\t    GByteArray
      *payload_data,\n\t\t\t\t\t    GByteArray *untransmitted_data,\n\t\t\t\t\t    GByteArray
      *cfu_data,\n\t\t\t\t\t    GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:775,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:776,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:781,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:782,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:784,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:785,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:792,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:793,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - status
    - lastpacket
    argTypes:
    - FuHpiCfuDevice*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 802
    functionName: fu_hpi_cfu_device_handler_set_status_report_25
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_hpi_cfu_firmware_update_offer_to_string
    linkageType: ''
    returnType: void
    signature: "void fu_hpi_cfu_device_handler_set_status_report_25(FuHpiCfuDevice
      *self,\n\t\t\t\t\t       guint8 status,\n\t\t\t\t\t       gboolean lastpacket)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:822,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:823,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:824,1
    - Dst: fu_hpi_cfu_firmware_update_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:825,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:829,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - status
    - lastpacket
    argTypes:
    - FuHpiCfuDevice*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 840
    functionName: fu_hpi_cfu_device_handler_set_status_report_22
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_warning
    - fu_cfu_content_status_to_string
    - g_debug
    - fu_hpi_cfu_firmware_update_status_to_string
    linkageType: ''
    returnType: void
    signature: "void fu_hpi_cfu_device_handler_set_status_report_22(FuHpiCfuDevice
      *self,\n\t\t\t\t\t       guint8 status,\n\t\t\t\t\t       gboolean lastpacket)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:855,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:856,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:867,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:882,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:897,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:911,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:930,1
    - Dst: fu_hpi_cfu_device_handler_set_status_report_25
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:931,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:933,1
    - Dst: fu_hpi_cfu_device_handler_set_status_report_22
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:934,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 939
    functionName: fu_hpi_cfu_device_handler_check_update_content
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_handler_set_status_report_22
    - g_debug
    - fu_hpi_cfu_device_read_content_ack
    - fu_hpi_cfu_device_handler_set_status_report_25
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_check_update_content(FuHpiCfuDevice
      *self,\n\t\t\t\t\t       FuProgress *progress,\n\t\t\t\t\t       FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t       GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:948,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:948,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:949,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:949,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:951,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:951,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:951,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:954,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:954,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:955,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:955,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:956,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:956,1
    - Dst: fu_hpi_cfu_device_get_payload_header
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:960,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:964,1
    - Dst: fu_hpi_cfu_device_get_payload_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:974,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:979,1
    - Dst: fu_hpi_cfu_device_send_append_untransmitted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:990,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1007,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1011,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1019,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1024,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1035,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1039,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1046,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1046,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1049,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1052,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1062,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1063,1
    - Dst: fu_hpi_cfu_device_handler_check_update_content
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1068,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuChunk*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 941
    functionDepth: 5
    functionLinenumber: 941
    functionLinenumberEnd: 1076
    functionName: fu_hpi_cfu_device_handler_send_payload_chunk
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_hpi_cfu_device_send_payload
    - fu_hpi_cfu_device_get_payload_header
    - g_debug
    - fu_hpi_cfu_device_handler_check_update_content
    - fu_hpi_cfu_device_get_payload_data
    - fu_memcpy_safe
    - fu_chunk_get_data
    - g_autoptr
    - g_byte_array_append
    - fu_hpi_cfu_device_untransmitted_data
    - g_byte_array_new
    - fu_hpi_cfu_device_send_append_untransmitted
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_payload_chunk(FuHpiCfuDevice
      *self,\n\t\t\t\t\t     FuChunk *chk,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    FuHpiCfuHandlerOptions *options,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1084,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1086,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1088,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1092,1
    - Dst: fu_hpi_cfu_device_handler_send_payload_chunk
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1093,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1078
    functionDepth: 6
    functionLinenumber: 1078
    functionLinenumberEnd: 1104
    functionName: fu_hpi_cfu_device_handler_send_payload
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_chunks
    - g_prefix_error
    - g_ptr_array_index
    - fu_hpi_cfu_device_handler_send_payload_chunk
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_payload(FuHpiCfuDevice *self,\n\t\t\t\t
      \      FuProgress *progress,\n\t\t\t\t       FuHpiCfuHandlerOptions *options,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1119
    functionName: fu_hpi_cfu_device_handler_update_success
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_update_success(FuHpiCfuDevice *self,\n\t\t\t\t\t
      FuProgress *progress,\n\t\t\t\t\t FuHpiCfuHandlerOptions *options,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1132
    functionName: fu_hpi_cfu_device_handler_update_offer_rejected
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_update_offer_rejected(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1145
    functionName: fu_hpi_cfu_device_handler_update_more_offers
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_update_more_offers(FuHpiCfuDevice
      *self,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t     FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_end_offer_list
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1153,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1160
    functionName: fu_hpi_cfu_device_handler_send_end_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hpi_cfu_device_send_end_offer_list
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_send_end_offer_list(FuHpiCfuDevice
      *self,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t      FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_end_offer_list_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1168,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1162
    functionDepth: 4
    functionLinenumber: 1162
    functionLinenumberEnd: 1174
    functionName: fu_hpi_cfu_device_handler_end_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hpi_cfu_device_end_offer_list_accepted
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_end_offer_list_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t\t  FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1176
    functionDepth: 4
    functionLinenumber: 1176
    functionLinenumberEnd: 1185
    functionName: fu_hpi_cfu_device_handler_update_stop
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_update_stop(FuHpiCfuDevice *self,\n\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t      FuHpiCfuHandlerOptions *options,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: fu_hpi_cfu_device_handler_error
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_error(FuHpiCfuDevice *self,\n\t\t\t\tFuProgress
      *progress,\n\t\t\t\tFuHpiCfuHandlerOptions *options,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1206
    functionName: fu_hpi_cfu_device_handler_notify_on_ready
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_notify_on_ready(FuHpiCfuDevice
      *self,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t  FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1216
    functionName: fu_hpi_cfu_device_handler_wait_for_ready_notification
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_wait_for_ready_notification(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t\t      FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_start_offer_list
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1233
    functionName: fu_hpi_cfu_device_handler_swap_pending_send_offer_list_again
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_send_start_offer_list
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_send_offer_list_again(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t\t\t     FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_offer_list_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1243,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1235
    functionDepth: 4
    functionLinenumber: 1235
    functionLinenumberEnd: 1255
    functionName: fu_hpi_cfu_device_handler_swap_pending_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hpi_cfu_device_send_offer_list_accepted
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_offer_list_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t\t\t   FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_offer_update_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1263,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1257
    functionDepth: 4
    functionLinenumber: 1257
    functionLinenumberEnd: 1270
    functionName: fu_hpi_cfu_device_handler_swap_pending_send_offer_again
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_send_offer_update_command
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_send_offer_again(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\t\tFuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_firmware_update_offer_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1283,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1288,1
    - Dst: fu_hpi_cfu_device_firmware_update_offer_rejected
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1292,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1293,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1296,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1308,1
    - Dst: fu_hpi_cfu_firmware_offer_reject_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1309,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1322
    functionName: fu_hpi_cfu_device_handler_swap_pending_send_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_hpi_cfu_device_firmware_update_offer_accepted
    - g_prefix_error
    - fu_hpi_cfu_firmware_offer_reject_to_string
    - fu_cfu_rr_code_to_string
    - fu_hpi_cfu_device_firmware_update_offer_rejected
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_send_offer_list_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\t\t\tFuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_send_end_offer_list
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1330,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1331,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1324
    functionDepth: 4
    functionLinenumber: 1324
    functionLinenumberEnd: 1339
    functionName: fu_hpi_cfu_device_handler_swap_pending_send_end_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - g_prefix_error
    - fu_hpi_cfu_device_send_end_offer_list
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_send_end_offer_list(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t\t\t   FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hpi_cfu_device_end_offer_list_accepted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1347,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1341
    functionDepth: 4
    functionLinenumber: 1341
    functionLinenumberEnd: 1354
    functionName: fu_hpi_cfu_device_handler_swap_pending_end_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_hpi_cfu_device_end_offer_list_accepted
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_swap_pending_end_offer_list_accepted(FuHpiCfuDevice
      *self,\n\t\t\t\t\t\t\t       FuProgress *progress,\n\t\t\t\t\t\t\t       FuHpiCfuHandlerOptions
      *options,\n\t\t\t\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1365
    functionName: fu_hpi_cfu_device_handler_verify_error
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_handler_verify_error(FuHpiCfuDevice *self,\n\t\t\t\t
      \      FuProgress *progress,\n\t\t\t\t       FuHpiCfuHandlerOptions *options,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HPI_CFU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1430,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1433,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1436,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1436,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1449,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1452,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1453,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1455,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1461,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1418
    functionDepth: 5
    functionLinenumber: 1418
    functionLinenumberEnd: 1474
    functionName: fu_hpi_cfu_device_setup
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HPI_CFU_DEVICE
    - g_debug
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_memread_uint32_safe
    - fu_usb_device_control_transfer
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - fu_device_set_version_raw
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1479,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1486
    functionName: fu_hpi_cfu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HPI_CFU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1495,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1499,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1502,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1503,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1504,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1505,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1506,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1507,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1510,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1510,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1515,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1515,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1522,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1523,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1530,1
    - Dst: fu_hpi_cfu_state_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1530,1
    - Dst: handler
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1531,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1535,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1488
    functionDepth: 6
    functionLinenumber: 1488
    functionLinenumberEnd: 1544
    functionName: fu_hpi_cfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HPI_CFU_DEVICE
    - handler
    - g_debug
    - g_prefix_error
    - fu_progress_add_step
    - fu_archive_firmware_get_image_fnmatch
    - fu_device_add_flag
    - fu_progress_set_id
    - g_autoptr
    - FU_ARCHIVE_FIRMWARE
    - fu_hpi_cfu_state_to_string
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hpi_cfu_device_write_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1554
    functionName: fu_hpi_cfu_device_convert_version
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_hpi_cfu_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1561,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1561,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1562,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1563,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1563,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1564,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1565,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1566,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1566,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1567,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1568,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1568,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1569,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1569,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHpiCfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1556
    functionDepth: 6
    functionLinenumber: 1556
    functionLinenumberEnd: 1573
    functionName: fu_hpi_cfu_device_init
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    - FU_USB_DEVICE
    - fu_device_set_remove_delay
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_device_init(FuHpiCfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHpiCfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1583
    functionName: fu_hpi_cfu_device_class_init
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_device_class_init(FuHpiCfuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHpiCfuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_hpi_cfu_plugin_init
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_plugin_init(FuHpiCfuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_hpi_cfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHpiCfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_hpi_cfu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_plugin_class_init(FuHpiCfuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh341APlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_ch341a_plugin_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_plugin_init(FuCh341APlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:26,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_ch341a_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_ch341a_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:40,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh341APluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: fu_ch341a_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_plugin_class_init(FuCh341APluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:23,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:23,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:23,1
    - Dst: fu_ch341a_device_chip_select
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_ch341a_cfi_device_chip_select
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_DEVICE
    - FU_CH341A_DEVICE
    - fu_ch341a_device_chip_select
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_chip_select(FuCfiDevice *self, gboolean
      value, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:36,1
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:37,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:39,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:42,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:42,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:45,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:45,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:50,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:51,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 66
    functionName: fu_ch341a_cfi_device_wait_for_status_cb
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - g_set_error
    - FU_CH341A_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - g_prefix_error
    - FU_CFI_DEVICE
    - g_autoptr
    - FU_CH341A_CFI_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_wait_for_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - mask
    - value
    - count
    - delay
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - guint8
    - guint8
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: fu_ch341a_cfi_device_wait_for_status
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch341a_cfi_device_wait_for_status(FuCh341aCfiDevice *self,\n\t\t\t\t
      \    guint8 mask,\n\t\t\t\t     guint8 value,\n\t\t\t\t     guint count,\n\t\t\t\t
      \    guint delay,\n\t\t\t\t     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:88,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:91,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:91,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:94,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:94,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:99,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:104,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:111,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:111,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:114,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:115,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:116,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:117,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 121
    functionName: fu_ch341a_cfi_device_read_jedec
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_device_get_proxy
    - FU_CH341A_DEVICE
    - g_string_new
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - g_prefix_error
    - FU_CFI_DEVICE
    - FU_DEVICE
    - g_set_error_literal
    - g_autoptr
    - fu_cfi_device_set_flash_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_read_jedec(FuCfiDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:126,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:128,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:131,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:131,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:133,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:133,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:136,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:138,1
    - Dst: fu_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 143
    functionName: fu_ch341a_cfi_device_write_enable
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_CH341A_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - FU_CFI_DEVICE
    - FU_DEVICE
    - fu_ch341a_cfi_device_wait_for_status
    - g_autoptr
    - fu_device_locker_close
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_write_enable(FuCh341aCfiDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:148,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:150,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:153,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:153,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:158,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:158,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:163,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:165,1
    - Dst: fu_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: fu_ch341a_cfi_device_chip_erase
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_CH341A_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - FU_CFI_DEVICE
    - FU_DEVICE
    - fu_ch341a_cfi_device_wait_for_status
    - g_autoptr
    - fu_device_locker_close
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_chip_erase(FuCh341aCfiDevice *self, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:175,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:179,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:179,1
    - Dst: fu_ch341a_cfi_device_write_enable
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:181,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:184,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:184,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:189,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:189,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:190,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:190,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:195,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:199,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:204,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:208,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:211,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:214,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:215,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:217,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:220,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:220,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:223,1
    - Dst: fu_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:227,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 228
    functionName: fu_ch341a_cfi_device_write_page
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - fu_device_get_proxy
    - FU_CFI_DEVICE
    - fu_ch341a_cfi_device_wait_for_status
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_chunk_array_new_from_bytes
    - fu_memwrite_uint32
    - g_autoptr
    - fu_chunk_array_index
    - fu_device_locker_close
    - fu_chunk_get_bytes
    - fu_chunk_get_data_sz
    - FU_CH341A_DEVICE
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_ch341a_cfi_device_write_enable
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_cfi_device_write_page(FuCh341aCfiDevice *self, FuChunk
      *page, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:237,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:238,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:238,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:240,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:240,1
    - Dst: fu_ch341a_cfi_device_write_page
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:243,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - pages
    - progress
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: fu_ch341a_cfi_device_write_pages
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_ch341a_cfi_device_write_page
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch341a_cfi_device_write_pages(FuCh341aCfiDevice *self,\n\t\t\t\t
      FuChunkArray *pages,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:257,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:260,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:261,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:264,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:264,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:269,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:270,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:271,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:272,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:275,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:276,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:282,1
    - Dst: fu_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:285,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:288,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:288,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:290,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:290,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:294,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuCh341aCfiDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 299
    functionName: fu_ch341a_cfi_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - fu_cfi_device_chip_select_locker_new
    - fu_ch341a_device_spi_transfer
    - fu_progress_set_steps
    - fu_device_get_proxy
    - FU_CFI_DEVICE
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_progress_step_done
    - fu_memwrite_uint32
    - g_autoptr
    - g_bytes_new
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - FU_CH341A_DEVICE
    - FU_DEVICE
    - fu_chunk_array_new
    - g_byte_array_append
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_ch341a_cfi_device_read_firmware(FuCh341aCfiDevice *self,\n\t\t\t\t
      \  gsize bufsz,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:308,1
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:309,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:313,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:316,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:321,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:322,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:323,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:324,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:325,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:328,1
    - Dst: fu_ch341a_cfi_device_write_enable
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:333,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:334,1
    - Dst: fu_ch341a_cfi_device_chip_erase
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:337,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:338,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:341,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:344,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:347,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:347,1
    - Dst: fu_ch341a_cfi_device_write_pages
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:348,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:350,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:352,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:355,1
    - Dst: fu_ch341a_cfi_device_read_firmware
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:358,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:359,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:360,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:363,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:366,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 372
    functionName: fu_ch341a_cfi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_device_get_proxy
    - fu_progress_get_child
    - fu_cfi_device_get_page_size
    - FU_CFI_DEVICE
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - FU_CH341A_CFI_DEVICE
    - fu_ch341a_cfi_device_write_pages
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_ch341a_cfi_device_read_firmware
    - g_autoptr
    - fu_device_locker_new
    - fu_firmware_get_bytes
    - FU_CH341A_DEVICE
    - fu_ch341a_cfi_device_chip_erase
    - g_bytes_get_size
    - fu_bytes_compare
    - FU_DEVICE
    - fu_ch341a_cfi_device_write_enable
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch341a_cfi_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:377,1
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:378,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:378,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:380,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:389,1
    - Dst: fu_ch341a_cfi_device_read_firmware
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 396
    functionName: fu_ch341a_cfi_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_CH341A_DEVICE
    - fu_ch341a_cfi_device_read_firmware
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_locker_new
    - FU_CH341A_CFI_DEVICE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_ch341a_cfi_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:403,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:404,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:405,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: fu_ch341a_cfi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_cfi_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:412,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:413,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh341aCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 6
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: fu_ch341a_cfi_device_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_cfi_device_init(FuCh341aCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:420,1
    - Dst: FU_CFI_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh341aCfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: fu_ch341a_cfi_device_class_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_cfi_device_class_init(FuCh341aCfiDeviceClass *klass)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - speed
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: fu_ch341a_device_speed_to_string
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ch341a_device_speed_to_string(guint8 speed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:84,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:85,1
    - Dst: fu_ch341a_device_speed_to_string
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_ch341a_device_to_string
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_ch341a_device_speed_to_string
    - FU_CH341A_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:94,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:95,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:95,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 118
    functionName: fu_ch341a_device_write
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_write(FuCh341aDevice *self, guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:125,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:137,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 151
    functionName: fu_ch341a_device_read
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_read(FuCh341aDevice *self, guint8 *buf, gsize
      bufsz, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 182
    functionName: fu_ch341a_device_reverse_uint8
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_ch341a_device_reverse_uint8(guint8 value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:188,1
    - Dst: fu_ch341a_device_reverse_uint8
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:193,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:196,1
    - Dst: fu_ch341a_device_write
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:197,1
    - Dst: fu_ch341a_device_read
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:200,1
    - Dst: fu_ch341a_device_reverse_uint8
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:205,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 212
    functionName: fu_ch341a_device_spi_transfer
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 6
    functionsReached:
    - fu_ch341a_device_write
    - g_malloc0
    - fu_ch341a_device_reverse_uint8
    - fu_dump_raw
    - fu_ch341a_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_spi_transfer(FuCh341aDevice *self, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_ch341a_device_write
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:220,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCh341aDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: fu_ch341a_device_configure_stream
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_ch341a_device_write
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_configure_stream(FuCh341aDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ch341a_device_write
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuCh341aDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: fu_ch341a_device_chip_select
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 1
    functionsReached:
    - fu_ch341a_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_chip_select(FuCh341aDevice *self, gboolean
      val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:244,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:245,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:247,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: fu_ch341a_device_probe
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH341A_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:260,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:263,1
    - Dst: fu_ch341a_device_configure_stream
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: fu_ch341a_device_setup
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - FU_CH341A_DEVICE
    - FU_DEVICE_CLASS
    - fu_ch341a_device_configure_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch341a_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:278,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:278,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:279,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh341aDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: fu_ch341a_device_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_add_interface
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_device_init(FuCh341aDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch341a/fu-ch341a-device.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh341aDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: fu_ch341a_device_class_init
    functionSourceFile: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch341a_device_class_init(FuCh341aDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEmmcPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_emmc_plugin_init
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_emmc_plugin_init(FuEmmcPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:26,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:27,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:29,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_emmc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_emmc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEmmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_emmc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_emmc_plugin_class_init(FuEmmcPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:80,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fu_emmc_device_to_string
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - FU_EMMC_DEVICE
    - fwupd_codec_string_append_int
    linkageType: ''
    returnType: void
    signature: void fu_emmc_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:92,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - name
    - val_out
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: fu_emmc_device_get_sysattr_guint64
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_emmc_device_get_sysattr_guint64(FuUdevDevice *device,\n\t\t\t\t
      \  const gchar *name,\n\t\t\t\t   guint64 *val_out,\n\t\t\t\t   GError **error)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:112,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:115,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:117,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:122,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:123,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:129,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:129,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:129,1
    - Dst: g_regex_match_simple
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:134,1
    - Dst: fu_emmc_device_get_sysattr_guint64
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:146,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:150,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:155,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:160,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:164,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:167,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:168,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:169,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:172,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:177,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:178,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:180,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:181,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:182,1
    - Dst: fu_emmc_device_get_sysattr_guint64
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:185,1
    - Dst: fu_emmc_device_get_sysattr_guint64
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:187,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:189,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:190,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:196,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:197,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:204,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:205,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:206,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:209,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:212,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:213,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:216,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:222,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:225,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:225,1
    - Dst: fu_emmc_device_get_sysattr_guint64
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:228,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:228,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 234
    functionName: fu_emmc_device_probe
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_emmc_device_get_sysattr_guint64
    - fu_device_build_instance_id_full
    - g_set_error
    - fu_device_set_version
    - fu_device_get_backend_id
    - fu_udev_device_read_sysfs
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - g_regex_match_simple
    - fu_device_add_instance_strsafe
    - fu_device_get_name
    - fu_device_set_physical_id
    - fu_udev_device_get_device_file
    - fu_device_add_instance_u16
    - fu_device_add_instance_id
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_get_backend_parent_with_subsystem
    - g_path_get_basename
    - g_strdup_printf
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_build_vendor_id
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_emmc_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: fu_emmc_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_emmc_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t       gpointer
      ptr,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:251,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:251,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:251,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:262,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:263,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:264,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:265,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuEmmcDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 279
    functionName: fu_emmc_device_read_extcsd
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_emmc_device_read_extcsd(FuEmmcDevice *self, guint8 *buf,
      gsize bufsz, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:286,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:289,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:294,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:298,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:306,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEmmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 316
    functionName: fu_emmc_device_validate_extcsd
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_name
    - FU_DEVICE
    - fu_emmc_device_read_extcsd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_emmc_device_validate_extcsd(FuEmmcDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:321,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:322,1
    - Dst: fu_emmc_device_validate_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:324,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:325,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 6
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: fu_emmc_device_setup
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_emmc_device_validate_extcsd
    - FU_EMMC_DEVICE
    - g_debug
    - fu_device_add_flag
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_emmc_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:340,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:340,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:343,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:345,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:346,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:350,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 354
    functionName: fu_emmc_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_get_size
    - FU_EMMC_DEVICE
    - g_steal_pointer
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_emmc_device_prepare_firmware(FuDevice *device,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:374,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:374,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:374,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:377,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:378,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:379,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:380,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:381,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:383,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:386,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:430,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:433,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:442,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:445,1
    - Dst: mmc_ioc_cmd_set_data
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:449,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:449,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:459,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:460,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:462,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:470,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:476,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:476,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:478,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:484,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:496,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:497,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:500,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:509,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:522,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:548,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:550,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:551,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:559,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:565,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:568,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:576,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 108
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 579
    functionName: fu_emmc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - FU_EMMC_DEVICE
    - fu_udev_device_ioctl_new
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_progress_set_percentage_full
    - g_set_error
    - fu_progress_get_child
    - mmc_ioc_cmd_set_data
    - g_debug
    - fu_emmc_device_read_extcsd
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_add_flag
    - fu_progress_set_id
    - FU_UDEV_DEVICE
    - fu_chunk_get_data
    - fu_ioctl_execute
    - fu_progress_step_done
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_array_new_from_stream
    - g_malloc0
    - fu_input_stream_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_emmc_device_write_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      FwupdInstallFlags
      flags,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:584,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:585,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:587,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 598
    functionName: fu_emmc_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - FU_EMMC_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_emmc_device_set_quirk_kv(FuDevice *device, const gchar
      *key, const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:603,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:604,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:605,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:606,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:607,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:608,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 610
    functionName: fu_emmc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_emmc_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:615,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:615,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:616,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:616,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:617,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:618,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:618,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:619,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEmmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 620
    functionName: fu_emmc_device_init
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_udev_device_add_open_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_emmc_device_init(FuEmmcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEmmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: fu_emmc_device_class_init
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_emmc_device_class_init(FuEmmcDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH347_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:21,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:21,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:21,1
    - Dst: fu_ch347_device_chip_select
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_ch347_cfi_device_chip_select
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CH347_DEVICE
    - fu_device_get_proxy
    - FU_DEVICE
    - fu_ch347_device_chip_select
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch347_cfi_device_chip_select(FuCfiDevice *self, gboolean
      value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH347_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:34,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:34,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:34,1
    - Dst: fu_ch347_device_send_command
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fu_ch347_cfi_device_send_command
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CH347_DEVICE
    - fu_device_get_proxy
    - FU_DEVICE
    - fu_ch347_device_send_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch347_cfi_device_send_command(FuCfiDevice *self,\n\t\t\t\t
      const guint8 *wbuf,\n\t\t\t\t gsize wbufsz,\n\t\t\t\t guint8 *rbuf,\n\t\t\t\t
      gsize rbufsz,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh347CfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: fu_ch347_cfi_device_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ch347_cfi_device_init(FuCh347CfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh347CfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: fu_ch347_cfi_device_class_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch347_cfi_device_class_init(FuCh347CfiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh347Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_ch347_plugin_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_ch347_plugin_init(FuCh347Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ch347/fu-ch347-plugin.c:26,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ch347/fu-ch347-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_ch347_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ch347_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ch347/fu-ch347-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh347PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_ch347_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch347_plugin_class_init(FuCh347PluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH347_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_ch347_device_to_string
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_CH347_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_ch347_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:51,1
    - Dst: fu_struct_ch347_req_new
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:51,1
    - Dst: fu_struct_ch347_req_set_cmd
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:54,1
    - Dst: fu_struct_ch347_req_set_payloadsz
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:55,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:57,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:60,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuCh347Device*
    - FuCh347CmdSpi
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 84
    functionName: fu_ch347_device_write
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ch347_req_set_cmd
    - fu_struct_ch347_req_set_payloadsz
    - g_prefix_error
    - fu_usb_device_bulk_transfer
    - fu_struct_ch347_req_new
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch347_device_write(FuCh347Device *self,\n\t\t      FuCh347CmdSpi
      cmd,\n\t\t      const guint8 *buf,\n\t\t      gsize bufsz,\n\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:95,1
    - Dst: fu_struct_ch347_req_new
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:95,1
    - Dst: fu_struct_ch347_req_set_cmd
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:98,1
    - Dst: fu_struct_ch347_req_set_payloadsz
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:99,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:100,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:101,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:103,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:111,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:114,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:116,1
    - Dst: fu_struct_ch347_req_get_cmd
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:122,1
    - Dst: fu_struct_ch347_req_get_cmd
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:126,1
    - Dst: fu_struct_ch347_req_get_payloadsz
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:132,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuCh347Device*
    - FuCh347CmdSpi
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 150
    functionName: fu_ch347_device_read
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_ch347_req_set_cmd
    - fu_struct_ch347_req_set_payloadsz
    - fu_struct_ch347_req_get_payloadsz
    - g_prefix_error
    - fu_memcpy_safe
    - fu_usb_device_bulk_transfer
    - g_set_error_literal
    - fu_struct_ch347_req_get_cmd
    - fu_byte_array_set_size
    - fu_struct_ch347_req_new
    - g_autoptr
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch347_device_read(FuCh347Device *self,\n\t\t     FuCh347CmdSpi
      cmd,\n\t\t     guint8 *buf,\n\t\t     gsize bufsz,\n\t\t     GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:163,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:164,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:165,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:171,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:174,1
    - Dst: fu_ch347_device_write
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:177,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:179,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:180,1
    - Dst: fu_ch347_device_read
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:194,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:196,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:196,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:197,1
    - Dst: fu_ch347_device_write
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:198,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:204,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:205,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:206,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:208,1
    - Dst: fu_ch347_device_read
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:209,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:211,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:212,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 7
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - progress
    - error
    argTypes:
    - FuCh347Device*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 221
    functionName: fu_ch347_device_send_command
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 1
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_set_status
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_ch347_device_read
    - fu_chunk_get_data_out
    - fu_ch347_device_write
    - fu_chunk_array_mutable_new
    - g_ptr_array_index
    - fu_progress_set_steps
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_bytes_new_static
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ch347_device_send_command(FuCh347Device *self,\n\t\t\t
      \    const guint8 *wbuf,\n\t\t\t     gsize wbufsz,\n\t\t\t     guint8 *rbuf,\n\t\t\t
      \    gsize rbufsz,\n\t\t\t     FuProgress *progress,\n\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_ch347_device_write
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:235,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:236,1
    - Dst: fu_ch347_device_read
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:239,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCh347Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: fu_ch347_device_configure_stream
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_ch347_device_write
    - g_prefix_error
    - fu_ch347_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch347_device_configure_stream(FuCh347Device *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ch347_device_write
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuCh347Device*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: fu_ch347_device_chip_select
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 1
    functionsReached:
    - fu_ch347_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch347_device_chip_select(FuCh347Device *self, gboolean
      val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:262,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:263,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:265,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 5
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: fu_ch347_device_probe
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_context
    - g_object_new
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch347_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CH347_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:280,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:283,1
    - Dst: fu_ch347_device_configure_stream
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 292
    functionName: fu_ch347_device_setup
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_CH347_DEVICE
    - fu_ch347_device_configure_stream
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ch347_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:298,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:298,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:299,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCh347Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: fu_ch347_device_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_add_interface
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_set_vendor
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ch347_device_init(FuCh347Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ch347/fu-ch347-device.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCh347DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: fu_ch347_device_class_init
    functionSourceFile: /src/fwupd/plugins/ch347/fu-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ch347_device_class_init(FuCh347DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:21,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_cfu_plugin_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_cfu_plugin_init(FuCfuPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:29,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:32,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: fu_cfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_get_context
    linkageType: ''
    returnType: void
    signature: void fu_cfu_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_cfu_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfu_plugin_class_init(FuCfuPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_MODULE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:23,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:24,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: fu_cfu_module_to_string
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - FU_CFU_MODULE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_cfu_module_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: fu_cfu_module_get_component_id
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_cfu_module_get_component_id(FuCfuModule *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:37,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:40,1
    - Dst: fu_struct_cfu_get_version_rsp_component_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:43,1
    - Dst: fu_struct_cfu_get_version_rsp_component_get_component_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:48,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:49,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:50,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:52,1
    - Dst: fu_struct_cfu_get_version_rsp_component_get_flags
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:56,1
    - Dst: fu_device_add_instance_u4
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:57,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:58,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:62,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:64,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:65,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:68,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:72,1
    - Dst: fu_struct_cfu_get_version_rsp_component_get_fw_version
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:73,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:76,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuCfuModule*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 81
    functionName: fu_cfu_module_setup
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - fu_struct_cfu_get_version_rsp_component_get_flags
    - fu_struct_cfu_get_version_rsp_component_get_fw_version
    - fu_device_add_instance_u8
    - fu_device_add_instance_u4
    - g_strdup_printf
    - fu_struct_cfu_get_version_rsp_component_get_component_id
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_set_logical_id
    - fu_device_get_name
    - g_autoptr
    - fu_device_set_version_raw
    - fu_struct_cfu_get_version_rsp_component_parse
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_module_setup(FuCfuModule *self, const guint8 *buf,
      gsize bufsz, gsize offset, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:90,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:91,1
    - Dst: fu_archive_firmware_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:94,1
    - Dst: fu_cfu_offer_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:95,1
    - Dst: fu_cfu_payload_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:97,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:100,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:104,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:104,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:109,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:112,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:114,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:115,1
    - Dst: fu_archive_firmware_get_image_fnmatch
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:118,1
    - Dst: FU_ARCHIVE_FIRMWARE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:118,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:123,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:126,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:128,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:129,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 133
    functionName: fu_cfu_module_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_archive_firmware_new
    - fu_firmware_add_image
    - g_steal_pointer
    - fu_firmware_parse_stream
    - fu_archive_firmware_get_image_fnmatch
    - fu_firmware_parse_bytes
    - fu_cfu_offer_new
    - fu_cfu_payload_new
    - g_autoptr
    - FU_ARCHIVE_FIRMWARE
    - fu_firmware_new
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_cfu_module_prepare_firmware(FuDevice *device,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuProgress *progress,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:146,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:148,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:154,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 156
    functionName: fu_cfu_module_write_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FuDeviceClass*::write_firmware
    - FU_DEVICE_GET_CLASS
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_module_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:161,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:164,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:165,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:166,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: fu_cfu_module_set_progress
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_cfu_module_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:173,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: fu_cfu_module_convert_version
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cfu_module_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:179,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:180,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:181,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:182,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:183,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:184,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: fu_cfu_module_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_cfu_module_init(FuCfuModule *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuModuleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: fu_cfu_module_class_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfu_module_class_init(FuCfuModuleClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: fu_cfu_module_new
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCfuModule
    signature: 'FuCfuModule *

      fu_cfu_module_new(FuDevice *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:38,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:39,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - str
    - idt
    - map
    - title
    argTypes:
    - GString*
    - guint
    - FuCfuDeviceMap*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: fu_cfu_device_map_to_string
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_cfu_device_map_to_string(GString *str, guint idt, FuCfuDeviceMap
      *map, const gchar *title)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:50,1
    - Dst: fu_cfu_device_map_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:51,1
    - Dst: fu_cfu_device_map_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:52,1
    - Dst: fu_cfu_device_map_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:53,1
    - Dst: fu_cfu_device_map_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:54,1
    - Dst: fu_cfu_device_map_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: fu_cfu_device_to_string
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_CFU_DEVICE
    - fwupd_codec_string_append_hex
    - fu_cfu_device_map_to_string
    linkageType: ''
    returnType: void
    signature: void fu_cfu_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:61,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:62,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:63,1
    - Dst: fu_struct_cfu_offer_info_req_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:64,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:67,1
    - Dst: fu_struct_cfu_offer_info_req_set_code
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:71,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:72,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:73,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:74,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:75,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:82,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:87,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:88,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:89,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:89,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:96,1
    - Dst: fu_struct_cfu_offer_rsp_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:99,1
    - Dst: fu_struct_cfu_offer_rsp_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:102,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:104,1
    - Dst: fu_struct_cfu_offer_rsp_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:108,1
    - Dst: fu_struct_cfu_offer_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:113,1
    - Dst: fu_cfu_offer_info_code_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:118,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:119,1
    - Dst: fu_struct_cfu_offer_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - self
    - info_code
    - error
    argTypes:
    - FuCfuDevice*
    - FuCfuOfferInfoCode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 125
    functionName: fu_cfu_device_send_offer_info
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_struct_cfu_offer_rsp_get_token
    - fu_struct_cfu_offer_info_req_set_code
    - fu_hid_device_get_report
    - g_set_error
    - fu_cfu_offer_info_code_to_string
    - fu_byte_array_append_uint8
    - fu_struct_cfu_offer_rsp_parse
    - g_autoptr
    - g_byte_array_new
    - fu_hid_device_set_report
    - fu_cfu_offer_status_to_string
    - fu_struct_cfu_offer_info_req_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_byte_array_append
    - fu_struct_cfu_offer_rsp_get_status
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_device_send_offer_info(FuCfuDevice *self, FuCfuOfferInfoCode
      info_code, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:134,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:135,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:137,1
    - Dst: fu_cfu_offer_set_force_ignore_version
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:141,1
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:141,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:142,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:147,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:148,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:149,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:150,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:157,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:162,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:163,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:164,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:164,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:171,1
    - Dst: fu_struct_cfu_offer_rsp_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:174,1
    - Dst: fu_struct_cfu_offer_rsp_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:177,1
    - Dst: fu_cfu_offer_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:178,1
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:178,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:179,1
    - Dst: fu_struct_cfu_offer_rsp_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:183,1
    - Dst: fu_cfu_offer_get_token
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:184,1
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:184,1
    - Dst: fu_struct_cfu_offer_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:188,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:192,1
    - Dst: fu_struct_cfu_offer_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:192,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:193,1
    - Dst: fu_struct_cfu_offer_rsp_get_rr_code
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuCfuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 199
    functionName: fu_cfu_device_send_offer
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_prefix_error
    - fu_struct_cfu_offer_rsp_get_token
    - fu_cfu_rr_code_to_string
    - fu_struct_cfu_offer_rsp_get_rr_code
    - fu_hid_device_get_report
    - g_set_error
    - FU_CFU_OFFER
    - fu_byte_array_append_bytes
    - fu_cfu_offer_get_token
    - fu_byte_array_append_uint8
    - fu_struct_cfu_offer_rsp_parse
    - fu_cfu_offer_set_force_ignore_version
    - g_autoptr
    - g_byte_array_new
    - fu_firmware_write
    - fu_hid_device_set_report
    - fu_cfu_offer_status_to_string
    - fu_struct_cfu_offer_rsp_get_status
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_device_send_offer(FuCfuDevice *self,\n\t\t\t FuFirmware
      *firmware,\n\t\t\t FuProgress *progress,\n\t\t\t FwupdInstallFlags flags,\n\t\t\t
      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:207,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:210,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:213,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:214,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:217,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:218,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:219,1
    - Dst: fu_struct_cfu_content_req_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:220,1
    - Dst: fu_struct_cfu_content_req_set_flags
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:224,1
    - Dst: fu_struct_cfu_content_req_set_flags
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:227,1
    - Dst: fu_struct_cfu_content_req_set_data_length
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:229,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:229,1
    - Dst: fu_struct_cfu_content_req_set_seq_number
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:230,1
    - Dst: fu_struct_cfu_content_req_set_address
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:231,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:231,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:233,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:234,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:235,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:235,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:235,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:236,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:239,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:239,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:246,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:251,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:252,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:253,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:260,1
    - Dst: fu_struct_cfu_content_rsp_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:263,1
    - Dst: fu_struct_cfu_content_rsp_get_seq_number
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:268,1
    - Dst: fu_struct_cfu_content_req_get_seq_number
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:269,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:270,1
    - Dst: fu_struct_cfu_content_rsp_get_seq_number
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:274,1
    - Dst: fu_struct_cfu_content_req_get_seq_number
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:275,1
    - Dst: fu_struct_cfu_content_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:279,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:284,1
    - Dst: fu_struct_cfu_content_rsp_get_status
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuCfuDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 293
    functionName: fu_cfu_device_send_payload
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_chunks
    - FU_HID_DEVICE
    - fu_struct_cfu_content_req_get_seq_number
    - g_prefix_error
    - fu_struct_cfu_content_rsp_get_status
    - fu_progress_set_steps
    - fu_hid_device_get_report
    - g_set_error
    - fu_struct_cfu_content_req_set_address
    - g_ptr_array_index
    - fu_struct_cfu_content_rsp_get_seq_number
    - fu_progress_set_id
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - fu_struct_cfu_content_req_set_flags
    - fu_struct_cfu_content_req_set_data_length
    - g_autoptr
    - g_byte_array_new
    - fu_chunk_get_data_sz
    - fu_hid_device_set_report
    - fu_struct_cfu_content_req_new
    - fu_cfu_content_status_to_string
    - g_byte_array_append
    - fu_struct_cfu_content_req_set_seq_number
    - fu_struct_cfu_content_rsp_parse
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_device_send_payload(FuCfuDevice *self,\n\t\t\t   FuFirmware
      *firmware,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:304,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:307,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:308,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:309,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:312,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:313,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:316,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:319,1
    - Dst: fu_cfu_device_send_offer_info
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:324,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:328,1
    - Dst: fu_cfu_device_send_offer_info
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:331,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:333,1
    - Dst: fu_cfu_device_send_offer
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:334,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:340,1
    - Dst: fu_cfu_device_send_payload
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:343,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:343,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:345,1
    - Dst: fu_cfu_device_send_offer_info
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:348,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 295
    functionDepth: 6
    functionLinenumber: 295
    functionLinenumberEnd: 354
    functionName: fu_cfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_cfu_device_send_offer
    - fu_firmware_get_image_by_id
    - FU_CFU_DEVICE
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - g_autoptr
    - fu_cfu_device_send_offer_info
    - fu_cfu_device_send_payload
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cfu_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:362,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:364,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:364,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:371,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:371,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:374,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:374,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:375,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:375,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:378,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - descriptor
    - map
    - error
    argTypes:
    - FuHidDescriptor*
    - FuCfuDeviceMap*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 380
    functionName: fu_cfu_device_ensure_map_item
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_REPORT_ITEM
    - FU_HID_DESCRIPTOR
    - fu_firmware_get_image_by_id
    - FU_FIRMWARE
    - fu_hid_report_item_get_value
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_device_ensure_map_item(FuHidDescriptor *descriptor,
      FuCfuDeviceMap *map, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfu_device_ensure_map_item
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:386,1
    - Dst: fu_cfu_device_ensure_map_item
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:389,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:390,1
    - Dst: fu_cfu_device_ensure_map_item
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:393,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:394,1
    - Dst: fu_cfu_device_ensure_map_item
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:397,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:398,1
    - Dst: fu_cfu_device_ensure_map_item
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:401,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - descriptor
    - error
    argTypes:
    - FuCfuDevice*
    - FuHidDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 406
    functionName: fu_cfu_device_verify_descriptor
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_cfu_device_ensure_map_item
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_device_verify_descriptor(FuCfuDevice *self, FuHidDescriptor
      *descriptor, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:416,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:418,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:418,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:421,1
    - Dst: fu_hid_device_get_ep_addr_out
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:425,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:425,1
    - Dst: fu_hid_device_set_ep_addr_out
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:426,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:426,1
    - Dst: fu_hid_device_get_ep_addr_in
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:427,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:427,1
    - Dst: fu_hid_device_parse_descriptors
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:431,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:431,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:435,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:436,1
    - Dst: fu_cfu_device_verify_descriptor
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:437,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:439,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:441,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:449,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:458,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:459,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:460,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:460,1
    - Dst: fu_struct_cfu_get_version_rsp_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:468,1
    - Dst: fu_struct_cfu_get_version_rsp_get_flags
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:471,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:474,1
    - Dst: fu_struct_cfu_get_version_rsp_get_component_cnt
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:480,1
    - Dst: fu_cfu_module_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:480,1
    - Dst: fu_cfu_module_setup
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:483,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:485,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:489,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:490,1
    - Dst: fu_cfu_module_get_component_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:490,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:492,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:493,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:495,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:496,1
    - Dst: fu_cfu_module_get_component_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:496,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 408
    functionDepth: 10
    functionLinenumber: 408
    functionLinenumberEnd: 506
    functionName: fu_cfu_device_setup
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_device_add_child
    - g_string_new
    - FU_HID_DEVICE
    - fu_hid_device_get_ep_addr_in
    - fu_hid_device_get_ep_addr_out
    - g_string_append
    - g_string_append_printf
    - g_set_error
    - fu_hid_device_get_report
    - FU_DEVICE_CLASS
    - GINT_TO_POINTER
    - g_hash_table_new
    - fu_cfu_module_get_component_id
    - g_ptr_array_index
    - fu_device_add_flag
    - fu_cfu_device_verify_descriptor
    - fu_byte_array_append_uint8
    - fu_struct_cfu_get_version_rsp_get_component_cnt
    - fu_cfu_module_new
    - g_autoptr
    - fu_hid_device_set_ep_addr_out
    - fu_cfu_module_setup
    - g_byte_array_new
    - fu_hid_device_parse_descriptors
    - fu_struct_cfu_get_version_rsp_get_flags
    - FU_CFU_DEVICE
    - FU_DEVICE
    - g_hash_table_lookup
    - fu_struct_cfu_get_version_rsp_parse
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_device_setup(FuDevice *device, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:514,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:516,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:521,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:523,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:528,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:530,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:535,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:537,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:542,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:544,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:551,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 556
    functionName: fu_cfu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_CFU_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_device_set_quirk_kv(FuDevice *device, const gchar *key,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:567,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:567,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:568,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: fu_cfu_device_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag
    - FU_DEVICE
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_cfu_device_init(FuCfuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: fu_cfu_device_class_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_cfu_device_class_init(FuCfuDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: fu_redfish_backend_get_vendor
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_vendor(FuRedfishBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: fu_redfish_backend_get_version
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_version(FuRedfishBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fu_redfish_backend_get_uuid
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_uuid(FuRedfishBackend *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:65,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:69,1
    - Dst: fu_redfish_request_set_cache
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:72,1
    - Dst: fu_redfish_request_set_curlsh
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:73,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:76,1
    - Dst: fu_redfish_request_get_uri
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:77,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:78,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:79,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:86,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:88,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:92,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:95,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 101
    functionName: fu_redfish_backend_request_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_url_set
    - fu_redfish_request_set_curlsh
    - fu_redfish_request_get_curl
    - g_strdup_printf
    - g_object_new
    - fu_redfish_request_get_uri
    - fu_redfish_request_set_cache
    linkageType: ''
    returnType: FuRedfishRequest
    signature: 'FuRedfishRequest *

      fu_redfish_backend_request_new(FuRedfishBackend *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:108,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:111,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:113,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:113,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:122,1
    - Dst: fu_redfish_multipart_device_set_apply_time
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:124,1
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:124,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:129,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:132,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:134,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:135,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:138,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:138,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:142,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:143,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - member
    - error
    argTypes:
    - FuRedfishBackend*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 145
    functionName: fu_redfish_backend_coldplug_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_debug
    - FU_REDFISH_MULTIPART_DEVICE
    - fu_backend_get_context
    - fu_device_add_private_flag
    - g_error_matches
    - g_steal_pointer
    - g_object_new
    - fu_redfish_multipart_device_set_apply_time
    - fu_backend_device_added
    - g_propagate_error
    - fu_device_add_instance_str
    - g_autoptr
    - fu_device_set_firmware_size_max
    - fu_device_locker_new
    - FU_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_coldplug_member(FuRedfishBackend *self,
      JsonObject *member, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:152,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:157,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:157,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:159,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:160,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:162,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:170,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:175,1
    - Dst: fu_redfish_backend_coldplug_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - collection
    - error
    argTypes:
    - FuRedfishBackend*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: fu_redfish_backend_coldplug_collection
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_array_get_object_element
    - fu_redfish_backend_coldplug_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - g_set_error_literal
    - json_object_get_array_member
    - g_autoptr
    - json_object_get_string_member
    - fu_redfish_backend_request_new
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_coldplug_collection(FuRedfishBackend *self,\n\t\t\t\t
      \      JsonObject *collection,\n\t\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:187,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:187,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:190,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:199,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:206,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:211,1
    - Dst: fu_redfish_backend_coldplug_collection
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - inventory
    - error
    argTypes:
    - FuRedfishBackend*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 213
    functionName: fu_redfish_backend_coldplug_inventory
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - g_set_error_literal
    - fu_redfish_backend_coldplug_collection
    - g_autoptr
    - json_object_get_string_member
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_coldplug_inventory(FuRedfishBackend *self,
      JsonObject *inventory, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:218,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:218,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:219,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:219,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:224,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:226,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:227,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:229,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:232,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: fu_redfish_backend_check_wildcard_targets
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_new
    - g_ptr_array_index
    - fu_device_add_flag
    - g_autoptr
    - g_hash_table_lookup
    - fu_backend_get_devices
    - FU_BACKEND
    - fu_device_get_instance_ids
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_check_wildcard_targets(FuRedfishBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:240,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - session_key
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: fu_redfish_backend_set_session_key
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_session_key(FuRedfishBackend *self, const
      gchar *session_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:247,1
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:248,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:251,1
    - Dst: fu_redfish_backend_set_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: fu_redfish_backend_session_headers_callback
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - FU_REDFISH_BACKEND
    - fu_redfish_backend_set_session_key
    - g_ascii_strncasecmp
    linkageType: ''
    returnType: size_t
    signature: size_t fu_redfish_backend_session_headers_callback(char *ptr, size_t
      size, size_t nmemb, void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:260,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:261,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:261,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:263,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:264,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:265,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:266,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:267,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:268,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:270,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:270,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:271,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:271,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:276,1
    - Dst: fu_redfish_backend_get_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:283,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 290
    functionName: fu_redfish_backend_create_session
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_set_error
    - fu_redfish_request_perform_full
    - json_builder_begin_object
    - json_builder_add_string_value
    - fu_redfish_request_get_curl
    - json_builder_set_member_name
    - g_autoptr
    - fu_redfish_backend_request_new
    - fu_redfish_backend_get_session_key
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_create_session(FuRedfishBackend *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:295,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - push_uri_path
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: fu_redfish_backend_set_push_uri_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_push_uri_path(FuRedfishBackend *self, const
      gchar *push_uri_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:305,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:307,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:308,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:310,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:311,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:313,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - update_svc
    argTypes:
    - JsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: fu_redfish_backend_has_smc_update_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_object_has_member
    - json_object_get_object_member
    - json_object_get_string_member
    - g_str_equal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_has_smc_update_path(JsonObject *update_svc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:322,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:322,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:326,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:331,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:336,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:337,1
    - Dst: json_object_get_boolean_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:339,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:347,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:348,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:350,1
    - Dst: fu_redfish_backend_has_smc_update_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:351,1
    - Dst: fu_redfish_backend_set_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:356,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:359,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:360,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:362,1
    - Dst: fu_redfish_backend_set_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:370,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:376,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:377,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:379,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:380,1
    - Dst: fu_redfish_backend_coldplug_inventory
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:381,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:383,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:384,1
    - Dst: fu_redfish_backend_coldplug_inventory
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:385,1
    - Dst: fu_redfish_backend_check_wildcard_targets
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:390,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 394
    functionName: fu_redfish_backend_coldplug
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - fu_redfish_backend_check_wildcard_targets
    - FU_REDFISH_BACKEND
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_backend_has_smc_update_path
    - g_str_equal
    - fu_redfish_backend_set_push_uri_path
    - json_object_get_int_member
    - g_set_error_literal
    - json_object_get_boolean_member
    - fu_redfish_backend_coldplug_inventory
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_coldplug(FuBackend *backend, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:400,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:403,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - update_uri_path
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: fu_redfish_backend_set_update_uri_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_update_uri_path(FuRedfishBackend *self,
      const gchar *update_uri_path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:416,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:416,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:418,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:423,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:424,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:425,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:428,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:430,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:436,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:437,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:443,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:445,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:451,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:452,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:458,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:460,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:466,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:467,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:476,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - self
    - member_uri
    - error
    argTypes:
    - FuRedfishBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 479
    functionName: fu_redfish_backend_setup_dell_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - g_strdup_printf
    - g_set_error_literal
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - json_object_get_int_member
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_setup_dell_member(FuRedfishBackend *self,\n\t\t\t\t
      \    const gchar *member_uri,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:488,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:488,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:490,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:495,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:496,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:497,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:500,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:501,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:502,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:508,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:509,1
    - Dst: fu_redfish_backend_setup_dell_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 511
    functionName: fu_redfish_backend_setup_dell
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_array_get_object_element
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - g_set_error_literal
    - json_object_get_array_member
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - json_array_get_length
    - fu_redfish_backend_setup_dell_member
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_setup_dell(FuRedfishBackend *self, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:524,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:524,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:528,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:537,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:542,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:543,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:544,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:545,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:546,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:549,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:550,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:552,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:553,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:554,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:554,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:556,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:557,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:558,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:558,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:560,1
    - Dst: fu_redfish_backend_setup_dell
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:561,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:564,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:565,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:567,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:573,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:575,1
    - Dst: fu_redfish_backend_set_update_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:581,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 583
    functionName: fu_redfish_backend_setup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - g_set_error
    - FU_REDFISH_BACKEND
    - json_object_get_string_member
    - fu_redfish_backend_setup_dell
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_backend_set_update_uri_path
    - g_set_error_literal
    - g_strdup
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - g_free
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_setup(FuBackend *backend,\n\t\t\t FuBackendSetupFlags
      flags,\n\t\t\t FuProgress *progress,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:588,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - backend
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 590
    functionName: fu_redfish_backend_invalidate
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - FU_REDFISH_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_invalidate(FuBackend *backend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:595,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hostname
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: fu_redfish_backend_set_hostname
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_hostname(FuRedfishBackend *self, const
      gchar *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - port
    argTypes:
    - FuRedfishBackend*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: fu_redfish_backend_set_port
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_port(FuRedfishBackend *self, guint port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - use_https
    argTypes:
    - FuRedfishBackend*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 609
    functionName: fu_redfish_backend_set_https
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_https(FuRedfishBackend *self, gboolean
      use_https)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cacheck
    argTypes:
    - FuRedfishBackend*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: fu_redfish_backend_set_cacheck
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_cacheck(FuRedfishBackend *self, gboolean
      cacheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - wildcard_targets
    argTypes:
    - FuRedfishBackend*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: fu_redfish_backend_set_wildcard_targets
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_wildcard_targets(FuRedfishBackend *self,
      gboolean wildcard_targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:626,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - username
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 628
    functionName: fu_redfish_backend_set_username
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_username(FuRedfishBackend *self, const
      gchar *username)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: fu_redfish_backend_get_username
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_username(FuRedfishBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:639,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - password
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: fu_redfish_backend_set_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_password(FuRedfishBackend *self, const
      gchar *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: fu_redfish_backend_get_push_uri_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_push_uri_path(FuRedfishBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: fu_redfish_backend_get_session_key
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_backend_get_session_key(FuRedfishBackend *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:658,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:659,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:660,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:661,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:662,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:663,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:664,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:665,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:666,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:667,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:668,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:669,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:670,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:671,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 672
    functionName: fu_redfish_backend_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_BACKEND
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - g_type_name
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_to_string(FuBackend *backend, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:677,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:678,1
    - Dst: curl_share_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:679,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:680,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:681,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:682,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:683,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:684,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:685,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:686,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:687,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:688,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:689,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 691
    functionName: fu_redfish_backend_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_BACKEND
    - G_OBJECT_CLASS
    - g_hash_table_unref
    - curl_share_cleanup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:696,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 703
    functionName: fu_redfish_backend_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_BACKEND_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_class_init(FuRedfishBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:710,1
    - Dst: curl_share_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:714,1
    - Dst: curl_share_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:715,1
    - Dst: curl_share_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:716,1
    - Dst: curl_share_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 718
    functionName: fu_redfish_backend_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - curl_share_init
    - curl_share_setopt
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_init(FuRedfishBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:723,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: fu_redfish_backend_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuRedfishBackend
    signature: 'FuRedfishBackend *

      fu_redfish_backend_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:16,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:18,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:20,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: fu_redfish_common_buffer_to_ipv4
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_free
    - g_string_new
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_common_buffer_to_ipv4(const guint8 *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:28,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:30,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:37,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: fu_redfish_common_buffer_to_ipv6
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_free
    - g_string_new
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_common_buffer_to_ipv6(const guint8 *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:45,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:47,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:49,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: fu_redfish_common_buffer_to_mac
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_string_free
    - g_string_new
    - g_string_append
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_common_buffer_to_mac(const guint8 *buffer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:59,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:62,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:66,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:68,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:69,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:70,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:76,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:78,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:79,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - version
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: fu_redfish_common_fix_version
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_debug
    - g_str_has_prefix
    - g_strsplit
    - g_strstr_len
    - g_strdup
    - g_strcmp0
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_common_fix_version(const gchar *version)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:94,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:94,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:98,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:102,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:110,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:111,1
    - Dst: g_ascii_isalpha
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:120,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:126,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - version
    - out_build
    - out_version
    - error
    argTypes:
    - gchar*
    - gchar**
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 130
    functionName: fu_redfish_common_parse_version_lenovo
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_auto
    - strlen
    - g_strsplit
    - g_strv_length
    - g_strdup
    - g_ascii_isdigit
    - g_ascii_isalpha
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_common_parse_version_lenovo(const gchar *version,\n\t\t\t\t
      \      gchar **out_build,   /* out */\n\t\t\t\t       gchar **out_version, /*
      out */\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:27,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_redfish_multipart_device_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_MULTIPART_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:34,1
    - Dst: FU_IS_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:34,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:35,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:36,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:38,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - apply_time
    argTypes:
    - FuRedfishMultipartDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: fu_redfish_multipart_device_set_apply_time
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_REDFISH_MULTIPART_DEVICE
    - g_return_if_fail
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_set_apply_time(FuRedfishMultipartDevice
      *self, const gchar *apply_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:45,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:46,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:47,1
    - Dst: json_generator_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:48,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:51,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:52,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:53,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:54,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:55,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:56,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:58,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:60,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:61,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:63,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:66,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:67,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:68,1
    - Dst: json_generator_to_gstring
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:69,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishMultipartDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: fu_redfish_multipart_device_get_parameters
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - json_generator_new
    - g_string_new
    - json_builder_begin_array
    - fu_device_get_logical_id
    - g_steal_pointer
    - json_builder_end_array
    - json_builder_begin_object
    - json_builder_add_string_value
    - json_generator_to_gstring
    - fu_device_has_private_flag
    - FU_DEVICE
    - json_builder_set_member_name
    - json_builder_get_root
    - json_generator_set_root
    - g_autoptr
    - json_builder_end_object
    - json_generator_set_pretty
    - json_builder_new
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_redfish_multipart_device_get_parameters(FuRedfishMultipartDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:80,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - location
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: fu_redfish_multipart_device_location_headers_callback
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_ascii_strncasecmp
    linkageType: ''
    returnType: size_t
    signature: "size_t fu_redfish_multipart_device_location_headers_callback(char
      *ptr,\n\t\t\t\t\t\t      size_t size,\n\t\t\t\t\t\t      size_t nmemb,\n\t\t\t\t\t\t
      \     void *location)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:94,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:95,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:103,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:106,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:111,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:112,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:113,1
    - Dst: fu_redfish_multipart_device_get_parameters
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:115,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:116,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:117,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:118,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:120,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:122,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:123,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:124,1
    - Dst: curl_mime_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:125,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:125,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:127,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:127,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:127,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:129,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:130,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:133,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:133,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:135,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:136,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:137,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:143,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:147,1
    - Dst: g_utf8_strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:152,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:153,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:154,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:156,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:161,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:165,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:168,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:170,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 171
    functionName: fu_redfish_multipart_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_utf8_strlen
    - FU_REDFISH_DEVICE
    - g_set_error
    - g_debug
    - FU_REDFISH_MULTIPART_DEVICE
    - fu_firmware_get_filename
    - fu_redfish_device_get_backend
    - fu_redfish_request_perform
    - fu_redfish_request_get_json_object
    - curl_mime_type
    - fu_redfish_request_get_status_code
    - fu_redfish_backend_get_push_uri_path
    - json_object_get_string_member
    - fu_redfish_backend_request_new
    - curl_mime_addpart
    - curl_easy_setopt
    - curl_mime_init
    - curl_mime_name
    - curl_mime_data
    - curl_mime_filename
    - fu_redfish_device_poll_task
    - g_autoptr
    - fu_redfish_multipart_device_get_parameters
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - g_bytes_get_size
    - fu_redfish_request_get_curl
    - json_object_has_member
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_multipart_device_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:176,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:177,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:178,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:179,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:180,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: fu_redfish_multipart_device_set_progress
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_multipart_device_set_apply_time
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:187,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishMultipartDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: fu_redfish_multipart_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - fu_redfish_multipart_device_set_apply_time
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_init(FuRedfishMultipartDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:194,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:195,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: fu_redfish_multipart_device_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_REDFISH_MULTIPART_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:202,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishMultipartDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: fu_redfish_multipart_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_multipart_device_class_init(FuRedfishMultipartDeviceClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:39,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:40,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:40,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:42,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:43,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:45,1
    - Dst: fu_redfish_backend_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:45,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:46,1
    - Dst: fu_redfish_backend_get_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:49,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:50,1
    - Dst: fu_redfish_backend_get_uuid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: fu_redfish_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_backend_add_string
    - fu_firmware_to_string
    - FU_FIRMWARE
    - fu_redfish_backend_get_version
    - fu_redfish_backend_get_uuid
    - FU_BACKEND
    - fu_redfish_backend_get_vendor
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:56,1
    - Dst: g_random_int_range
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:60,1
    - Dst: g_ascii_isalnum
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:61,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:62,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - length
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: fu_redfish_plugin_generate_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_random_int_range
    - g_ascii_isalnum
    - g_string_free
    - g_string_append_c
    - g_string_sized_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_plugin_generate_password(guint length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:70,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:74,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:74,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:77,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:79,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:80,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:85,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:86,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:87,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:88,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:89,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:90,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:98,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: fu_redfish_plugin_change_expired
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_redfish_request_perform_full
    - json_builder_begin_object
    - json_builder_add_string_value
    - fu_plugin_get_config_value
    - fu_plugin_set_config_value
    - json_builder_set_member_name
    - g_strdup
    - g_autoptr
    - fu_redfish_backend_set_password
    - fu_redfish_backend_request_new
    - fu_redfish_plugin_generate_password
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_change_expired(FuPlugin *plugin, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:109,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:112,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:112,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:114,1
    - Dst: fu_redfish_plugin_change_expired
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:115,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:117,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:117,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:118,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:122,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:126,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:126,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:128,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:129,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:129,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:130,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:131,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:136,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 140
    functionName: fu_redfish_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - FU_REDFISH_PLUGIN
    - fu_backend_coldplug
    - g_steal_pointer
    - g_error_matches
    - fu_plugin_device_add
    - fu_redfish_plugin_change_expired
    - fu_plugin_get_context
    - g_ptr_array_index
    - fu_plugin_add_flag
    - fu_device_add_flag
    - g_propagate_error
    - g_autoptr
    - fu_context_has_hwid_flag
    - fu_backend_get_devices
    - FU_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:145,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:147,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - username
    - password
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: fu_redfish_plugin_set_credentials
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_backend_set_password
    - FU_REDFISH_PLUGIN
    - fu_redfish_backend_set_username
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_set_credentials(FuPlugin *plugin, const gchar
      *username, const gchar *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:154,1
    - Dst: fu_backend_invalidate
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:156,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:156,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:157,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: fu_redfish_plugin_reload
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_backend_setup
    - FU_REDFISH_PLUGIN
    - FU_BACKEND
    - fu_backend_invalidate
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_reload(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:166,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:167,1
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:168,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:174,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:177,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:185,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:188,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:196,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:205,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:205,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:205,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:206,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:207,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:208,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:215,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 218
    functionName: fu_redfish_plugin_discover_uefi_credentials
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - g_set_error
    - g_auto
    - fu_efivars_get_data
    - fu_memread_uint32_safe
    - fu_plugin_get_context
    - g_bytes_get_size
    - g_strsplit
    - g_set_error_literal
    - fu_efivars_get_data_bytes
    - g_strv_length
    - fu_context_get_efivars
    - g_autoptr
    - fu_redfish_backend_set_password
    - g_strndup
    - fu_redfish_backend_set_username
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_discover_uefi_credentials(FuPlugin *plugin,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:223,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:226,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:231,1
    - Dst: fu_redfish_smbios_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:231,1
    - Dst: fu_firmware_build_from_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:232,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:232,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:233,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:236,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:241,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:249,1
    - Dst: fu_redfish_smbios_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:249,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:250,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:250,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:255,1
    - Dst: fu_redfish_smbios_get_interface_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:258,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 267
    functionName: fu_redfish_plugin_discover_smbios_table
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_redfish_smbios_new
    - fu_redfish_smbios_get_interface_type
    - g_prefix_error
    - fu_plugin_get_context
    - FU_FIRMWARE
    - g_set_object
    - fu_context_get_smbios_data
    - g_ptr_array_index
    - fu_firmware_build_from_filename
    - g_autoptr
    - g_getenv
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_discover_smbios_table(FuPlugin *plugin,
      GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:272,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:274,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:281,1
    - Dst: fu_redfish_smbios_get_ip_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:281,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:283,1
    - Dst: fu_redfish_smbios_get_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:283,1
    - Dst: fu_redfish_smbios_get_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:287,1
    - Dst: fu_redfish_network_device_for_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:291,1
    - Dst: fu_redfish_smbios_get_vid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:295,1
    - Dst: fu_redfish_smbios_get_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:298,1
    - Dst: fu_redfish_network_device_for_vid_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:300,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:302,1
    - Dst: fu_redfish_network_device_get_state
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:309,1
    - Dst: g_info
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:311,1
    - Dst: fu_redfish_network_device_state_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:312,1
    - Dst: fu_redfish_network_device_connect
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:315,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:319,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:325,1
    - Dst: fu_redfish_backend_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:328,1
    - Dst: fu_redfish_backend_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:329,1
    - Dst: fu_redfish_smbios_get_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:329,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 331
    functionName: fu_redfish_plugin_autoconnect_network_device
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_smbios_get_hostname
    - fu_redfish_smbios_get_vid
    - g_debug
    - fu_redfish_smbios_get_mac_addr
    - fu_redfish_network_device_state_to_string
    - fu_redfish_network_device_connect
    - fu_redfish_backend_set_port
    - fu_redfish_backend_set_hostname
    - g_info
    - FU_PLUGIN
    - fu_redfish_smbios_get_ip_addr
    - g_autoptr
    - fu_redfish_smbios_get_port
    - fu_redfish_network_device_for_mac_addr
    - fu_redfish_network_device_get_state
    - fu_plugin_get_context
    - fu_redfish_network_device_get_address
    - g_set_error_literal
    - fu_redfish_network_device_for_vid_pid
    - g_strdup
    - fu_redfish_smbios_get_pid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_autoconnect_network_device(FuRedfishPlugin
      *self, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:338,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:341,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:345,1
    - Dst: fu_ipmi_device_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:345,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:347,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:347,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:350,1
    - Dst: fu_ipmi_device_get_user_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:356,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:358,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:362,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:363,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:369,1
    - Dst: fu_ipmi_device_set_user_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:377,1
    - Dst: fu_ipmi_device_set_user_enable
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:379,1
    - Dst: fu_ipmi_device_set_user_priv
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:381,1
    - Dst: fu_ipmi_device_set_user_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:383,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:386,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:386,1
    - Dst: fu_ipmi_device_set_user_group_redfish_enable_advantech
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:388,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:391,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:392,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:395,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:398,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:398,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:403,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:404,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:405,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:406,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:407,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:408,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:409,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:417,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:420,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:422,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:424,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 428
    functionName: fu_redfish_plugin_ipmi_create_user
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_redfish_request_perform_full
    - fu_context_has_hwid_guid
    - fu_redfish_backend_set_password
    - fu_redfish_plugin_generate_password
    - json_builder_add_string_value
    - g_debug
    - json_builder_begin_object
    - fu_ipmi_device_set_user_priv
    - fu_ipmi_device_set_user_password
    - json_builder_set_member_name
    - fu_ipmi_device_set_user_group_redfish_enable_advantech
    - fu_redfish_backend_request_new
    - fu_ipmi_device_set_user_name
    - g_autoptr
    - fu_device_locker_new
    - fu_redfish_backend_set_username
    - json_builder_new
    - fu_ipmi_device_new
    - fu_ipmi_device_set_user_enable
    - fu_plugin_get_context
    - g_strdup_printf
    - fu_plugin_set_config_value
    - fu_ipmi_device_get_user_password
    - g_set_error_literal
    - g_strcmp0
    - g_usleep
    - json_builder_end_object
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_ipmi_create_user(FuPlugin *plugin, GError
      **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:444,1
    - Dst: fu_redfish_plugin_discover_smbios_table
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:447,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:449,1
    - Dst: fu_redfish_plugin_discover_uefi_credentials
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:451,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:452,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:457,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:460,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:463,1
    - Dst: fu_redfish_backend_set_https
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:464,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:465,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:467,1
    - Dst: fu_redfish_backend_set_https
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:468,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:469,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:472,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:479,1
    - Dst: fu_redfish_backend_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:480,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:481,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:482,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:491,1
    - Dst: fu_redfish_backend_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:497,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:499,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:501,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:502,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:504,1
    - Dst: fu_redfish_backend_set_cacheck
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:505,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:506,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:507,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:507,1
    - Dst: fu_redfish_backend_set_wildcard_targets
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:508,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:514,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:515,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:516,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:520,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:523,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:525,1
    - Dst: fu_redfish_backend_get_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:533,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:534,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:534,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:535,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:542,1
    - Dst: g_info
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:543,1
    - Dst: fu_redfish_plugin_ipmi_create_user
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:544,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:550,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:550,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 431
    functionDepth: 6
    functionLinenumber: 431
    functionLinenumberEnd: 554
    functionName: fu_redfish_plugin_startup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - g_auto
    - strlen
    - fu_redfish_backend_set_https
    - fu_redfish_backend_get_username
    - fu_redfish_backend_set_password
    - FU_BACKEND
    - g_debug
    - g_propagate_prefixed_error
    - fu_redfish_request_perform
    - fu_redfish_plugin_ipmi_create_user
    - g_strv_length
    - fu_redfish_backend_set_port
    - fu_context_has_hwid_flag
    - fu_redfish_backend_request_new
    - fu_redfish_backend_set_hostname
    - fu_redfish_plugin_autoconnect_network_device
    - g_info
    - g_steal_pointer
    - g_error_matches
    - fu_backend_setup
    - fu_redfish_backend_set_cacheck
    - g_autoptr
    - fu_redfish_backend_set_username
    - fu_strtoull
    - fu_plugin_get_config_value
    - fu_redfish_plugin_discover_uefi_credentials
    - g_str_has_prefix
    - g_strsplit
    - fu_plugin_get_context
    - g_set_error_literal
    - fu_redfish_backend_set_wildcard_targets
    - fu_redfish_plugin_discover_smbios_table
    - fu_plugin_get_config_value_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:559,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:560,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:563,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:565,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 569
    functionName: fu_redfish_plugin_cleanup_setup_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_progress_new
    - fu_redfish_plugin_autoconnect_network_device
    - fu_backend_setup
    - FU_BACKEND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_cleanup_setup_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:574,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:575,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:576,1
    - Dst: fu_redfish_plugin_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:578,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 7
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: fu_redfish_plugin_cleanup_coldplug_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_progress_new
    - fu_redfish_plugin_coldplug
    - fu_redfish_plugin_autoconnect_network_device
    - FU_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_cleanup_coldplug_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:588,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:591,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:592,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:595,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:599,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:604,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:605,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:606,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:607,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:608,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:612,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:612,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:613,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:614,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:615,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:616,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:617,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:623,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:627,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:630,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:630,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:632,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:633,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:633,1
    - Dst: fu_backend_invalidate
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:637,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:637,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:638,1
    - Dst: fu_redfish_device_get_reset_pre_delay
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:639,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:639,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:640,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:641,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:644,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:645,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:654,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:660,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:663,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:666,1
    - Dst: fu_redfish_device_get_reset_post_delay
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:667,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:667,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:668,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:669,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:672,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:678,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 685
    functionName: fu_redfish_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_redfish_request_perform_full
    - fu_device_retry_full
    - g_prefix_error
    - FU_REDFISH_DEVICE
    - FU_BACKEND
    - json_builder_add_string_value
    - fu_progress_get_child
    - fu_device_get_update_state
    - json_builder_begin_object
    - fu_progress_add_step
    - g_ptr_array_index
    - json_builder_set_member_name
    - fu_progress_set_id
    - fu_redfish_backend_request_new
    - fu_backend_get_devices
    - fu_redfish_device_get_reset_pre_delay
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_backend_device_removed
    - g_autoptr
    - json_builder_new
    - fu_plugin_get_config_value
    - fu_strtoull
    - fu_redfish_device_get_reset_post_delay
    - fu_device_has_private_flag
    - json_builder_end_object
    - fu_backend_invalidate
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_plugin_cleanup(FuPlugin *plugin,\n\t\t\t  FuDevice
      *device,\n\t\t\t  FuProgress *progress,\n\t\t\t  FwupdInstallFlags flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:701,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:702,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 710
    functionName: fu_redfish_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_config_value
    - g_set_error
    - g_strv_contains
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_plugin_modify_config(FuPlugin *plugin,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: fu_redfish_plugin_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_init(FuRedfishPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:720,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:721,1
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:722,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:723,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:724,1
    - Dst: fu_redfish_backend_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:725,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:726,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:727,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:728,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:729,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:730,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:731,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:732,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:735,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:736,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:737,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:738,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:739,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:740,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 742
    functionName: fu_redfish_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_plugin_get_context
    - fu_plugin_add_device_gtype
    - fu_context_add_quirk_key
    - fu_redfish_backend_new
    - fu_plugin_add_flag
    - fu_plugin_set_config_default
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:747,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:749,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:751,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 753
    functionName: fu_redfish_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:758,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 768
    functionName: fu_redfish_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_class_init(FuRedfishPluginClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_HPE_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:26,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:27,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:29,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:29,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:32,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:39,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:40,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:41,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:42,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:43,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:44,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:47,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:47,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:48,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:51,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - dev
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: fu_redfish_hpe_device_attach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - g_set_error
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_backend_request_new
    - fu_redfish_device_get_backend
    - FU_REDFISH_DEVICE
    - g_autoptr
    - json_object_has_member
    - FU_REDFISH_HPE_DEVICE
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_hpe_device_attach(FuDevice *dev, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:68,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progress
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: fu_redfish_hpe_device_poll_ctx_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_object_ref
    linkageType: ''
    returnType: FuRedfishHpeDevicePollCtx
    signature: 'FuRedfishHpeDevicePollCtx *

      fu_redfish_hpe_device_poll_ctx_new(FuProgress *progress)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:76,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuRedfishHpeDevicePollCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: fu_redfish_hpe_device_poll_ctx_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_device_poll_ctx_free(FuRedfishHpeDevicePollCtx
      *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:90,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:93,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:93,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:96,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:103,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:104,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:105,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:106,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:107,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:109,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:110,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:114,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:116,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:119,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:121,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:123,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:127,1
    - Dst: fu_redfish_device_parse_message_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:135,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:142,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:143,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:145,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:148,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:149,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:150,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:151,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:153,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:155,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - self
    - ctx
    - error
    argTypes:
    - FuRedfishDevice*
    - FuRedfishHpeDevicePollCtx*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 162
    functionName: fu_redfish_hpe_device_poll_task_once
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - fu_progress_set_status
    - json_object_get_string_member
    - g_debug
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - fu_redfish_device_parse_message_id
    - FU_REDFISH_DEVICE
    - json_object_get_int_member
    - g_set_error_literal
    - g_autoptr
    - fu_progress_set_percentage
    - json_object_has_member
    - fu_redfish_backend_request_new
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_hpe_device_poll_task_once(FuRedfishDevice *self,\n\t\t\t\t
      \    FuRedfishHpeDevicePollCtx *ctx,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:168,1
    - Dst: fu_redfish_hpe_device_poll_ctx_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:169,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:169,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:173,1
    - Dst: fu_redfish_hpe_device_poll_task_once
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:174,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:177,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 189
    functionName: fu_redfish_hpe_device_poll_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_redfish_hpe_device_poll_ctx_new
    - g_timer_new
    - g_timer_elapsed
    - FU_DEVICE
    - g_autoptr
    - fu_redfish_hpe_device_poll_task_once
    - fu_progress_finished
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_hpe_device_poll_task(FuRedfishDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_HPE_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:198,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:199,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:208,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:209,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:210,1
    - Dst: json_generator_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:211,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:214,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:219,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:223,1
    - Dst: fu_redfish_backend_create_session
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:226,1
    - Dst: fu_redfish_backend_get_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:228,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:229,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:232,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:233,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:234,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:237,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:238,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:239,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:240,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:241,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:242,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:243,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:244,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:247,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:248,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:249,1
    - Dst: json_generator_to_gstring
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:250,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:252,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:253,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:254,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:256,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:257,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:258,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:260,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:262,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:263,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:264,1
    - Dst: curl_mime_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:265,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:266,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:266,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:266,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:268,1
    - Dst: g_strconcat
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:270,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:271,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:273,1
    - Dst: g_strconcat
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:273,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:274,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:275,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:277,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:278,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:282,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:283,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:287,1
    - Dst: fu_redfish_hpe_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:291,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:291,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:292,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 299
    functionName: fu_redfish_hpe_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - json_generator_new
    - g_string_new
    - FU_REDFISH_DEVICE
    - json_builder_get_root
    - json_builder_add_string_value
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - json_builder_begin_object
    - fu_progress_add_step
    - curl_mime_type
    - fu_redfish_request_get_status_code
    - json_builder_set_member_name
    - fu_progress_set_id
    - fu_redfish_backend_get_push_uri_path
    - fu_redfish_hpe_device_poll_task
    - fu_redfish_backend_request_new
    - g_strconcat
    - curl_slist_append
    - curl_mime_addpart
    - curl_easy_setopt
    - fu_progress_step_done
    - curl_mime_init
    - json_builder_add_boolean_value
    - curl_mime_name
    - json_generator_to_gstring
    - curl_mime_data
    - curl_mime_filename
    - g_autoptr
    - FU_REDFISH_HPE_DEVICE
    - fu_redfish_backend_get_session_key
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - json_builder_new
    - g_bytes_get_size
    - fu_redfish_backend_create_session
    - fu_redfish_request_get_curl
    - json_generator_set_root
    - json_builder_end_object
    - json_generator_set_pretty
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_hpe_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:304,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:305,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:306,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:307,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:308,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: fu_redfish_hpe_device_set_progress
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishHpeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: fu_redfish_hpe_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_device_init(FuRedfishHpeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishHpeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: fu_redfish_hpe_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_device_class_init(FuRedfishHpeDeviceClass *klass)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:29,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:31,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:32,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:34,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:35,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:37,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:41,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:43,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:46,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:48,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - json_obj
    argTypes:
    - JsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: fu_redfish_smc_device_get_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - json_array_get_object_element
    - json_object_get_string_member
    - json_object_get_array_member
    - json_object_has_member
    - g_strcmp0
    - json_array_get_length
    - json_array_get_string_element
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_smc_device_get_task(JsonObject *json_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:54,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:55,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:56,1
    - Dst: json_generator_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:57,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:61,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:62,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:63,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:64,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:65,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:66,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:67,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:68,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:69,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:70,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:71,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:72,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:73,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:74,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:75,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:76,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:77,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:78,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:79,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:80,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:81,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:82,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:83,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:84,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:85,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:88,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:89,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:90,1
    - Dst: json_generator_to_gstring
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:91,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: fu_redfish_smc_device_get_parameters
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - json_generator_new
    - g_string_new
    - json_builder_begin_array
    - g_steal_pointer
    - json_builder_end_array
    - json_builder_begin_object
    - json_builder_add_boolean_value
    - json_builder_add_string_value
    - json_generator_to_gstring
    - json_builder_set_member_name
    - json_builder_get_root
    - json_generator_set_root
    - g_autoptr
    - json_builder_end_object
    - json_generator_set_pretty
    - json_builder_new
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_redfish_smc_device_get_parameters(FuRedfishSmcDevice *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:99,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:103,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:104,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:107,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:109,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:114,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:115,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:116,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:119,1
    - Dst: fu_redfish_smc_device_get_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:123,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:127,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:130,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: fu_redfish_smc_device_start_update
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - g_set_error
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - g_error_matches
    - g_steal_pointer
    - FU_REDFISH_DEVICE
    - fu_redfish_request_get_curl
    - fu_redfish_smc_device_get_task
    - fu_redfish_device_poll_task
    - fu_redfish_backend_get_push_uri_path
    - g_propagate_error
    - g_autoptr
    - fu_redfish_backend_request_new
    - fu_device_add_problem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_smc_device_start_update(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:140,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:141,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:150,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:153,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:154,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:155,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:158,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:163,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:164,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:165,1
    - Dst: fu_redfish_smc_device_get_parameters
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:167,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:168,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:169,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:170,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:171,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:172,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:174,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:175,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:176,1
    - Dst: curl_mime_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:177,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:178,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:178,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:178,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:180,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:182,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:183,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:184,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:187,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:188,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:189,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:189,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:193,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:197,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:200,1
    - Dst: fu_redfish_smc_device_get_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:203,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:205,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:209,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:213,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:213,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:215,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:218,1
    - Dst: fu_redfish_smc_device_start_update
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:220,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:220,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 224
    functionName: fu_redfish_smc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_REDFISH_DEVICE
    - g_propagate_error
    - fu_redfish_smc_device_start_update
    - g_set_error
    - fu_progress_get_child
    - g_debug
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - FU_REDFISH_SMC_DEVICE
    - fu_progress_add_step
    - curl_mime_type
    - fu_redfish_request_get_status_code
    - fu_progress_set_id
    - fu_redfish_backend_get_push_uri_path
    - fu_redfish_backend_request_new
    - curl_mime_addpart
    - curl_easy_setopt
    - fu_progress_step_done
    - curl_mime_init
    - g_steal_pointer
    - g_error_matches
    - curl_mime_name
    - fu_redfish_smc_device_get_parameters
    - curl_mime_data
    - curl_mime_filename
    - fu_redfish_smc_device_get_task
    - fu_redfish_device_poll_task
    - g_autoptr
    - g_bytes_get_data
    - fu_firmware_get_bytes
    - fu_device_add_problem
    - g_bytes_get_size
    - fu_redfish_request_get_curl
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_smc_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:229,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:230,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:231,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:232,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: fu_redfish_smc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smc_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: fu_redfish_smc_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smc_device_init(FuRedfishSmcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishSmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: fu_redfish_smc_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smc_device_class_init(FuRedfishSmcDeviceClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:33,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:34,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:35,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:41,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:44,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:45,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:46,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:49,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:49,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:50,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:51,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:52,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:55,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:56,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:59,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:63,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:63,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:64,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:65,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:66,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:69,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:70,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:71,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:74,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:76,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:77,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:81,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:81,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:82,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:83,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:84,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:85,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:87,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:88,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:89,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:94,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:95,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:96,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:97,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:101,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:101,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:102,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:103,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:104,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:107,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:108,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:110,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:114,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:115,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:116,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:119,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:123,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:123,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:124,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:125,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:126,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:128,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:129,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:131,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:135,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:136,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:137,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:139,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 86
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 29
    functionDepth: 10
    functionLinenumber: 29
    functionLinenumberEnd: 142
    functionName: fu_test_self_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 1
    functionsReached:
    - fu_plugin_new_from_gtype
    - g_test_skip
    - fu_progress_new
    - fu_context_load_hwinfo
    - g_error_matches
    - g_clear_error
    - fu_plugin_runner_coldplug
    - fu_redfish_plugin_get_type
    - g_assert_true
    - fu_redfish_plugin_reload
    - g_assert_no_error
    - g_autoptr
    - fu_plugin_runner_startup
    - fu_context_load_quirks
    - fu_redfish_plugin_set_credentials
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_test_self_init(FuTest *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:149,1
    - Dst: fu_ipmi_device_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:151,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:156,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:157,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:162,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:163,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:164,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:167,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:168,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:169,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:170,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:173,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:174,1
    - Dst: fu_ipmi_device_set_user_name
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:177,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:178,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:179,1
    - Dst: fu_ipmi_device_get_user_password
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:180,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:181,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:183,1
    - Dst: fu_ipmi_device_set_user_enable
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:184,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:185,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:186,1
    - Dst: fu_ipmi_device_set_user_priv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:187,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:188,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:189,1
    - Dst: fu_ipmi_device_set_user_password
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:190,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:191,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:192,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: fu_test_redfish_ipmi_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_debug
    - g_error_matches
    - fu_ipmi_device_set_user_enable
    - g_assert_true
    - fu_ipmi_device_get_user_password
    - fu_device_to_string
    - g_assert_no_error
    - FU_DEVICE
    - fu_ipmi_device_set_user_priv
    - g_assert_nonnull
    - g_file_test
    - fu_device_locker_new
    - g_autoptr
    - fu_ipmi_device_set_user_password
    - g_getenv
    - fu_ipmi_device_set_user_name
    - fu_ipmi_device_new
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_ipmi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_common_buffer_to_ipv4
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:221,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:222,1
    - Dst: fu_redfish_common_buffer_to_ipv6
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:223,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:224,1
    - Dst: fu_redfish_common_buffer_to_mac
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:225,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 227
    functionName: fu_test_redfish_common_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_redfish_common_buffer_to_mac
    - g_assert_cmpstr
    - fu_redfish_common_buffer_to_ipv4
    - fu_redfish_common_buffer_to_ipv6
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_common_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:240,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: fu_test_redfish_common_version_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_redfish_common_fix_version
    - g_assert_cmpstr
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_common_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_common_parse_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:264,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:265,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:266,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: fu_test_redfish_common_lenovo_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_redfish_common_parse_version_lenovo
    - g_assert_cmpstr
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_common_lenovo_func(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:277,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:279,1
    - Dst: fu_redfish_network_device_for_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:281,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:282,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:283,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:286,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:287,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:288,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:291,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:292,1
    - Dst: fu_redfish_network_device_get_state
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:293,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:294,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:295,1
    - Dst: fu_redfish_network_device_connect
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:297,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:298,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:299,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:301,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:302,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 304
    functionName: fu_test_redfish_network_mac_addr_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_redfish_network_device_for_mac_addr
    - g_error_matches
    - fu_redfish_network_device_get_state
    - fu_redfish_network_device_connect
    - g_assert_true
    - g_strdup_printf
    - fu_redfish_network_device_get_address
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_network_mac_addr_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:310,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:312,1
    - Dst: fu_redfish_network_device_for_vid_pid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:314,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:315,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:316,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:319,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:320,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:321,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:324,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:325,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:326,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:327,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 329
    functionName: fu_test_redfish_network_vid_pid_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_error_matches
    - g_strdup_printf
    - fu_redfish_network_device_get_address
    - g_assert_no_error
    - fu_redfish_network_device_for_vid_pid
    - g_assert_nonnull
    - g_autoptr
    - fu_context_new
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_network_vid_pid_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:340,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:341,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:343,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:346,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:349,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:350,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:351,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:352,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:352,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:353,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:353,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:354,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:354,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:355,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:355,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:356,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:356,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:357,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:357,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:358,1
    - Dst: fu_device_get_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:358,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:359,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:359,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:360,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:360,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:361,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:362,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:363,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:363,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:364,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:364,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:365,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:365,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:366,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:366,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:369,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:370,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:371,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:372,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:372,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:373,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:373,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:374,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:374,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:375,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:376,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:376,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:377,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:377,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:378,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:378,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:379,1
    - Dst: fu_device_get_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:379,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:380,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:380,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:381,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:381,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:382,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:382,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:383,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:383,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:384,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:384,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:385,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 386
    functionName: fu_test_redfish_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fu_device_has_guid
    - fu_device_get_version_build_date
    - g_assert_true
    - fu_device_to_string
    - fu_device_has_flag
    - fu_device_get_vendor
    - fu_device_get_id
    - fu_plugin_get_devices
    - g_debug
    - fu_device_get_version
    - fu_device_has_icon
    - g_assert_cmpint
    - fu_device_get_version_lowest
    - g_ptr_array_index
    - fu_device_get_name
    - g_assert_nonnull
    - g_assert_cmpstr
    - fu_device_get_version_format
    - fu_device_has_vendor_id
    - fu_device_has_protocol
    - fu_device_get_serial
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:395,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:396,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:398,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:401,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:403,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:404,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:404,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:405,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:405,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:407,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:409,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:410,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:410,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:411,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:411,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 414
    functionName: fu_test_redfish_unlicensed_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_test_skip
    - g_assert_cmpint
    - fwupd_device_problem_to_string
    - g_assert_true
    - g_ptr_array_index
    - FU_IS_REDFISH_SMC_DEVICE
    - fu_device_has_inhibit
    - g_assert_nonnull
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_unlicensed_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:423,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:424,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:426,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:429,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:431,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:432,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:432,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:434,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:435,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 436
    functionName: fu_test_redfish_smc_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_test_skip
    - g_assert_cmpint
    - g_assert_true
    - g_ptr_array_index
    - FU_IS_REDFISH_SMC_DEVICE
    - g_assert_nonnull
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_smc_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:445,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:446,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:448,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:451,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:453,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:454,1
    - Dst: FU_IS_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:454,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:455,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: fu_test_redfish_dell_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_test_skip
    - fu_device_has_guid
    - g_assert_cmpint
    - g_assert_true
    - FU_IS_REDFISH_DEVICE
    - g_ptr_array_index
    - g_assert_nonnull
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_dell_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:469,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:469,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:472,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:474,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:476,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:477,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:479,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:485,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:486,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:487,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:488,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:489,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:492,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:495,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 497
    functionName: fu_test_redfish_hpe_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_test_skip
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - g_assert_cmpint
    - fu_progress_get_child
    - fu_progress_add_flag
    - fu_progress_add_step
    - g_assert_true
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - g_assert_no_error
    - g_assert_nonnull
    - g_autoptr
    - fu_firmware_set_filename
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_hpe_update_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:509,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:509,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:512,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:513,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:514,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:516,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:517,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:519,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:522,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:525,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:526,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:527,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:528,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:529,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:532,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:535,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:536,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:537,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:537,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:538,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:541,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:544,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:547,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 549
    functionName: fu_test_redfish_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - g_assert_true
    - fu_device_has_flag
    - fu_plugin_get_devices
    - fu_plugin_runner_write_firmware
    - fu_progress_get_child
    - g_assert_cmpint
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - g_assert_false
    - fu_progress_step_done
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_bytes_new_static
    - fu_progress_new
    - g_assert_no_error
    - fu_firmware_set_filename
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_update_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:563,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:563,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:566,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:567,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:568,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:570,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:571,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:573,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:576,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:579,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:580,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:581,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:582,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:583,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:589,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:590,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:591,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:594,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:595,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:596,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:599,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:602,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:603,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:604,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:604,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 607
    functionName: fu_test_redfish_smc_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_test_skip
    - fwupd_device_problem_to_string
    - g_assert_true
    - fu_plugin_get_devices
    - fu_plugin_runner_write_firmware
    - fu_progress_get_child
    - g_assert_cmpint
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_firmware_new_from_bytes
    - g_ptr_array_index
    - g_assert_false
    - fu_progress_step_done
    - fu_device_has_inhibit
    - g_assert_nonnull
    - g_autoptr
    - g_assert_error
    - g_bytes_new_static
    - fu_progress_new
    - g_assert_no_error
    - fu_firmware_set_filename
    linkageType: ''
    returnType: void
    signature: void fu_test_redfish_smc_update_func(gconstpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:613,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:615,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:617,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:619,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:621,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 623
    functionName: fu_test_self_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    linkageType: ''
    returnType: void
    signature: void fu_test_self_free(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:633,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:633,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:637,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:638,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:640,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:642,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:643,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:644,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:645,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:646,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:647,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:649,1
    - Dst: fu_test_self_init
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:650,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:651,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:652,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:653,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:654,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:655,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:656,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:657,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:660,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:663,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:664,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:665,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:666,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:669,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 671
    functionName: main
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_new0
    - g_build_filename
    - g_test_build_filename
    - fu_test_self_init
    - g_test_add_func
    - g_setenv
    - g_autoptr
    - g_test_add_data_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: fu_redfish_smbios_get_interface_type
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FuRedfishSmbiosInterfaceType
    signature: FuRedfishSmbiosInterfaceType fu_redfish_smbios_get_interface_type(FuRedfishSmbios
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: fu_redfish_smbios_get_port
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_redfish_smbios_get_port(FuRedfishSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: fu_redfish_smbios_get_vid
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_redfish_smbios_get_vid(FuRedfishSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: fu_redfish_smbios_get_pid
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_redfish_smbios_get_pid(FuRedfishSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: fu_redfish_smbios_get_hostname
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_smbios_get_hostname(FuRedfishSmbios *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fu_redfish_smbios_get_mac_addr
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_smbios_get_mac_addr(FuRedfishSmbios *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: fu_redfish_smbios_get_ip_addr
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_smbios_get_ip_addr(FuRedfishSmbios *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:71,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hostname
    argTypes:
    - FuRedfishSmbios*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: fu_redfish_smbios_set_hostname
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_set_hostname(FuRedfishSmbios *self, const gchar
      *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:78,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - mac_addr
    argTypes:
    - FuRedfishSmbios*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: fu_redfish_smbios_set_mac_addr
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_set_mac_addr(FuRedfishSmbios *self, const gchar
      *mac_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:85,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - ip_addr
    argTypes:
    - FuRedfishSmbios*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: fu_redfish_smbios_set_ip_addr
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_set_ip_addr(FuRedfishSmbios *self, const gchar
      *ip_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - port
    argTypes:
    - FuRedfishSmbios*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: fu_redfish_smbios_set_port
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_set_port(FuRedfishSmbios *self, guint16 port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:98,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:99,1
    - Dst: fu_redfish_smbios_interface_type_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:101,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:102,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:103,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:104,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:105,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:106,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: fu_redfish_smbios_export
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_SMBIOS
    - fu_xmlb_builder_insert_kx
    - fu_redfish_smbios_interface_type_to_string
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:113,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:118,1
    - Dst: fu_redfish_smbios_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:120,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:121,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:124,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:127,1
    - Dst: fu_redfish_smbios_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:129,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:130,1
    - Dst: fu_redfish_smbios_set_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:132,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:133,1
    - Dst: fu_redfish_smbios_set_ip_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: fu_redfish_smbios_build
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_redfish_smbios_set_hostname
    - xb_node_query_text_as_uint
    - FU_REDFISH_SMBIOS
    - fu_redfish_smbios_set_ip_addr
    - fu_redfish_smbios_set_port
    - fu_redfish_smbios_set_mac_addr
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_smbios_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:152,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:154,1
    - Dst: fu_redfish_interface_type_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:172,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:180,1
    - Dst: fu_redfish_common_buffer_to_mac
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:188,1
    - Dst: fu_redfish_smbios_set_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:189,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:194,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuRedfishSmbios*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 210
    functionName: fu_redfish_smbios_parse_interface_data
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_input_stream_read_u16
    - fu_redfish_interface_type_to_string
    - fu_input_stream_read_u8
    - fu_redfish_common_buffer_to_mac
    - fu_redfish_smbios_set_mac_addr
    - fu_input_stream_read_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_smbios_parse_interface_data(FuRedfishSmbios *self,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       gsize offset,\n\t\t\t\t       GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:220,1
    - Dst: fu_struct_redfish_protocol_over_ip_parse_stream
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:223,1
    - Dst: fu_redfish_smbios_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:226,1
    - Dst: fu_struct_redfish_protocol_over_ip_get_service_ip_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:227,1
    - Dst: fu_struct_redfish_protocol_over_ip_get_service_ip_address_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:229,1
    - Dst: fu_struct_redfish_protocol_over_ip_get_service_ip_address
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:232,1
    - Dst: fu_redfish_common_buffer_to_ipv4
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:233,1
    - Dst: fu_redfish_smbios_set_ip_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:234,1
    - Dst: fu_struct_redfish_protocol_over_ip_get_service_ip_address
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:237,1
    - Dst: fu_redfish_common_buffer_to_ipv6
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:238,1
    - Dst: fu_redfish_smbios_set_ip_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:239,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:241,1
    - Dst: fu_struct_redfish_protocol_over_ip_get_service_hostname_len
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:249,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:251,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:252,1
    - Dst: fu_redfish_smbios_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuRedfishSmbios*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 265
    functionName: fu_redfish_smbios_parse_over_ip
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_redfish_smbios_set_hostname
    - fu_redfish_smbios_set_ip_addr
    - fu_struct_redfish_protocol_over_ip_get_service_hostname_len
    - fu_struct_redfish_protocol_over_ip_get_service_ip_address
    - fu_struct_redfish_protocol_over_ip_get_service_ip_port
    - fu_redfish_smbios_set_port
    - fu_input_stream_read_safe
    - g_malloc0
    - g_set_error_literal
    - g_autoptr
    - fu_redfish_common_buffer_to_ipv4
    - fu_struct_redfish_protocol_over_ip_parse_stream
    - fu_redfish_common_buffer_to_ipv6
    - fu_struct_redfish_protocol_over_ip_get_service_ip_address_format
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_smbios_parse_over_ip(FuRedfishSmbios *self,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tgsize offset,\n\t\t\t\tGError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:276,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:279,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:282,1
    - Dst: fu_struct_redfish_smbios_type42_parse_stream
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:291,1
    - Dst: fu_struct_redfish_smbios_type42_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:297,1
    - Dst: fu_struct_redfish_smbios_type42_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:301,1
    - Dst: fu_struct_redfish_smbios_type42_get_data_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:308,1
    - Dst: fu_redfish_smbios_parse_interface_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:309,1
    - Dst: fu_struct_redfish_smbios_type42_get_data_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:312,1
    - Dst: fu_struct_redfish_smbios_type42_get_interface_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:315,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:318,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:321,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:325,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:327,1
    - Dst: fu_redfish_smbios_parse_over_ip
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:330,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:336,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 344
    functionName: fu_redfish_smbios_parse
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_REDFISH_SMBIOS
    - fu_struct_redfish_smbios_type42_get_interface_type
    - g_debug
    - fu_redfish_smbios_parse_over_ip
    - fu_input_stream_read_u8
    - fu_redfish_smbios_parse_interface_data
    - fu_struct_redfish_smbios_type42_get_length
    - g_autoptr
    - fu_struct_redfish_smbios_type42_parse_stream
    - fu_input_stream_size
    - fu_struct_redfish_smbios_type42_get_data_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_smbios_parse(FuFirmware *firmware,\n\t\t\tGInputStream
      *stream,\n\t\t\tFuFirmwareParseFlags flags,\n\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:351,1
    - Dst: fu_struct_redfish_protocol_over_ip_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:352,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:352,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:355,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:356,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:357,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:358,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:359,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:360,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:361,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:362,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:363,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:364,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:365,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:366,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:367,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:368,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:371,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:372,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:375,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:376,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_address_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:377,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:380,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_hostname_len
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:383,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:384,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:386,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 388
    functionName: fu_redfish_smbios_write
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_struct_redfish_protocol_over_ip_set_service_hostname_len
    - FU_REDFISH_SMBIOS
    - fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type
    - strlen
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint16
    - g_steal_pointer
    - fu_struct_redfish_protocol_over_ip_new
    - g_autoptr
    - fu_struct_redfish_protocol_over_ip_set_service_ip_port
    - fu_struct_redfish_protocol_over_ip_set_service_ip_address_format
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_redfish_smbios_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:393,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:394,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:395,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:396,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: fu_redfish_smbios_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_SMBIOS
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: fu_redfish_smbios_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_init(FuRedfishSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:408,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishSmbiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: fu_redfish_smbios_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smbios_class_init(FuRedfishSmbiosClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:420,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: fu_redfish_smbios_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached:
    - FU_REDFISH_SMBIOS
    - g_object_new
    linkageType: ''
    returnType: FuRedfishSmbios
    signature: 'FuRedfishSmbios *

      fu_redfish_smbios_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 1542
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:31,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:33,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:34,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:35,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: fu_redfish_device_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_REDFISH_DEVICE
    - GET_PRIVATE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:42,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:43,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:46,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:47,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:50,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:54,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:55,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:58,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - tmp
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: fu_redfish_device_set_device_class
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_DEVICE
    - g_debug
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_device_class(FuRedfishDevice *self, const
      gchar *tmp)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:74,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:74,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:77,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:83,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:86,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:87,1
    - Dst: fu_redfish_device_set_device_class
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:89,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:91,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:92,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:94,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:103,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:104,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:106,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:115,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:116,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:118,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:127,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:128,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:130,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:141,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:145,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:147,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:150,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:153,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:155,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:156,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 45
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 160
    functionName: fu_redfish_device_probe_related_pcie_item
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_set_device_class
    - g_strdup_printf
    - fu_device_build_vendor_id_u16
    - fu_device_build_instance_id
    - FU_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_device_add_instance_str
    - json_object_has_member
    - fu_redfish_backend_request_new
    - fu_strtoull
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_related_pcie_item(FuRedfishDevice
      *self, const gchar *uri, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:169,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:169,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:172,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:178,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:180,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:181,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:182,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:184,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:185,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:187,1
    - Dst: fu_redfish_device_probe_related_pcie_item
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 196
    functionName: fu_redfish_device_probe_related_pcie_functions
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_array_get_object_element
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_probe_related_pcie_item
    - GET_PRIVATE
    - json_object_get_array_member
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_device_probe_related_pcie_functions(FuRedfishDevice
      *self,\n\t\t\t\t\t       const gchar *uri,\n\t\t\t\t\t       GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:203,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:203,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:206,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:212,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:215,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:217,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:218,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:220,1
    - Dst: json_object_get_boolean_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:222,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:225,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:229,1
    - Dst: json_object_get_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:230,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:231,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:232,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:233,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:234,1
    - Dst: fu_redfish_device_probe_related_pcie_functions
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 243
    functionName: fu_redfish_device_probe_related_item
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_string_member
    - json_object_get_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - JSON_NODE_HOLDS_OBJECT
    - FU_DEVICE
    - json_object_get_boolean_member
    - GET_PRIVATE
    - fu_device_set_serial
    - g_autoptr
    - fu_device_remove_flag
    - json_object_has_member
    - fu_redfish_backend_request_new
    - fu_device_add_flag
    - json_node_get_object
    - fu_redfish_device_probe_related_pcie_functions
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_related_item(FuRedfishDevice *self,
      const gchar *uri, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:249,1
    - Dst: fu_redfish_common_parse_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:254,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:258,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:262,1
    - Dst: g_ascii_isalpha
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:266,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:267,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:270,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:271,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:272,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 274
    functionName: fu_redfish_device_set_version_lenovo
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_set_version
    - fu_device_set_version_format
    - fu_version_guess_format
    - fu_device_add_private_flag
    - g_strndup
    - fu_redfish_common_parse_version_lenovo
    - FU_DEVICE
    - GET_PRIVATE
    - g_ascii_strtoull
    - g_ascii_isalpha
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_set_version_lenovo(FuRedfishDevice *self,
      const gchar *version, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:280,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:281,1
    - Dst: fu_redfish_device_set_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:282,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:283,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:288,1
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:289,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:291,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:292,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - tmp
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 295
    functionName: fu_redfish_device_set_version
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_format
    - g_debug
    - fu_device_get_version
    - fu_version_guess_format
    - fu_redfish_common_fix_version
    - FU_DEVICE
    - fu_redfish_device_set_version_lenovo
    - g_autoptr
    - fu_device_get_vendor
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_version(FuRedfishDevice *self, const gchar
      *tmp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:301,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:302,1
    - Dst: fu_redfish_common_parse_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:304,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:308,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:310,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:314,1
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:315,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - tmp
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 318
    functionName: fu_redfish_device_set_version_lowest
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_lowest
    - g_debug
    - fu_device_get_version_lowest
    - fu_redfish_common_fix_version
    - FU_DEVICE
    - fu_redfish_common_parse_version_lenovo
    - g_autoptr
    - fu_device_get_vendor
    - g_strcmp0
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_version_lowest(FuRedfishDevice *self, const
      gchar *tmp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:324,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:328,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:330,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:330,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:331,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:333,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:333,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:334,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:336,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:337,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:339,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:343,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:344,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:345,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:346,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 350
    functionName: fu_redfish_device_set_name
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - fu_device_set_summary
    - fu_device_add_flag
    - FU_DEVICE
    - g_str_has_suffix
    - fu_device_add_icon
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_name(FuRedfishDevice *self, const gchar
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:358,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:358,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:360,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:363,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:364,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 366
    functionName: fu_redfish_device_set_vendor
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strdelimit
    - FU_DEVICE
    - g_ascii_strup
    - fu_device_build_vendor_id
    - g_strcmp0
    - fu_device_set_vendor
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_vendor(FuRedfishDevice *self, const gchar
      *vendor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:372,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:373,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:376,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:377,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:380,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:381,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: fu_redfish_device_smc_license_check
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - g_error_matches
    - FU_DEVICE
    - fu_redfish_backend_get_push_uri_path
    - g_autoptr
    - fu_redfish_backend_request_new
    - fu_device_add_problem
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_smc_license_check(FuRedfishDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:392,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:393,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:395,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:397,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:398,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:399,1
    - Dst: json_array_get_string_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:400,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - json_object
    - error
    argTypes:
    - FuRedfishDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: fu_redfish_device_probe_oem_hpe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_string_member
    - fu_device_add_instance_id
    - FU_DEVICE
    - json_object_get_array_member
    - json_object_has_member
    - json_array_get_length
    - json_array_get_string_element
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_oem_hpe(FuRedfishDevice *self, JsonObject
      *json_object, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:414,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:416,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:417,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:418,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:419,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:420,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:424,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:425,1
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:426,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:427,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:436,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:439,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - json_object
    - error
    argTypes:
    - FuRedfishDevice*
    - JsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 454
    functionName: fu_redfish_device_probe_oem_dell
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_get_object_member
    - json_object_get_string_member
    - fu_device_add_private_flag
    - g_ascii_strncasecmp
    - fu_device_build_instance_id
    - FU_DEVICE
    - g_set_error_literal
    - json_object_has_member
    - g_strcmp0
    - fu_device_build_instance_id_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_oem_dell(FuRedfishDevice *self, JsonObject
      *json_object, GError **error)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:459,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:460,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:466,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:471,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:472,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:478,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:479,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:479,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:480,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:481,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:483,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:485,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:485,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:488,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:489,1
    - Dst: fu_redfish_device_set_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:491,1
    - Dst: fu_redfish_device_set_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:493,1
    - Dst: fu_redfish_backend_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:493,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:495,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:495,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:498,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:499,1
    - Dst: fu_redfish_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:501,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:505,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:506,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:509,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:509,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:510,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:512,1
    - Dst: fu_device_set_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:513,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:515,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:521,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:522,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:524,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:525,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:526,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:528,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:529,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:530,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:531,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:542,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:543,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:544,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:545,1
    - Dst: fu_redfish_device_probe_oem_hpe
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:546,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:549,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:550,1
    - Dst: fu_redfish_device_probe_oem_dell
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:551,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:557,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:565,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:566,1
    - Dst: fu_redfish_device_set_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:568,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:570,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:571,1
    - Dst: fu_redfish_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:573,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:575,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:576,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:578,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:582,1
    - Dst: json_object_get_boolean_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:583,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:584,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:588,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:589,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:593,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:598,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:599,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:600,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:601,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:603,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:604,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:606,1
    - Dst: fu_redfish_device_probe_related_item
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:607,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:614,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:614,1
    - Dst: fu_redfish_device_smc_license_check
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:615,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 96
    argCount: 2
    argNames:
    - dev
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 456
    functionDepth: 9
    functionLinenumber: 456
    functionLinenumberEnd: 619
    functionName: fu_redfish_device_probe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_build_date
    - g_date_time_new_from_iso8601
    - fu_redfish_device_set_name
    - FU_REDFISH_DEVICE
    - fu_redfish_device_set_vendor
    - fu_device_has_flag
    - fu_redfish_device_set_version_lowest
    - fu_redfish_device_probe_oem_hpe
    - fu_device_get_vendor
    - fu_device_build_instance_id_full
    - fu_redfish_backend_get_vendor
    - g_time_zone_new_utc
    - json_object_get_object_member
    - g_set_error
    - json_array_get_object_element
    - fu_device_get_backend_id
    - fu_redfish_device_probe_oem_dell
    - fu_device_add_flag
    - fu_device_add_instance_strsafe
    - fu_device_set_backend_id
    - json_object_get_array_member
    - json_object_get_string_member
    - fu_device_set_physical_id
    - g_ascii_strdown
    - fu_redfish_device_smc_license_check
    - fu_device_set_summary
    - fu_device_add_instance_id
    - fu_device_set_logical_id
    - g_autoptr
    - fu_redfish_device_set_version
    - g_warning
    - fu_device_has_private_flag
    - fu_device_build_instance_id
    - g_set_error_literal
    - json_object_get_boolean_member
    - GET_PRIVATE
    - fu_device_add_instance_str
    - g_date_time_to_unix
    - json_object_has_member
    - g_strcmp0
    - fwupd_guid_is_valid
    - json_array_get_length
    - fu_redfish_device_probe_related_item
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe(FuDevice *dev, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: fu_redfish_device_get_backend
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 7
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: FuRedfishBackend
    signature: 'FuRedfishBackend *

      fu_redfish_device_get_backend(FuRedfishDevice *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:643,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:644,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:645,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:646,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:650,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:651,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:652,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:653,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:658,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:659,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:662,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:663,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:666,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:667,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:670,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:671,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:673,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:676,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:677,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:678,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:683,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:684,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:687,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:688,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:691,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:693,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:696,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:698,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:701,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:703,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:706,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:707,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:710,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:711,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:714,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:715,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:718,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:719,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:722,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:723,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 5
    argNames:
    - self
    - message_id
    - message
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 635
    functionDepth: 6
    functionLinenumber: 635
    functionLinenumberEnd: 729
    functionName: fu_redfish_device_parse_message_id
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_status
    - g_set_error_literal
    - fu_device_add_flag
    - FU_DEVICE
    - g_pattern_match_simple
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_device_parse_message_id(FuRedfishDevice *self,\n\t\t\t\t
      \  const gchar *message_id,\n\t\t\t\t   const gchar *message,\n\t\t\t\t   FuProgress
      *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:734,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:738,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:738,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:741,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:748,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:749,1
    - Dst: json_object_get_int_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:750,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:752,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:756,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:757,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:758,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:761,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:766,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:768,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:769,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:770,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:773,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:774,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:775,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:778,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:778,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:781,1
    - Dst: fu_redfish_device_parse_message_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:782,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:792,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:793,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:799,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:800,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:801,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:802,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:802,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:806,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:807,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:810,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:811,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:812,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - self
    - ctx
    - error
    argTypes:
    - FuRedfishDevice*
    - FuRedfishDevicePollCtx*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 731
    functionDepth: 7
    functionLinenumber: 731
    functionLinenumberEnd: 818
    functionName: fu_redfish_device_poll_task_once
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - json_array_get_object_element
    - g_debug
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - json_object_get_array_member
    - json_object_get_string_member
    - fu_progress_set_percentage
    - fu_redfish_backend_request_new
    - g_hash_table_contains
    - fu_redfish_device_parse_message_id
    - g_steal_pointer
    - g_autoptr
    - json_object_get_int_member
    - g_hash_table_add
    - g_strdup_printf
    - g_set_error_literal
    - FU_DEVICE
    - GET_PRIVATE
    - json_object_has_member
    - g_strcmp0
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_poll_task_once(FuRedfishDevice *self, FuRedfishDevicePollCtx
      *ctx, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:823,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:824,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:825,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - progress
    - location
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: fu_redfish_device_poll_ctx_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_object_ref
    - g_hash_table_new_full
    - g_strdup
    linkageType: ''
    returnType: FuRedfishDevicePollCtx
    signature: 'FuRedfishDevicePollCtx *

      fu_redfish_device_poll_ctx_new(FuProgress *progress, const gchar *location)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:833,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:834,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:835,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuRedfishDevicePollCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 837
    functionName: fu_redfish_device_poll_ctx_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_object_unref
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_poll_ctx_free(FuRedfishDevicePollCtx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:851,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:851,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:852,1
    - Dst: fu_redfish_device_poll_ctx_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:852,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:856,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:856,1
    - Dst: fu_redfish_device_poll_task_once
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:857,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:860,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:863,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - location
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 844
    functionDepth: 8
    functionLinenumber: 844
    functionLinenumberEnd: 873
    functionName: fu_redfish_device_poll_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - fu_redfish_device_poll_task_once
    - g_timer_new
    - fu_redfish_device_poll_ctx_new
    - g_timer_elapsed
    - FU_DEVICE
    - g_autoptr
    - fu_progress_finished
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_device_poll_task(FuRedfishDevice *self,\n\t\t\t
      \   const gchar *location,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 880
    functionName: fu_redfish_device_get_reset_pre_delay
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_redfish_device_get_reset_pre_delay(FuRedfishDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 887
    functionName: fu_redfish_device_get_reset_post_delay
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_redfish_device_get_reset_post_delay(FuRedfishDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:895,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:896,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:899,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:900,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:905,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:906,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:911,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 916
    functionName: fu_redfish_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_DEVICE
    - g_set_error_literal
    - GET_PRIVATE
    - g_strcmp0
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_device_set_quirk_kv(FuDevice *device,\n\t\t\t
      \      const gchar *key,\n\t\t\t       const gchar *value,\n\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:921,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:922,1
    - Dst: g_value_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:925,1
    - Dst: g_value_set_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:928,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 934
    functionName: fu_redfish_device_get_property
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_pointer
    - FU_REDFISH_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:939,1
    - Dst: json_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:941,1
    - Dst: json_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - member
    argTypes:
    - FuRedfishDevice*
    - JsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: fu_redfish_device_set_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_unref
    - GET_PRIVATE
    - json_object_ref
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_member(FuRedfishDevice *self, JsonObject
      *member)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:954,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:955,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:958,1
    - Dst: g_value_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:958,1
    - Dst: fu_redfish_device_set_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:961,1
    - Dst: g_value_get_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:961,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 967
    functionName: fu_redfish_device_set_property
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_value_get_pointer
    - FU_REDFISH_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_set_object
    - GET_PRIVATE
    - g_value_get_object
    - fu_redfish_device_set_member
    linkageType: ''
    returnType: void
    signature: "void fu_redfish_device_set_property(GObject *object,\n\t\t\t       guint
      prop_id,\n\t\t\t       const GValue *value,\n\t\t\t       GParamSpec *pspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:972,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:972,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:973,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:973,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:974,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:974,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:975,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:976,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:977,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:977,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:978,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:978,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:979,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:979,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:980,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:980,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:981,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:981,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:982,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:982,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:983,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:983,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:984,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 969
    functionDepth: 6
    functionLinenumber: 969
    functionLinenumberEnd: 986
    functionName: fu_redfish_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_init(FuRedfishDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:991,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:992,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:994,1
    - Dst: json_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:996,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:997,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 999
    functionName: fu_redfish_device_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - json_object_unref
    - FU_REDFISH_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1004,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1006,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1022,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1027,1
    - Dst: g_param_spec_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1035,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1040
    functionName: fu_redfish_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_pointer
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    - g_param_spec_object
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_class_init(FuRedfishDeviceClass *klass)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:24,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:27,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:43,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:45,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:52,1
    - Dst: fu_redfish_network_device_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:61,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:63,1
    - Dst: fu_context_get_backend_by_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:66,1
    - Dst: fu_backend_create_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:70,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:70,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:75,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:83,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:87,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:87,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:92,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:93,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:94,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:95,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:96,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:97,1
    - Dst: fu_redfish_network_device_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:98,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - helper
    - object_path
    - error
    argTypes:
    - FuRedfishNetworkMatchHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 103
    functionName: fu_redfish_network_device_match_device
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - g_debug
    - g_variant_get_string
    - fu_redfish_network_device_new
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_vid
    - g_prefix_error
    - g_dbus_proxy_get_cached_property
    - fu_context_get_backend_by_name
    - g_dbus_proxy_new_for_bus_sync
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_get_sysfs_path
    - g_strcmp0
    - fu_backend_create_device
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_network_device_match_device(FuRedfishNetworkMatchHelper
      *helper,\n\t\t\t\t       const gchar *object_path,\n\t\t\t\t       GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:110,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:111,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:114,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:124,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:125,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:127,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:133,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:134,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:139,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:147,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:149,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:155,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:156,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:158,1
    - Dst: g_variant_get
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:167,1
    - Dst: fu_redfish_network_device_match_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:168,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:169,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:170,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:173,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:180,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - helper
    - error
    argTypes:
    - FuRedfishNetworkMatchHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 187
    functionName: fu_redfish_network_device_match
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_auto
    - g_propagate_prefixed_error
    - g_variant_get
    - g_steal_pointer
    - g_error_matches
    - g_debug
    - g_dbus_proxy_get_name
    - fu_redfish_network_device_match_device
    - g_set_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_network_device_match(FuRedfishNetworkMatchHelper
      *helper, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_network_device_match
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - mac_addr
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 7
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: fu_redfish_network_device_for_mac_addr
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network.c
    functionUses: 2
    functionsReached:
    - fu_redfish_network_device_match
    - g_prefix_error
    linkageType: ''
    returnType: FuRedfishNetworkDevice
    signature: 'FuRedfishNetworkDevice *

      fu_redfish_network_device_for_mac_addr(FuContext *ctx, const gchar *mac_addr,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_network_device_match
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:211,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-network.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - vid
    - pid
    - error
    argTypes:
    - FuContext*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 7
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: fu_redfish_network_device_for_vid_pid
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network.c
    functionUses: 2
    functionsReached:
    - fu_redfish_network_device_match
    - g_prefix_error
    linkageType: ''
    returnType: FuRedfishNetworkDevice
    signature: 'FuRedfishNetworkDevice *

      fu_redfish_network_device_for_vid_pid(FuContext *ctx, guint16 vid, guint16 pid,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:75,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:76,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:77,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: fu_ipmi_device_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - FU_IPMI_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_ipmi_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: fu_ipmi_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_ioctl_buffer_cb(FuIoctl *self,\n\t\t\t       gpointer
      ptr,\n\t\t\t       guint8 *buf,\n\t\t\t       gsize bufsz,\n\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: fu_ipmi_device_ioctl_addr_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_ioctl_addr_cb(FuIoctl *self, gpointer ptr,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:121,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:121,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:121,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:124,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:127,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:131,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:132,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:133,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:134,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:135,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:136,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - self
    - netfn
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 149
    functionName: fu_ipmi_device_send
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - fu_ioctl_add_const_buffer
    - g_autoptr
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_send(FuIpmiDevice *self,\n\t\t    guint8 netfn,\n\t\t
      \   guint8 cmd,\n\t\t    const guint8 *buf,\n\t\t    gsize bufsz,\n\t\t    GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:168,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:168,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:168,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:170,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:171,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 8
    argNames:
    - self
    - netfn
    - cmd
    - seq
    - buf
    - bufsz
    - len
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8*
    - guint8*
    - glong*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 190
    functionName: fu_ipmi_device_recv
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u16
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_dump_raw
    - fu_ioctl_execute
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_recv(FuIpmiDevice *self,\n\t\t    guint8 *netfn,\n\t\t
      \   guint8 *cmd,\n\t\t    glong *seq,\n\t\t    guint8 *buf,\n\t\t    gsize bufsz,\n\t\t
      \   gsize *len, /* optional, out */\n\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:195,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:196,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:196,1
    - Dst: fcntl
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:198,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:198,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: fu_ipmi_device_lock
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_io_channel_unix_get_fd
    - FU_IPMI_DEVICE
    - fcntl
    - fu_udev_device_get_io_channel
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_lock(GObject *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:211,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:212,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:212,1
    - Dst: fcntl
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:214,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:214,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - GObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: fu_ipmi_device_unlock
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_io_channel_unix_get_fd
    - FU_IPMI_DEVICE
    - fcntl
    - fu_udev_device_get_io_channel
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_unlock(GObject *device, GError **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 285
    functionName: fu_ipmi_device_errcode_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ipmi_device_errcode_to_string(guint8 errcode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:296,1
    - Dst: fu_ipmi_device_errcode_to_string
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:300,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:306,1
    - Dst: fu_ipmi_device_errcode_to_string
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - errcode
    - error
    argTypes:
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: fu_ipmi_device_errcode_to_error
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ipmi_device_errcode_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_errcode_to_error(guint8 errcode, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:329,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:330,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:335,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:336,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:337,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:339,1
    - Dst: fu_ipmi_device_send
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:343,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:351,1
    - Dst: g_poll
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:360,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:362,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:364,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:368,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:379,1
    - Dst: fu_ipmi_device_recv
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:386,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:397,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:401,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:402,1
    - Dst: fu_ipmi_device_errcode_to_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:409,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:412,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:424,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 433
    functionName: fu_ipmi_device_transaction_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_ipmi_device_errcode_to_error
    - g_timer_new
    - fu_io_channel_unix_get_fd
    - g_timer_elapsed
    - FU_IPMI_DEVICE
    - fu_ipmi_device_send
    - fu_memcpy_safe
    - g_malloc0
    - fu_udev_device_get_io_channel
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_ipmi_device_recv
    - g_poll
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_transaction_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:457,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - self
    - netfn
    - cmd
    - req_buf
    - req_bufsz
    - resp_buf
    - resp_bufsz
    - resp_len
    - timeout_ms
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - guint8*
    - gsize
    - gsize*
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 464
    functionName: fu_ipmi_device_transaction
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_device_retry_add_recovery
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_transaction(FuIpmiDevice *self,\n\t\t\t   guint8
      netfn,\n\t\t\t   guint8 cmd,\n\t\t\t   const guint8 *req_buf,\n\t\t\t   gsize
      req_bufsz,\n\t\t\t   guint8 *resp_buf, /* optional */\n\t\t\t   gsize resp_bufsz,\n\t\t\t
      \  gsize *resp_len, /* optional, out */\n\t\t\t   gint timeout_ms,\n\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:469,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:475,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:478,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 486
    functionName: fu_ipmi_device_probe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - FU_IPMI_DEVICE
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_set_physical_id
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:491,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:509,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:509,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:516,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:518,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:525,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 540
    functionName: fu_ipmi_device_setup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_device_set_version
    - g_set_error
    - g_string_new
    - FU_IPMI_DEVICE
    - fu_ipmi_device_transaction
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:549,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:549,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:550,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:553,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:563,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:567,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - user_id
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 577
    functionName: fu_ipmi_device_get_user_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_set_error
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    - fu_ipmi_device_transaction
    - fu_memstrsafe
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ipmi_device_get_user_password(FuIpmiDevice *self, guint8 user_id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:588,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:588,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:589,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:590,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:593,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:594,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:602,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:607,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - user_id
    - username
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 623
    functionName: fu_ipmi_device_set_user_name
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - strlen
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - fu_ipmi_device_transaction
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_set_user_name(FuIpmiDevice *self,\n\t\t\t
      \    guint8 user_id,\n\t\t\t     const gchar *username,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:631,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:631,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:632,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:635,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - user_id
    - value
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 651
    functionName: fu_ipmi_device_set_user_enable
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_ipmi_device_transaction
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_set_user_enable(FuIpmiDevice *self, guint8
      user_id, gboolean value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:662,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:662,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:663,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:664,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:667,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:668,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:676,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:681,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - user_id
    - password
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 697
    functionName: fu_ipmi_device_set_user_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - strlen
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    - fu_memcpy_safe
    - fu_ipmi_device_transaction
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_set_user_password(FuIpmiDevice *self,\n\t\t\t\t
      guint8 user_id,\n\t\t\t\t const gchar *password,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:708,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:709,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:711,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:714,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - user_id
    - priv_limit
    - channel
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 734
    functionName: fu_ipmi_device_set_user_priv
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_ipmi_device_transaction
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_set_user_priv(FuIpmiDevice *self,\n\t\t\t
      \    guint8 user_id,\n\t\t\t     guint8 priv_limit,\n\t\t\t     guint8 channel,\n\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:745,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:745,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:746,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:749,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - user_id
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 765
    functionName: fu_ipmi_device_set_user_group_redfish_enable_advantech
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_ipmi_device_transaction
    - FU_IS_IPMI_DEVICE
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ipmi_device_set_user_group_redfish_enable_advantech(FuIpmiDevice
      *self,\n\t\t\t\t\t\t       guint8 user_id,\n\t\t\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:770,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:771,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:772,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:773,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:773,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:774,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:774,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:775,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIpmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 767
    functionDepth: 6
    functionLinenumber: 767
    functionLinenumberEnd: 776
    functionName: fu_ipmi_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - fu_udev_device_add_open_flag
    - fu_device_add_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_icon
    - fu_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_ipmi_device_init(FuIpmiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIpmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: fu_ipmi_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ipmi_device_class_init(FuIpmiDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: fu_ipmi_device_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuIpmiDevice
    signature: 'FuIpmiDevice *

      fu_ipmi_device_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:30,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: fu_redfish_request_get_json_object
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 15
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REDFISH_REQUEST
    linkageType: ''
    returnType: JsonObject
    signature: 'JsonObject *

      fu_redfish_request_get_json_object(FuRedfishRequest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:37,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_redfish_request_get_curl
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REDFISH_REQUEST
    linkageType: ''
    returnType: CURL
    signature: 'CURL *

      fu_redfish_request_get_curl(FuRedfishRequest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:44,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: fu_redfish_request_get_uri
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REDFISH_REQUEST
    linkageType: ''
    returnType: CURLU
    signature: 'CURLU *

      fu_redfish_request_get_uri(FuRedfishRequest *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:51,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: fu_redfish_request_get_status_code
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REDFISH_REQUEST
    linkageType: ''
    returnType: glong
    signature: glong fu_redfish_request_get_status_code(FuRedfishRequest *self)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:59,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:60,1
    - Dst: json_generator_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:64,1
    - Dst: json_parser_load_from_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:70,1
    - Dst: json_parser_get_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:78,1
    - Dst: JSON_NODE_HOLDS_OBJECT
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:84,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:85,1
    - Dst: json_node_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:93,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:98,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:99,1
    - Dst: json_generator_to_gstring
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:100,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:101,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:104,1
    - Dst: json_object_get_object_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:111,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:112,1
    - Dst: json_object_get_array_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:115,1
    - Dst: json_array_get_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:116,1
    - Dst: json_array_get_object_element
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:118,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:119,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:121,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:122,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:123,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:126,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:127,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:128,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:133,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:135,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:137,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:138,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:141,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuRedfishRequest*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 147
    functionName: fu_redfish_request_load_json
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - json_generator_new
    - g_string_new
    - json_parser_load_from_data
    - json_parser_get_root
    - json_generator_set_pretty
    - g_pattern_match_simple
    - json_object_get_object_member
    - json_array_get_object_element
    - g_debug
    - json_object_get_array_member
    - json_object_get_string_member
    - json_generator_to_gstring
    - JSON_NODE_HOLDS_OBJECT
    - g_autoptr
    - json_node_get_object
    - g_set_error_literal
    - json_generator_set_root
    - json_object_has_member
    - g_strcmp0
    - json_array_get_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_request_load_json(FuRedfishRequest *self, GByteArray
      *buf, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:157,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:159,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:159,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:160,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:161,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:162,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:166,1
    - Dst: fu_redfish_request_load_json
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:169,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:170,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:171,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:177,1
    - Dst: curl_url_get
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:178,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:179,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:180,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:181,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:182,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:186,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:191,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:197,1
    - Dst: fu_redfish_request_load_json
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:206,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:207,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:214,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:214,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:214,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - self
    - path
    - flags
    - error
    argTypes:
    - FuRedfishRequest*
    - gchar*
    - FuRedfishRequestPerformFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 218
    functionName: fu_redfish_request_perform
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 18
    functionsReached:
    - g_hash_table_insert
    - curl_url_set
    - FU_IS_REDFISH_REQUEST
    - g_prefix_error
    - g_hash_table_lookup
    - curl_url_get
    - g_byte_array_ref
    - g_return_val_if_fail
    - g_set_error
    - g_debug
    - g_strndup
    - fu_redfish_request_load_json
    - fu_redfish_request_get_status_code
    - curl_easy_perform
    - g_autoptr
    - g_byte_array_unref
    - curl_easy_strerror
    - g_set_error_literal
    - g_strdup
    - curl_easy_getinfo
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_request_perform(FuRedfishRequest *self,\n\t\t\t
      \  const gchar *path,\n\t\t\t   FuRedfishRequestPerformFlags flags,\n\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: fu_redfish_request_reset
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - g_byte_array_set_size
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_reset(FuRedfishRequest *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:241,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:242,1
    - Dst: json_generator_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:243,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:245,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:247,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:248,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:257,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:260,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:261,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:263,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:264,1
    - Dst: fu_redfish_request_reset
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:268,1
    - Dst: json_builder_get_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:272,1
    - Dst: json_generator_set_pretty
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:273,1
    - Dst: json_generator_set_root
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:274,1
    - Dst: json_generator_to_gstring
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:275,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:276,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:279,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:280,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:281,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:282,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:284,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:285,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 6
    argNames:
    - self
    - path
    - request
    - builder
    - flags
    - error
    argTypes:
    - FuRedfishRequest*
    - gchar*
    - gchar*
    - JsonBuilder*
    - FuRedfishRequestPerformFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 287
    functionName: fu_redfish_request_perform_full
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 4
    functionsReached:
    - json_generator_new
    - g_string_new
    - FU_IS_REDFISH_REQUEST
    - g_prefix_error
    - json_builder_get_root
    - g_return_val_if_fail
    - fu_redfish_request_reset
    - g_debug
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - json_object_get_string_member
    - curl_slist_append
    - curl_easy_setopt
    - json_generator_to_gstring
    - g_autoptr
    - g_strdup_printf
    - json_generator_set_root
    - json_object_has_member
    - json_generator_set_pretty
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_request_perform_full(FuRedfishRequest *self,\n\t\t\t\tconst
      gchar *path,\n\t\t\t\tconst gchar *request,\n\t\t\t\tJsonBuilder *builder,\n\t\t\t\tFuRedfishRequestPerformFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: fu_redfish_request_write_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: size_t
    signature: size_t fu_redfish_request_write_cb(char *ptr, size_t size, size_t nmemb,
      void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:301,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:301,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:302,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:303,1
    - Dst: g_hash_table_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cache
    argTypes:
    - FuRedfishRequest*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: fu_redfish_request_set_cache
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - g_hash_table_ref
    - FU_IS_REDFISH_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_set_cache(FuRedfishRequest *self, GHashTable
      *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:310,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:310,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:311,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - curlsh
    argTypes:
    - FuRedfishRequest*
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: fu_redfish_request_set_curlsh
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - curl_easy_setopt
    - FU_IS_REDFISH_REQUEST
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_set_curlsh(FuRedfishRequest *self, CURLSH *curlsh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:318,1
    - Dst: curl_url
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:319,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:320,1
    - Dst: json_parser_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:321,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:322,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: fu_redfish_request_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_url
    - json_parser_new
    - curl_easy_init
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_init(FuRedfishRequest *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:329,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:331,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:332,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:333,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:334,1
    - Dst: curl_url_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:335,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 337
    functionName: fu_redfish_request_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - curl_url_cleanup
    - curl_easy_cleanup
    - g_object_unref
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - g_byte_array_unref
    - FU_REDFISH_REQUEST
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishRequestClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: fu_redfish_request_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_class_init(FuRedfishRequestClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_LEGACY_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:23,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:24,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:25,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:26,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:26,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:29,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:30,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:31,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:32,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:33,1
    - Dst: json_builder_add_string_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:34,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:34,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:34,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:35,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:36,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - dev
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: fu_redfish_legacy_device_detach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_perform_full
    - json_builder_begin_array
    - fu_device_get_logical_id
    - fu_redfish_device_get_backend
    - json_builder_add_boolean_value
    - json_builder_begin_object
    - json_builder_end_array
    - FU_REDFISH_LEGACY_DEVICE
    - FU_REDFISH_DEVICE
    - json_builder_add_string_value
    - FU_DEVICE
    - json_builder_set_member_name
    - g_autoptr
    - fu_redfish_backend_request_new
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_legacy_device_detach(FuDevice *dev, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_LEGACY_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:51,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:52,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:53,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:54,1
    - Dst: json_builder_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:54,1
    - Dst: json_builder_begin_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:57,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:58,1
    - Dst: json_builder_add_boolean_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:59,1
    - Dst: json_builder_set_member_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:60,1
    - Dst: json_builder_begin_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:61,1
    - Dst: json_builder_end_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:62,1
    - Dst: json_builder_end_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:63,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - dev
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: fu_redfish_legacy_device_attach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_perform_full
    - json_builder_begin_array
    - fu_redfish_device_get_backend
    - json_builder_add_boolean_value
    - json_builder_begin_object
    - json_builder_end_array
    - FU_REDFISH_LEGACY_DEVICE
    - FU_REDFISH_DEVICE
    - json_builder_set_member_name
    - g_autoptr
    - fu_redfish_backend_request_new
    - json_builder_end_object
    - json_builder_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_legacy_device_attach(FuDevice *dev, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_LEGACY_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:82,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:83,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:88,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:91,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:96,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:99,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:100,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:100,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:101,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:102,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:103,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:109,1
    - Dst: json_object_has_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:111,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:115,1
    - Dst: json_object_get_string_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:118,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:119,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 75
    functionDepth: 9
    functionLinenumber: 75
    functionLinenumberEnd: 120
    functionName: fu_redfish_legacy_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - fu_progress_set_status
    - g_set_error
    - json_object_get_string_member
    - fu_redfish_request_get_json_object
    - fu_redfish_request_perform
    - fu_redfish_device_get_backend
    - FU_REDFISH_LEGACY_DEVICE
    - FU_REDFISH_DEVICE
    - fu_redfish_request_get_curl
    - g_bytes_get_size
    - fu_redfish_device_poll_task
    - fu_redfish_backend_get_push_uri_path
    - g_autoptr
    - json_object_has_member
    - fu_redfish_backend_request_new
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_legacy_device_write_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tFwupdInstallFlags flags,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:125,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:126,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:127,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:128,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:129,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:130,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: fu_redfish_legacy_device_set_progress
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_redfish_legacy_device_set_progress(FuDevice *self, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishLegacyDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: fu_redfish_legacy_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_summary
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_redfish_legacy_device_init(FuRedfishLegacyDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishLegacyDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: fu_redfish_legacy_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_legacy_device_class_init(FuRedfishLegacyDeviceClass
      *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:25,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:27,1
    - Dst: FU_IS_REDFISH_NETWORK_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:27,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:28,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:31,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:41,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:43,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - state
    - error
    argTypes:
    - FuRedfishNetworkDevice*
    - FuRedfishNetworkDeviceState*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: fu_redfish_network_device_get_state
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 2
    functionsReached:
    - g_dbus_proxy_get_cached_property
    - g_dbus_proxy_new_for_bus_sync
    - g_set_error_literal
    - g_variant_get_uint32
    - g_autoptr
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_network_device_get_state(FuRedfishNetworkDevice
      *self,\n\t\t\t\t    FuRedfishNetworkDeviceState *state,\n\t\t\t\t    GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:58,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:61,1
    - Dst: FU_IS_REDFISH_NETWORK_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:62,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:65,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:77,1
    - Dst: g_variant_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:79,1
    - Dst: fu_redfish_network_device_get_state
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:92,1
    - Dst: fu_redfish_network_device_state_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:94,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:98,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishNetworkDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: fu_redfish_network_device_connect
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 2
    functionsReached:
    - g_dbus_proxy_call_sync
    - g_debug
    - g_timer_new
    - fu_redfish_network_device_state_to_string
    - fu_redfish_network_device_get_state
    - g_timer_elapsed
    - g_dbus_proxy_new_for_bus_sync
    - g_set_error_literal
    - g_autoptr
    - g_usleep
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_return_val_if_fail
    - g_variant_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_network_device_connect(FuRedfishNetworkDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:116,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:118,1
    - Dst: FU_IS_REDFISH_NETWORK_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:119,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:122,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:132,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:134,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:140,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:144,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:153,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:154,1
    - Dst: g_variant_dict_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:154,1
    - Dst: g_variant_dict_lookup
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:155,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:158,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishNetworkDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 167
    functionName: fu_redfish_network_device_get_address
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 3
    functionsReached:
    - g_variant_get_string
    - g_steal_pointer
    - g_variant_dict_lookup
    - g_dbus_proxy_get_cached_property
    - g_dbus_proxy_new_for_bus_sync
    - g_set_error_literal
    - g_autoptr
    - g_variant_dict_new
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_return_val_if_fail
    - g_variant_get_child_value
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_network_device_get_address(FuRedfishNetworkDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:172,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object_path
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: fu_redfish_network_device_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_new
    linkageType: ''
    returnType: FuRedfishNetworkDevice
    signature: 'FuRedfishNetworkDevice *

      fu_redfish_network_device_new(const gchar *object_path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishNetworkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: fu_redfish_network_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_redfish_network_device_init(FuRedfishNetworkDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_NETWORK_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:185,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:186,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: fu_redfish_network_device_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_REDFISH_NETWORK_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_network_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-network-device.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishNetworkDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: fu_redfish_network_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_network_device_class_init(FuRedfishNetworkDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:35,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:37,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: fu_flashrom_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_device_set_metadata_integer
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_flashrom_device_set_quirk_kv(FuDevice *device,\n\t\t\t\tconst
      gchar *key,\n\t\t\t\tconst gchar *value,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:52,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:52,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:55,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:56,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:58,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:58,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: fu_flashrom_device_probe
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - g_strdup_printf
    - FU_UDEV_DEVICE
    - fu_udev_device_get_sysfs_path
    - fu_device_set_physical_id
    - fu_udev_device_read_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_device_probe(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:70,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:74,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:79,1
    - Dst: flashrom_flash_getsize
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:80,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:82,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:88,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:92,1
    - Dst: flashrom_layout_read_from_ifd
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:94,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:95,1
    - Dst: flashrom_layout_include_region
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:101,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:101,1
    - Dst: flashrom_layout_release
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:104,1
    - Dst: flashrom_layout_set
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 117
    functionName: fu_flashrom_device_open
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - flashrom_flash_getsize
    - fu_cpu_get_vendor
    - flashrom_layout_include_region
    - fu_ifd_region_to_string
    - flashrom_layout_set
    - FU_FLASHROM_DEVICE
    - g_set_error_literal
    - fu_device_get_firmware_size_max
    - fu_device_set_firmware_size_max
    - flashrom_layout_release
    - flashrom_layout_read_from_ifd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:122,1
    - Dst: flashrom_layout_release
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:125,1
    - Dst: flashrom_layout_set
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: fu_flashrom_device_close
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - FU_FLASHROM_DEVICE
    - flashrom_layout_release
    - flashrom_layout_set
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_device_close(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:141,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:145,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:147,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:149,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - stage
    - current
    - total
    - user_data
    argTypes:
    - enum flashrom_progress_stage
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: fu_flashrom_device_progress_cb
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - FU_PROGRESS
    - fu_progress_set_percentage_full
    linkageType: ''
    returnType: void
    signature: "void fu_flashrom_device_progress_cb(enum flashrom_progress_stage stage,\n\t\t\t
      \      size_t current,\n\t\t\t       size_t total,\n\t\t\t       void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:159,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:161,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:162,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:164,1
    - Dst: flashrom_set_progress_callback_v2
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:166,1
    - Dst: flashrom_image_read
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:168,1
    - Dst: flashrom_set_progress_callback_v2
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:170,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:173,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:176,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: fu_flashrom_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_status
    - g_set_error
    - flashrom_set_progress_callback_v2
    - g_steal_pointer
    - g_bytes_new_take
    - g_malloc0
    - FU_FLASHROM_DEVICE
    - fu_device_get_firmware_size_max
    - flashrom_image_read
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_flashrom_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:191,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:191,1
    - Dst: fu_path_from_kind
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:192,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:193,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:194,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:199,1
    - Dst: fu_flashrom_device_dump_firmware
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:202,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: fu_flashrom_device_prepare
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_path_mkdir_parent
    - fu_flashrom_device_dump_firmware
    - g_build_filename
    - g_prefix_error
    - g_strdup_printf
    - g_autoptr
    - fu_device_get_id
    - fu_bytes_set_contents
    - fu_path_from_kind
    - fu_device_query_file_exists
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_flashrom_device_prepare(FuDevice *device,\n\t\t\t   FuProgress
      *progress,\n\t\t\t   FwupdInstallFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:223,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:226,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:227,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:228,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:229,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:232,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:235,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:238,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:239,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:244,1
    - Dst: flashrom_set_progress_callback_v2
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:248,1
    - Dst: flashrom_image_write
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:250,1
    - Dst: flashrom_set_progress_callback_v2
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:252,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:255,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:262,1
    - Dst: flashrom_image_verify
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:265,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:268,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:271,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:272,1
    - Dst: fu_flashrom_cmos_reset
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:273,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 281
    functionName: fu_flashrom_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - flashrom_image_verify
    - g_set_error
    - fu_progress_step_done
    - g_debug
    - flashrom_set_progress_callback_v2
    - flashrom_image_write
    - g_prefix_error
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_device_has_private_flag
    - FU_FLASHROM_DEVICE
    - fu_progress_set_id
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_flashrom_cmos_reset
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_flashrom_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  FwupdInstallFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:286,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:287,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:288,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:289,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:290,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:291,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: fu_flashrom_device_set_progress
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_progress_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:298,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:299,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:301,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:302,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:303,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:304,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:305,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:306,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:307,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:308,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:309,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:310,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:311,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFlashromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 6
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: fu_flashrom_device_init
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_set_physical_id
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_device_init(FuFlashromDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:318,1
    - Dst: g_value_set_pointer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:321,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:324,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 330
    functionName: fu_flashrom_device_get_property
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - FU_FLASHROM_DEVICE
    - g_value_set_pointer
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_device_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:338,1
    - Dst: g_value_get_pointer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:341,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:344,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:345,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:345,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: fu_flashrom_device_set_property
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - g_value_get_pointer
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_ifd_region_to_string
    - fu_device_set_logical_id
    - g_value_get_uint
    - FU_FLASHROM_DEVICE
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: "void fu_flashrom_device_set_property(GObject *object,\n\t\t\t\tguint
      prop_id,\n\t\t\t\tconst GValue *value,\n\t\t\t\tGParamSpec *pspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:356,1
    - Dst: flashrom_layout_release
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:358,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: fu_flashrom_device_finalize
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - FU_FLASHROM_DEVICE
    - G_OBJECT_CLASS
    - flashrom_layout_release
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:367,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:368,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:378,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:385,1
    - Dst: g_param_spec_pointer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:393,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFlashromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 408
    functionName: fu_flashrom_device_class_init
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - g_param_spec_pointer
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - g_param_spec_uint
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_device_class_init(FuFlashromDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:413,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - flashctx
    - region
    argTypes:
    - FuContext*
    - struct flashrom_flashctx*
    - FuIfdRegion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: fu_flashrom_device_new
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_flashrom_device_new(FuContext *ctx, struct flashrom_flashctx *flashctx, FuIfdRegion
      region)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:427,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:428,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:439,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-device.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFlashromDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 445
    functionName: fu_flashrom_device_unlock
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_has_private_flag
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_device_unlock(FuFlashromDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:25,1
    - Dst: outb
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:26,1
    - Dst: outb
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:29,1
    - Dst: inb
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: fu_flashrom_cmos_write
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_cmos_write(guint8 addr, guint8 val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioperm
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:43,1
    - Dst: fu_flashrom_cmos_write
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:51,1
    - Dst: fu_flashrom_cmos_write
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:53,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 63
    functionName: fu_flashrom_cmos_reset
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c
    functionUses: 1
    functionsReached:
    - fu_flashrom_cmos_write
    - g_set_error_literal
    - ioperm
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_cmos_reset(GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: FU_FLASHROM_PLUGIN
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_FLASHROM_PLUGIN(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:29,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: fu_flashrom_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - FU_FLASHROM_PLUGIN
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:38,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:41,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:41,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:46,1
    - Dst: g_info
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - lvl
    - fmt
    - args
    argTypes:
    - enum flashrom_log_level
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: fu_flashrom_plugin_debug_cb
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_debug
    - fu_strstrip
    - g_strcmp0
    - g_info
    - g_strdup_vprintf
    linkageType: ''
    returnType: int
    signature: int fu_flashrom_plugin_debug_cb(enum flashrom_log_level lvl, const
      char *fmt, va_list args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:65,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:71,1
    - Dst: strlen
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:75,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:75,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:79,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:80,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:85,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:86,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:88,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: fu_flashrom_plugin_device_set_version
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_get_version
    - g_str_has_prefix
    - strlen
    - fu_plugin_get_context
    - g_strdup_printf
    - fu_context_get_hwid_value
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_device_set_version(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:102,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:113,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:114,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:119,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:121,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:128,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:131,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:143,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 159
    functionName: fu_flashrom_plugin_device_set_bios_info
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_device_inhibit
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    - fu_plugin_get_context
    - fu_context_get_smbios_data
    - g_ptr_array_index
    - fu_device_get_firmware_size_max
    - g_autoptr
    - fu_device_set_firmware_size_max
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_plugin_device_set_bios_info(FuPlugin *plugin,
      FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:164,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:175,1
    - Dst: fu_context_get_hwid_replace_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:177,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: fu_flashrom_plugin_device_set_hwids
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_get_hwid_replace_value
    - fu_device_add_instance_id
    - fu_plugin_get_context
    - G_N_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_device_set_hwids(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:189,1
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:190,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:192,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:193,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:194,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:196,1
    - Dst: fu_flashrom_device_new
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:197,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:199,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:200,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:202,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:203,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:204,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:205,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:215,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:216,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:220,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:221,1
    - Dst: fu_flashrom_plugin_device_set_hwids
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:222,1
    - Dst: fu_flashrom_plugin_device_set_version
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:223,1
    - Dst: fu_flashrom_plugin_device_set_bios_info
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:225,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:230,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:231,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:232,1
    - Dst: fu_plugin_device_add
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:235,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - plugin
    - guid
    - region
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - FuIfdRegion
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 237
    functionName: fu_flashrom_plugin_add_device
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata_integer
    - fu_flashrom_device_new
    - fu_device_set_vendor
    - fu_device_get_metadata
    - g_debug
    - fu_context_get_hwid_value
    - fu_device_add_instance_strup
    - fu_flashrom_plugin_device_set_hwids
    - fu_flashrom_plugin_device_set_version
    - fu_plugin_device_add
    - fu_device_setup
    - g_steal_pointer
    - fu_ifd_region_to_string
    - FU_FLASHROM_PLUGIN
    - g_autoptr
    - fu_plugin_get_context
    - g_strdup_printf
    - fu_flashrom_plugin_device_set_bios_info
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_add_instance_str
    - fu_device_build_vendor_id
    - g_strcmp0
    - fu_device_set_name
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_flashrom_plugin_add_device(FuPlugin *plugin,\n\t\t\t
      \     const gchar *guid,\n\t\t\t      FuIfdRegion region,\n\t\t\t      GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:242,1
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:243,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:244,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:248,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:248,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:250,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:250,1
    - Dst: fu_flashrom_plugin_add_device
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:253,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:258,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: fu_flashrom_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_flashrom_plugin_add_device
    - fu_ifd_region_to_string
    - FU_FLASHROM_PLUGIN
    - fu_device_has_flag
    - fu_device_add_flag
    - g_autoptr
    - g_strcmp0
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:266,1
    - Dst: fu_flashrom_plugin_add_device
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 7
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: fu_flashrom_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - FU_FLASHROM_PLUGIN
    - fu_flashrom_plugin_add_device
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:275,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:276,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:279,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:279,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:280,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:283,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:286,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: fu_flashrom_plugin_find_guid
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_context_lookup_quirk_by_id
    - g_ptr_array_index
    - g_set_error_literal
    - fu_context_get_hwid_value
    - g_strdup
    - fu_context_get_hwid_guids
    - g_strcmp0
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_flashrom_plugin_find_guid(FuPlugin *plugin, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:301,1
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:302,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:305,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:306,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:307,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:308,1
    - Dst: fu_flashrom_plugin_find_guid
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:310,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:316,1
    - Dst: g_free
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:317,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:318,1
    - Dst: flashrom_init
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:321,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:322,1
    - Dst: flashrom_set_log_callback
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:328,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:329,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:332,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:336,1
    - Dst: flashrom_programmer_init
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:337,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:338,1
    - Dst: flashrom_flash_probe
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:345,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:347,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:354,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:361,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 370
    functionName: fu_flashrom_plugin_startup
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - flashrom_init
    - flashrom_programmer_init
    - fu_progress_step_done
    - g_debug
    - fu_flashrom_plugin_find_guid
    - fu_progress_add_step
    - fu_plugin_get_context
    - fu_context_lookup_quirk_by_id
    - FU_FLASHROM_PLUGIN
    - g_set_error_literal
    - fu_progress_set_id
    - g_strdup
    - flashrom_flash_probe
    - g_strcmp0
    - g_free
    - flashrom_set_log_callback
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_flashrom_device_unlock
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:375,1
    - Dst: FU_FLASHROM_DEVICE
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: fu_flashrom_plugin_unlock
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - FU_FLASHROM_DEVICE
    - fu_flashrom_device_unlock
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_flashrom_plugin_unlock(FuPlugin *self, FuDevice *device,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:381,1
    - Dst: fu_plugin_alloc_data
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:383,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:384,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:385,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:386,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:387,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: fu_flashrom_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_rule
    - fu_plugin_alloc_data
    - fu_plugin_add_device_gtype
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:394,1
    - Dst: FU_FLASHROM_PLUGIN
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:395,1
    - Dst: flashrom_flash_release
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:397,1
    - Dst: flashrom_programmer_shutdown
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:399,1
    - Dst: g_free
      Src: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: fu_flashrom_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached:
    - flashrom_programmer_shutdown
    - FU_FLASHROM_PLUGIN
    - flashrom_flash_release
    - g_free
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_flashrom_plugin_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - vfuncs
    argTypes:
    - FuPluginVfuncs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: fu_plugin_init_vfuncs
    functionSourceFile: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_plugin_init_vfuncs(FuPluginVfuncs *vfuncs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: fu_qc_s5gen2_firmware_get_protocol_version
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_qc_s5gen2_firmware_get_protocol_version(FuQcS5gen2Firmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: fu_qc_s5gen2_firmware_get_id
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_qc_s5gen2_firmware_get_id(FuQcS5gen2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:39,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:40,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:41,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: fu_qc_s5gen2_firmware_export
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_qc_fw_update_hdr_validate_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: fu_qc_s5gen2_firmware_validate
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_fw_update_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       gsize offset,\n\t\t\t       GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:65,1
    - Dst: fu_struct_qc_fw_update_hdr_parse_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:68,1
    - Dst: fu_struct_qc_fw_update_hdr_get_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:73,1
    - Dst: fu_struct_qc_fw_update_hdr_get_dev_variant
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:74,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:75,1
    - Dst: fu_struct_qc_fw_update_hdr_get_upgrades
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:77,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:78,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:81,1
    - Dst: fu_struct_qc_fw_update_hdr_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:82,1
    - Dst: fu_struct_qc_fw_update_hdr_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:83,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:85,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:87,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: fu_qc_s5gen2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_FIRMWARE
    - fu_struct_qc_fw_update_hdr_parse_stream
    - fu_input_stream_read_u16
    - fu_struct_qc_fw_update_hdr_get_protocol
    - fu_firmware_set_stream
    - fu_struct_qc_fw_update_hdr_get_dev_variant
    - g_strdup_printf
    - fu_firmware_set_version
    - fu_input_stream_compute_crc32
    - fu_struct_qc_fw_update_hdr_get_upgrades
    - g_autoptr
    - fu_struct_qc_fw_update_hdr_get_minor
    - fu_struct_qc_fw_update_hdr_get_major
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_firmware_parse(FuFirmware *firmware,\n\t\t\t
      \   GInputStream *stream,\n\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:99,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:100,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:103,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: fu_qc_s5gen2_firmware_write
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_bytes_with_patches
    - g_autoptr
    - g_byte_array_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_s5gen2_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:118,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:118,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:119,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:119,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:120,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: fu_qc_s5gen2_firmware_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_flag
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_firmware_init(FuQcS5gen2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:126,1
    - Dst: g_free
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:127,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: fu_qc_s5gen2_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:134,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: fu_qc_s5gen2_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_firmware_class_init(FuQcS5gen2FirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:146,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: fu_qc_s5gen2_firmware_new
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_qc_s5gen2_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: fu_qc_s5gen2_device_to_string
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:44,1
    - Dst: fu_qc_s5gen2_impl_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:47,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Device*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: fu_qc_s5gen2_device_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_QC_S5GEN2_IMPL
    - g_set_error_literal
    - FU_DEVICE
    - fu_qc_s5gen2_impl_msg_out
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_msg_out(FuQcS5gen2Device *self, guint8
      *data, gsize data_len, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:62,1
    - Dst: fu_qc_s5gen2_impl_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:65,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:65,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:69,1
    - Dst: fu_struct_qc_error_ind_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:79,1
    - Dst: fu_struct_qc_error_ind_get_error_code
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:82,1
    - Dst: fu_struct_qc_error_res_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:82,1
    - Dst: fu_struct_qc_error_res_set_error_code
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:85,1
    - Dst: fu_qc_s5gen2_impl_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:86,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:86,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - read_len
    - error
    argTypes:
    - FuQcS5gen2Device*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 101
    functionName: fu_qc_s5gen2_device_msg_in
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_QC_S5GEN2_IMPL
    - g_set_error
    - fu_struct_qc_error_ind_get_error_code
    - fu_struct_qc_error_res_set_error_code
    - g_set_error_literal
    - FU_DEVICE
    - fu_qc_s5gen2_impl_msg_in
    - g_autoptr
    - fu_struct_qc_error_ind_parse
    - fu_qc_s5gen2_impl_msg_out
    - fu_struct_qc_error_res_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_device_msg_in(FuQcS5gen2Device *self,\n\t\t\t
      \  guint8 *buf,\n\t\t\t   gsize bufsz,\n\t\t\t   gsize *read_len,\n\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:108,1
    - Dst: fu_qc_s5gen2_impl_req_disconnect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:111,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: fu_qc_s5gen2_device_cmd_req_disconnect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_impl_req_disconnect
    - fu_device_get_proxy
    - FU_QC_S5GEN2_IMPL
    - g_set_error_literal
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_req_disconnect(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:119,1
    - Dst: fu_qc_s5gen2_impl_req_connect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:122,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: fu_qc_s5gen2_device_cmd_req_connect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_QC_S5GEN2_IMPL
    - g_set_error_literal
    - FU_DEVICE
    - fu_qc_s5gen2_impl_req_connect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_req_connect(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:131,1
    - Dst: fu_qc_s5gen2_impl_data_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:134,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Device*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: fu_qc_s5gen2_device_data_size
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_QC_S5GEN2_IMPL
    - fu_qc_s5gen2_impl_data_size
    - g_set_error_literal
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_data_size(FuQcS5gen2Device *self, gsize
      *data_sz, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:142,1
    - Dst: fu_struct_qc_abort_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:143,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:145,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:147,1
    - Dst: fu_struct_qc_abort_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: fu_qc_s5gen2_device_cmd_abort
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_abort_parse
    - fu_struct_qc_abort_req_new
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_abort(FuQcS5gen2Device *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:162,1
    - Dst: fu_struct_qc_sync_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:163,1
    - Dst: fu_struct_qc_sync_req_set_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:165,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:166,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:168,1
    - Dst: fu_struct_qc_sync_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:171,1
    - Dst: fu_struct_qc_sync_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:176,1
    - Dst: fu_struct_qc_sync_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:180,1
    - Dst: fu_struct_qc_sync_get_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:186,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:188,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:191,1
    - Dst: fu_struct_qc_sync_get_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:195,1
    - Dst: fu_struct_qc_sync_get_resume_point
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 203
    functionName: fu_qc_s5gen2_device_cmd_sync
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - fu_struct_qc_sync_req_new
    - fu_qc_s5gen2_device_cmd_abort
    - fu_struct_qc_sync_get_file_id
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_sync_parse
    - fu_struct_qc_sync_get_resume_point
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_sync_get_protocol_version
    - fu_struct_qc_sync_req_set_file_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_sync(FuQcS5gen2Device *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:211,1
    - Dst: fu_struct_qc_start_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:212,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:214,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:216,1
    - Dst: fu_struct_qc_start_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:219,1
    - Dst: fu_struct_qc_start_get_status
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:223,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:225,1
    - Dst: fu_qc_start_status_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:229,1
    - Dst: fu_struct_qc_start_get_battery_level
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 237
    functionName: fu_qc_s5gen2_device_cmd_start
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_start_status_to_string
    - g_set_error
    - fu_struct_qc_start_get_battery_level
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_start_req_new
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_start_get_status
    - fu_struct_qc_start_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_start(FuQcS5gen2Device *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:242,1
    - Dst: fu_struct_qc_start_data_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:242,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:244,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: fu_qc_s5gen2_device_cmd_start_data
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_start_data_req_new
    - FU_DEVICE
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_start_data(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:258,1
    - Dst: fu_struct_qc_validation_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:260,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:262,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:268,1
    - Dst: fu_struct_qc_transfer_complete_ind_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:278,1
    - Dst: fu_struct_qc_is_validation_done_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:283,1
    - Dst: fu_struct_qc_is_validation_done_get_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:288,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 295
    functionName: fu_qc_s5gen2_device_cmd_validation
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_qc_is_validation_done_parse
    - fu_struct_qc_validation_req_new
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_transfer_complete_ind_parse
    - FU_DEVICE
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_is_validation_done_get_delay
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_validation(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_qc_s5gen2_device_cmd_validation
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:300,1
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: fu_qc_s5gen2_device_validation_cb
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_s5gen2_device_cmd_validation
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_validation_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:308,1
    - Dst: fu_struct_qc_transfer_complete_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:308,1
    - Dst: fu_struct_qc_transfer_complete_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:310,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: fu_qc_s5gen2_device_cmd_transfer_complete
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_transfer_complete_set_action
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_transfer_complete_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_transfer_complete(FuQcS5gen2Device
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:321,1
    - Dst: fu_struct_qc_proceed_to_commit_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:321,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:322,1
    - Dst: fu_struct_qc_proceed_to_commit_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:324,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:326,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:328,1
    - Dst: fu_struct_qc_commit_req_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 336
    functionName: fu_qc_s5gen2_device_cmd_proceed_to_commit
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_commit_req_parse
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_proceed_to_commit_new
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_proceed_to_commit_set_action
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_proceed_to_commit(FuQcS5gen2Device
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:343,1
    - Dst: fu_struct_qc_commit_cfm_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:344,1
    - Dst: fu_struct_qc_commit_cfm_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:346,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:349,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:353,1
    - Dst: fu_struct_qc_complete_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 361
    functionName: fu_qc_s5gen2_device_cmd_commit_cfm
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_commit_cfm_set_action
    - fu_struct_qc_commit_cfm_new
    - fu_qc_s5gen2_device_msg_in
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_struct_qc_complete_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_commit_cfm(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:371,1
    - Dst: fu_struct_qc_version_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:371,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:374,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:381,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:383,1
    - Dst: fu_struct_qc_version_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:385,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:389,1
    - Dst: fu_struct_qc_version_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:390,1
    - Dst: fu_struct_qc_version_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:391,1
    - Dst: fu_struct_qc_version_get_config
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:392,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 395
    functionName: fu_qc_s5gen2_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_version_parse
    - fu_device_set_version
    - fu_struct_qc_version_get_config
    - g_strdup_printf
    - fu_qc_s5gen2_device_msg_in
    - FU_DEVICE
    - fu_qc_s5gen2_device_msg_out
    - fu_struct_qc_version_req_new
    - g_autoptr
    - fu_struct_qc_version_get_major
    - fu_struct_qc_version_get_minor
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_ensure_version(FuQcS5gen2Device *self,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:401,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:404,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:409,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:412,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:413,1
    - Dst: fu_qc_s5gen2_device_cmd_start
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:416,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:417,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:421,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:425,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:427,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:428,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:430,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:434,1
    - Dst: fu_qc_s5gen2_device_cmd_proceed_to_commit
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:439,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:440,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:446,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:446,1
    - Dst: fu_qc_s5gen2_device_cmd_commit_cfm
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:447,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:448,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:452,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 456
    functionName: fu_qc_s5gen2_device_attach
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_qc_s5gen2_device_cmd_start
    - fu_qc_s5gen2_device_cmd_commit_cfm
    - fu_qc_resume_point_to_string
    - FU_QC_S5GEN2_DEVICE
    - g_autoptr
    - fu_qc_s5gen2_device_cmd_proceed_to_commit
    - fu_qc_s5gen2_device_cmd_abort
    - fu_qc_s5gen2_device_cmd_sync
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:461,1
    - Dst: fu_qc_s5gen2_device_ensure_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:462,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 5
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: fu_qc_s5gen2_device_reload
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_s5gen2_device_ensure_version
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_reload(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:472,1
    - Dst: fu_qc_s5gen2_device_ensure_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:473,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: fu_qc_s5gen2_device_setup
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_s5gen2_device_ensure_version
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:487,1
    - Dst: fu_qc_s5gen2_device_data_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:489,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:492,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:498,1
    - Dst: fu_struct_qc_data_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:499,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:499,1
    - Dst: fu_struct_qc_data_set_data_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:504,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:506,1
    - Dst: fu_struct_qc_data_set_last_packet
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:507,1
    - Dst: fu_struct_qc_data_set_last_packet
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:509,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:511,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:511,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:511,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:515,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:517,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - self
    - data
    - last
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GBytes*
    - FuQcMoreData
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 526
    functionName: fu_qc_s5gen2_device_write_bucket
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_length
    - fu_struct_qc_data_new
    - fu_qc_s5gen2_device_data_size
    - FU_DEVICE
    - fu_struct_qc_data_set_last_packet
    - fu_qc_s5gen2_device_msg_out
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_struct_qc_data_set_data_len
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_device_write_bucket(FuQcS5gen2Device *self,\n\t\t\t\t
      GBytes *data,\n\t\t\t\t FuQcMoreData last,\n\t\t\t\t GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:533,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:538,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:547,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:549,1
    - Dst: fu_struct_qc_data_req_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:551,1
    - Dst: fu_struct_qc_data_req_get_fw_data_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:556,1
    - Dst: fu_struct_qc_data_req_get_fw_data_offset
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:557,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:561,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:563,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:564,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:566,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:577,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:589,1
    - Dst: fu_qc_s5gen2_device_write_bucket
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:591,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:595,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - self
    - bytes
    - progress
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 606
    functionName: fu_qc_s5gen2_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - g_set_error
    - g_debug
    - g_bytes_get_size
    - fu_qc_s5gen2_device_msg_in
    - fu_qc_s5gen2_device_write_bucket
    - fu_struct_qc_data_req_get_fw_data_len
    - fu_progress_set_id
    - fu_struct_qc_data_req_parse
    - g_autoptr
    - fu_qc_s5gen2_device_cmd_abort
    - fu_struct_qc_data_req_get_fw_data_offset
    - g_bytes_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_device_write_blocks(FuQcS5gen2Device *self,\n\t\t\t\t
      GBytes *bytes,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:616,1
    - Dst: fu_qc_s5gen2_firmware_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:616,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:618,1
    - Dst: fu_qc_s5gen2_firmware_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:622,1
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:622,1
    - Dst: fu_qc_s5gen2_firmware_get_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:623,1
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 626
    functionName: fu_qc_s5gen2_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_firmware_get_protocol_version
    - FU_QC_S5GEN2_FIRMWARE
    - fu_qc_s5gen2_firmware_get_id
    - g_steal_pointer
    - fu_firmware_parse_stream
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_s5gen2_firmware_new
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_qc_s5gen2_device_prepare_firmware(FuDevice *device,\n\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FuFirmwareParseFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:636,1
    - Dst: fu_qc_s5gen2_device_cmd_req_connect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:638,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:641,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:646,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:648,1
    - Dst: fu_qc_s5gen2_device_cmd_start
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:652,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:656,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:657,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:658,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:661,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:665,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:665,1
    - Dst: fu_qc_s5gen2_device_cmd_start_data
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:667,1
    - Dst: fu_qc_s5gen2_device_write_blocks
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:670,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:672,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:678,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:680,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:680,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:684,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:695,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:697,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:697,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:700,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:702,1
    - Dst: fu_qc_s5gen2_device_cmd_transfer_complete
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:706,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 628
    functionDepth: 6
    functionLinenumber: 628
    functionLinenumberEnd: 712
    functionName: fu_qc_s5gen2_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_progress_get_child
    - g_debug
    - fu_progress_step_done
    - fu_qc_s5gen2_device_cmd_start_data
    - fu_qc_s5gen2_device_cmd_req_connect
    - fu_qc_s5gen2_device_cmd_start
    - fu_progress_add_step
    - fu_qc_resume_point_to_string
    - FU_QC_S5GEN2_DEVICE
    - fu_device_add_flag
    - fu_qc_s5gen2_device_write_blocks
    - fu_progress_set_id
    - g_autoptr
    - fu_qc_s5gen2_device_cmd_transfer_complete
    - fu_qc_s5gen2_device_cmd_abort
    - fu_qc_s5gen2_device_cmd_sync
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_device_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:717,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:718,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:719,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:720,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:721,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 723
    functionName: fu_qc_s5gen2_device_set_progress
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:728,1
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 734
    functionName: fu_qc_s5gen2_device_replace
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:739,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:740,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:741,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:741,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:742,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:742,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:743,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:743,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:744,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:744,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:745,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:745,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:746,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:747,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 736
    functionDepth: 6
    functionLinenumber: 736
    functionLinenumberEnd: 748
    functionName: fu_qc_s5gen2_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_init(FuQcS5gen2Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: fu_qc_s5gen2_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_class_init(FuQcS5gen2DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:24,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: fu_qc_s5gen2_plugin_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_plugin_init(FuQcS5gen2Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:30,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:33,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:34,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: fu_qc_s5gen2_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - fu_context_add_quirk_key
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: fu_qc_s5gen2_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_plugin_class_init(FuQcS5gen2PluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:41,1
    - Dst: fu_struct_qc_hid_data_transfer_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:41,1
    - Dst: fu_struct_qc_hid_data_transfer_set_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:43,1
    - Dst: fu_struct_qc_hid_data_transfer_set_payload
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:44,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:47,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - impl
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: fu_qc_s5gen2_hid_device_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_struct_qc_hid_data_transfer_set_payload_len
    - FU_HID_DEVICE
    - FU_QC_S5GEN2_HID_DEVICE
    - fu_struct_qc_hid_data_transfer_set_payload
    - fu_struct_qc_hid_data_transfer_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_msg_out(FuQcS5gen2Impl *impl, guint8
      *data, gsize data_len, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:65,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:67,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:67,1
    - Dst: fu_struct_qc_hid_response_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:76,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:80,1
    - Dst: fu_struct_qc_hid_response_get_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:86,1
    - Dst: fu_struct_qc_hid_response_get_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - impl
    - data
    - data_len
    - read_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 93
    functionName: fu_qc_s5gen2_hid_device_msg_in
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_get_report
    - fu_struct_qc_hid_response_parse
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - FU_QC_S5GEN2_HID_DEVICE
    - fu_struct_qc_hid_response_get_payload_len
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_hid_device_msg_in(FuQcS5gen2Impl *impl,\n\t\t\t
      \      guint8 *data,\n\t\t\t       gsize data_len,\n\t\t\t       gsize *read_len,\n\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:99,1
    - Dst: fu_struct_qc_hid_command_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:99,1
    - Dst: fu_struct_qc_hid_command_set_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:101,1
    - Dst: fu_struct_qc_hid_command_set_payload
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:102,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:105,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - impl
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: fu_qc_s5gen2_hid_device_msg_cmd
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_struct_qc_hid_command_set_payload
    - fu_struct_qc_hid_command_set_payload_len
    - FU_QC_S5GEN2_HID_DEVICE
    - fu_struct_qc_hid_command_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_msg_cmd(FuQcS5gen2Impl *impl, guint8
      *data, gsize data_len, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:117,1
    - Dst: fu_struct_qc_disconnect_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:117,1
    - Dst: fu_qc_s5gen2_hid_device_msg_cmd
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: fu_qc_s5gen2_hid_device_cmd_req_disconnect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_disconnect_req_new
    - fu_qc_s5gen2_hid_device_msg_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_cmd_req_disconnect(FuQcS5gen2Impl
      *impl, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:127,1
    - Dst: fu_struct_qc_connect_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:128,1
    - Dst: fu_qc_s5gen2_hid_device_msg_cmd
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:130,1
    - Dst: fu_qc_s5gen2_hid_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:132,1
    - Dst: fu_struct_qc_update_status_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:134,1
    - Dst: fu_struct_qc_update_status_get_status
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:138,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:146,1
    - Dst: fu_qc_status_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 6
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: fu_qc_s5gen2_hid_device_cmd_req_connect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_connect_req_new
    - fu_qc_s5gen2_hid_device_msg_cmd
    - g_debug
    - g_set_error
    - fu_qc_s5gen2_hid_device_msg_in
    - fu_struct_qc_update_status_parse
    - fu_struct_qc_update_status_get_status
    - g_autoptr
    - fu_qc_status_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_cmd_req_connect(FuQcS5gen2Impl *impl,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - impl
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: fu_qc_s5gen2_hid_device_data_size
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_data_size(FuQcS5gen2Impl *impl, gsize
      *data_sz, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:177,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:179,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:192,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:194,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:201,1
    - Dst: fu_hid_device_set_ep_addr_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:202,1
    - Dst: fu_hid_device_set_ep_addr_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:203,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 172
    functionDepth: 8
    functionLinenumber: 172
    functionLinenumberEnd: 211
    functionName: fu_qc_s5gen2_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_interface
    - fu_hid_device_set_ep_addr_out
    - FU_DEVICE_CLASS
    - FU_HID_DEVICE
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_hid_device_set_ep_addr_in
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:219,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:222,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:222,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:223,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:223,1
    - Dst: fu_usb_device_get_manufacturer_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:225,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:225,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:228,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:228,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:230,1
    - Dst: fu_usb_device_get_product_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:233,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:233,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:236,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:236,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:238,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 251
    functionName: fu_qc_s5gen2_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - FU_DEVICE_CLASS
    - fu_device_get_vid
    - fu_usb_device_get_string_descriptor
    - fu_usb_device_get_product_index
    - FU_USB_DEVICE
    - fu_device_add_instance_str
    - fu_device_build_instance_id_full
    - fu_usb_device_get_manufacturer_index
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:256,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:256,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:257,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2HidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 7
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: fu_qc_s5gen2_hid_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fu_device_set_battery_threshold
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_hid_device_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_hid_device_init(FuQcS5gen2HidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcS5gen2ImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: fu_qc_s5gen2_hid_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_hid_device_impl_iface_init(FuQcS5gen2ImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2HidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: fu_qc_s5gen2_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_hid_device_class_init(FuQcS5gen2HidDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: fu_qc_s5gen2_ble_device_notify_release
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_notify_release(FuQcS5gen2BleDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_device_notify_acquire
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:74,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: fu_qc_s5gen2_ble_device_notify_acquire
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_notify_acquire
    - g_debug
    - FU_BLUEZ_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_notify_acquire(FuQcS5gen2BleDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:92,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:92,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:93,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:95,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: fu_qc_s5gen2_ble_device_send
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - g_autoptr
    - g_byte_array_append
    - FU_BLUEZ_DEVICE
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_ble_device_send(FuQcS5gen2BleDevice *self,\n\t\t\t
      \    guint8 *data,\n\t\t\t     gsize data_len,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:108,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - data_in
    - data_len
    - read_len
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: fu_qc_s5gen2_ble_device_recv
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_raw
    - fu_io_channel_read_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_ble_device_recv(FuQcS5gen2BleDevice *self,\n\t\t\t
      \    guint8 *data_in,\n\t\t\t     gsize data_len,\n\t\t\t     gsize *read_len,\n\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:128,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_control_cmd_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:129,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_control_cmd_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:131,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:133,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:135,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:138,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_control_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - impl
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 147
    functionName: fu_qc_s5gen2_ble_device_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_struct_qc_gaia_v3_upgrade_control_ack_parse
    - fu_qc_s5gen2_ble_device_send
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_struct_qc_gaia_v3_upgrade_control_cmd_new
    - fu_struct_qc_gaia_v3_upgrade_control_cmd_set_vendor_id
    - g_autoptr
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_msg_out(FuQcS5gen2Impl *impl, guint8
      *data, gsize data_len, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:156,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:164,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:166,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:177,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - impl
    - data_in
    - data_len
    - read_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: fu_qc_s5gen2_ble_device_msg_in
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_io_channel_read_raw
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_memcpy_safe
    - g_malloc0
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_ble_device_msg_in(FuQcS5gen2Impl *impl,\n\t\t\t
      \      guint8 *data_in,\n\t\t\t       gsize data_len,\n\t\t\t       gsize *read_len,\n\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:205,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_connect_cmd_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:206,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_connect_cmd_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:208,1
    - Dst: fu_qc_s5gen2_ble_device_notify_acquire
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:210,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:213,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:216,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_connect_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: fu_qc_s5gen2_ble_device_req_connect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_struct_qc_gaia_v3_upgrade_connect_ack_parse
    - fu_qc_s5gen2_ble_device_send
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_struct_qc_gaia_v3_upgrade_connect_cmd_new
    - fu_qc_s5gen2_ble_device_notify_acquire
    - g_autoptr
    - fu_struct_qc_gaia_v3_upgrade_connect_cmd_set_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_req_connect(FuQcS5gen2Impl *impl,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:232,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:233,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:235,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:237,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:240,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_disconnect_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:243,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: fu_qc_s5gen2_ble_device_req_disconnect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_new
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_set_vendor_id
    - g_autoptr
    - fu_struct_qc_gaia_v3_upgrade_disconnect_ack_parse
    - fu_qc_s5gen2_ble_device_notify_release
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_req_disconnect(FuQcS5gen2Impl *impl,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:255,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - impl
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: fu_qc_s5gen2_ble_device_data_size
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_QC_S5GEN2_BLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_data_size(FuQcS5gen2Impl *impl, gsize
      *data_sz, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:276,1
    - Dst: fu_struct_qc_gaia_v3_api_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:277,1
    - Dst: fu_struct_qc_gaia_v3_api_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:279,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:281,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:284,1
    - Dst: fu_struct_qc_gaia_v3_api_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:287,1
    - Dst: fu_struct_qc_gaia_v3_api_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:291,1
    - Dst: fu_struct_qc_gaia_v3_api_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:292,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:295,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 305
    functionName: fu_qc_s5gen2_ble_device_get_api
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - g_set_error
    - fu_qc_s5gen2_ble_device_send
    - g_debug
    - fu_struct_qc_gaia_v3_api_get_major
    - fu_struct_qc_gaia_v3_api_get_minor
    - fu_struct_qc_gaia_v3_api_req_set_vendor_id
    - fu_struct_qc_gaia_v3_api_parse
    - g_autoptr
    - fu_struct_qc_gaia_v3_api_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_get_api(FuQcS5gen2BleDevice *self,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:313,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:314,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:316,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_req_set_command
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:318,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:323,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:326,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:329,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:349,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:353,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_get_more_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:361,1
    - Dst: fu_qc_s5gen2_ble_device_get_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:362,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - self
    - next
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 365
    functionName: fu_qc_s5gen2_ble_device_get_features
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 1
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_qc_s5gen2_ble_device_send
    - g_debug
    - fu_struct_qc_gaia_v3_supported_features_req_set_command
    - fu_qc_s5gen2_ble_device_get_features
    - fu_struct_qc_gaia_v3_supported_features_get_more_features
    - g_set_error_literal
    - g_autoptr
    - fu_struct_qc_gaia_v3_supported_features_req_new
    - fu_struct_qc_gaia_v3_supported_features_parse
    - fu_struct_qc_gaia_v3_supported_features_req_set_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_get_features(FuQcS5gen2BleDevice *self,
      gboolean next, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:372,1
    - Dst: fu_struct_qc_gaia_v3_serial_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:373,1
    - Dst: fu_struct_qc_gaia_v3_serial_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:376,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:378,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:381,1
    - Dst: fu_struct_qc_gaia_v3_serial_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:386,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:390,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 397
    functionName: fu_qc_s5gen2_ble_device_get_serial
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_serial_req_new
    - fu_struct_qc_gaia_v3_serial_req_set_vendor_id
    - FU_DEVICE
    - g_autoptr
    - fu_struct_qc_gaia_v3_serial_parse
    - fu_device_set_serial
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_get_serial(FuQcS5gen2BleDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:404,1
    - Dst: fu_struct_qc_gaia_v3_variant_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:405,1
    - Dst: fu_struct_qc_gaia_v3_variant_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:408,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:410,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:413,1
    - Dst: fu_struct_qc_gaia_v3_variant_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:418,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:422,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:426,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:431,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 441
    functionName: fu_qc_s5gen2_ble_device_get_variant
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_struct_qc_gaia_v3_variant_parse
    - fu_qc_s5gen2_ble_device_send
    - g_debug
    - fu_struct_qc_gaia_v3_variant_req_set_vendor_id
    - FU_DEVICE
    - g_autoptr
    - fu_device_add_instance_str
    - fu_struct_qc_gaia_v3_variant_req_new
    - fu_device_build_instance_id_full
    - fu_strsafe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_get_variant(FuQcS5gen2BleDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:448,1
    - Dst: fu_struct_qc_gaia_v3_register_notification_cmd_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:449,1
    - Dst: fu_struct_qc_gaia_v3_register_notification_cmd_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:452,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:454,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:457,1
    - Dst: fu_struct_qc_gaia_v3_register_notification_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 470
    functionName: fu_qc_s5gen2_ble_device_register_notification
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_register_notification_ack_parse
    - fu_struct_qc_gaia_v3_register_notification_cmd_set_vendor_id
    - g_autoptr
    - fu_struct_qc_gaia_v3_register_notification_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_register_notification(FuQcS5gen2BleDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:479,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:480,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:482,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_req_set_key
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:483,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_req_set_value
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:484,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:486,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:489,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 497
    functionName: fu_qc_s5gen2_ble_device_set_transport_protocol
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_recv
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_set_transport_info_req_new
    - fu_struct_qc_gaia_v3_set_transport_info_parse
    - g_autoptr
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_value
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_vendor_id
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_key
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_ble_device_set_transport_protocol(FuQcS5gen2BleDevice
      *self,\n\t\t\t\t\t       guint32 version,\n\t\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:502,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:503,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:504,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: fu_qc_s5gen2_ble_device_to_string
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_QC_S5GEN2_BLE_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_ble_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:511,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:513,1
    - Dst: fu_qc_s5gen2_ble_device_notify_acquire
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 517
    functionName: fu_qc_s5gen2_ble_device_notify_acquire_cb
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_notify_acquire
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_qc_s5gen2_ble_device_notify_release
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_notify_acquire_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:522,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:525,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:529,1
    - Dst: fu_qc_s5gen2_ble_device_get_api
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:537,1
    - Dst: fu_qc_s5gen2_ble_device_get_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:540,1
    - Dst: fu_qc_s5gen2_ble_device_get_serial
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:543,1
    - Dst: fu_qc_s5gen2_ble_device_get_variant
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:546,1
    - Dst: fu_qc_s5gen2_ble_device_set_transport_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:550,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:558,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:559,1
    - Dst: fu_qc_s5gen2_ble_device_register_notification
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:561,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:564,1
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:564,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 519
    functionDepth: 6
    functionLinenumber: 519
    functionLinenumberEnd: 565
    functionName: fu_qc_s5gen2_ble_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_QC_S5GEN2_BLE_DEVICE
    - FU_DEVICE_CLASS
    - fu_qc_s5gen2_ble_device_get_api
    - fu_qc_s5gen2_ble_device_set_transport_protocol
    - fu_qc_s5gen2_ble_device_notify_release
    - g_strdup_printf
    - fu_qc_s5gen2_ble_device_get_features
    - fu_qc_s5gen2_ble_device_register_notification
    - fu_qc_s5gen2_ble_device_get_serial
    - fu_qc_s5gen2_ble_device_get_variant
    - fu_device_add_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_ble_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:573,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:576,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:577,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 589
    functionName: fu_qc_s5gen2_ble_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_strtoull
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_ble_device_set_quirk_kv(FuDevice *device,\n\t\t\t\t
      \    const gchar *key,\n\t\t\t\t     const gchar *value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:598,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:598,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:599,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:599,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2BleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: fu_qc_s5gen2_ble_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - FU_DEVICE
    - fu_device_add_protocol
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_ble_device_init(FuQcS5gen2BleDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:606,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:608,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: fu_qc_s5gen2_ble_device_finalize
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_QC_S5GEN2_BLE_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_ble_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcS5gen2ImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 620
    functionName: fu_qc_s5gen2_ble_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_ble_device_impl_iface_init(FuQcS5gen2ImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:625,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2BleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 631
    functionName: fu_qc_s5gen2_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_ble_device_class_init(FuQcS5gen2BleDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuQcS5gen2ImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: fu_qc_s5gen2_impl_default_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_impl_default_init(FuQcS5gen2ImplInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:27,1
    - Dst: FU_IS_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:27,1
    - Dst: FU_QC_S5GEN2_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:29,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - data
    - data_len
    - read_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 38
    functionName: fu_qc_s5gen2_impl_msg_in
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 1
    functionsReached:
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_qc_s5gen2_impl_msg_in(FuQcS5gen2Impl *self,\n\t\t\t guint8
      *data,\n\t\t\t gsize data_len,\n\t\t\t gsize *read_len,\n\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:45,1
    - Dst: FU_IS_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:45,1
    - Dst: FU_QC_S5GEN2_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: fu_qc_s5gen2_impl_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 2
    functionsReached:
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_impl_msg_out(FuQcS5gen2Impl *self, guint8 *data,
      gsize data_len, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:63,1
    - Dst: FU_IS_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:63,1
    - Dst: FU_QC_S5GEN2_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: fu_qc_s5gen2_impl_req_connect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 1
    functionsReached:
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_impl_req_connect(FuQcS5gen2Impl *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:81,1
    - Dst: FU_IS_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:81,1
    - Dst: FU_QC_S5GEN2_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:83,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: fu_qc_s5gen2_impl_req_disconnect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 1
    functionsReached:
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_impl_req_disconnect(FuQcS5gen2Impl *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:99,1
    - Dst: FU_IS_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:99,1
    - Dst: FU_QC_S5GEN2_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: fu_qc_s5gen2_impl_data_size
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
    functionUses: 1
    functionsReached:
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_impl_data_size(FuQcS5gen2Impl *self, gsize *data_sz,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - FuWacFlashDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: fu_wac_device_flash_descriptor_is_wp
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_flash_descriptor_is_wp(const FuWacFlashDescriptor
      *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:57,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:58,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:59,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:60,1
    - Dst: fu_wac_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - idt
    - str
    argTypes:
    - FuWacFlashDescriptor*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: fu_wac_device_flash_descriptor_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_hex
    - fu_wac_device_flash_descriptor_is_wp
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_flash_descriptor_to_string(FuWacFlashDescriptor
      *fd, guint idt, GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:69,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:73,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:74,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:77,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:78,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:81,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:82,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:85,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:86,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:89,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:90,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:93,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:94,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:97,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:101,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:102,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:103,1
    - Dst: fu_wac_device_flash_descriptor_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:104,1
    - Dst: fu_wac_device_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:106,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: fu_wac_device_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_wac_device_status_to_string
    - fu_wac_device_flash_descriptor_to_string
    - g_ptr_array_index
    - FU_WAC_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:120,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuWacDevice*
    - guint8*
    - gsize
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 140
    functionName: fu_wac_device_get_feature_report
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_device_get_feature_report(FuWacDevice *self,\n\t\t\t\t
      guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t FuHidDeviceFlags flags,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:149,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuWacDevice*
    - guint8*
    - gsize
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: fu_wac_device_set_feature_report
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_device_set_feature_report(FuWacDevice *self,\n\t\t\t\t
      guint8 *buf,\n\t\t\t\t gsize bufsz,\n\t\t\t\t FuHidDeviceFlags flags,\n\t\t\t\t
      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:170,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:171,1
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:173,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:178,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:180,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:187,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:194,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:201,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:204,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 159
    functionDepth: 6
    functionLinenumber: 159
    functionLinenumberEnd: 214
    functionName: fu_wac_device_ensure_flash_descriptors
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_info
    - fu_memread_uint16_safe
    - g_steal_pointer
    - g_new0
    - fu_memread_uint32_safe
    - g_malloc
    - fu_wac_device_get_feature_report
    - memset
    - g_ptr_array_add
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_ensure_flash_descriptors(FuWacDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:223,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:231,1
    - Dst: fu_wac_device_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:232,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 235
    functionName: fu_wac_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_memread_uint32
    - fu_wac_device_get_feature_report
    - fu_wac_device_status_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_ensure_status(FuWacDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:242,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:245,1
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:247,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:251,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:252,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:255,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:257,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:258,1
    - Dst: g_array_append_val
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 264
    functionName: fu_wac_device_ensure_checksums
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_memread_uint32
    - g_array_set_size
    - g_malloc
    - fu_wac_device_get_feature_report
    - g_array_append_val
    - memset
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_ensure_checksums(FuWacDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:272,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 266
    functionDepth: 6
    functionLinenumber: 266
    functionLinenumberEnd: 282
    functionName: fu_wac_device_ensure_firmware_index
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_get_feature_report
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_ensure_firmware_index(FuWacDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:290,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:298,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:299,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:300,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:301,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:302,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 284
    functionDepth: 6
    functionLinenumber: 284
    functionLinenumberEnd: 305
    functionName: fu_wac_device_ensure_parameters
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_get_feature_report
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_ensure_parameters(FuWacDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:316,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:318,1
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:327,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:328,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:330,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:332,1
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - addr
    - blob
    - error
    argTypes:
    - FuWacDevice*
    - guint32
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 307
    functionDepth: 6
    functionLinenumber: 307
    functionLinenumberEnd: 345
    functionName: fu_wac_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_malloc
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - fu_wac_device_set_feature_report
    - memset
    - g_bytes_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_write_block(FuWacDevice *self, guint32 addr,
      GBytes *blob, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:353,1
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuWacDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 361
    functionName: fu_wac_device_erase_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_erase_block(FuWacDevice *self, guint32 addr,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 374
    functionName: fu_wac_device_update_reset
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_update_reset(FuWacDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:385,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:386,1
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - block_nr
    - checksum
    - error
    argTypes:
    - FuWacDevice*
    - guint16
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 394
    functionName: fu_wac_device_set_checksum_of_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_memwrite_uint16
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_device_set_checksum_of_block(FuWacDevice *self,\n\t\t\t\t
      \   guint16 block_nr,\n\t\t\t\t    guint32 checksum,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:402,1
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - block_nr
    - error
    argTypes:
    - FuWacDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: fu_wac_device_calculate_checksum_of_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_calculate_checksum_of_block(FuWacDevice *self,
      guint16 block_nr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: fu_wac_device_write_checksum_table
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_write_checksum_table(FuWacDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: fu_wac_device_switch_to_flash_loader
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_switch_to_flash_loader(FuWacDevice *self, GError
      **error)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:450,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:453,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:454,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:455,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:456,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:457,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:458,1
    - Dst: fu_wac_device_ensure_firmware_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:461,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:465,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:468,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:468,1
    - Dst: fu_wac_device_ensure_parameters
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:471,1
    - Dst: fu_wac_device_ensure_flash_descriptors
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:475,1
    - Dst: fu_wac_device_ensure_checksums
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:479,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:481,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:485,1
    - Dst: fu_wac_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:486,1
    - Dst: fu_wac_device_set_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:488,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:491,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:494,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:501,1
    - Dst: fu_wac_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:503,1
    - Dst: fu_firmware_write_chunk
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:505,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:508,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:509,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:513,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:516,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:520,1
    - Dst: fu_wac_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:523,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:527,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:532,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:533,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:534,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:534,1
    - Dst: fu_wac_device_erase_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:541,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:545,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:549,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:550,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:551,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:554,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:557,1
    - Dst: fu_wac_device_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:558,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:559,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:566,1
    - Dst: fu_sum32w_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:567,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:568,1
    - Dst: fu_wac_device_set_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:569,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:573,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:573,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:577,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:581,1
    - Dst: fu_wac_device_calculate_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:590,1
    - Dst: fu_wac_device_ensure_checksums
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:595,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:598,1
    - Dst: fu_wac_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:603,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:607,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:610,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:614,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:616,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:626,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:628,1
    - Dst: fu_wac_device_write_checksum_table
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:631,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:633,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 438
    functionDepth: 7
    functionLinenumber: 438
    functionLinenumberEnd: 637
    functionName: fu_wac_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_chunk_array_length
    - g_new0
    - fu_firmware_get_addr
    - fu_wac_device_calculate_checksum_of_block
    - g_array_index
    - fu_firmware_get_image_by_idx
    - fu_progress_set_percentage_full
    - g_set_error
    - g_hash_table_size
    - g_debug
    - fu_progress_get_child
    - fu_sum32w_bytes
    - fu_progress_add_step
    - g_ptr_array_index
    - GUINT32_TO_LE
    - fu_bytes_pad
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_firmware_write_chunk
    - fu_wac_device_write_checksum_table
    - fu_progress_step_done
    - fu_chunk_array_new_from_bytes
    - g_hash_table_new_full
    - fu_wac_device_write_block
    - g_autoptr
    - fu_chunk_array_index
    - fu_bytes_is_empty
    - fu_chunk_get_bytes
    - fu_wac_device_ensure_flash_descriptors
    - fu_wac_device_flash_descriptor_is_wp
    - fu_wac_device_ensure_checksums
    - fu_wac_device_erase_block
    - fu_wac_device_set_checksum_of_block
    - fu_wac_device_ensure_firmware_index
    - FU_WAC_DEVICE
    - g_hash_table_lookup
    - fu_wac_device_ensure_parameters
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:644,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:645,1
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:652,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:657,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:660,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:664,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:671,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:671,1
    - Dst: fu_wac_module_bluetooth_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:672,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:673,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:674,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:675,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:677,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:678,1
    - Dst: fu_wac_module_bluetooth_id6_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:679,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:680,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:681,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 684
    functionName: fu_wac_device_add_modules_bluetooth
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_wac_device_get_feature_report
    - g_strdup_printf
    - FU_DEVICE
    - g_autoptr
    - fu_device_set_version_raw
    - fu_wac_module_bluetooth_new
    - fu_wac_module_bluetooth_id6_new
    - fu_device_get_name
    - fu_device_set_name
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_add_modules_bluetooth(FuWacDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:689,1
    - Dst: fu_wac_device_add_modules_bluetooth
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:692,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 686
    functionDepth: 7
    functionLinenumber: 686
    functionLinenumberEnd: 696
    functionName: fu_wac_device_add_modules_legacy
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_wac_device_add_modules_bluetooth
    - g_debug
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_add_modules_legacy(FuWacDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:704,1
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:704,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:709,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:715,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:724,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:732,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:741,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:749,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 698
    functionDepth: 6
    functionLinenumber: 698
    functionLinenumberEnd: 759
    functionName: fu_wac_device_add_modules_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_memcpy_safe
    - fu_wac_device_get_feature_report
    - g_set_error_literal
    - FU_WAC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_add_modules_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:769,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:770,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:772,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:774,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:781,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:781,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:784,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:786,1
    - Dst: fu_struct_module_desc_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:789,1
    - Dst: fu_struct_module_desc_get_bootloader_version
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:792,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:793,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:794,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:795,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:795,1
    - Dst: fu_struct_module_desc_get_number_modules
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:801,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:807,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:808,1
    - Dst: fu_struct_module_item_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:810,1
    - Dst: fu_struct_module_item_get_version
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:814,1
    - Dst: fu_struct_module_item_get_version2
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:815,1
    - Dst: fu_struct_module_item_get_kind
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:826,1
    - Dst: fu_wac_module_touch_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:829,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:829,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:830,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:831,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:832,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:833,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:833,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:834,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:834,1
    - Dst: fu_wac_module_touch_id7_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:837,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:837,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:838,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:839,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:839,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:840,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:841,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:842,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:843,1
    - Dst: fu_wac_module_bluetooth_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:846,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:847,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:848,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:849,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:850,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:850,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:851,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:851,1
    - Dst: fu_wac_module_bluetooth_id6_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:854,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:854,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:855,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:856,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:856,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:857,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:857,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:857,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:858,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:858,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:859,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:859,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:860,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:860,1
    - Dst: fu_wac_module_scaler_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:863,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:863,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:864,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:865,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:865,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:866,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:867,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:867,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:868,1
    - Dst: fu_wac_module_bluetooth_id9_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:871,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:872,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:873,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:874,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:875,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:876,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:877,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:877,1
    - Dst: fu_wac_module_sub_cpu_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:880,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:881,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:882,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:882,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:883,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:883,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:883,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:884,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:885,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:888,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:891,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 101
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 761
    functionDepth: 5
    functionLinenumber: 761
    functionLinenumberEnd: 897
    functionName: fu_wac_device_add_modules
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_device_add_child
    - fu_struct_module_item_parse
    - fu_wac_module_scaler_new
    - g_propagate_error
    - fu_wac_module_bluetooth_new
    - g_byte_array_set_size
    - fu_wac_module_sub_cpu_new
    - fu_struct_module_desc_parse
    - fu_wac_module_touch_new
    - fu_wac_module_touch_id7_new
    - fu_dump_raw
    - fu_device_get_name
    - fu_struct_module_item_get_kind
    - fu_version_from_uint16
    - g_steal_pointer
    - fu_device_set_summary
    - fu_struct_module_desc_get_bootloader_version
    - fu_struct_module_desc_get_number_modules
    - fu_device_set_version_bootloader
    - g_autoptr
    - fu_device_set_version_raw
    - g_byte_array_new
    - g_warning
    - fu_device_set_version_bootloader_raw
    - fu_wac_module_bluetooth_id9_new
    - g_strdup_printf
    - FU_DEVICE
    - fu_struct_module_item_get_version
    - fu_wac_module_bluetooth_id6_new
    - fu_struct_module_item_get_version2
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_add_modules(FuWacDevice *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:902,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:905,1
    - Dst: fu_wac_device_ensure_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:909,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:913,1
    - Dst: fu_wac_device_add_modules_legacy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:914,1
    - Dst: fu_wac_device_add_modules
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:917,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 899
    functionDepth: 8
    functionLinenumber: 899
    functionLinenumberEnd: 923
    functionName: fu_wac_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_wac_device_add_modules_legacy
    - fu_wac_device_add_modules
    - fu_device_has_private_flag
    - FU_WAC_DEVICE
    - fu_wac_device_ensure_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:929,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:929,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:933,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:942,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 946
    functionName: fu_wac_device_close
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_usb_device_release_interface
    - g_prefix_error
    - FU_USB_DEVICE
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:951,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:952,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:953,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:954,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:955,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 957
    functionName: fu_wac_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:963,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:963,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:965,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 966
    functionName: fu_wac_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wac_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:971,1
    - Dst: g_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:972,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:975,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:976,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:977,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:977,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:978,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:978,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:979,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:979,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:980,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:980,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:981,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:981,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:982,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:982,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:983,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:983,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:984,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 968
    functionDepth: 6
    functionLinenumber: 968
    functionLinenumberEnd: 985
    functionName: fu_wac_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - g_array_new
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - g_ptr_array_new_with_free_func
    - fu_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_init(FuWacDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:990,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:992,1
    - Dst: g_array_unref
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:993,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 996
    functionName: fu_wac_device_finalize
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_array_unref
    - FU_WAC_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:1001,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-device.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1010
    functionName: fu_wac_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_device_class_init(FuWacDeviceClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:31,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:32,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:59,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:69,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:73,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:74,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:74,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:75,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - srec_records
    - record_num
    - error
    argTypes:
    - GPtrArray*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 77
    functionName: fu_wac_module_sub_cpu_create_chunk
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_chunk_bytes_new
    - fu_chunk_set_address
    - g_ptr_array_index
    - g_set_error_literal
    - g_autoptr
    - g_bytes_new
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_wac_module_sub_cpu_create_chunk(GPtrArray *srec_records, guint32 *record_num,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:82,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:84,1
    - Dst: fu_wac_module_sub_cpu_create_chunk
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:89,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:92,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:94,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - srec_firmware
    - data_len
    - error
    argTypes:
    - FuSrecFirmware*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: fu_wac_module_sub_cpu_parse_chunks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - fu_wac_module_sub_cpu_create_chunk
    - fu_srec_firmware_get_records
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_wac_module_sub_cpu_parse_chunks(FuSrecFirmware *srec_firmware, guint32 *data_len,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:105,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:106,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:106,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:107,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:108,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:111,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:112,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:114,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:116,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - chunk
    - error
    argTypes:
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 121
    functionName: fu_wac_module_sub_cpu_build_packet
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_memcpy_safe
    - fu_memwrite_uint32
    - fu_chunk_get_data
    - g_bytes_new
    - memset
    - fu_chunk_get_address
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_wac_module_sub_cpu_build_packet(FuChunk *chunk, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:134,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:137,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:139,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:140,1
    - Dst: fu_wac_module_sub_cpu_parse_chunks
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:144,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:144,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:149,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:150,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:153,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:160,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:164,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:169,1
    - Dst: fu_wac_module_sub_cpu_build_packet
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:169,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:174,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:181,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:185,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:185,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:189,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:192,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:199,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 206
    functionName: fu_wac_module_sub_cpu_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_step_done
    - g_bytes_new_static
    - fu_wac_module_sub_cpu_parse_chunks
    - fu_wac_module_set_feature
    - g_prefix_error
    - fu_progress_add_step
    - fu_memwrite_uint32
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - fu_wac_module_sub_cpu_build_packet
    - FU_WAC_MODULE
    - FU_SREC_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_sub_cpu_write_firmware(FuDevice *device,\n\t\t\t\t
      \    FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     FwupdInstallFlags
      flags,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:215,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:216,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: fu_wac_module_sub_cpu_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_srec_firmware_new
    - g_prefix_error
    - fu_firmware_parse_stream
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_wac_module_sub_cpu_prepare_firmware(FuDevice *self,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FuFirmwareParseFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:230,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:231,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleSubCpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 6
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: fu_wac_module_sub_cpu_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_sub_cpu_init(FuWacModuleSubCpu *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleSubCpuClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: fu_wac_module_sub_cpu_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_sub_cpu_class_init(FuWacModuleSubCpuClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: fu_wac_module_sub_cpu_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_sub_cpu_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:20,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:20,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:21,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:21,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:22,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:23,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacAndroidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: fu_wac_android_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c
    functionUses: 0
    functionsReached:
    - fu_device_inhibit
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_add_icon
    linkageType: ''
    returnType: void
    signature: void fu_wac_android_device_init(FuWacAndroidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacAndroidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: fu_wac_android_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_wac_android_device_class_init(FuWacAndroidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-common.c:20,1
    - Dst: fu_wac_report_id_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-common.c:22,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-common.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - title
    - cmd
    - buf
    - sz
    argTypes:
    - gchar*
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: fu_wac_buffer_dump
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-common.c
    functionUses: 0
    functionsReached:
    - fu_wac_report_id_to_string
    - fu_dump_raw
    - g_strdup_printf
    linkageType: ''
    returnType: void
    signature: void fu_wac_buffer_dump(const gchar *title, guint8 cmd, const guint8
      *buf, gsize sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: fu_wac_module_bluetooth_id6_reverse_bits
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wac_module_bluetooth_id6_reverse_bits(guint8 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_module_bluetooth_id6_reverse_bits
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: fu_wac_module_bluetooth_id6_calculate_crc
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_wac_module_bluetooth_id6_reverse_bits
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wac_module_bluetooth_id6_calculate_crc(const guint8 *buf,
      gsize bufsz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:68,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:69,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:78,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:79,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:79,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:83,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:86,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:91,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:92,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:93,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:94,1
    - Dst: fu_wac_module_bluetooth_id6_calculate_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:95,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:100,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:100,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:101,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:104,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:108,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:111,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuWacModule*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 119
    functionName: fu_wac_module_bluetooth_id6_write_blob
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - g_debug
    - fu_chunk_array_length
    - fu_progress_step_done
    - memcpy
    - fu_wac_module_set_feature
    - g_prefix_error
    - fu_memwrite_uint32
    - fu_progress_set_id
    - fu_wac_module_bluetooth_id6_calculate_crc
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - g_bytes_new
    - fu_progress_set_steps
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id6_write_blob(FuWacModule *self,\n\t\t\t\t
      \      GInputStream *stream,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:130,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:131,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:134,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:135,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:136,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:137,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:142,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:147,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:154,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:157,1
    - Dst: fu_wac_module_bluetooth_id6_write_blob
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:160,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:162,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:164,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:167,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:170,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:173,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:177,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 184
    functionName: fu_wac_module_bluetooth_id6_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_progress_get_child
    - fu_progress_step_done
    - g_bytes_new_static
    - fu_wac_module_bluetooth_id6_write_blob
    - g_prefix_error
    - fu_wac_module_set_feature
    - fu_progress_add_step
    - fu_progress_set_id
    - g_autoptr
    - FU_WAC_MODULE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id6_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:189,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:190,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleBluetoothId6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: fu_wac_module_bluetooth_id6_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_id6_init(FuWacModuleBluetoothId6 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleBluetoothId6Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: fu_wac_module_bluetooth_id6_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_id6_class_init(FuWacModuleBluetoothId6Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: fu_wac_module_bluetooth_id6_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_bluetooth_id6_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:43,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:44,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:44,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:45,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:45,1
    - Dst: fu_composite_input_stream_add_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:46,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:46,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - stream
    - crc
    - error
    argTypes:
    - GByteArray*
    - GInputStream*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: fu_wac_module_bluetooth_id9_calculate_crc32
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_composite_input_stream_add_stream
    - fu_composite_input_stream_add_bytes
    - fu_input_stream_compute_crc32
    - fu_composite_input_stream_new
    - g_bytes_new
    - g_autoptr
    - FU_COMPOSITE_INPUT_STREAM
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id9_calculate_crc32(GByteArray *buf,\n\t\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t\t    guint32 *crc,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:63,1
    - Dst: fu_struct_id9_loader_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:64,1
    - Dst: fu_struct_id9_spi_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:65,1
    - Dst: fu_struct_id9_unknown_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:65,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:67,1
    - Dst: fu_struct_id9_unknown_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:69,1
    - Dst: fu_struct_id9_spi_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:71,1
    - Dst: fu_struct_id9_spi_cmd_set_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:72,1
    - Dst: fu_struct_id9_loader_cmd_set_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:75,1
    - Dst: fu_struct_id9_loader_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:76,1
    - Dst: fu_wac_module_bluetooth_id9_calculate_crc32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:77,1
    - Dst: fu_struct_id9_loader_cmd_set_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:79,1
    - Dst: fu_struct_id9_loader_cmd_set_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:80,1
    - Dst: fu_struct_id9_loader_cmd_validate
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:83,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:86,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - stream
    - full_erase
    - error
    argTypes:
    - GInputStream*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: fu_wac_module_bluetooth_id9_get_startcmd
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_struct_id9_loader_cmd_set_size
    - fu_struct_id9_spi_cmd_new
    - fu_chunk_bytes_new
    - fu_struct_id9_loader_cmd_set_crc
    - fu_struct_id9_loader_cmd_set_command
    - fu_struct_id9_spi_cmd_set_data
    - fu_struct_id9_spi_cmd_set_size
    - fu_struct_id9_loader_cmd_new
    - fu_struct_id9_unknown_cmd_set_size
    - g_autoptr
    - fu_struct_id9_loader_cmd_validate
    - fu_wac_module_bluetooth_id9_calculate_crc32
    - fu_input_stream_size
    - g_bytes_new
    - fu_struct_id9_loader_cmd_set_data
    - fu_struct_id9_unknown_cmd_new
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_wac_module_bluetooth_id9_get_startcmd(GInputStream *stream, gboolean full_erase,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:96,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:97,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:99,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:100,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:100,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:100,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:102,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:103,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - self
    - phase
    - chunk
    - progress
    - error
    argTypes:
    - FuWacModule*
    - guint8
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: fu_wac_module_bluetooth_id9_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_byte_array_append_uint8
    - fu_wac_module_set_feature
    - fu_chunk_get_data
    - g_autoptr
    - g_bytes_new
    - g_byte_array_append
    - g_byte_array_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id9_write_block(FuWacModule *self,\n\t\t\t\t\tguint8
      phase,\n\t\t\t\t\tFuChunk *chunk,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:120,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:122,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:130,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:131,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:131,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:133,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:136,1
    - Dst: fu_wac_module_bluetooth_id9_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:139,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - self
    - phase
    - stream
    - block_len
    - progress
    - error
    argTypes:
    - FuWacModule*
    - guint8
    - GInputStream*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: fu_wac_module_bluetooth_id9_write_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_autoptr
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_wac_module_bluetooth_id9_write_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id9_write_blocks(FuWacModule *self,\n\t\t\t\t\t
      guint8 phase,\n\t\t\t\t\t GInputStream *stream,\n\t\t\t\t\t gsize block_len,\n\t\t\t\t\t
      FuProgress *progress,\n\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:161,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:163,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:166,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:174,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:175,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:176,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:184,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:190,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:193,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:194,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:195,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:198,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:201,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:202,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 206
    functionName: fu_wac_module_bluetooth_id9_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16_safe
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_steal_pointer
    - fu_firmware_new_from_bytes
    - g_set_error_literal
    - g_autoptr
    - fu_input_stream_read_bytes
    - fu_bytes_new_offset
    - fu_firmware_new
    - g_bytes_get_data
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_wac_module_bluetooth_id9_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t     GInputStream *stream,\n\t\t\t\t\t     FuProgress *progress,\n\t\t\t\t\t
      \    FuFirmwareParseFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:217,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:220,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:223,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:227,1
    - Dst: fu_wac_module_bluetooth_id9_get_startcmd
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:230,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:237,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:239,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:242,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:245,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:250,1
    - Dst: fu_wac_module_bluetooth_id9_write_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:253,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:257,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:260,1
    - Dst: fu_wac_module_bluetooth_id9_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:263,1
    - Dst: fu_wac_module_bluetooth_id9_write_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:271,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:275,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:278,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:281,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:284,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 293
    functionName: fu_wac_module_bluetooth_id9_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_progress_step_done
    - g_bytes_new_static
    - fu_wac_module_set_feature
    - fu_progress_add_step
    - fu_firmware_get_image_by_id_stream
    - fu_wac_module_bluetooth_id9_get_startcmd
    - fu_wac_module_bluetooth_id9_write_blocks
    - fu_progress_set_id
    - g_autoptr
    - FU_WAC_MODULE
    - fu_wac_module_bluetooth_id9_write_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_id9_write_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:298,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleBluetoothId9*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 6
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: fu_wac_module_bluetooth_id9_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_id9_init(FuWacModuleBluetoothId9 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleBluetoothId9Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: fu_wac_module_bluetooth_id9_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_id9_class_init(FuWacModuleBluetoothId9Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: fu_wac_module_bluetooth_id9_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_bluetooth_id9_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:21,1
    - Dst: fu_wac_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:25,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:28,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:29,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:30,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:33,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:36,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:40,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:41,1
    - Dst: fu_firmware_write_chunk
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:44,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:46,1
    - Dst: fu_wac_buffer_dump
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:47,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:49,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: fu_wac_firmware_parse_func
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_test_skip
    - fu_firmware_get_image_by_id
    - g_file_new_for_path
    - g_test_build_filename
    - g_assert_true
    - g_bytes_get_size
    - g_assert_no_error
    - g_assert_nonnull
    - g_file_test
    - g_autoptr
    - fu_wac_firmware_new
    - fu_wac_buffer_dump
    - fu_firmware_parse_file
    - fu_firmware_write_chunk
    linkageType: ''
    returnType: void
    signature: void fu_wac_firmware_parse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:61,1
    - Dst: fu_wac_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:62,1
    - Dst: fu_wac_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:63,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:66,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:69,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:71,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:72,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:74,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:75,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:79,1
    - Dst: fu_firmware_build_from_xml
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:81,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:82,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: fu_wac_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_checksum
    - g_assert_cmpstr
    - g_file_get_contents
    - g_test_build_filename
    - g_assert_true
    - fu_firmware_build_from_xml
    - g_assert_no_error
    - g_autoptr
    - fu_wac_firmware_new
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_wac_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:90,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:91,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:92,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:95,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:98,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:101,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:102,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_log_set_fatal_mask
    - g_test_add_func
    - g_setenv
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:34,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:39,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:41,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:43,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:48,1
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:57,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - data
    - sz
    - error
    argTypes:
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: fu_wac_module_scaler_parse_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_new0
    - fu_memcpy_safe
    - fu_memwrite_uint24
    - fu_crc8
    - memset
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_wac_module_scaler_parse_blocks(const guint8 *data, gsize sz, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:76,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:79,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:82,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:85,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:87,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:92,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:93,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:94,1
    - Dst: fu_wac_module_scaler_parse_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:95,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:98,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:103,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:106,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:110,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:114,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:120,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:123,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:124,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:126,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:127,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:129,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:136,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:140,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:140,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:144,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:147,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:154,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 161
    functionName: fu_wac_module_scaler_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_step_done
    - g_bytes_new_static
    - memcpy
    - g_prefix_error
    - fu_wac_module_set_feature
    - fu_progress_add_step
    - fu_memwrite_uint32
    - g_ptr_array_index
    - fu_progress_set_id
    - fu_wac_module_scaler_parse_blocks
    - g_autoptr
    - g_bytes_new
    - memset
    - FU_WAC_MODULE
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_scaler_write_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    FwupdInstallFlags
      flags,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:166,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleScaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: fu_wac_module_scaler_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_scaler_init(FuWacModuleScaler *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleScalerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: fu_wac_module_scaler_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_scaler_class_init(FuWacModuleScalerClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: fu_wac_module_scaler_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_scaler_new(FuDevice *proxy)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:45,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:53,1
    - Dst: strlen
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:54,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:57,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:62,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:77,1
    - Dst: fu_firmware_strparse_uint4_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:84,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:92,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:93,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:105,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:106,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:107,1
    - Dst: fu_firmware_strparse_uint4_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:147,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:148,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:169,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:176,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:182,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:187,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:187,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:187,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:191,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:196,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:209,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:210,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:215,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:222,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:225,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:234,1
    - Dst: fu_srec_firmware_set_addr_min
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:235,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:235,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:236,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:242,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:245,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:246,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:246,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:247,1
    - Dst: fu_firmware_add_image_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:248,1
    - Dst: g_string_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:253,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 113
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 258
    functionName: fu_wac_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - g_new0
    - fu_firmware_get_addr
    - memcmp
    - fu_srec_firmware_set_addr_min
    - g_string_append_printf
    - g_set_error
    - g_debug
    - fu_firmware_add_image_full
    - fu_firmware_set_addr
    - g_ptr_array_index
    - fu_firmware_strparse_uint4_safe
    - fu_firmware_set_bytes
    - g_steal_pointer
    - fu_srec_firmware_new
    - g_autoptr
    - g_bytes_new
    - fu_firmware_new
    - g_ptr_array_add
    - g_strcmp0
    - FU_SREC_FIRMWARE
    - fu_firmware_parse_bytes
    - g_strdelimit
    - fu_firmware_get_bytes
    - g_string_set_size
    - fu_firmware_strparse_uint32_safe
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_strndup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_firmware_tokenize_cb(GString *token, guint token_idx,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wac_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: fu_wac_firmware_validate
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_wac_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:272,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:273,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:273,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:281,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:286,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 306
    functionName: fu_wac_firmware_parse
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_strsplit_stream
    - g_string_new
    - g_set_error_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: fu_wac_firmware_calc_checksum
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sum8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wac_firmware_calc_checksum(GByteArray *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:317,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:318,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:319,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:320,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:320,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:324,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:331,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:332,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:332,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:333,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:333,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:335,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:337,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:338,1
    - Dst: fu_wac_firmware_calc_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:338,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:344,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:344,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:347,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:347,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:348,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:348,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:350,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:351,1
    - Dst: fu_wac_firmware_calc_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:351,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:354,1
    - Dst: g_string_append_len
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:357,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:358,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:359,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:363,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 365
    functionName: fu_wac_firmware_write
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - g_bytes_get_data
    - fu_firmware_get_size
    - fu_firmware_write
    - g_string_new
    - g_steal_pointer
    - fu_wac_firmware_calc_checksum
    - g_bytes_get_size
    - fu_firmware_get_addr
    - fu_firmware_get_images
    - g_set_error_literal
    - g_ptr_array_index
    - fu_firmware_get_idx
    - g_autoptr
    - g_byte_array_append
    - g_string_append_len
    - g_byte_array_new
    - fu_byte_array_append_uint32
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_wac_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:370,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:370,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: fu_wac_firmware_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_images_max
    - g_type_ensure
    - FU_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_wac_firmware_init(FuWacFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: fu_wac_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_firmware_class_init(FuWacFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:386,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: fu_wac_firmware_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_FIRMWARE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_wac_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 1557
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:30,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:31,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:32,1
    - Dst: fu_wac_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:35,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:36,1
    - Dst: fu_wac_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:36,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:37,1
    - Dst: fu_wac_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: fu_wac_module_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_wac_module_status_to_string
    - GET_PRIVATE
    - fu_wac_module_fw_type_to_string
    - FU_WAC_MODULE
    - fu_wac_module_command_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:46,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:46,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:47,1
    - Dst: fu_wac_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:51,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:56,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:63,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:77,1
    - Dst: fu_wac_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:78,1
    - Dst: fu_wac_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacModule*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 84
    functionName: fu_wac_module_refresh
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_debug
    - g_prefix_error
    - fu_wac_device_get_feature_report
    - FU_DEVICE
    - fu_wac_module_status_to_string
    - GET_PRIVATE
    - FU_WAC_DEVICE
    - fu_device_get_parent
    - fu_wac_module_command_to_string
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_module_refresh(FuWacModule *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:89,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:91,1
    - Dst: fu_wac_module_refresh
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:93,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:94,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:96,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:96,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:105,1
    - Dst: fu_wac_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 116
    functionName: fu_wac_module_refresh_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_steal_pointer
    - g_error_matches
    - fu_wac_module_refresh
    - fu_wac_module_status_to_string
    - GET_PRIVATE
    - g_propagate_error
    - g_autoptr
    - FU_WAC_MODULE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_module_refresh_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:127,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:127,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:128,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:141,1
    - Dst: FU_IS_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:141,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:142,1
    - Dst: FU_IS_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:142,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:146,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:147,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:155,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:163,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:166,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:169,1
    - Dst: fu_wac_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:176,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:181,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:187,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:188,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:194,1
    - Dst: fu_wac_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:196,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:200,1
    - Dst: fu_wac_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 7
    argNames:
    - self
    - command
    - blob
    - progress
    - poll_interval
    - busy_timeout
    - error
    argTypes:
    - FuWacModule*
    - guint8
    - GBytes*
    - FuProgress*
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 212
    functionName: fu_wac_module_set_feature
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 6
    functionsReached:
    - fu_progress_set_status
    - fu_device_retry_full
    - g_set_error
    - FU_IS_WAC_DEVICE
    - FU_IS_WAC_MODULE
    - g_prefix_error
    - fu_memcpy_safe
    - fu_device_has_flag
    - FU_DEVICE
    - fu_wac_module_status_to_string
    - GET_PRIVATE
    - FU_WAC_DEVICE
    - fu_device_get_parent
    - g_return_val_if_fail
    - fu_wac_device_set_feature_report
    - g_bytes_get_data
    - fu_wac_module_command_to_string
    - fu_device_sleep
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_set_feature(FuWacModule *self,\n\t\t\t  guint8
      command,\n\t\t\t  GBytes *blob, /* optional */\n\t\t\t  FuProgress *progress,\n\t\t\t
      \ guint poll_interval, /* ms */\n\t\t\t  guint busy_timeout,  /* ms */\n\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:221,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:221,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: fu_wac_module_cleanup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_cleanup
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_cleanup(FuDevice *device,\n\t\t      FuProgress
      *progress,\n\t\t      FwupdInstallFlags flags,\n\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:231,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:231,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:233,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: fu_wac_module_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    - fu_version_from_uint16
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wac_module_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:239,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:240,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:243,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: fu_wac_module_get_property
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - FU_WAC_MODULE
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:254,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:255,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:258,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: fu_wac_module_set_property
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - FU_WAC_MODULE
    - GET_PRIVATE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_uint
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:269,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:270,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:270,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:271,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:272,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 6
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: fu_wac_module_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_init(FuWacModule *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:279,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:280,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:281,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:281,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:288,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:290,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:293,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:296,1
    - Dst: fu_wac_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:297,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:300,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:301,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:302,1
    - Dst: fu_wac_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:303,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:304,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 308
    functionName: fu_wac_module_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    - fu_device_get_proxy
    - fu_device_get_pid
    - fu_device_get_vid
    - fu_device_add_instance_id
    - g_strdup_printf
    - fu_device_set_logical_id
    - fu_device_build_vendor_id_u16
    - G_OBJECT_CLASS
    - FU_DEVICE
    - GET_PRIVATE
    - fu_wac_module_fw_type_to_string
    - FU_WAC_MODULE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_constructed(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:313,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:314,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:315,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:316,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:317,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: fu_wac_module_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:324,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:326,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:337,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 351
    functionName: fu_wac_module_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - FU_DEVICE_CLASS
    - g_param_spec_uint
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_class_init(FuWacModuleClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - guint8*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 63
    functionName: fu_wac_module_bluetooth_calculate_crc_byte
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_calculate_crc_byte(guint8 *crc, guint8
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wac_module_bluetooth_calculate_crc_byte
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: fu_wac_module_bluetooth_calculate_crc
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_wac_module_bluetooth_calculate_crc_byte
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wac_module_bluetooth_calculate_crc(const guint8 *data, gsize
      sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:81,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:91,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:93,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:94,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:99,1
    - Dst: fu_wac_module_bluetooth_calculate_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:108,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:110,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - data
    - sz
    - skip_user_data
    - error
    argTypes:
    - guint8*
    - gsize
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 113
    functionName: fu_wac_module_bluetooth_parse_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_new0
    - memcpy
    - fu_memcpy_safe
    - fu_wac_module_bluetooth_calculate_crc
    - memset
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_wac_module_bluetooth_parse_blocks(const guint8 *data,\n\t\t\t\t
      \    gsize sz,\n\t\t\t\t     gboolean skip_user_data,\n\t\t\t\t     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:127,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:128,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:131,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:132,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:133,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:134,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:137,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:139,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:144,1
    - Dst: fu_wac_module_bluetooth_parse_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:145,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:147,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:152,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:155,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:159,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:168,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:171,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:172,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:173,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:175,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:176,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:177,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:180,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:184,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:189,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:189,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:193,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:196,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:199,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:203,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 210
    functionName: fu_wac_module_bluetooth_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_step_done
    - memset
    - g_bytes_new_static
    - memcpy
    - g_prefix_error
    - fu_wac_module_set_feature
    - fu_progress_add_step
    - fu_memwrite_uint24
    - g_ptr_array_index
    - fu_progress_set_id
    - g_autoptr
    - g_bytes_new
    - fu_wac_module_bluetooth_parse_blocks
    - FU_WAC_MODULE
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_bluetooth_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:215,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleBluetooth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: fu_wac_module_bluetooth_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_init(FuWacModuleBluetooth *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleBluetoothClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: fu_wac_module_bluetooth_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_bluetooth_class_init(FuWacModuleBluetoothClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: fu_wac_module_bluetooth_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_bluetooth_new(FuDevice *proxy)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:60,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - header
    - info
    - error
    argTypes:
    - WtaFileHeader*
    - WtaInfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: fu_wac_module_touch_id7_read_file_header
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_module_touch_id7_read_file_header(WtaFileHeader *header,
      WtaInfo *info, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:104,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:113,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:122,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:126,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - header
    - info
    - error
    argTypes:
    - WtaRecordHeader*
    - WtaInfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: fu_wac_module_touch_id7_read_record_header
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_module_touch_id7_read_record_header(WtaRecordHeader
      *header, WtaInfo *info, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:162,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - header
    - cmd
    - op_id
    - buf
    argTypes:
    - WtaRecordHeader*
    - guint8
    - guint16
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: fu_wac_module_touch_id7_generate_command
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    linkageType: ''
    returnType: void
    signature: "void fu_wac_module_touch_id7_generate_command(const WtaRecordHeader
      *header,\n\t\t\t\t\t guint8 cmd,\n\t\t\t\t\t guint16 op_id,\n\t\t\t\t\t guint8
      *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:180,1
    - Dst: fu_struct_wta_block_header_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:183,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:187,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:188,1
    - Dst: fu_struct_wta_block_header_get_block_start
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:189,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:197,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:202,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:203,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:203,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:204,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:205,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:207,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:208,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:211,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:215,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:223,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:223,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 5
    argNames:
    - self
    - info
    - progress
    - record_hdr
    - error
    argTypes:
    - FuWacModule*
    - WtaInfo*
    - FuProgress*
    - WtaRecordHeader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 232
    functionName: fu_wac_module_touch_id7_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - memcpy
    - fu_struct_wta_block_header_get_block_size
    - fu_wac_module_set_feature
    - g_prefix_error
    - fu_memwrite_uint32
    - g_ptr_array_index
    - g_autoptr
    - fu_chunk_get_data
    - fu_chunk_array_new
    - g_bytes_new
    - fu_chunk_get_address
    - fu_struct_wta_block_header_parse
    - fu_struct_wta_block_header_get_block_start
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_touch_id7_write_block(FuWacModule *self,\n\t\t\t\t
      \   WtaInfo *info,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    WtaRecordHeader
      *record_hdr,\n\t\t\t\t    GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:252,1
    - Dst: fu_wac_module_touch_id7_read_record_header
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:255,1
    - Dst: fu_wac_module_touch_id7_generate_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:259,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:263,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:264,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:267,1
    - Dst: fu_wac_module_touch_id7_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:277,1
    - Dst: fu_wac_module_touch_id7_generate_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:282,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:287,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:288,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - info
    - progress
    - error
    argTypes:
    - FuWacModule*
    - WtaInfo*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 244
    functionDepth: 8
    functionLinenumber: 244
    functionLinenumberEnd: 300
    functionName: fu_wac_module_touch_id7_write_record
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - fu_wac_module_touch_id7_write_block
    - fu_wac_module_set_feature
    - fu_wac_module_touch_id7_generate_command
    - g_bytes_new
    - g_autoptr
    - fu_wac_module_touch_id7_read_record_header
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_touch_id7_write_record(FuWacModule *self,\n\t\t\t\t
      \    WtaInfo *info,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:318,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:323,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:324,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:325,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:326,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:329,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:329,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:331,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:336,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:339,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:344,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:348,1
    - Dst: fu_wac_module_touch_id7_read_file_header
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:350,1
    - Dst: fu_wac_module_touch_id7_write_record
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:355,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:361,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:364,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:367,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 310
    functionDepth: 9
    functionLinenumber: 310
    functionLinenumberEnd: 376
    functionName: fu_wac_module_touch_id7_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_child
    - g_debug
    - fu_progress_step_done
    - fu_wac_module_set_feature
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_firmware_get_addr
    - fu_wac_module_touch_id7_write_record
    - fu_progress_set_id
    - fu_wac_module_touch_id7_read_file_header
    - g_autoptr
    - FU_WAC_MODULE
    - g_bytes_get_data
    - fu_firmware_get_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_touch_id7_write_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      FwupdInstallFlags flags,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:381,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleTouchId7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 6
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: fu_wac_module_touch_id7_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_touch_id7_init(FuWacModuleTouchId7 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleTouchId7Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: fu_wac_module_touch_id7_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_touch_id7_class_init(FuWacModuleTouchId7Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: fu_wac_module_touch_id7_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_touch_id7_new(FuDevice *proxy)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:30,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:33,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:34,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:35,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:36,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:37,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:39,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:39,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:44,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:47,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:48,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:56,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:59,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:63,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:66,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:72,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:75,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:80,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:82,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:83,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:83,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:85,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:88,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:89,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:93,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:96,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:97,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:104,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:104,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:109,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:109,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:111,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:113,1
    - Dst: fu_wac_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:116,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:119,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:123,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 130
    functionName: fu_wac_module_touch_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - g_prefix_error
    - fu_wac_module_set_feature
    - fu_firmware_get_addr
    - fu_chunk_get_idx
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - g_debug
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    - fu_chunk_get_data
    - memset
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_memwrite_uint32
    - g_autoptr
    - fu_chunk_array_index
    - g_bytes_new
    - FU_WAC_MODULE
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_module_touch_write_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
      flags,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:135,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:136,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacModuleTouch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_wac_module_touch_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
    functionUses: 0
    functionsReached:
    - fu_device_set_install_duration
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_touch_init(FuWacModuleTouch *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacModuleTouchClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: fu_wac_module_touch_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_module_touch_class_init(FuWacModuleTouchClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: fu_wac_module_touch_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacModule
    signature: 'FuWacModule *

      fu_wac_module_touch_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:36,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:37,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: fu_wac_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_write_firmware
    - g_autoptr
    - fu_device_get_parent
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wac_plugin_write_firmware(FuPlugin *plugin,\n\t\t\t     FuDevice
      *device,\n\t\t\t     FuFirmware *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t
      \    FwupdInstallFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:47,1
    - Dst: FU_IS_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:49,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:49,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:52,1
    - Dst: fu_wac_device_switch_to_flash_loader
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:53,1
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 7
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: fu_wac_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IS_WAC_DEVICE
    - g_ptr_array_index
    - fu_wac_device_switch_to_flash_loader
    - FU_WAC_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_plugin_composite_prepare(FuPlugin *self, GPtrArray
      *devices, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:63,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:67,1
    - Dst: FU_IS_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:68,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:69,1
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:69,1
    - Dst: FU_IS_WAC_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:72,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:73,1
    - Dst: FU_WAC_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:73,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:80,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:80,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:83,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:84,1
    - Dst: fu_wac_device_update_reset
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 91
    functionName: fu_wac_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy
    - FU_IS_WAC_DEVICE
    - FU_IS_WAC_MODULE
    - g_set_object
    - g_ptr_array_index
    - fu_device_add_flag
    - FU_DEVICE
    - fu_wac_device_update_reset
    - FU_WAC_DEVICE
    - g_autoptr
    - fu_device_locker_new
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wac_plugin_composite_cleanup(FuPlugin *self, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:96,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: fu_wac_plugin_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_wac_plugin_init(FuWacPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:102,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: fu_wac_plugin_object_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_name
    linkageType: ''
    returnType: void
    signature: void fu_wac_plugin_object_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:109,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:110,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:111,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:112,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:113,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:114,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:115,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:116,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:117,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:118,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: fu_wac_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_set_device_gtype_default
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wac_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:125,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: fu_wac_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wac_plugin_class_init(FuWacPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: fu_fpc_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_gtypes
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_fpc_device_prepare_firmware(FuDevice *device,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuProgress *progress,\n\t\t\t       FuFirmwareParseFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:81,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:82,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - self
    - request
    - value
    - data
    - length
    - device2host
    - type_vendor
    - error
    argTypes:
    - FuFpcDevice*
    - guint8
    - guint16
    - guint8*
    - gsize
    - gboolean
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 108
    functionName: fu_fpc_device_dfu_cmd
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_device_dfu_cmd(FuFpcDevice *self,\n\t\t      guint8
      request,\n\t\t      guint16 value,\n\t\t      guint8 *data,\n\t\t      gsize
      length,\n\t\t      gboolean device2host,\n\t\t      gboolean type_vendor,\n\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:120,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:120,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:134,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - request
    - data
    - length
    - device2host
    - error
    argTypes:
    - FuFpcDevice*
    - guint8
    - guint8*
    - gsize
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: fu_fpc_device_fw_cmd
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_device_fw_cmd(FuFpcDevice *self,\n\t\t     guint8
      request,\n\t\t     guint8 *data,\n\t\t     gsize length,\n\t\t     gboolean
      device2host,\n\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:152,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:154,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:154,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:158,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:159,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:160,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:161,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:164,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:165,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFpcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: fu_fpc_device_setup_mode
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - g_ptr_array_index
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_remove_flag
    - g_set_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_get_interfaces
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_setup_mode(FuFpcDevice *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:183,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:186,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:187,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:193,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:194,1
    - Dst: fu_fpc_device_fw_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:196,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:199,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:203,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:204,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:212,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:217,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:218,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:226,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:230,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFpcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 242
    functionName: fu_fpc_device_setup_version
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_fpc_device_fw_cmd
    - g_prefix_error
    - fu_memread_uint32_safe
    - g_malloc0
    - fu_device_has_private_flag
    - fu_device_has_flag
    - FU_DEVICE
    - fu_fpc_device_dfu_cmd
    - fu_device_set_version_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_setup_version(FuFpcDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:248,1
    - Dst: fu_struct_fpc_dfu_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:248,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:250,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:258,1
    - Dst: fu_struct_fpc_dfu_get_status
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:262,1
    - Dst: fu_struct_fpc_dfu_get_state
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:265,1
    - Dst: fu_struct_fpc_dfu_get_status
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:269,1
    - Dst: fu_struct_fpc_dfu_get_state
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:270,1
    - Dst: fu_struct_fpc_dfu_get_max_payload_size
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:274,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 281
    functionName: fu_fpc_device_check_dfu_status_cb
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_FPC_DEVICE
    - g_set_error
    - fu_struct_fpc_dfu_get_state
    - fu_struct_fpc_dfu_new
    - g_prefix_error
    - fu_struct_fpc_dfu_get_status
    - fu_struct_fpc_dfu_get_max_payload_size
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_fpc_device_dfu_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_check_dfu_status_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:286,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:287,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:295,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFpcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 305
    functionName: fu_fpc_device_update_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - g_prefix_error
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_fpc_device_dfu_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_update_init(FuFpcDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:310,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:312,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:313,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:317,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:318,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:322,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:323,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:324,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 330
    functionName: fu_fpc_device_to_string
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_FPC_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_bool
    - fu_device_has_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_fpc_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:335,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:338,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:339,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:342,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: fu_fpc_device_attach
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_FPC_DEVICE
    - g_debug
    - fu_device_has_flag
    - fu_device_add_flag
    - fu_fpc_device_dfu_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:351,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:355,1
    - Dst: fu_fpc_device_fw_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:358,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 6
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: fu_fpc_device_detach
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_FPC_DEVICE
    - g_debug
    - fu_fpc_device_fw_cmd
    - fu_device_has_flag
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:367,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:371,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:375,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:375,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:377,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:380,1
    - Dst: fu_fpc_device_setup_mode
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:383,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:384,1
    - Dst: fu_fpc_device_setup_version
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:389,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 364
    functionDepth: 9
    functionLinenumber: 364
    functionLinenumberEnd: 396
    functionName: fu_fpc_device_setup
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_FPC_DEVICE
    - FU_DEVICE_CLASS
    - fu_fpc_device_setup_version
    - g_prefix_error
    - g_strstr_len
    - fu_fpc_device_setup_mode
    - g_strdup
    - fu_device_get_name
    - fu_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:401,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:403,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:411,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:412,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:415,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:418,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:419,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:423,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuFpcDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 432
    functionName: fu_fpc_device_write_ff2_blocks
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_chunk_array_length
    - g_prefix_error
    - fu_fpc_device_dfu_cmd
    - g_autoptr
    - fu_chunk_array_index
    - fu_chunk_get_data
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_write_ff2_blocks(FuFpcDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:443,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:445,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:445,1
    - Dst: fu_fpc_ff2_firmware_get_blocks_num
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:448,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:452,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:457,1
    - Dst: fu_struct_fpc_ff2_block_hdr_parse_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:461,1
    - Dst: fu_struct_fpc_ff2_block_hdr_get_dir
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:464,1
    - Dst: fu_struct_fpc_ff2_block_sec_parse_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:468,1
    - Dst: fu_struct_fpc_ff2_block_sec_get_payload_len
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:476,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:479,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:482,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:486,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:494,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:500,1
    - Dst: fu_fpc_device_write_ff2_blocks
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:506,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:509,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:517,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:526,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuFpcDevice*
    - FuFpcFf2Firmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 434
    functionDepth: 5
    functionLinenumber: 434
    functionLinenumberEnd: 531
    functionName: fu_fpc_device_write_ff2_firmware
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_fpc_ff2_block_hdr_parse_stream
    - fu_firmware_get_stream
    - fu_device_retry_full
    - g_prefix_error
    - fu_input_stream_read_byte_array
    - FU_FIRMWARE
    - fu_fpc_ff2_firmware_get_blocks_num
    - fu_progress_set_steps
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_fpc_device_dfu_cmd
    - fu_struct_fpc_ff2_block_hdr_get_dir
    - fu_progress_step_done
    - fu_struct_fpc_ff2_block_sec_get_payload_len
    - fu_fpc_device_write_ff2_blocks
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_struct_fpc_ff2_block_sec_parse_stream
    - FU_DEVICE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_device_write_ff2_firmware(FuFpcDevice *self,\n\t\t\t\t
      FuFpcFf2Firmware *firmware,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t FwupdInstallFlags
      flags,\n\t\t\t\t GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:541,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:542,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:543,1
    - Dst: FU_IS_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:546,1
    - Dst: fu_fpc_device_write_ff2_firmware
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:547,1
    - Dst: FU_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:548,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:555,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:556,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:557,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:558,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:561,1
    - Dst: fu_fpc_device_update_init
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:566,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:567,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:574,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:577,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:586,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:588,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:588,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:591,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:594,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:594,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:594,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:604,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:612,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:618,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:627,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:627,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:629,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:632,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:632,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:634,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:642,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:646,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:648,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:656,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 533
    functionDepth: 6
    functionLinenumber: 533
    functionLinenumberEnd: 660
    functionName: fu_fpc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - fu_firmware_get_stream
    - fu_chunk_array_length
    - fu_fpc_device_update_init
    - g_prefix_error
    - FU_FPC_DEVICE
    - g_set_error
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_add_step
    - FU_IS_FPC_FF2_FIRMWARE
    - fu_progress_set_id
    - fu_fpc_device_dfu_cmd
    - fu_chunk_get_data
    - fu_progress_step_done
    - fu_fpc_device_write_ff2_firmware
    - g_autoptr
    - fu_chunk_array_index
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data_sz
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_FPC_FF2_FIRMWARE
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_device_write_firmware(FuDevice *device,\n\t\t\t     FuFirmware
      *firmware,\n\t\t\t     FuProgress *progress,\n\t\t\t     FwupdInstallFlags flags,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:665,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:666,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:667,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:668,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:669,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 671
    functionName: fu_fpc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_fpc_device_set_progress(FuDevice *self, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:676,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 677
    functionName: fu_fpc_device_convert_version
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_fpc_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:682,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:683,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:683,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:684,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:685,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:686,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:687,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:688,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:688,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:689,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:689,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:690,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:691,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:691,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:692,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:692,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:693,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:694,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:695,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:695,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:696,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 679
    functionDepth: 6
    functionLinenumber: 679
    functionLinenumberEnd: 697
    functionName: fu_fpc_device_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_set_firmware_size_min
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_remove_delay
    - FU_USB_DEVICE
    - fu_device_set_firmware_size_max
    - fu_device_set_install_duration
    - fu_device_register_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_fpc_device_init(FuFpcDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 712
    functionName: fu_fpc_device_class_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fpc_device_class_init(FuFpcDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: fu_fpc_ff2_firmware_export
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FPC_FF2_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_fpc_ff2_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_fpc_ff2_hdr_validate_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: fu_fpc_ff2_firmware_validate
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fpc_ff2_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_ff2_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \    GInputStream *stream,\n\t\t\t     gsize offset,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:44,1
    - Dst: fu_struct_fpc_ff2_hdr_parse_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:46,1
    - Dst: fu_struct_fpc_ff2_hdr_get_blocks_num
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: fu_fpc_ff2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FPC_FF2_FIRMWARE
    - fu_struct_fpc_ff2_hdr_parse_stream
    - g_autoptr
    - fu_struct_fpc_ff2_hdr_get_blocks_num
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fpc_ff2_firmware_parse(FuFirmware *firmware,\n\t\t\t  GInputStream
      *stream,\n\t\t\t  FuFirmwareParseFlags flags,\n\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:58,1
    - Dst: FU_IS_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcFf2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: fu_fpc_ff2_firmware_get_blocks_num
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FPC_FF2_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_fpc_ff2_firmware_get_blocks_num(FuFpcFf2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcFf2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: fu_fpc_ff2_firmware_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_fpc_ff2_firmware_init(FuFpcFf2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcFf2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: fu_fpc_ff2_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fpc_ff2_firmware_class_init(FuFpcFf2FirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_fpc_plugin_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_fpc_plugin_init(FuFpcPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_fpc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_device_gtype
    - fu_plugin_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_fpc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_fpc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_fpc_plugin_class_init(FuFpcPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_new
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:17,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:19,1
    - Dst: QFutureWatcher<GPtrArray*>::QFutureWatcher<GPtrArray*>
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:21,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:22,1
    - Dst: fu_rts54hub_rtd21xx_foreground_exit
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:23,1
    - Dst: auto::setFuture
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:25,1
    - Dst: fu_util_cmd_array_run
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:25,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:26,1
    - Dst: QCoreApplication::exec
      Src: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 30
    functionName: main
    functionSourceFile: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp
    functionUses: 5
    functionsReached:
    - fu_rts54hub_rtd21xx_foreground_exit
    - QFutureWatcher<GPtrArray*>::QFutureWatcher<GPtrArray*>
    - QCoreApplication::exec
    - g_cancellable_new
    - auto::setFuture
    - fwupd_client_get_devices
    - g_autoptr
    - fu_util_cmd_array_run
    - fwupd_client_connect
    - fwupd_client_new
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- fu-acpi-facp-plugin.h
- fu-usb-device-private.h
- fu-io-channel.h
- fu-iommu-plugin.h
- fu-efi-filesystem.h
- fu-udev-device.h
- fu-security-attr-common.h
- libfwupdplugin/fu-efi-file-path-device-path.h
- fu-thelio-io-device.h
- fu-context.h
- fu-bytes.h
- fu-mm-device.h
- libjcat/jcat-version.h
- fu-hailuck-struct.h
- fu-elf-firmware.h
- linux/mei.h
- fu-uefi-dbx-device.h
- fu-amd-kria-som-eeprom.h
- fu-dell-dock-plugin.h
- fu-redfish-plugin.h
- libfwupdplugin/fu-cfu-offer.h
- fwupd-client-sync.h
- libfwupdplugin/fu-firmware-common.h
- fu-elan-kbd-debug-device.h
- fu-dell-kestrel-dpmux.h
- fu-synaptics-rmi-struct.h
- fu-dpaux-struct.h
- fu-tpm-plugin.h
- fu-cros-ec-common.h
- fu-self-test-struct.h
- fu-acpi-phat-struct.h
- libfwupd/fwupd-bios-setting.h
- fu-amd-kria-persistent-struct.h
- fu-ti-tps6598x-firmware.h
- fu-rts54hub-plugin.h
- fu-synaprom-plugin.h
- fu-steelseries-sonic-struct.h
- libfwupdplugin/fu-oprom-device.h
- fu-ti-tps6598x-common.h
- fu-mm-dfota-device.h
- fu-ti-tps6598x-plugin.h
- fwupd-device-private.h
- fu-ifd-image.h
- fu-redfish-smbios.h
- fu-string.h
- fu-release.h
- fu-vbe-device.h
- fu-wac-struct.h
- fu-chunk-array.h
- fu-uefi-common.h
- fu-steelseries-fizz-tunnel.h
- fu-uefi-capsule-device.h
- fwupd-codec.h
- fu-hailuck-kbd-firmware.h
- fu-firmware.h
- polkit/polkit.h
- libfwupdplugin/fu-coswid-firmware.h
- fu-tpm-v2-device.h
- linux/types.h
- libfwupdplugin/fu-dfuse-firmware.h
- valgrind.h
- errno.h
- fu-synaptics-cxaudio-common.h
- libfwupdplugin/fu-intel-thunderbolt-nvm.h
- libfwupd/fwupd-version.h
- fu-ti-tps6598x-device.h
- fu-algoltek-usb-plugin.h
- fwupd-bios-setting.h
- fu-device.h
- libfwupdplugin/fu-efi-file.h
- fu-progress-private.h
- fu-elanfp-firmware.h
- fu-usb-bos-descriptor.h
- libmm-glib.h
- fu-hpi-cfu-struct.h
- libfwupdplugin/fu-sum.h
- fu-amd-kria-image-firmware.h
- glib.h
- fu-hid-device.h
- fu-ifwi-struct.h
- fu-huddly-usb-struct.h
- fu-synaptics-rmi-ps2-device.h
- fwupd-enums.h
- fu-synaptics-cxaudio-struct.h
- fu-uefi-db-device.h
- fu-backend-private.h
- fu-jabra-file-firmware.h
- fu-elf-struct.h
- fu-fpc-ff2-firmware.h
- fu-uf2-struct.h
- sys/socket.h
- fu-elanfp-struct.h
- fu-ch347-cfi-device.h
- fwupd-remote.h
- fu-coswid-struct.h
- fu-cfu-firmware-struct.h
- libfwupdplugin/fu-common.h
- libfwupdplugin/fu-plugin-vfuncs.h
- fu-genesys-usbhub-codesign-firmware.h
- fu-steelseries-sonic.h
- fu-steelseries-firmware.h
- fu-srec-firmware.h
- fu-mm-mhi-qcdm-device.h
- fu-uefi-mok-plugin.h
- fu-logitech-rdfu-firmware.h
- fu-dell-dock-common.h
- fu-ccgx-hpi-common.h
- fu-tpm-struct.h
- fu-legion-hid2-iap-device.h
- fu-efi-device-path.h
- fu-ep963x-struct.h
- fu-intel-thunderbolt-struct.h
- linux/gpio.h
- libfwupd/fwupd-remote.h
- fu-usb-endpoint.h
- fu-synaprom-device.h
- fu-bcm57xx-stage2-image.h
- fu-logitech-bulkcontroller-child.h
- fu-dell-plugin.h
- fu-igsc-struct.h
- sqlite3.h
- fu-mtd-plugin.h
- fu-ccgx-plugin.h
- fu-edid.h
- fu-hughski-colorhug-plugin.h
- fu-synaptics-rmi-device.h
- fu-mem-private.h
- fu-dfu-firmware-private.h
- fu-device-event.h
- fu-logitech-hidpp-bootloader.h
- fu-dell-kestrel-ilan.h
- xmlb.h
- fu-efi-common.h
- fu-usb-hid-descriptor-private.h
- fu-genesys-gl32xx-device.h
- fu-ep963x-common.h
- fu-nvme-common.h
- fu-bnr-dp-firmware.h
- fu-corsair-bp.h
- fu-ebitdo-plugin.h
- fu-qsi-dock-plugin.h
- fu-efi-hard-drive-device-path.h
- fu-amd-gpu-atom-struct.h
- fu-usb-config-descriptor.h
- fu-jabra-file-plugin.h
- fu-hwids.h
- fu-csv-entry.h
- fu-usb-hid-descriptor.h
- sys/mman.h
- fu-rp-pico-struct.h
- fu-daemon-struct.h
- fu-partial-input-stream.h
- fu-wac-device.h
- fu-scsi-plugin.h
- fwupd.h
- fu-pci-device.h
- fu-io-channel-struct.h
- fu-device-list.h
- libfwupdplugin/fu-efi-section.h
- fu-fdt-struct.h
- libfwupdplugin/fu-oprom-firmware.h
- fu-firmware-common.h
- fu-systemd.h
- fu-cpu-plugin.h
- fu-uefi-pk-plugin.h
- libfwupdplugin/fu-pefile-firmware.h
- libfwupdplugin/fu-hid-report.h
- fu-synaptics-vmm9-device.h
- fu-elan-kbd-struct.h
- fu-pxi-ble-device.h
- libfwupdplugin/fu-volume.h
- gio/gio.h
- libfwupdplugin/fu-usb-interface.h
- libfwupd/fwupd-client-sync.h
- fwupd-version.h
- fu-efi-signature-private.h
- fu-uswid-firmware.h
- libfwupdplugin/fu-bytes.h
- libfwupdplugin/fu-ifwi-cpd-firmware.h
- fu-scsi-struct.h
- fu-jabra-file-struct.h
- fu-intel-cvs-plugin.h
- fu-parade-usbhub-firmware.h
- fu-dell-dock-mst.h
- fu-uefi-cod-device.h
- fu-intel-usb4-plugin.h
- tss2/tss2_esys.h
- fu-dell-kestrel-rmm.h
- fu-uefi-dbx-common.h
- fu-aver-hid-plugin.h
- fu-acpi-dmar.h
- fu-huddly-usb-device.h
- fu-pefile-struct.h
- fu-dell-dock-hub.h
- fu-qc-s5gen2-plugin.h
- glib/gi18n.h
- fwupd-security-attr.h
- fu-wistron-dock-struct.h
- mtd/mtd-user.h
- fu-genesys-scaler-firmware.h
- glib-object.h
- fu-mediatek-scaler-struct.h
- stdio.h
- fu-goodixtp-hid-device.h
- fu-logitech-rallysystem-tablehub-device.h
- fu-tpm-eventlog-parser.h
- fu-mm-fdl-struct.h
- fu-fmap-firmware.h
- fu-analogix-plugin.h
- fu-bcm57xx-common.h
- fu-acpi-phat-version-record.h
- fu-synaptics-rmi-common.h
- libfwupdplugin/fu-usb-endpoint.h
- fu-logitech-bulkcontroller-plugin.h
- fu-steelseries-fizz-gen1.h
- fu-pkcs7.h
- fu-acpi-phat-plugin.h
- fu-context-private.h
- fu-algoltek-usbcr-device.h
- fu-igsc-plugin.h
- fu-usb-descriptor.h
- fu-version-common.h
- fu-csv-firmware.h
- libfwupdplugin/fu-efivars.h
- fu-goodixtp-firmware.h
- fu-kinetic-dp-secure-firmware.h
- archive_entry.h
- fu-synaptics-cape-sngl-firmware.h
- fu-ch347-plugin.h
- fu-efi-file.h
- libfwupdplugin/fu-composite-input-stream.h
- fu-bitmap-image.h
- fu-bnr-dp-common.h
- libfwupdplugin/fu-ioctl.h
- fu-usb-struct.h
- fu-thunderbolt-struct.h
- fu-analogix-firmware.h
- libfwupd/fwupd-security-attr.h
- libfwupdplugin/fu-i2c-device.h
- fu-csv-firmware-private.h
- kenv.h
- fu-dell-kestrel-rtshub.h
- fu-pci-bcr-plugin.h
- fu-composite-input-stream.h
- sys/vfs.h
- fu-wacom-common.h
- xf86drmMode.h
- fu-pxi-common.h
- fu-nvme-plugin.h
- fu-dell-dock-status.h
- libfwupdplugin/fu-output-stream.h
- fu-logitech-hidpp-struct.h
- fu-dell-dock-tbt.h
- libfwupdplugin/fu-efi-load-option.h
- fu-remote-list.h
- libfwupdplugin/fu-partial-input-stream.h
- libdrm/amdgpu.h
- libfwupdplugin/fu-fit-firmware.h
- fu-gpio-plugin.h
- fu-uefi-nvram-device.h
- libfwupdplugin/fu-sbatlevel-section.h
- libfwupd/fwupd-request.h
- fu-efivars.h
- fu-synaptics-vmm9-firmware.h
- fu-pefile-firmware.h
- fu-upower-plugin.h
- libfwupdplugin/fu-drm-device.h
- fu-oprom-struct.h
- fu-byte-array.h
- libfwupdplugin/fu-uefi-device.h
- fu-igsc-aux-device.h
- fu-jabra-plugin.h
- gio/gunixfdlist.h
- fu-ioctl.h
- libfwupdplugin/fu-version-common.h
- libfwupdplugin/fu-kernel.h
- fu-serio-device.h
- fu-goodixtp-struct.h
- fu-thelio-io-plugin.h
- fu-rts54hub-rtd21xx-foreground.h
- fu-qc-s5gen2-ble-device.h
- libfwupdplugin/fu-intel-thunderbolt-firmware.h
- fu-archive.h
- fu-efi-signature-list.h
- fu-fresco-pd-firmware.h
- fu-qc-firehose-plugin.h
- shlwapi.h
- fu-usb-bos-descriptor-private.h
- fu-logitech-hidpp-device.h
- fu-pci-mei-plugin.h
- linux/fs.h
- fu-amd-gpu-psp-firmware.h
- fu-android-boot-plugin.h
- fu-kenv.h
- fu-wac-module-bluetooth-id9.h
- fu-wistron-dock-plugin.h
- fu-qc-s5gen2-struct.h
- fu-debug.h
- fu-synaptics-cape-plugin.h
- fu-i2c-device.h
- fu-coswid-common.h
- fu-hailuck-bl-device.h
- fu-amd-kria-persistent-firmware.h
- fu-redfish-common.h
- fu-uefi-capsule-backend-freebsd.h
- fu-steelseries-fizz-struct.h
- fu-cab-firmware-private.h
- fu-cfu-offer.h
- libfwupdplugin/fu-archive.h
- fu-uefi-bgrt.h
- fu-scsi-device.h
- fu-ccgx-dmc-firmware.h
- fu-synaptics-rmi-plugin.h
- fu-igsc-heci.h
- fu-dfu-device.h
- fu-hid-report.h
- fu-fresco-pd-plugin.h
- sysinfoapi.h
- fu-bcm57xx-device.h
- fu-ccgx-hid-device.h
- fu-goodixtp-brlb-firmware.h
- gio/gunixmounts.h
- fu-daemon.h
- fu-sbatlevel-section.h
- fu-asus-hid-child-device.h
- fu-corsair-device.h
- fu-ccgx-pure-hid-struct.h
- fu-mm-fdl-device.h
- sys/efi.h
- fu-test-ble-device.h
- readline/readline.h
- curl/easy.h
- fu-vbe-simple-device.h
- fu-powerd-plugin.h
- fu-intel-mkhi-device.h
- fu-kernel-search-path.h
- lzma.h
- fu-intel-thunderbolt-nvm.h
- libfwupdplugin/fu-ifd-firmware.h
- fu-chunk.h
- tss2/tss2_tpm2_types.h
- fu-jabra-gnp-image.h
- blkid.h
- fu-wac-module-bluetooth.h
- libfwupdplugin/fu-mem.h
- fu-qc-firehose-struct.h
- linux/hidraw.h
- libfwupdplugin/fu-uswid-firmware.h
- fu-thunderbolt-controller.h
- fu-aver-hid-device.h
- libfwupdplugin/fu-path.h
- fu-dfu-target-avr.h
- fu-smbios-struct.h
- stddef.h
- fu-legion-hid2-plugin.h
- fu-qc-firehose-raw-device.h
- sys/utsname.h
- fu-synaptics-rmi-firmware.h
- fu-logitech-rallysystem-audio-device.h
- fu-jabra-gnp-plugin.h
- fu-idle.h
- fu-efi-variable-authentication2.h
- fu-amd-gpu-atom-firmware.h
- libfwupdplugin/fu-dfu-firmware.h
- fu-archive-struct.h
- fu-jabra-gnp-common.h
- fu-rp-pico-plugin.h
- fu-linux-sleep-plugin.h
- fu-tpm-device.h
- fu-steelseries-plugin.h
- fu-usi-dock-child-device.h
- fu-hidraw-device.h
- libfwupdplugin/fu-device-locker.h
- fu-kinetic-dp-secure-device.h
- fu-tpm-eventlog-common.h
- fu-pxi-plugin.h
- fu-vli-struct.h
- fu-wac-common.h
- fwupd-request.h
- fu-telink-dfu-archive.h
- inttypes.h
- fu-endian.h
- fu-crc-private.h
- fu-qc-s5gen2-fw-struct.h
- libfwupdplugin/fu-serio-device.h
- curl/curl.h
- fu-backend.h
- fu-hid-struct.h
- fu-elantp-struct.h
- fu-uefi-mok-struct.h
- fwupd-request-private.h
- fu-fdt-image.h
- fu-mediatek-scaler-plugin.h
- fu-nvme-device.h
- fu-asus-hid-firmware.h
- gmodule.h
- fu-elantp-hid-haptic-device.h
- fu-usb-interface-private.h
- fu-ch341a-plugin.h
- fu-linux-swap-plugin.h
- fu-synaprom-firmware.h
- fu-freebsd-efivars.h
- fu-pci-psp-plugin.h
- sys/sysctl.h
- libfwupdplugin/fu-efi-device-path-list.h
- libfwupdplugin/fu-efi-signature.h
- libfwupdplugin/fu-ifd-image.h
- fu-algoltek-usb-struct.h
- fu-fpc-device.h
- libfwupdplugin/fu-cfi-device.h
- fu-console.h
- fu-fmap-struct.h
- fu-uefi-capsule-plugin.h
- fu-wac-android-device.h
- fu-wac-module-scaler.h
- fu-redfish-struct.h
- fu-usb-backend.h
- fu-uefi-sbat-device.h
- fu-thunderbolt-device.h
- fu-msgpack-item-private.h
- fu-linux-lockdown-struct.h
- fu-uefi-backend.h
- fu-goodixtp-brlb-device.h
- fu-igsc-oprom-firmware.h
- fu-intel-thunderbolt-firmware.h
- libfwupdplugin/fu-cfu-payload.h
- fu-asus-hid-plugin.h
- fu-telink-dfu-plugin.h
- fu-hpi-cfu-device.h
- fu-acpi-table-struct.h
- fu-usi-dock-mcu-device.h
- fu-elan-kbd-firmware.h
- fu-kernel.h
- fu-synaptics-cxaudio-plugin.h
- fu-legion-hid2-struct.h
- fu-igsc-device.h
- winreg.h
- fu-genesys-usbhub-firmware.h
- fu-elantp-haptic-firmware.h
- fu-elan-kbd-device.h
- fu-qsi-dock-child-device.h
- fwupd-windows.h
- fu-acpi-uefi.h
- libfwupdplugin/fu-context.h
- fu-uefi-bootmgr.h
- fu-dell-kestrel-common.h
- fu-common-guid.h
- fu-genesys-usbhub-device.h
- fu-linux-lockdown-plugin.h
- fu-plugin.h
- fu-logitech-tap-touch-device.h
- libfwupdplugin/fu-cab-image.h
- fu-progress-struct.h
- libfwupdplugin/fu-pci-device.h
- fu-output-stream.h
- fu-linux-tainted-plugin.h
- fu-input-stream.h
- libfwupdplugin/fu-linear-firmware.h
- fu-synaptics-mst-device.h
- fu-unix-seekable-input-stream.h
- fu-dfu-target-private.h
- fu-logitech-scribe-plugin.h
- fu-mm-qcdm-device.h
- fu-redfish-backend.h
- libfwupdplugin/fu-bluez-device.h
- fu-rts54hub-rtd21xx-background.h
- fu-bnr-dp-plugin.h
- fu-fpc-plugin.h
- fu-dfu-plugin.h
- fu-elan-kbd-runtime.h
- fu-focalfp-plugin.h
- fu-wac-module-touch-id7.h
- fu-vli-usbhub-device.h
- fu-ep963x-plugin.h
- fu-nordic-hid-archive.h
- fu-redfish-device.h
- libfwupd/fwupd-client.h
- fu-usb-endpoint-private.h
- sys/stat.h
- fu-algoltek-usbcr-struct.h
- fu-steelseries-fizz-gen2.h
- fu-uefi-dbx-plugin.h
- fu-synaptics-cape-struct.h
- fu-igsc-code-firmware.h
- stdlib.h
- libfwupdplugin/fu-hwids.h
- fu-msr-plugin.h
- fu-mediatek-scaler-device.h
- libfwupdplugin/fu-device.h
- libfwupd/fwupd-report.h
- fwupd-error.h
- fu-mm-backend.h
- fu-intel-usb4-device.h
- fu-elan-kbd-common.h
- fu-rts54hub-device.h
- libfwupdplugin/fu-efi-signature-list.h
- fu-fastboot-device.h
- signal.h
- fu-analogix-struct.h
- fu-realtek-mst-device.h
- glib/gprintf.h
- fu-bios-settings.h
- fu-efi-x509-signature.h
- fu-wistron-dock-common.h
- libfwupdplugin/fu-io-channel.h
- sys/io.h
- json-glib/json-glib.h
- fu-uefi-device.h
- fu-logitech-tap-touch-common.h
- errhandlingapi.h
- fu-thunderbolt-common.h
- fu-efi-section.h
- fwupd-common-private.h
- fu-dell-kestrel-hid-device.h
- fu-corsair-common.h
- fu-ccgx-pure-hid-device.h
- fu-udev-backend.h
- fu-vli-usbhub-firmware.h
- fu-polkit-authority.h
- fu-wistron-dock-device.h
- libfwupdplugin/fu-efi-volume.h
- fu-amd-gpu-device.h
- fu-cfu-struct.h
- QFutureWatcher
- fu-amd-gpu-plugin.h
- fu-analogix-device.h
- fu-algoltek-usbcr-common.h
- libfwupdplugin/fu-efi-device-path.h
- libfwupdplugin/fu-hid-device.h
- libusb.h
- libfwupd/fwupd-build.h
- fu-efi-x509-signature-private.h
- fu-android-boot-device.h
- libfwupdplugin/fu-hidraw-device.h
- libfwupdplugin/fu-string.h
- fu-intel-amt-device.h
- fu-history.h
- fu-ccgx-dmc-plugin.h
- fu-ata-plugin.h
- fu-jabra-device.h
- fu-vli-usbhub-i2c-common.h
- fu-telink-dfu-struct.h
- fu-vli-pd-parade-device.h
- fu-uswid-struct.h
- fu-cfu-device.h
- systemd/sd-daemon.h
- fu-kinetic-dp-struct.h
- fu-steelseries-gamepad.h
- fu-acpi-dmar-plugin.h
- fu-kinetic-dp-plugin.h
- fu-logitech-tap-sensor-device.h
- fu-cabinet.h
- fu-mtd-ifd-device.h
- fu-cfu-payload.h
- fu-wac-plugin.h
- fu-uefi-grub-device.h
- fu-dell-dock-ec.h
- fu-dell-kestrel-hid-struct.h
- fu-uefi-pk-device.h
- fu-engine-struct.h
- fu-cros-ec-plugin.h
- fu-logitech-bulkcontroller-struct.h
- libfwupdplugin/fu-block-device.h
- fu-oprom-firmware.h
- fwupd-resources.h
- fu-cab-image.h
- fu-nordic-hid-firmware-mcuboot.h
- fu-genesys-hubhid-device.h
- fu-parade-lspcon-plugin.h
- libfwupdplugin/fu-hid-descriptor.h
- fu-dell-kestrel-rtshub-firmware.h
- fu-intel-mkhi-plugin.h
- libfwupdplugin/fu-fdt-firmware.h
- fu-synaptics-cape-device.h
- libfwupdplugin/fu-edid.h
- fu-ifd-bios.h
- fu-engine-config.h
- fu-cfi-struct.h
- fu-synaptics-rmi-v6-device.h
- fwupd-build.h
- sys/types.h
- efivar/efivar.h
- fu-fdt-firmware.h
- fu-genesys-scaler-device.h
- fu-uefi-capsule-backend.h
- fwupd-enums-private.h
- fu-path.h
- fu-mm-common.h
- fu-cab-struct.h
- fu-telink-dfu-hid-device.h
- fu-qc-s5gen2-hid-struct.h
- fu-darwin-efivars.h
- fu-intel-mchi-device.h
- fu-cfu-plugin.h
- libfwupdplugin/fu-security-attrs.h
- libfwupdplugin/fu-efi-hard-drive-device-path.h
- libfwupdplugin/fu-security-attr.h
- fu-qsi-dock-mcu-device.h
- poll.h
- fu-amd-kria-device.h
- fu-logitech-hidpp-radio.h
- fu-wacom-raw-struct.h
- fu-ch341a-device.h
- fu-asus-hid-struct.h
- libfwupdplugin/fu-block-partition.h
- fu-focalfp-firmware.h
- fu-ata-device.h
- fu-wacom-device.h
- fu-intel-cvs-struct.h
- fu-aver-hid-struct.h
- fu-bcm57xx-dict-image.h
- fu-ihex-struct.h
- fu-algoltek-usbcr-firmware.h
- fu-amd-pmc-plugin.h
- fu-bios-setting.h
- fu-efivars-private.h
- fu-qc-firehose-usb-device.h
- fu-rts54hub-rtd21xx-device.h
- fu-goodixmoc-device.h
- fu-redfish-legacy-device.h
- fwupd-common.h
- libfwupdplugin/fu-efi-filesystem.h
- fu-efi-volume.h
- fu-engine-helper.h
- libfwupdplugin/fu-efi-variable-authentication2.h
- fu-ebitdo-struct.h
- fu-vli-usbhub-common.h
- fu-ccgx-hpi-device.h
- fu-intel-cvs-device.h
- fu-uefi-mok-common.h
- fu-lenovo-thinklmi-plugin.h
- fu-pxi-wireless-device.h
- libfwupdplugin/fu-csv-firmware.h
- fu-steelseries-device.h
- fu-security-attr.h
- fu-uefi-struct.h
- fu-nordic-hid-firmware.h
- fu-engine.h
- libfwupdplugin/fu-context-helper.h
- fu-dfu-target.h
- fu-dbus-daemon.h
- fu-ep963x-device.h
- fu-steelseries-mouse.h
- fu-uf2-firmware.h
- fu-steelseries-fizz-hid.h
- fu-ipmi-device.h
- fu-vli-device.h
- fu-redfish-multipart-device.h
- fu-heci-struct.h
- fu-plugin-builtin.h
- fu-usb-interface.h
- fu-dfu-struct.h
- dirent.h
- libfwupdplugin/fu-usb-bos-descriptor.h
- fu-logitech-scribe-device.h
- fu-plugin-list.h
- libfwupdplugin/fu-udev-device.h
- linux/ipmi.h
- fu-legion-hid2-bl-device.h
- fu-bluez-device.h
- fu-bcm57xx-firmware.h
- libfwupdplugin/fu-endian.h
- fu-uf2-plugin.h
- fu-logitech-hidpp-bootloader-texas.h
- fu-block-device.h
- linux/nvme_ioctl.h
- fu-uefi-capsule-backend-linux.h
- fu-logitech-scribe-struct.h
- glib/gstdio.h
- libfwupd/fwupd-common.h
- fu-linear-firmware.h
- fu-mem.h
- fu-goodixmoc-common.h
- fu-wacom-aes-device.h
- libfwupd/fwupd-codec.h
- fu-fit-firmware.h
- linux/i2c-dev.h
- fu-tpm-v1-device.h
- fu-qsi-dock-common.h
- fu-bcm57xx-stage1-image.h
- fu-elanfp-device.h
- fu-util-common.h
- libfwupdplugin/fu-hid-report-item.h
- gio/gunixinputstream.h
- fu-dell-kestrel-rtshub-struct.h
- fu-efi-struct.h
- fu-usb-device-ms-ds20.h
- fu-amd-kria-plugin.h
- fu-sbatlevel-section-struct.h
- libfwupdplugin/fu-firmware.h
- fu-thunderbolt-plugin.h
- fu-genesys-plugin.h
- fu-acpi-table.h
- fu-coswid-firmware.h
- fu-mei-common.h
- fu-usb-device-fw-ds20.h
- fu-bnr-dp-device.h
- fu-nordic-hid-cfg-channel.h
- fu-chunk-private.h
- fu-test-device.h
- fu-uefi-recovery-plugin.h
- fu-uefi-esrt-plugin.h
- fu-sum.h
- fu-vli-plugin.h
- fu-wac-module-bluetooth-id6.h
- sys/ioctl.h
- libflashrom.h
- fu-heci-device.h
- scsi/sg.h
- fu-nordic-hid-plugin.h
- fu-acpi-ivrs.h
- libfwupdplugin/fu-archive-firmware.h
- fu-jabra-gnp-device.h
- fu-hwids-private.h
- glib-unix.h
- fu-release-common.h
- fu-redfish-hpe-device.h
- fu-acpi-phat-health-record.h
- fu-goodixmoc-plugin.h
- fu-util-bios-setting.h
- fu-efi-signature.h
- libfwupdplugin/fu-fmap-firmware.h
- fu-goodixtp-common.h
- fu-wac-module-sub-cpu.h
- fu-intel-cvs-firmware.h
- fu-parade-lspcon-struct.h
- libfwupdplugin/fu-heci-device.h
- fu-logitech-bulkcontroller-common.h
- fu-mm-mbim-device.h
- fu-wac-firmware.h
- fu-dfu-target-stm.h
- fu-hailuck-kbd-device.h
- fu-hughski-colorhug-device.h
- fu-synaptics-mst-firmware.h
- fu-mm-qmi-device.h
- fu-intel-amt-struct.h
- config.h
- fu-realtek-mst-struct.h
- gnutls/pkcs7.h
- fu-uefi-kek-device.h
- unistd.h
- fu-dummy-efivars.h
- libfwupdplugin/fu-byte-array.h
- libfwupdplugin/fu-crc.h
- libfwupd/fwupd-release.h
- fu-dfu-common.h
- sys/efiio.h
- fu-genesys-usbhub-pd-firmware.h
- fu-crc.h
- fu-asus-hid-device.h
- fu-elantp-common.h
- linux/usb/video.h
- fu-logitech-hidpp-runtime-unifying.h
- libfwupdplugin/fu-usb-device.h
- passim.h
- fu-acpi-phat.h
- fu-synaptics-rmi-v7-device.h
- net/if.h
- fu-smbios-private.h
- fu-pci-psp-device.h
- fu-intel-mchi-plugin.h
- libfwupdplugin/fu-fdt-image.h
- fu-msgpack-struct.h
- fu-corsair-plugin.h
- ../plugins/test/fu-test-plugin.h
- fu-rp-pico-device.h
- fu-elantp-firmware.h
- libfwupdplugin/fu-v4l-device.h
- fu-volume-private.h
- fu-v4l-struct.h
- umockdev.h
- fu-vbe-plugin.h
- fu-pxi-struct.h
- fu-uefi-sbat-firmware.h
- fu-test-plugin.h
- fwupdplugin.h
- fu-synaptics-vmm9-plugin.h
- fu-elantp-i2c-device.h
- fu-efi-lz77-decompressor.h
- timezoneapi.h
- fu-udev-device-private.h
- fu-emmc-plugin.h
- fu-algoltek-usb-common.h
- sys/auxv.h
- fu-config-private.h
- fu-cros-ec-usb-device.h
- fu-goodixtp-plugin.h
- fu-corsair-struct.h
- fu-ccgx-dmc-device.h
- linux/ipmi_msgdefs.h
- fu-dfuse-firmware.h
- fu-synaprom-common.h
- libfwupdplugin/fu-bios-settings.h
- fu-logitech-tap-hdmi-device.h
- fu-flashrom-cmos.h
- fu-linux-swap.h
- libfwupdplugin/fu-elf-firmware.h
- fu-vli-common.h
- libfwupdplugin/fu-progress.h
- fu-thunderbolt-retimer.h
- fu-mm-firehose-device.h
- fu-uefi-db-plugin.h
- fu-client-list.h
- libdrm/amdgpu_drm.h
- fu-engine-requirements.h
- libfwupdplugin/fu-csv-entry.h
- gudev/gudev.h
- fwupd-client.h
- fu-system76-launch-device.h
- fu-synaptics-rmi-v5-device.h
- libfwupd/fwupd-device.h
- libfwupdplugin/fu-srec-firmware.h
- fu-dpaux-device.h
- fwupd-security-attr-private.h
- fu-device-progress.h
- fu-dell-kestrel-ec-struct.h
- fu-msgpack-item.h
- fu-device-private.h
- fu-efi-x509-device.h
- fu-logitech-rallysystem-plugin.h
- fu-legion-hid2-firmware.h
- fu-kinetic-dp-device.h
- libfwupdplugin/fu-chunk.h
- fu-ihex-firmware.h
- fu-ifwi-cpd-firmware.h
- libfwupdplugin/fu-cab-firmware.h
- fu-logitech-hidpp-common.h
- fu-legion-hid2-sipo-device.h
- fu-wacom-raw-plugin.h
- libfwupdplugin/fu-ifd-bios.h
- fu-fresco-pd-common.h
- efivar.h
- fu-vli-pd-common.h
- fu-emmc-device.h
- libfwupdplugin/fu-ihex-firmware.h
- fu-common.h
- fu-pci-struct.h
- linux/sockios.h
- fwupd-remote-private.h
- fu-lzma-common.h
- fu-common-private.h
- libfwupdplugin/fu-dump.h
- libfwupdplugin/fu-backend.h
- fu-parade-usbhub-common.h
- libfwupdplugin/fu-pkcs7.h
- fu-uefi-sbat-plugin.h
- fu-legion-hid2-device.h
- fu-plugin-private.h
- fu-vli-pd-firmware.h
- fu-intel-amt-plugin.h
- fu-usb-config-descriptor-private.h
- fu-ifwi-fpt-firmware.h
- fu-bcm57xx-recovery-device.h
- fu-kinetic-dp-puma-firmware.h
- fu-synaptics-cxaudio-device.h
- fu-usb-device-ds20-struct.h
- fu-wacom-emr-device.h
- fu-elantp-plugin.h
- fu-goodixtp-gtx8-firmware.h
- fu-flashrom-device.h
- fu-steelseries-fizz.h
- fu-ccgx-common.h
- fu-acpi-phat-version-element.h
- fu-igsc-aux-firmware.h
- sys/prctl.h
- jcat.h
- fu-algoltek-usb-device.h
- fu-engine-request.h
- libfwupdplugin/fu-smbios.h
- fu-synaptics-cape-hid-firmware.h
- fu-drm-device.h
- fu-efi-device-path-list.h
- fu-edid-struct.h
- fu-context-helper.h
- fu-redfish-smc-device.h
- fu-aver-hid-firmware.h
- fwupd-client-private.h
- fu-ebitdo-firmware.h
- fu-uefi-update-info.h
- fu-redfish-network-device.h
- fu-security-attrs.h
- fu-cpu-device.h
- fu-cfi-device.h
- fu-smbios.h
- fu-system76-launch-struct.h
- fu-usb-device.h
- termios.h
- fu-dell-kestrel-wtpd.h
- fu-remote.h
- fu-ebitdo-device.h
- fu-ch341a-cfi-device.h
- fu-logitech-bulkcontroller-device.h
- fu-qc-s5gen2-firmware.h
- fu-parade-usbhub-device.h
- math.h
- fu-synaptics-mst-common.h
- libqmi-glib.h
- fu-wac-module-touch.h
- fu-bcm57xx-plugin.h
- fu-uefi-device-private.h
- libfwupdplugin/fu-input-stream.h
- libfwupdplugin/fu-efi-x509-signature.h
- fu-logitech-hidpp-runtime.h
- fu-cpu-helper-cet-common.h
- fu-progress.h
- fu-v4l-device.h
- fu-fpc-struct.h
- fu-ti-tps6598x-struct.h
- fu-amd-pmc-device.h
- fu-mtd-device.h
- windows.h
- fu-logitech-hidpp-runtime-bolt.h
- fu-vli-usbhub-rtd21xx-device.h
- fu-dfu-firmware-struct.h
- fu-uf2-device.h
- fu-device-locker.h
- fu-logitech-tap-plugin.h
- fu-steelseries-fizz-impl.h
- fu-ifd-firmware.h
- fu-usb-device-ds20.h
- fu-hailuck-tp-device.h
- fu-fastboot-plugin.h
- fu-nordic-hid-firmware-b0.h
- fu-redfish-request.h
- fu-engine-emulator.h
- fu-telink-dfu-ble-device.h
- fu-acpi-ivrs-plugin.h
- libfwupdplugin/fu-efi-x509-device.h
- fu-block-partition.h
- fu-genesys-gl32xx-firmware.h
- fu-jabra-gnp-firmware.h
- fu-analogix-common.h
- zlib.h
- fcntl.h
- archive.h
- fu-usi-dock-plugin.h
- fu-uefi-dbx-snapd-notifier.h
- fu-parade-usbhub-plugin.h
- fu-steelseries-gamepad-struct.h
- fu-synaptics-cape-firmware.h
- sys/wait.h
- fu-synaptics-mst-struct.h
- fu-mei-struct.h
- ../uefi-capsule/fu-uefi-capsule-plugin.h
- linux/netlink.h
- libfwupdplugin/fu-acpi-table.h
- cbor.h
- fu-redfish-network.h
- fu-ccgx-struct.h
- libmbim-glib.h
- fu-test-ble-plugin.h
- fu-igsc-oprom-device.h
- libfwupdplugin/fu-chunk-array.h
- fu-parade-lspcon-device.h
- fu-genesys-common.h
- fu-wac-module.h
- linux/videodev2.h
- fu-mediatek-scaler-firmware.h
- fwupd-device.h
- fu-oprom-device.h
- fu-hughski-colorhug-struct.h
- libfwupd/fwupd-error.h
- fu-synaptics-mst-plugin.h
- fu-bios-settings-private.h
- fu-partial-input-stream-private.h
- fu-kinetic-dp-puma-device.h
- fu-mediatek-scaler-common.h
- fu-acpi-facp.h
- fu-algoltek-usbcr-plugin.h
- fu-qc-s5gen2-hid-device.h
- fu-logitech-tap-struct.h
- fu-genesys-usbhub-struct.h
- libfwupdplugin/fu-dpaux-device.h
- fu-hpi-cfu-plugin.h
- fu-efi-file-path-device-path.h
- fu-intel-usb4-struct.h
- fu-goodixtp-gtx8-device.h
- libfwupd/fwupd-plugin.h
- fu-elan-kbd-plugin.h
- fu-dell-kestrel-pd.h
- libfwupd/fwupd-enums.h
- fu-mm-fastboot-device.h
- fu-security-attrs-private.h
- fu-qc-s5gen2-ble-struct.h
- fu-parade-usbhub-struct.h
- fu-mei-device.h
- fu-algoltek-usb-firmware.h
- libfwupdplugin/fu-msgpack-item.h
- fu-genesys-usbhub-dev-firmware.h
- fu-focalfp-hid-device.h
- fu-elanfp-plugin.h
- fu-uefi-kek-plugin.h
- fu-efi-load-option.h
- fu-dump.h
- fu-x509-certificate.h
- fwupd-report.h
- fu-telink-dfu-common.h
- fu-synaptics-rmi-hid-device.h
- fu-ep963x-firmware.h
- fu-amd-kria-som-eeprom-struct.h
- linux/ethtool.h
- fu-amd-gpu-psp-struct.h
- fu-logind-plugin.h
- fu-client.h
- gnutls/abstract.h
- cpuid.h
- fu-usi-dock-dmc-device.h
- fu-msgpack.h
- gnutls/crypto.h
- wchar.h
- fu-polkit-agent.h
- QCoreApplication
- readline/history.h
- fwupd-plugin.h
- fu-windows-efivars.h
- fu-logitech-hidpp-hidpp.h
- fu-ccgx-firmware.h
- fu-vli-usbhub-pd-device.h
- fu-vli-usbhub-msp430-device.h
- fu-cfu-module.h
- fu-qc-s5gen2-device.h
- fu-dell-kestrel-ec.h
- malloc.h
- fu-usi-dock-struct.h
- libfwupdplugin/fu-common-guid.h
- fu-logitech-hidpp-rdfu-struct.h
- libfwupdplugin/fu-device-event.h
- fu-device-struct.h
- fu-realtek-mst-plugin.h
- libfwupdplugin/fu-plugin.h
- gio/gunixoutputstream.h
- fu-qc-firehose-impl-common.h
- fu-dell-kestrel-package.h
- fu-cab-firmware.h
- fu-config.h
- fu-bluez-backend.h
- libfwupdplugin/fu-msgpack.h
- fu-bios-plugin.h
- fu-synaprom-config.h
- fu-cros-ec-firmware.h
- fu-cros-ec-struct.h
- fu-ioctl-private.h
- fu-huddly-usb-common.h
- fu-genesys-gl32xx-plugin.h
- fu-synaptics-cxaudio-firmware.h
- fu-vli-pd-device.h
- fu-dell-kestrel-plugin.h
- fu-logitech-rallysystem-struct.h
- libfwupdplugin/fu-mei-device.h
- fu-system76-launch-plugin.h
- libfwupdplugin/fu-config.h
- fu-dfu-sector.h
- fu-gpio-device.h
- fu-ccgx-dmc-devx-device.h
- fu-synaptics-vmm9-struct.h
- uuid.h
- libfwupdplugin/fu-kernel-search-path.h
- fu-device-event-private.h
- fu-hid-descriptor.h
- fu-pxi-receiver-device.h
- fu-synaprom-struct.h
- fu-hid-report-item.h
- fu-volume.h
- string.h
- fu-aver-safeisp-device.h
- fu-linux-display-plugin.h
- fu-hailuck-plugin.h
- sys/mount.h
- linux/input.h
- fu-qc-firehose-impl.h
- fu-dell-dock-hid.h
- fu-logitech-hidpp-hidpp-msg.h
- fu-qc-s5gen2-impl.h
- fu-ch347-device.h
- linux/uvcvideo.h
- QtConcurrentRun
- usb_msg.pb-c.h
- fu-dfu-firmware.h
- fu-linux-efivars.h
- sys/inotify.h
- fu-archive-firmware.h
- fu-kernel-search-path-private.h
- linux/mmc/ioctl.h
- fu-bnr-dp-struct.h
- libfwupdplugin/fu-ifwi-fpt-firmware.h
- fu-hailuck-common.h
- libfwupdplugin/fu-x509-certificate.h
- fu-qc-firehose-sahara-impl.h
- fu-logitech-hidpp-bootloader-nordic.h
- fu-ifd-struct.h
- fu-fresco-pd-device.h
- fu-quirks.h
- winerror.h
- fu-jabra-file-device.h
- fu-logitech-hidpp-plugin.h
- fu-pxi-firmware.h
- locale.h
- fwupd-release.h
- fu-ccgx-dmc-struct.h
- fu-common-struct.h
- fu-logitech-tap-touch-firmware.h
- fu-huddly-usb-plugin.h
- fu-ti-tps6598x-pd-device.h
- fu-ch347-struct.h
- fu-elantp-hid-device.h
- libfwupdplugin/fu-device-metadata.h
report: name
sources:
- function_names:
  - fu_util_client_notify_cb
  - fu_util_show_plugin_warnings
  - fu_util_lock
  - fu_util_get_systemd_unit
  - fu_util_start_engine
  - fu_util_maybe_prefix_sandbox_error
  - fu_util_cancelled_cb
  - fu_util_smbios_dump
  - fu_util_sigint_cb
  - fu_util_setup_signal_handlers
  - fu_util_private_free
  - fu_util_update_device_request_cb
  - fu_util_engine_device_added_cb
  - fu_util_engine_device_removed_cb
  - fu_util_engine_status_changed_cb
  - fu_util_progress_percentage_changed_cb
  - fu_util_progress_status_changed_cb
  - fu_util_watch
  - fu_util_verfmt_sort_cb
  - fu_util_get_verfmts
  - fu_util_get_plugins
  - fu_util_prompt_for_device
  - fu_util_get_device
  - fu_util_get_updates_as_json
  - fu_util_get_updates
  - fu_util_get_details
  - fu_util_get_device_flags
  - fu_util_build_device_tree
  - fu_util_get_devices_as_json
  - fu_util_get_devices
  - fu_util_update_device_changed_cb
  - fu_util_display_current_message
  - fu_util_install_blob
  - fu_util_firmware_sign
  - fu_util_firmware_dump
  - fu_util_firmware_read
  - fu_util_release_sort_cb
  - fu_util_download_if_required
  - fu_util_install_stream
  - fu_util_install
  - fu_util_install_release
  - fu_util_update
  - fu_util_reinstall
  - fu_util_detach
  - fu_util_unbind_driver
  - fu_util_bind_driver
  - fu_util_attach
  - fu_util_report_metadata_to_string
  - fu_util_get_report_metadata_as_json
  - fu_util_get_report_metadata
  - fu_util_modify_config
  - fu_util_reset_config
  - fu_util_remote_modify
  - fu_util_remote_disable
  - fu_util_vercmp
  - fu_util_remote_enable
  - fu_util_set_test_devices_enabled
  - fu_util_disable_test_devices
  - fu_util_enable_test_devices
  - fu_util_check_activation_needed
  - fu_util_activate
  - fu_util_export_hwids
  - fu_util_hwids
  - fu_util_self_sign
  - fu_util_device_added_cb
  - fu_util_device_removed_cb
  - fu_util_device_changed_cb
  - fu_util_changed_cb
  - fu_util_monitor
  - fu_util_get_firmware_types
  - fu_util_get_firmware_gtypes
  - fu_util_prompt_for_firmware_type
  - fu_util_firmware_parse
  - fu_util_firmware_export
  - fu_util_firmware_extract
  - fu_util_firmware_build
  - fu_util_firmware_convert
  - fu_util_hex_string_to_bytes
  - fu_util_firmware_patch
  - fu_util_verify_update
  - fu_util_get_history
  - fu_util_refresh_remote
  - fu_util_refresh
  - fu_util_get_remotes
  - fu_util_security
  - fu_util_prompt_for_volume
  - fu_util_esp_mount
  - fu_util_esp_unmount
  - fu_util_esp_list_as_json
  - fu_util_esp_list
  - fu_util_modify_tag
  - fu_util_emulation_tag
  - fu_util_emulation_untag
  - fu_util_emulation_load
  - _g_str_equal0
  - fu_util_switch_branch
  - fu_util_set_bios_setting
  - fu_util_security_fix
  - fu_util_security_undo
  - fu_util_get_bios_setting
  - fu_util_reboot_cleanup
  - fu_util_efiboot_info_as_json
  - fu_util_efiboot_next
  - fu_util_efiboot_order
  - fu_util_efiboot_create
  - fu_util_efiboot_delete
  - fu_util_efiboot_hive_check_loadopt_is_shim
  - fu_util_efiboot_hive
  - fu_util_efiboot_info
  - fu_util_efivar_files_as_json
  - fu_util_efivar_files
  - fu_util_efivar_list
  - fu_util_build_cabinet
  - fu_util_version
  - fu_util_clear_history
  - fu_util_setup_interactive
  - fu_util_print_error
  - main
  source_file: /src/fwupd/src/fu-tool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-tool.c
      type_or_value: '"FuMain"'
    - item_type: preproc_def
      name: SYSTEMD_FWUPD_UNIT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/src/fu-tool.c
      type_or_value: '"fwupd.service"'
    - item_type: preproc_def
      name: SYSTEMD_SNAP_FWUPD_UNIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/src/fu-tool.c
      type_or_value: '"snap.fwupd.fwupd.service"'
    structs:
    - fields:
      - name: '*cancellable'
        type: GCancellable
      - name: '*main_ctx'
        type: GMainContext
      - name: '*loop'
        type: GMainLoop
      - name: '*context'
        type: GOptionContext
      - name: '*ctx'
        type: FuContext
      - name: '*engine'
        type: FuEngine
      - name: '*request'
        type: FuEngineRequest
      - name: '*progress'
        type: FuProgress
      - name: '*console'
        type: FuConsole
      - name: '*client'
        type: FwupdClient
      - name: as_json
        type: gboolean
      - name: no_reboot_check
        type: gboolean
      - name: no_safety_check
        type: gboolean
      - name: no_device_prompt
        type: gboolean
      - name: prepare_blob
        type: gboolean
      - name: cleanup_blob
        type: gboolean
      - name: enable_json_state
        type: gboolean
      - name: interactive
        type: gboolean
      - name: flags
        type: FwupdInstallFlags
      - name: parse_flags
        type: FuFirmwareParseFlags
      - name: show_all
        type: gboolean
      - name: disable_ssl_strict
        type: gboolean
      - name: lock_fd
        type: gint
      - name: current_operation
        type: FuUtilOperation
      - name: '*current_device'
        type: FwupdDevice
      - name: '*post_requests'
        type: GPtrArray
      - name: completion_flags
        type: FwupdDeviceFlags
      - name: filter_device_include
        type: FwupdDeviceFlags
      - name: filter_device_exclude
        type: FwupdDeviceFlags
      - name: filter_release_include
        type: FwupdReleaseFlags
      - name: filter_release_exclude
        type: FwupdReleaseFlags
      item_type: struct
      name: FuUtil
      pos:
        line_end: 93
        line_start: 60
        source_file: /src/fwupd/src/fu-tool.c
    typedefs:
    - item_type: typedef
      name: FuUtilOperation
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/fwupd/src/fu-tool.c
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-uefi-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-uefi-backend.h
      type_or_value: (fu_uefi_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dbus_daemon_engine_changed_cb
  - fu_dbus_daemon_engine_device_added_cb
  - fu_dbus_daemon_engine_device_removed_cb
  - fu_dbus_daemon_engine_device_changed_cb
  - fu_dbus_daemon_engine_device_request_cb
  - fu_dbus_daemon_emit_property_changed
  - fu_dbus_daemon_set_status
  - fu_dbus_daemon_engine_status_changed_cb
  - fu_dbus_daemon_create_request
  - fu_dbus_daemon_device_array_to_variant
  - fu_dbus_daemon_auth_helper_free
  - fu_dbus_daemon_method_invocation_return_gerror
  - fu_dbus_daemon_authorize_unlock_cb
  - fu_dbus_daemon_authorize_get_bios_settings_cb
  - fu_dbus_daemon_authorize_set_bios_settings_cb
  - fu_dbus_daemon_authorize_set_approved_firmware_cb
  - fu_dbus_daemon_authorize_set_blocked_firmware_cb
  - fu_dbus_daemon_authorize_fix_host_security_attr_cb
  - fu_dbus_daemon_authorize_undo_host_security_attr_cb
  - fu_dbus_daemon_authorize_self_sign_cb
  - fu_dbus_daemon_modify_config_cb
  - fu_dbus_daemon_reset_config_cb
  - fu_dbus_daemon_progress_percentage_changed_cb
  - fu_dbus_daemon_progress_status_changed_cb
  - fu_dbus_daemon_authorize_activate_cb
  - fu_dbus_daemon_authorize_verify_update_cb
  - fu_dbus_daemon_authorize_modify_remote_cb
  - fu_dbus_daemon_engine_request_get_authority_check_flags
  - fu_dbus_daemon_authorize_install_cb
  - fu_dbus_daemon_authorize_install_queue
  - fu_dbus_daemon_release_sort_cb
  - fu_dbus_daemon_install_with_helper_device
  - fu_dbus_daemon_install_with_helper
  - fu_dbus_daemon_system_inhibit_free
  - fu_dbus_daemon_ensure_system_inhibit
  - fu_dbus_daemon_inhibit_name_vanished_cb
  - fu_dbus_daemon_client_flags_notify_cb
  - fu_dbus_daemon_invocation_get_input_stream
  - fu_dbus_daemon_invocation_get_output_stream
  - fu_dbus_daemon_hsi_supported
  - fu_dbus_daemon_method_get_devices
  - fu_dbus_daemon_method_get_plugins
  - fu_dbus_daemon_method_get_releases
  - fu_dbus_daemon_method_get_approved_firmware
  - fu_dbus_daemon_method_get_blocked_firmware
  - fu_dbus_daemon_method_get_report_metadata
  - fu_dbus_daemon_method_set_approved_firmware
  - fu_dbus_daemon_method_set_blocked_firmware
  - fu_dbus_daemon_authorize_quit_cb
  - fu_dbus_daemon_method_quit
  - fu_dbus_daemon_method_self_sign
  - fu_dbus_daemon_method_get_downgrades
  - fu_dbus_daemon_method_get_upgrades
  - fu_dbus_daemon_method_get_remotes
  - fu_dbus_daemon_method_get_history
  - fu_dbus_daemon_method_get_host_security_attrs
  - fu_dbus_daemon_method_get_host_security_events
  - fu_dbus_daemon_method_clear_results
  - fu_dbus_daemon_authorize_emulation_load_cb
  - fu_dbus_daemon_method_emulation_load
  - fu_dbus_daemon_authorize_emulation_save_cb
  - fu_dbus_daemon_method_emulation_save
  - fu_dbus_daemon_authorize_modify_device_internal
  - fu_dbus_daemon_authorize_modify_device_cb
  - fu_dbus_daemon_method_modify_device_flag_needs_auth
  - fu_dbus_daemon_method_modify_device
  - fu_dbus_daemon_method_get_results
  - fu_dbus_daemon_method_update_metadata
  - fu_dbus_daemon_method_unlock
  - fu_dbus_daemon_method_activate
  - fu_dbus_daemon_method_modify_config
  - fu_dbus_daemon_method_reset_config
  - fu_dbus_daemon_method_modify_remote
  - fu_dbus_daemon_method_verify_update
  - fu_dbus_daemon_method_verify
  - fu_dbus_daemon_method_set_feature_flags
  - fu_dbus_daemon_method_set_hints
  - fu_dbus_daemon_method_inhibit
  - fu_dbus_daemon_method_install
  - fu_dbus_daemon_method_uninhibit
  - fu_dbus_daemon_method_get_details
  - fu_dbus_daemon_method_get_bios_settings
  - fu_dbus_daemon_method_set_bios_settings
  - fu_dbus_daemon_method_fix_host_security_attr
  - fu_dbus_daemon_method_undo_host_security_attr
  - fu_dbus_daemon_method_call
  - fu_dbus_daemon_get_property
  - fu_dbus_daemon_register_object
  - fu_dbus_daemon_client_list_ensure_inhibit
  - fu_dbus_daemon_client_list_added_cb
  - fu_dbus_daemon_client_list_removed_cb
  - fu_dbus_daemon_set_connection
  - fu_dbus_daemon_dbus_bus_acquired_cb
  - fu_dbus_daemon_dbus_name_acquired_cb
  - fu_dbus_daemon_dbus_name_lost_cb
  - fu_dbus_daemon_dbus_connection_closed_cb
  - fu_dbus_daemon_dbus_new_connection_cb
  - fu_dbus_daemon_load_introspection
  - fu_dbus_daemon_setup
  - fu_dbus_daemon_init
  - fu_dbus_daemon_finalize
  - fu_dbus_daemon_class_init
  - fu_daemon_new
  source_file: /src/fwupd/src/fu-dbus-daemon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-dbus-daemon.c
      type_or_value: '"FuMain"'
    structs:
    - fields:
      - name: parent_instance
        type: FuDaemon
      - name: '*connection'
        type: GDBusConnection
      - name: '*introspection_daemon'
        type: GDBusNodeInfo
      - name: '*proxy_uid'
        type: GDBusProxy
      - name: '*client_list'
        type: FuClientList
      - name: clients_inhibit_id
        type: guint32
      - name: '*authority'
        type: FuPolkitAuthority
      - name: status
        type: FwupdStatus
      - name: percentage
        type: guint
      - name: owner_id
        type: guint
      - name: '*system_inhibits'
        type: GPtrArray
      item_type: struct
      name: _FuDbusDaemon
      pos:
        line_end: 50
        line_start: 38
        source_file: /src/fwupd/src/fu-dbus-daemon.c
    - fields:
      - name: '*invocation'
        type: GDBusMethodInvocation
      - name: '*request'
        type: FuEngineRequest
      - name: '*progress'
        type: FuProgress
      - name: '*client'
        type: FuClient
      - name: client_sender_changed_id
        type: glong
      - name: '*releases'
        type: GPtrArray
      - name: '*action_ids'
        type: GPtrArray
      - name: '*checksums'
        type: GPtrArray
      - name: '*errors'
        type: GPtrArray
      - name: flags
        type: guint64
      - name: '*stream'
        type: GInputStream
      - name: '*self'
        type: FuDbusDaemon
      - name: '*device_id'
        type: gchar
      - name: '*remote_id'
        type: gchar
      - name: '*section'
        type: gchar
      - name: '*key'
        type: gchar
      - name: '*value'
        type: gchar
      - name: handle
        type: gint32
      - name: '*cabinet'
        type: FuCabinet
      - name: '*bios_settings'
        type: GHashTable
      - name: is_fix
        type: gboolean
      item_type: struct
      name: FuMainAuthHelper
      pos:
        line_end: 285
        line_start: 263
        source_file: /src/fwupd/src/fu-dbus-daemon.c
    - fields:
      - name: '*id'
        type: gchar
      - name: '*sender'
        type: gchar
      - name: watcher_id
        type: guint
      item_type: struct
      name: FuDbusDaemonSystemInhibit
      pos:
        line_end: 999
        line_start: 995
        source_file: /src/fwupd/src/fu-dbus-daemon.c
    - fields:
      - name: '*name'
        type: gchar
      - name: func
        type: FuDbusDaemonMethodFunc
      item_type: struct
      name: "method_funcs[] = {\n\t    {\"GetDevices\", fu_dbus_daemon_method_get_devices},\n\t
        \   {\"GetPlugins\", fu_dbus_daemon_method_get_plugins},\n\t    {\"GetReleases\",
        fu_dbus_daemon_method_get_releases},\n\t    {\"GetApprovedFirmware\", fu_dbus_daemon_method_get_approved_firmware},\n\t
        \   {\"GetBlockedFirmware\", fu_dbus_daemon_method_get_blocked_firmware},\n\t
        \   {\"GetReportMetadata\", fu_dbus_daemon_method_get_report_metadata},\n\t
        \   {\"SetApprovedFirmware\", fu_dbus_daemon_method_set_approved_firmware},\n\t
        \   {\"SetBlockedFirmware\", fu_dbus_daemon_method_set_blocked_firmware},\n\t
        \   {\"Quit\", fu_dbus_daemon_method_quit},\n\t    {\"SelfSign\", fu_dbus_daemon_method_self_sign},\n\t
        \   {\"GetDowngrades\", fu_dbus_daemon_method_get_downgrades},\n\t    {\"GetUpgrades\",
        fu_dbus_daemon_method_get_upgrades},\n\t    {\"GetRemotes\", fu_dbus_daemon_method_get_remotes},\n\t
        \   {\"GetHistory\", fu_dbus_daemon_method_get_history},\n\t    {\"GetHostSecurityAttrs\",
        fu_dbus_daemon_method_get_host_security_attrs},\n\t    {\"GetHostSecurityEvents\",
        fu_dbus_daemon_method_get_host_security_events},\n\t    {\"ClearResults\",
        fu_dbus_daemon_method_clear_results},\n\t    {\"EmulationLoad\", fu_dbus_daemon_method_emulation_load},\n\t
        \   {\"EmulationSave\", fu_dbus_daemon_method_emulation_save},\n\t    {\"ModifyDevice\",
        fu_dbus_daemon_method_modify_device},\n\t    {\"GetResults\", fu_dbus_daemon_method_get_results},\n\t
        \   {\"UpdateMetadata\", fu_dbus_daemon_method_update_metadata},\n\t    {\"Unlock\",
        fu_dbus_daemon_method_unlock},\n\t    {\"Activate\", fu_dbus_daemon_method_activate},\n\t
        \   {\"ModifyConfig\", fu_dbus_daemon_method_modify_config},\n\t    {\"ResetConfig\",
        fu_dbus_daemon_method_reset_config},\n\t    {\"ModifyRemote\", fu_dbus_daemon_method_modify_remote},\n\t
        \   {\"VerifyUpdate\", fu_dbus_daemon_method_verify_update},\n\t    {\"Verify\",
        fu_dbus_daemon_method_verify},\n\t    {\"SetFeatureFlags\", fu_dbus_daemon_method_set_feature_flags},\n\t
        \   {\"SetHints\", fu_dbus_daemon_method_set_hints},\n\t    {\"Inhibit\",
        fu_dbus_daemon_method_inhibit},\n\t    {\"Uninhibit\", fu_dbus_daemon_method_uninhibit},\n\t
        \   {\"Install\", fu_dbus_daemon_method_install},\n\t    {\"GetDetails\",
        fu_dbus_daemon_method_get_details},\n\t    {\"GetBiosSettings\", fu_dbus_daemon_method_get_bios_settings},\n\t
        \   {\"SetBiosSettings\", fu_dbus_daemon_method_set_bios_settings},\n\t    {\"FixHostSecurityAttr\",
        fu_dbus_daemon_method_fix_host_security_attr},\n\t    {\"UndoHostSecurityAttr\",
        fu_dbus_daemon_method_undo_host_security_attr},\n\t}"
      pos:
        line_end: 2433
        line_start: 2430
        source_file: /src/fwupd/src/fu-dbus-daemon.c
    typedefs:
    - item_type: typedef
      name: "(*FuDbusDaemonMethodFunc)(FuDbusDaemon *self,\n\t\t\t\t       GVariant
        *parameters,\n\t\t\t\t       FuEngineRequest *request,\n\t\t\t\t       GDBusMethodInvocation
        *invocation)"
      pos:
        line_end: 2413
        line_start: 2410
        source_file: /src/fwupd/src/fu-dbus-daemon.c
      type: void
    union: []
- function_names:
  - fu_client_set_feature_flags
  - fu_client_get_feature_flags
  - fu_client_get_sender
  - fu_client_lookup_hint
  - fu_client_insert_hint
  - fu_client_add_flag
  - fu_client_remove_flag
  - fu_client_has_flag
  - fu_client_get_property
  - fu_client_set_property
  - fu_client_init
  - fu_client_finalize
  - fu_client_class_init
  - fu_client_new
  source_file: /src/fwupd/src/fu-client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-client.c
      type_or_value: '"FuClient"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*sender'
        type: gchar
      - name: '*hints'
        type: GHashTable
      - name: feature_flags
        type: FwupdFeatureFlags
      - name: flags
        type: FuClientFlag
      item_type: struct
      name: _FuClient
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/fwupd/src/fu-client.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-bluez-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLUEZ_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-bluez-backend.h
      type_or_value: (fu_bluez_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-usb-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-usb-backend.h
      type_or_value: (fu_usb_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-helper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-udev-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UDEV_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-udev-backend.h
      type_or_value: (fu_udev_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-idle.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IDLE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-idle.h
      type_or_value: (fu_idle_get_type())
    structs:
    - fields:
      - name: '*idle'
        type: FuIdle
      - name: token
        type: guint32
      item_type: struct
      name: FuIdleLocker
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/fwupd/src/fu-idle.h
    typedefs: []
    union: []
- function_names:
  - fu_polkit_authority_check_finish
  - fu_polkit_authority_check_cb
  - fu_polkit_authority_check
  - fu_polkit_authority_init
  - fu_polkit_authority_load
  - fu_polkit_authority_finalize
  - fu_polkit_authority_class_init
  - fu_polkit_authority_new
  source_file: /src/fwupd/src/fu-polkit-authority.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-polkit-authority.c
      type_or_value: '"FuPolkitAuthority"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      item_type: struct
      name: _FuPolkitAuthority
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/fwupd/src/fu-polkit-authority.c
    typedefs: []
    union: []
- function_names:
  - fu_client_list_emit_added
  - fu_client_list_emit_removed
  - fu_client_list_sender_name_vanished_cb
  - fu_client_list_register
  - fu_client_list_get_all
  - fu_client_list_get_by_sender
  - fu_client_list_get_property
  - fu_client_list_set_property
  - fu_client_list_item_free
  - fu_client_list_init
  - fu_client_list_finalize
  - fu_client_list_class_init
  - fu_client_list_new
  source_file: /src/fwupd/src/fu-client-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-client-list.c
      type_or_value: '"FuClientList"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*array'
        type: GPtrArray
      - name: '*connection'
        type: GDBusConnection
      item_type: struct
      name: _FuClientList
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/src/fu-client-list.c
    - fields:
      - name: '*self'
        type: FuClientList
      - name: '*client'
        type: FuClient
      - name: watcher_id
        type: guint
      item_type: struct
      name: FuClientListItem
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/fwupd/src/fu-client-list.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-util-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXIT_NOTHING_TO_DO
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXIT_NOT_FOUND
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXIT_NOT_REACHABLE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: '101 '
    - item_type: preproc_def
      name: FWUPD_ERROR_INVALID_ARGS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: (FWUPD_ERROR_LAST + 1)
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: '*arguments'
        type: gchar
      - name: '*description'
        type: gchar
      - name: callback
        type: FuUtilCmdFunc
      item_type: struct
      name: FuUtilCmd
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/fwupd/src/fu-util-common.h
    typedefs:
    - item_type: typedef
      name: (*FuUtilCmdFunc)(FuUtil *util, gchar **values, GError **error)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/fwupd/src/fu-util-common.h
    - item_type: typedef
      name: FuSecurityAttrToStringFlags
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/fwupd/src/fu-util-common.h
    - item_type: typedef
      name: FuUtilNode
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/fwupd/src/fu-util-common.h
    union: []
- function_names:
  - fu_polkit_agent_fork_agent
  - fu_polkit_agent_close_nointr
  - fu_polkit_agent_close_nointr_nofail
  - fu_polkit_agent_fd_wait_for_event
  - fu_polkit_agent_wait_for_terminate
  - fu_polkit_agent_open
  - fu_polkit_agent_init
  - fu_polkit_agent_finalize
  - fu_polkit_agent_class_init
  - fu_polkit_agent_new
  source_file: /src/fwupd/src/fu-polkit-agent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/fwupd/src/fu-polkit-agent.c
      type_or_value: '"FuPolkitAgent"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: agent_pid
        type: pid_t
      item_type: struct
      name: _FuPolkitAgent
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/src/fu-polkit-agent.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-polkit-agent.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_POLKIT_AGENT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-polkit-agent.h
      type_or_value: (fu_polkit_agent_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_release_to_string
  - fu_release_set_request
  - fu_release_get_request
  - fu_release_get_device_version_old
  - fu_release_get_firmware_basename
  - fu_release_set_device_version_old
  - fu_release_set_device
  - fu_release_get_device
  - fu_release_get_stream
  - fu_release_set_stream
  - fu_release_get_soft_reqs
  - fu_release_get_hard_reqs
  - fu_release_get_update_request_id
  - fu_release_set_update_request_id
  - fu_release_set_remote
  - fu_release_set_config
  - fu_release_get_localized_xpath
  - fu_release_get_release_version
  - fu_release_load_test_result
  - fu_release_load_artifact
  - fu_release_scheme_compare_cb
  - fu_release_check_requirements_version_check
  - fu_release_verfmts_to_string
  - fu_release_check_verfmt_compatible
  - fu_release_check_verfmt
  - fu_release_check_requirements
  - fu_release_check_version
  - fu_release_set_priority
  - fu_release_get_priority
  - fu_release_load
  - fu_release_ensure_trust_flags
  - fu_release_get_action_id
  - fu_release_compare
  - fu_release_init
  - fu_release_finalize
  - fu_release_class_init
  - fu_release_new
  source_file: /src/fwupd/src/fu-release.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-release.c
      type_or_value: '"FuRelease"'
    structs:
    - fields:
      - name: parent_instance
        type: FwupdRelease
      - name: '*request'
        type: FuEngineRequest
      - name: '*device'
        type: FuDevice
      - name: '*remote'
        type: FwupdRemote
      - name: '*config'
        type: FuEngineConfig
      - name: '*stream'
        type: GInputStream
      - name: '*update_request_id'
        type: gchar
      - name: '*device_version_old'
        type: gchar
      - name: '*firmware_basename'
        type: gchar
      - name: '*soft_reqs'
        type: GPtrArray
      - name: '*hard_reqs'
        type: GPtrArray
      - name: priority
        type: guint64
      item_type: struct
      name: _FuRelease
      pos:
        line_end: 35
        line_start: 22
        source_file: /src/fwupd/src/fu-release.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_backend_coldplug
  - fu_uefi_backend_create_device
  - fu_uefi_backend_init
  - fu_uefi_backend_class_init
  - fu_uefi_backend_new
  source_file: /src/fwupd/src/fu-uefi-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-uefi-backend.c
      type_or_value: '"FuBackend"'
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      item_type: struct
      name: _FuUefiBackend
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/src/fu-uefi-backend.c
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      item_type: struct
      name: "guid_names[] = {\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"PK\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"KEK\"},\n\t    {FU_EFIVARS_GUID_SECURITY_DATABASE, \"db\"},\n\t    {FU_EFIVARS_GUID_SECURITY_DATABASE,
        \"dbx\"},\n\t}"
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/src/fu-uefi-backend.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-plugin-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PLUGIN_LIST
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-plugin-list.h
      type_or_value: (fu_plugin_list_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-client.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CLIENT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-client.h
      type_or_value: (fu_client_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_security_attr_get_name
  - fu_security_attr_get_title
  - fu_security_attr_get_description
  source_file: /src/fwupd/src/fu-security-attr-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_util_bios_setting_update_description
  - fu_util_bios_setting_kind_to_string
  - fu_util_bios_setting_matches_args
  - fu_util_bios_setting_console_print
  - fu_util_bios_setting_to_string
  - fu_util_bios_settings_parse_argv
  source_file: /src/fwupd/src/fu-util-bios-setting.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-util-bios-setting.c
      type_or_value: '"FuMain"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_unix_seekable_input_stream_tell
  - fu_unix_seekable_input_stream_can_seek
  - fu_unix_seekable_input_stream_seek_type_to_lseek
  - fu_unix_seekable_input_stream_seek
  - fu_unix_seekable_input_stream_can_truncate
  - fu_unix_seekable_input_stream_truncate
  - fu_unix_seekable_input_stream_seekable_iface_init
  - fu_unix_seekable_input_stream_new
  - fu_unix_seekable_input_stream_class_init
  - fu_unix_seekable_input_stream_init
  source_file: /src/fwupd/src/fu-unix-seekable-input-stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-unix-seekable-input-stream.c
      type_or_value: '"FuUnixSeekableInputStream"'
    structs:
    - fields:
      - name: parent_instance
        type: GUnixInputStream
      item_type: struct
      name: _FuUnixSeekableInputStream
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/src/fu-unix-seekable-input-stream.c
    typedefs: []
    union: []
- function_names:
  - fu_main_svc_report_status
  - fu_main_svc_control_stop_cb
  - fu_main_svc_control_cb
  - fu_main_svc_main_cb
  - fu_main_console
  - main
  source_file: /src/fwupd/src/fu-main-windows.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/src/fu-main-windows.c
      type_or_value: '"FuMain"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-dbus-daemon.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DBUS_DAEMON
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-dbus-daemon.h
      type_or_value: (fu_dbus_daemon_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_hang_check_cb
  - fu_test_loop_run_with_timeout
  - fu_test_loop_quit
  - fu_self_test_mkroot
  - fu_test_copy_file
  - fu_test_free
  - fu_client_list_func
  - fu_idle_func
  - fu_engine_generate_md_func
  - fu_engine_requirements_missing_func
  - fu_engine_requirements_soft_func
  - fu_engine_requirements_client_fail_func
  - fu_engine_requirements_client_invalid_func
  - fu_engine_requirements_client_pass_func
  - fu_engine_requirements_vercmp_glob_func
  - fu_engine_requirements_vercmp_glob_fallback_func
  - fu_engine_requirements_not_hardware_func
  - fu_engine_requirements_version_require_func
  - fu_engine_requirements_version_lowest_func
  - fu_engine_requirements_unsupported_func
  - fu_engine_requirements_child_func
  - fu_engine_requirements_child_fail_func
  - fu_engine_requirements_func
  - fu_engine_requirements_device_func
  - fu_engine_requirements_device_plain_func
  - fu_engine_requirements_version_format_func
  - fu_engine_requirements_only_upgrade_func
  - fu_engine_plugin_device_gtype
  - fu_engine_plugin_firmware_gtype
  - fu_engine_test_plugin_mutable_enumeration
  - fu_engine_plugin_gtypes_func
  - fu_engine_requirements_sibling_device_func
  - fu_engine_requirements_other_device_func
  - fu_engine_requirements_protocol_check_func
  - fu_engine_requirements_parent_device_func
  - fu_engine_requirements_child_device_func
  - fu_engine_device_parent_guid_func
  - fu_engine_device_parent_id_func
  - fu_engine_partial_hash_func
  - fu_engine_device_unlock_func
  - fu_engine_device_equivalent_func
  - fu_engine_device_md_set_flags_func
  - fu_engine_device_md_checksum_set_version_func
  - fu_engine_device_md_checksum_set_version_wrong_proto_func
  - fu_engine_require_hwid_func
  - fu_engine_get_details_added_func
  - fu_engine_get_details_missing_func
  - fu_engine_downgrade_func
  - fu_engine_md_verfmt_func
  - fu_engine_install_duration_func
  - fu_engine_release_dedupe_func
  - fu_engine_history_modify_func
  - fu_engine_history_func
  - fu_engine_history_verfmt_func
  - fu_engine_install_loop_restart_func
  - fu_engine_multiple_rels_func
  - fu_engine_history_inherit
  - fu_engine_install_needs_reboot
  - fu_test_engine_status_changed_cb
  - fu_test_engine_request_cb
  - fu_engine_install_request
  - fu_engine_history_error_func
  - fu_test_device_list_count_cb
  - fu_device_list_no_auto_remove_children_func
  - fu_device_list_delay_func
  - fu_device_list_remove_cb
  - fu_device_list_add_cb
  - fu_device_list_replug_auto_func
  - fu_device_list_replug_user_func
  - fu_device_list_compatible_func
  - fu_device_list_remove_chain_func
  - fu_device_list_explicit_order_func
  - fu_device_list_explicit_order_post_func
  - fu_device_list_better_than_func
  - fu_device_list_counterpart_func
  - fu_device_list_equivalent_id_func
  - fu_device_list_unconnected_no_delay_func
  - fu_device_list_func
  - fu_plugin_list_func
  - fu_plugin_list_depsolve_func
  - fu_history_migrate_v1_func
  - fu_history_migrate_v2_func
  - fu_test_plugin_device_added_cb
  - fu_test_plugin_device_register_cb
  - fu_backend_usb_hotplug_cb
  - fu_backend_usb_load_file
  - fu_backend_usb_func
  - fu_backend_usb_invalid_func
  - fu_plugin_module_func
  - fu_history_func
  - fu_test_build_cab
  - fu_test_plugin_composite_device_added_cb
  - fu_plugin_composite_release_sort_cb
  - fu_plugin_composite_func
  - fu_plugin_composite_multistep_func
  - fu_security_attr_func
  - fu_common_cabinet_func
  - fu_memcpy_func
  - fu_console_func
  - fu_release_compare_func_cb
  - fu_release_compare_func
  - fu_release_uri_scheme_func
  - fu_release_trusted_report_func
  - fu_release_trusted_report_oem_func
  - fu_release_no_trusted_report_upgrade_func
  - fu_release_no_trusted_report_func
  - fu_common_store_cab_func
  - fu_common_store_cab_artifact_func
  - fu_common_store_cab_unsigned_func
  - fu_common_store_cab_sha256_func
  - fu_common_store_cab_folder_func
  - fu_common_store_cab_error_no_metadata_func
  - fu_common_store_cab_error_wrong_size_func
  - fu_common_store_cab_error_missing_file_func
  - fu_common_store_cab_error_size_func
  - fu_common_store_cab_error_wrong_checksum_func
  - fu_engine_modify_bios_settings_func
  - fu_unix_seekable_input_stream_func
  - fu_remote_download_func
  - fu_remote_baseuri_func
  - fu_remote_auth_func
  - fu_remote_duplicate_func
  - fu_remote_nopath_func
  - fu_remote_local_func
  - fu_remote_list_repair_func
  - fu_config_migrate_1_9_func
  - fu_config_set_plugin_defaults
  - fu_config_migrate_1_7_func
  - fu_engine_report_metadata_func
  - fu_engine_machine_hash_func
  - fu_test_engine_fake_hidraw
  - fu_test_engine_fake_usb
  - fu_test_engine_fake_v4l
  - fu_test_engine_fake_nvme
  - fu_test_engine_fake_serio
  - fu_test_engine_fake_tpm
  - fu_test_engine_fake_block
  - main
  source_file: /src/fwupd/src/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*plugin'
        type: FuPlugin
      - name: '*ctx'
        type: FuContext
      item_type: struct
      name: FuTest
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/fwupd/src/fu-self-test.c
    - fields:
      - name: request_cnt
        type: guint
      - name: last_status
        type: FwupdStatus
      item_type: struct
      name: FuTestRequestHelper
      pos:
        line_end: 3690
        line_start: 3687
        source_file: /src/fwupd/src/fu-self-test.c
    - fields:
      - name: '*device_new'
        type: FuDevice
      - name: '*device_old'
        type: FuDevice
      - name: '*device_list'
        type: FuDeviceList
      item_type: struct
      name: FuDeviceListReplugHelper
      pos:
        line_end: 4038
        line_start: 4034
        source_file: /src/fwupd/src/fu-self-test.c
    - fields:
      - name: '*in'
        type: gchar
      - name: '*op'
        type: gchar
      item_type: struct
      name: "strs[] = {{\"https://foo.bar/baz\", \"https\"},\n\t\t    {\"HTTP://FOO.BAR/BAZ\",
        \"http\"},\n\t\t    {\"ftp://\", \"ftp\"},\n\t\t    {\"ftp:\", \"ftp\"},\n\t\t
        \   {\"foobarbaz\", NULL},\n\t\t    {\"\", NULL},\n\t\t    {NULL, NULL}}"
      pos:
        line_end: 5772
        line_start: 5769
        source_file: /src/fwupd/src/fu-self-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-systemd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_history_device_from_stmt
  - fu_history_stmt_exec
  - fu_history_create_database
  - fu_history_migrate_database_v1
  - fu_history_migrate_database_v2
  - fu_history_migrate_database_v3
  - fu_history_migrate_database_v4
  - fu_history_migrate_database_v5
  - fu_history_migrate_database_v6
  - fu_history_migrate_database_v7
  - fu_history_migrate_database_v8
  - fu_history_migrate_database_v9
  - fu_history_migrate_database_v10
  - fu_history_migrate_database_v11
  - fu_history_migrate_database_v12
  - fu_history_get_schema_version
  - fu_history_create_or_migrate
  - fu_history_open
  - fu_history_load
  - fu_history_convert_hash_to_string
  - fu_history_get_device_flags_filtered
  - fu_history_modify_device
  - fu_history_modify_device_release
  - fu_history_add_device
  - fu_history_remove_all
  - fu_history_remove_device
  - fu_history_get_device_by_id
  - fu_history_get_devices
  - fu_history_get_approved_firmware
  - fu_history_clear_approved_firmware
  - fu_history_add_approved_firmware
  - fu_history_get_blocked_firmware
  - fu_history_clear_blocked_firmware
  - fu_history_add_blocked_firmware
  - fu_history_add_security_attribute
  - fu_history_get_security_attrs
  - fu_history_has_emulation_tag
  - fu_history_add_emulation_tag
  - fu_history_remove_emulation_tag
  - fu_history_housekeeping_cb
  - fu_history_dispose
  - fu_history_class_init
  - fu_history_init
  - fu_history_finalize
  - fu_history_new
  source_file: /src/fwupd/src/fu-history.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-history.c
      type_or_value: '"FuHistory"'
    - item_type: preproc_def
      name: FU_HISTORY_CURRENT_SCHEMA_VERSION
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/src/fu-history.c
      type_or_value: '14'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*ctx'
        type: FuContext
      - name: '*db'
        type: sqlite3
      item_type: struct
      name: _FuHistory
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/fwupd/src/fu-history.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-requirements.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-emulator.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ENGINE_EMULATOR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-engine-emulator.h
      type_or_value: (fu_engine_emulator_get_type())
    - item_type: preproc_def
      name: FU_ENGINE_EMULATOR_WRITE_COUNT_DEFAULT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/src/fu-engine-emulator.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_ENGINE_EMULATOR_WRITE_COUNT_MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/src/fu-engine-emulator.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_systemd_get_manager
  - fu_systemd_unit_get_path
  - fu_systemd_unit_get_proxy
  - fu_systemd_unit_stop
  source_file: /src/fwupd/src/fu-systemd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSTEMD_SERVICE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/src/fu-systemd.c
      type_or_value: '"org.freedesktop.systemd1"'
    - item_type: preproc_def
      name: SYSTEMD_OBJECT_PATH
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/src/fu-systemd.c
      type_or_value: '"/org/freedesktop/systemd1"'
    - item_type: preproc_def
      name: SYSTEMD_INTERFACE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/src/fu-systemd.c
      type_or_value: '"org.freedesktop.systemd1"'
    - item_type: preproc_def
      name: SYSTEMD_MANAGER_INTERFACE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/src/fu-systemd.c
      type_or_value: '"org.freedesktop.systemd1.Manager"'
    - item_type: preproc_def
      name: SYSTEMD_UNIT_INTERFACE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/src/fu-systemd.c
      type_or_value: '"org.freedesktop.systemd1.Unit"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_remote_list_emit_changed
  - fu_remote_list_emit_added
  - fu_remote_list_set_lvfs_metadata_format
  - fu_remote_list_monitor_changed_cb
  - _fwupd_remote_get_mtime
  - fu_remote_list_fixup_inotify_error
  - fu_remote_list_add_inotify
  - _fwupd_remote_get_agreement_default
  - _fwupd_remote_get_agreement_for_app
  - _fwupd_remote_build_component_id
  - fu_remote_list_get_last_ext
  - fu_remote_list_remote_filename_cache_fn_is_obsolete
  - fu_remote_list_cleanup_lvfs_remote
  - fu_remote_list_add_remote
  - fu_remote_list_is_remote_origin_lvfs
  - fu_remote_list_add_for_file
  - fu_remote_list_add_for_path
  - fu_remote_list_set_key_value
  - fu_remote_list_sort_cb
  - fu_remote_list_depsolve_order_before
  - fu_remote_list_depsolve_order_after
  - fu_remote_list_reload
  - fu_remote_list_load_metainfos
  - fu_remote_list_set_testing_remote_enabled
  - fu_remote_list_load
  - fu_remote_list_get_all
  - fu_remote_list_get_by_id
  - fu_remote_list_class_init
  - fu_remote_list_monitor_unref
  - fu_remote_list_init
  - fu_remote_list_finalize
  - fu_remote_list_new
  source_file: /src/fwupd/src/fu-remote-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-remote-list.c
      type_or_value: '"FuRemoteList"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*array'
        type: GPtrArray
      - name: '*monitors'
        type: GPtrArray
      - name: testing_remote
        type: gboolean
      - name: fix_metadata_uri
        type: gboolean
      - name: '*silo'
        type: XbSilo
      - name: '*lvfs_metadata_format'
        type: gchar
      item_type: struct
      name: _FuRemoteList
      pos:
        line_end: 41
        line_start: 33
        source_file: /src/fwupd/src/fu-remote-list.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*search'
        type: gchar
      - name: '*fallback'
        type: gchar
      item_type: struct
      name: "distro_kv[] = {\n\t\t    {\n\t\t\tG_OS_INFO_KEY_NAME,\n\t\t\t\"$OS_RELEASE:NAME$\",\n\t\t\t\"this
        distribution\",\n\t\t    },\n\t\t    {\n\t\t\tG_OS_INFO_KEY_BUG_REPORT_URL,\n\t\t\t\"$OS_RELEASE:BUG_REPORT_URL$\",\n\t\t\t\"https://github.com/fwupd/fwupd/issues\",\n\t\t
        \   },\n\t\t}"
      pos:
        line_end: 366
        line_start: 362
        source_file: /src/fwupd/src/fu-remote-list.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-request.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ENGINE_REQUEST
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-engine-request.h
      type_or_value: (fu_engine_request_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_get_loaded
  - fu_engine_update_motd_timeout_cb
  - fu_engine_update_motd_reset
  - fu_engine_emit_changed
  - fu_engine_emit_device_changed_safe
  - fu_engine_emit_device_changed
  - fu_engine_get_context
  - fu_engine_set_status
  - fu_engine_generic_notify_cb
  - fu_engine_ensure_device_problem_priority_full
  - fu_engine_ensure_device_problem_priority
  - fu_engine_device_equivalent_id_notify_cb
  - fu_engine_history_notify_cb
  - fu_engine_device_request_cb
  - fu_engine_set_emulator_phase
  - fu_engine_watch_device
  - fu_engine_ensure_device_power_inhibit
  - fu_engine_ensure_device_lid_inhibit
  - fu_engine_ensure_device_display_required_inhibit
  - fu_engine_ensure_device_maybe_remove_affects_fde
  - fu_engine_ensure_device_system_inhibit
  - fu_engine_acquiesce_timeout_cb
  - fu_engine_acquiesce_reset
  - fu_engine_wait_for_acquiesce
  - fu_engine_ensure_context_flag_save_events
  - fu_engine_device_added_cb
  - fu_engine_device_runner_device_removed
  - fu_engine_device_removed_cb
  - fu_engine_device_changed_cb
  - fu_engine_add_local_release_metadata
  - fu_engine_add_remote
  - fu_engine_release_remote_id_changed_cb
  - fu_engine_compare_report_trusted
  - fu_engine_add_trusted_report
  - fu_engine_load_release
  - fu_engine_get_release_for_checksum
  - fu_engine_get_remote_id_for_stream
  - fu_engine_unlock
  - fu_engine_reset_config
  - fu_engine_modify_config
  - fu_engine_modify_remote
  - fu_engine_modify_single_bios_setting
  - fu_engine_modify_bios_settings
  - fu_engine_remove_device_flag
  - fu_engine_emit_device_request_replug_and_install
  - fu_engine_emit_device_request_restart_daemon
  - fu_engine_add_device_flag
  - fu_engine_modify_device_flags
  - fu_engine_modify_device
  - fu_engine_checksum_type_to_string
  - fu_engine_verify_update
  - fu_engine_get_component_by_guid
  - fu_engine_get_component_by_guids
  - fu_engine_verify_from_local_metadata
  - fu_engine_verify_from_system_metadata
  - fu_engine_verify
  - fu_engine_check_trust
  - fu_engine_idle_reset
  - fu_engine_idle_inhibit
  - fu_engine_idle_uninhibit
  - fu_engine_get_boot_time
  - fu_engine_get_cpu_device
  - fu_engine_get_report_metadata_cpu_device
  - fu_engine_get_report_metadata_os_release
  - fu_engine_load_os_release
  - fu_engine_get_report_metadata_lsb_release
  - fu_engine_get_report_metadata_kernel_cmdline
  - fu_engine_get_report_metadata_selinux
  - fu_engine_add_report_metadata_bool
  - fu_engine_ensure_passim_client
  - fu_engine_get_report_metadata
  - fu_engine_composite_prepare
  - fu_engine_composite_cleanup
  - fu_engine_sort_release_device_order_release_version_cb
  - fu_engine_publish_release
  - fu_engine_install_release_version_check
  - fu_engine_install_releases
  - fu_engine_update_release_integrity
  - fu_engine_add_release_metadata
  - fu_engine_add_release_plugin_metadata
  - fu_engine_save_into_backup_remote
  - fu_engine_install_release
  - fu_engine_get_plugins
  - fu_engine_get_plugin_by_name
  - fu_engine_emulation_load
  - fu_engine_emulation_save
  - fu_engine_get_device
  - fu_engine_device_prepare
  - fu_engine_device_cleanup
  - fu_engine_device_check_power
  - fu_engine_prepare_firmware
  - fu_engine_prepare
  - fu_engine_cleanup
  - fu_engine_detach
  - fu_engine_attach
  - fu_engine_set_progress
  - fu_engine_activate
  - fu_engine_reload
  - fu_engine_write_firmware
  - fu_engine_firmware_dump
  - fu_engine_firmware_read
  - fu_engine_install_loop
  - fu_engine_install_blob
  - fu_engine_get_item_by_id_fallback_history
  - fu_engine_create_silo_index
  - fu_engine_set_silo
  - fu_engine_appstream_upgrade_cb
  - fu_engine_builder_cabinet_adapter_cb
  - fu_engine_create_metadata_builder_source
  - fu_engine_create_metadata
  - fu_engine_ensure_device_supported
  - fu_engine_md_refresh_device
  - fu_engine_md_refresh_devices
  - fu_engine_load_metadata_store_local
  - fu_engine_load_metadata_store
  - fu_engine_remote_list_ensure_p2p_policy_remote
  - fu_engine_config_changed_cb
  - fu_engine_metadata_changed
  - fu_engine_remote_list_changed_cb
  - fu_engine_remote_list_added_cb
  - fu_engine_sort_jcat_results_timestamp_cb
  - fu_engine_get_newest_signature_jcat_result
  - fu_engine_get_system_jcat_result
  - fu_engine_validate_result_timestamp
  - fu_engine_update_metadata_bytes
  - fu_engine_update_metadata
  - fu_engine_build_cabinet_from_stream
  - fu_engine_get_result_from_component
  - fu_engine_get_details_sort_cb
  - fu_engine_get_details
  - fu_engine_sort_devices_by_priority_name
  - fu_engine_get_devices
  - fu_engine_get_devices_by_guid
  - fu_engine_get_devices_by_composite_id
  - fu_engine_get_history_set_hsi_attrs
  - fu_engine_fixup_history_device
  - fu_engine_get_history
  - fu_engine_get_remotes
  - fu_engine_get_remote_by_id
  - fu_engine_sort_releases_cb
  - fu_engine_check_release_is_approved
  - fu_engine_check_release_is_blocked
  - fu_engine_add_releases_for_device_component
  - fu_engine_get_branch_fallback
  - fu_engine_get_releases_for_device
  - fu_engine_get_releases
  - fu_engine_get_downgrades
  - fu_engine_get_approved_firmware
  - fu_engine_add_approved_firmware
  - fu_engine_get_blocked_firmware
  - fu_engine_add_blocked_firmware
  - fu_engine_set_blocked_firmware
  - fu_engine_self_sign
  - fu_engine_get_upgrades
  - fu_engine_clear_results
  - fu_engine_get_results
  - fu_engine_plugins_startup
  - fu_engine_plugins_ready
  - fu_engine_plugins_coldplug
  - fu_engine_plugin_device_register
  - fu_engine_plugin_device_register_cb
  - fu_engine_plugin_device_added_cb
  - fu_engine_adopt_children_device
  - fu_engine_set_device_parent
  - fu_engine_adopt_children
  - fu_engine_set_proxy_device
  - fu_engine_device_inherit_history
  - fu_engine_ensure_device_emulation_tag
  - fu_engine_add_device
  - fu_engine_plugin_rules_changed_cb
  - fu_engine_context_security_changed_cb
  - fu_engine_plugin_device_removed_cb
  - fu_engine_add_plugin
  - fu_engine_is_uid_trusted
  - fu_engine_plugin_allows_enumeration
  - fu_engine_is_test_plugin_disabled
  - fu_engine_is_plugin_name_disabled
  - fu_engine_is_plugin_name_enabled
  - fu_engine_add_plugin_filter
  - fu_engine_plugin_check_supported_cb
  - fu_engine_get_config
  - fu_engine_get_host_vendor
  - fu_engine_get_host_product
  - fu_engine_get_host_machine_id
  - fu_engine_get_host_bkc
  - fu_engine_ensure_security_attrs_supported_cpu
  - fu_engine_ensure_security_attrs_tainted
  - fu_engine_get_host_security_id
  - fu_engine_record_security_attrs
  - fu_engine_security_attrs_depsolve
  - fu_engine_get_previous_bios_security_attr
  - fu_engine_fix_host_security_attr
  - fu_engine_undo_host_security_attr
  - fu_engine_security_attrs_from_json
  - fu_engine_devices_from_json
  - fu_engine_load_host_emulation
  - fu_engine_ensure_security_attrs
  - fu_engine_get_host_security_attrs
  - fu_engine_get_host_security_events
  - fu_engine_load_plugins_filename
  - fu_engine_load_plugins_filenames
  - fu_engine_load_plugins_builtins
  - fu_engine_load_plugins
  - fu_engine_plugins_init
  - fu_engine_cleanup_state
  - fu_engine_apply_default_bios_settings_policy
  - fu_engine_check_firmware_attributes
  - fu_engine_backend_device_removed_cb
  - fu_engine_backend_device_added_run_plugin
  - fu_engine_backend_device_added_run_plugins
  - fu_engine_backend_device_added
  - fu_engine_backend_device_added_cb
  - fu_engine_backend_device_changed_cb
  - fu_engine_load_quirks_for_hwid
  - fu_engine_update_history_device
  - fu_engine_update_history_database
  - fu_engine_ensure_client_certificate
  - fu_engine_context_set_battery_threshold
  - fu_engine_ensure_paths_exist
  - fu_engine_local_metadata_changed_cb
  - fu_engine_load_local_metadata_watches
  - fu_engine_win32_registry_get_string
  - fu_engine_backends_coldplug_backend_add_devices
  - fu_engine_backends_coldplug_backend
  - fu_engine_backends_coldplug
  - fu_engine_load
  - fu_engine_get_property
  - fu_engine_set_property
  - fu_engine_dispose
  - fu_engine_class_init
  - fu_engine_add_runtime_version
  - fu_engine_context_power_changed
  - fu_engine_context_power_changed_cb
  - fu_engine_idle_timeout_cb
  - fu_engine_idle_inhibit_changed_cb
  - fu_engine_constructed
  - fu_engine_init
  - fu_engine_finalize
  - fu_engine_new
  source_file: /src/fwupd/src/fu-engine.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: '"FuEngine"'
    - item_type: preproc_def
      name: MINIMUM_BATTERY_PERCENTAGE_FALLBACK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_ENGINE_UPDATE_MOTD_DELAY
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: FU_ENGINE_MAX_METADATA_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: '0x2000000 '
    - item_type: preproc_def
      name: FU_ENGINE_MAX_SIGNATURE_SIZE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: '0x100000  '
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*config'
        type: FuEngineConfig
      - name: '*remote_list'
        type: FuRemoteList
      - name: '*device_list'
        type: FuDeviceList
      - name: only_trusted
        type: gboolean
      - name: write_history
        type: gboolean
      - name: host_emulation
        type: gboolean
      - name: percentage
        type: guint
      - name: '*history'
        type: FuHistory
      - name: '*idle'
        type: FuIdle
      - name: '*silo'
        type: XbSilo
      - name: '*query_component_by_guid'
        type: XbQuery
      - name: '*query_container_checksum1'
        type: XbQuery
      - name: '*query_container_checksum2'
        type: XbQuery
      - name: '*query_tag_by_guid_version'
        type: XbQuery
      - name: coldplug_id
        type: guint
      - name: '*plugin_list'
        type: FuPluginList
      - name: '*plugin_filter'
        type: GPtrArray
      - name: '*ctx'
        type: FuContext
      - name: '*approved_firmware'
        type: GHashTable
      - name: '*blocked_firmware'
        type: GHashTable
      - name: '*emulation'
        type: FuEngineEmulator
      - name: '*device_changed_allowlist'
        type: GHashTable
      - name: '*host_machine_id'
        type: gchar
      - name: '*jcat_context'
        type: JcatContext
      - name: loaded
        type: gboolean
      - name: '*host_security_attrs'
        type: FuSecurityAttrs
      - name: '*local_monitors'
        type: GPtrArray
      - name: '*acquiesce_loop'
        type: GMainLoop
      - name: acquiesce_id
        type: guint
      - name: acquiesce_delay
        type: guint
      - name: update_motd_id
        type: guint
      - name: emulator_phase
        type: FuEngineEmulatorPhase
      - name: emulator_write_cnt
        type: guint
      item_type: struct
      name: _FuEngine
      pos:
        line_end: 145
        line_start: 107
        source_file: /src/fwupd/src/fu-engine.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*val'
        type: gchar
      item_type: struct
      name: "kvs[] = {{\"ProductName:\", \"DistroName\"},\n\t\t   {\"ProductVersion:\",
        FWUPD_RESULT_KEY_DISTRO_VERSION},\n\t\t   {\"BuildVersion:\", FWUPD_RESULT_KEY_DISTRO_VARIANT},\n\t\t
        \  {NULL, NULL}}"
      pos:
        line_end: 1771
        line_start: 1768
        source_file: /src/fwupd/src/fu-engine.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*val'
        type: gchar
      item_type: struct
      name: "distro_kv[] = {{G_OS_INFO_KEY_ID, FWUPD_RESULT_KEY_DISTRO_ID},\n\t\t\t
        {G_OS_INFO_KEY_NAME, \"DistroName\"},\n\t\t\t {G_OS_INFO_KEY_PRETTY_NAME,
        \"DistroPrettyName\"},\n\t\t\t {G_OS_INFO_KEY_VERSION_ID, FWUPD_RESULT_KEY_DISTRO_VERSION},\n\t\t\t
        {\"VARIANT_ID\", FWUPD_RESULT_KEY_DISTRO_VARIANT},\n\t\t\t {NULL, NULL}}"
      pos:
        line_end: 1805
        line_start: 1802
        source_file: /src/fwupd/src/fu-engine.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*val'
        type: gchar
      item_type: struct
      name: "distro_kv[] = {{\"CHROMEOS_RELEASE_TRACK\", \"DistroReleaseTrack\"},\n\t\t\t
        {\"CHROMEOS_RELEASE_BOARD\", \"DistroReleaseBoard\"},\n\t\t\t {NULL, NULL}}"
      pos:
        line_end: 1867
        line_start: 1864
        source_file: /src/fwupd/src/fu-engine.c
    - fields:
      - name: '*hwid'
        type: gchar
      - name: '*name'
        type: gchar
      item_type: struct
      name: "keys[] = {{FU_HWIDS_KEY_BASEBOARD_MANUFACTURER, \"HostBaseboardManufacturer\"},\n\t\t\t
        \   {FU_HWIDS_KEY_BASEBOARD_PRODUCT, \"HostBaseboardProduct\"},\n\t\t\t    {FU_HWIDS_KEY_BIOS_MAJOR_RELEASE,
        \"HostBiosMajorRelease\"},\n\t\t\t    {FU_HWIDS_KEY_BIOS_MINOR_RELEASE, \"HostBiosMinorRelease\"},\n\t\t\t
        \   {FU_HWIDS_KEY_BIOS_VENDOR, \"HostBiosVendor\"},\n\t\t\t    {FU_HWIDS_KEY_BIOS_VERSION,
        \"HostBiosVersion\"},\n\t\t\t    {FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE, \"HostFirmwareMajorRelease\"},\n\t\t\t
        \   {FU_HWIDS_KEY_FIRMWARE_MINOR_RELEASE, \"HostFirmwareMinorRelease\"},\n\t\t\t
        \   {FU_HWIDS_KEY_ENCLOSURE_KIND, \"HostEnclosureKind\"},\n\t\t\t    {FU_HWIDS_KEY_FAMILY,
        \"HostFamily\"},\n\t\t\t    {FU_HWIDS_KEY_MANUFACTURER, \"HostVendor\"},\n\t\t\t
        \   {FU_HWIDS_KEY_PRODUCT_NAME, \"HostProduct\"},\n\t\t\t    {FU_HWIDS_KEY_PRODUCT_SKU,
        \"HostSku\"},\n\t\t\t    {NULL, NULL}}"
      pos:
        line_end: 2030
        line_start: 2027
        source_file: /src/fwupd/src/fu-engine.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-remote.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REMOTE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-remote.h
      type_or_value: (fu_remote_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usb_backend_get_usb_device_backend_id
  - fu_usb_backend_create_device
  - fu_usb_backend_add_device
  - fu_usb_backend_remove_device
  - fu_usb_backend_rescan
  - fu_usb_backend_rescan_cb
  - fu_usb_backend_ensure_rescan_timeout
  - fu_usb_backend_set_hotplug_poll_interval
  - fu_usb_backend_device_notify_flags_cb
  - fu_usb_backend_idle_helper_copy
  - fu_usb_backend_idle_hotplug_cb
  - LIBUSB_CALL::fu_usb_backend_hotplug_cb
  - fu_usb_backend_event_thread_cb
  - fu_usb_backend_setup
  - fu_usb_backend_coldplug
  - fu_usb_backend_registered
  - fu_usb_backend_get_device_parent
  - fu_usb_backend_finalize
  - fu_usb_backend_idle_helper_free
  - fu_usb_backend_init
  - fu_usb_backend_class_init
  - fu_usb_backend_new
  source_file: /src/fwupd/src/fu-usb-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/src/fu-usb-backend.c
      type_or_value: '"FuBackend"'
    - item_type: preproc_def
      name: FU_USB_BACKEND_POLL_INTERVAL_DEFAULT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/src/fu-usb-backend.c
      type_or_value: '1000 '
    - item_type: preproc_def
      name: FU_USB_BACKEND_POLL_INTERVAL_WAIT_REPLUG
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/src/fu-usb-backend.c
      type_or_value: '5    '
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      - name: '*ctx'
        type: libusb_context
      item_type: struct
      name: _FuUsbBackend
      pos:
        line_end: 28
        line_start: 15
        source_file: /src/fwupd/src/fu-usb-backend.c
    - fields:
      - name: '*self'
        type: FuUsbBackend
      - name: '*dev'
        type: libusb_device
      - name: event
        type: libusb_hotplug_event
      item_type: struct
      name: FuUsbBackendIdleHelper
      pos:
        line_end: 181
        line_start: 177
        source_file: /src/fwupd/src/fu-usb-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_plugin_list_get_all
  - fu_plugin_list_rules_changed_cb
  - fu_plugin_list_add
  - fu_plugin_list_remove_all
  - fu_plugin_list_find_by_name
  - fu_plugin_list_sort_cb
  - fu_plugin_list_depsolve
  - fu_plugin_list_dispose
  - fu_plugin_list_class_init
  - fu_plugin_list_init
  - fu_plugin_list_finalize
  - fu_plugin_list_new
  source_file: /src/fwupd/src/fu-plugin-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-plugin-list.c
      type_or_value: '"FuPluginList"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*plugins'
        type: GPtrArray
      - name: '*plugins_hash'
        type: GHashTable
      item_type: struct
      name: _FuPluginList
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/fwupd/src/fu-plugin-list.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-debug.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_debug_log_level_to_string
  - fu_debug_free
  - fu_debug_filter_cb
  - fu_debug_handler_win32
  - fu_debug_handler_cb
  - fu_debug_verbose_arg_cb
  - fu_debug_pre_parse_hook
  - fu_debug_post_parse_hook
  - fu_debug_setup_event_source
  - fu_debug_get_option_group
  source_file: /src/fwupd/src/fu-debug.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-debug.c
      type_or_value: '"FuDebug"'
    structs:
    - fields:
      - name: '*group'
        type: GOptionGroup
      - name: log_level
        type: GLogLevelFlags
      - name: console
        type: gboolean
      - name: no_timestamp
        type: gboolean
      - name: no_domain
        type: gboolean
      - name: '**daemon_verbose'
        type: gchar
      item_type: struct
      name: FuDebug
      pos:
        line_end: 32
        line_start: 22
        source_file: /src/fwupd/src/fu-debug.c
    typedefs: []
    union: []
- function_names:
  - fu_release_uri_get_scheme
  source_file: /src/fwupd/src/fu-release-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-release-common.c
      type_or_value: '"FuSpawn"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_requirements_require_vercmp_part
  - fu_engine_requirements_helper_free
  - fu_engine_requirements_check_fwupd_version
  - fu_engine_requirements_require_vercmp
  - fu_engine_requirements_check_not_child
  - fu_engine_requirements_check_vendor_id
  - _fu_device_has_guids_any
  - fu_engine_requirements_check_firmware
  - fu_engine_requirements_check_id
  - fu_engine_requirements_check_hardware
  - fu_engine_requirements_check_not_hardware
  - fu_engine_requirements_check_client
  - fu_engine_requirements_check_hard
  - fu_engine_requirements_check_soft
  - fu_engine_requirements_is_specific_req
  - fu_engine_requirements_get_newest_fwupd_version
  - fu_engine_requirements_check
  source_file: /src/fwupd/src/fu-engine-requirements.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-engine-requirements.c
      type_or_value: '"FuEngine"'
    structs:
    - fields:
      - name: '*release'
        type: FuRelease
      - name: install_flags
        type: FwupdInstallFlags
      - name: '*fwupd_version'
        type: gchar
      - name: has_hardware_req
        type: gboolean
      - name: has_not_hardware_req
        type: gboolean
      - name: has_id_requirement_glob
        type: gboolean
      - name: has_client_id_requirement_glob
        type: gboolean
      item_type: struct
      name: FuEngineRequirementsHelper
      pos:
        line_end: 75
        line_start: 67
        source_file: /src/fwupd/src/fu-engine-requirements.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-remote-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REMOTE_LIST
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-remote-list.h
      type_or_value: (fu_remote_list_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuRemoteListLoadFlags
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/fwupd/src/fu-remote-list.h
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-polkit-authority.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_POLKIT_AUTHORITY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-polkit-authority.h
      type_or_value: (fu_polkit_authority_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuPolkitAuthorityCheckFlags
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/src/fu-polkit-authority.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_daemon_get_engine
  - fu_daemon_set_machine_kind
  - fu_daemon_get_machine_kind
  - fu_daemon_set_update_in_progress
  - fu_daemon_get_pending_stop
  - fu_daemon_schedule_housekeeping_cb
  - fu_daemon_schedule_housekeeping
  - fu_daemon_schedule_process_quit_cb
  - fu_daemon_schedule_process_quit
  - fu_daemon_check_syscall_filtering
  - fu_daemon_setup
  - fu_daemon_start
  - fu_daemon_stop
  - fu_daemon_init
  - fu_daemon_finalize
  - fu_daemon_class_init
  source_file: /src/fwupd/src/fu-daemon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-daemon.c
      type_or_value: '"FuMain"'
    - item_type: preproc_def
      name: FU_DAEMON_HOUSEKEEPING_DELAY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/src/fu-daemon.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: '*engine'
        type: FuEngine
      - name: '*loop'
        type: GMainLoop
      - name: machine_kind
        type: FuDaemonMachineKind
      - name: housekeeping_id
        type: guint
      - name: update_in_progress
        type: gboolean
      - name: pending_stop
        type: gboolean
      - name: process_quit_id
        type: guint
      item_type: struct
      name: FuDaemonPrivate
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/fwupd/src/fu-daemon.c
    typedefs: []
    union: []
- function_names:
  - fu_remote_load_from_filename
  - fu_remote_save_to_filename
  - fu_remote_init
  - fu_remote_class_init
  - fu_remote_new
  source_file: /src/fwupd/src/fu-remote.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-remote.c
      type_or_value: '"FuRemote"'
    - item_type: preproc_def
      name: FWUPD_REMOTE_CONFIG_DEFAULT_REFRESH_INTERVAL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/src/fu-remote.c
      type_or_value: '86400 '
    structs:
    - fields:
      - name: parent_instance
        type: FwupdRemote
      item_type: struct
      name: _FuRemote
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/src/fu-remote.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-client-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CLIENT_LIST
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-client-list.h
      type_or_value: (fu_client_list_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_emulator_phase_to_filename
  - fu_engine_emulator_save
  - fu_engine_emulator_load_json_blob
  - fu_engine_emulator_load_phase
  - fu_engine_emulator_to_json
  - fu_engine_emulator_save_phase
  - fu_engine_emulator_load_phases
  - fu_engine_emulator_load
  - fu_engine_emulator_get_property
  - fu_engine_emulator_set_property
  - fu_engine_emulator_init
  - fu_engine_emulator_finalize
  - fu_engine_emulator_dispose
  - fu_engine_emulator_class_init
  - fu_engine_emulator_new
  source_file: /src/fwupd/src/fu-engine-emulator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-engine-emulator.c
      type_or_value: '"FuEngine"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*engine'
        type: FuEngine
      - name: '*phase_blobs'
        type: GHashTable
      item_type: struct
      name: _FuEngineEmulator
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/src/fu-engine-emulator.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-unix-seekable-input-stream.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UNIX_SEEKABLE_INPUT_STREAM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-unix-seekable-input-stream.h
      type_or_value: (fu_unix_seekable_input_stream_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-release-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_polkit_agent_func
  - main
  source_file: /src/fwupd/src/fu-polkit-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_config_report_from_flags
  - fu_engine_config_report_from_spec
  - fu_engine_config_reload
  - fu_engine_config_changed_cb
  - fu_engine_config_get_idle_timeout
  - fu_engine_config_get_disabled_devices
  - fu_engine_config_get_trusted_uids
  - fu_engine_config_get_trusted_reports
  - fu_engine_config_get_blocked_firmware
  - fu_engine_config_get_uri_scheme_prio
  - fu_engine_config_get_archive_size_max
  - fu_engine_config_get_disabled_plugins
  - fu_engine_config_get_approved_firmware
  - fu_engine_config_get_update_motd
  - fu_engine_config_get_ignore_power
  - fu_engine_config_get_only_trusted
  - fu_engine_config_get_show_device_private
  - fu_engine_config_get_test_devices
  - fu_engine_config_get_ignore_requirements
  - fu_engine_config_get_ignore_efivars_free_space
  - fu_engine_config_get_release_dedupe
  - fu_engine_config_get_release_priority
  - fu_engine_config_get_p2p_policy
  - fu_engine_config_get_enumerate_all_devices
  - fu_engine_config_get_require_immutable_enumeration
  - fu_engine_config_get_host_bkc
  - fu_engine_config_get_esp_location
  - fu_engine_config_archive_size_max_default
  - fu_engine_config_set_default
  - fu_engine_config_init
  - fu_engine_config_finalize
  - fu_engine_config_class_init
  - fu_engine_config_new
  source_file: /src/fwupd/src/fu-engine-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-engine-config.c
      type_or_value: '"FuEngineConfig"'
    structs:
    - fields:
      - name: parent_instance
        type: FuConfig
      - name: '*disabled_devices'
        type: GPtrArray
      - name: '*disabled_plugins'
        type: GPtrArray
      - name: '*approved_firmware'
        type: GPtrArray
      - name: '*blocked_firmware'
        type: GPtrArray
      - name: '*uri_schemes'
        type: GPtrArray
      - name: '*trusted_reports'
        type: GPtrArray
      - name: '*trusted_uids'
        type: GArray
      - name: '*host_bkc'
        type: gchar
      - name: '*esp_location'
        type: gchar
      item_type: struct
      name: _FuEngineConfig
      pos:
        line_end: 25
        line_start: 14
        source_file: /src/fwupd/src/fu-engine-config.c
    typedefs: []
    union: []
- function_names:
  - fu_main_sigterm_cb
  - fu_main_timed_exit_cb
  - fu_main_argv_changed_cb
  - fu_main_memory_monitor_warning_cb
  - fu_main_is_hypervisor
  - fu_main_is_container
  - main
  source_file: /src/fwupd/src/fu-main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-main.c
      type_or_value: '"FuMain"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_release_get_appstream_id
  - fu_release_get_filename
  - fu_release_get_version
  - fu_release_get_branch
  - fu_release_get_remote_id
  - fu_release_get_checksums
  - fu_release_get_reports
  - fu_release_get_flags
  - fu_release_add_flag
  - fu_release_has_flag
  - fu_release_add_tag
  - fu_release_add_metadata
  - fu_release_set_branch
  - fu_release_set_description
  - fu_release_set_flags
  - fu_release_set_filename
  - fu_release_add_metadata_item
  - fu_release_set_version
  - fu_release_set_protocol
  - fu_release_set_appstream_id
  - fu_release_add_checksum
  - fu_release_set_id
  - fu_release_set_remote_id
  - fu_release_set_filename
  - fu_release_get_metadata_item
  - fu_release_get_protocol
  - fu_release_get_metadata
  - fu_release_get_id
  source_file: /src/fwupd/src/fu-release.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RELEASE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/src/fu-release.h
      type_or_value: (fu_release_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cabinet_set_jcat_context
  - fu_cabinet_get_silo
  - fu_cabinet_add_file
  - fu_cabinet_parse_release
  - fu_cabinet_sort_cb
  - fu_cabinet_sort_priority_cb
  - _xb_builder_node_get_child_by_element_attr
  - fu_cabinet_ensure_container_checksum
  - fu_cabinet_ensure_container_checksum_cb
  - fu_cabinet_fixup_checksum_children
  - fu_cabinet_set_lowercase_checksum_cb
  - fu_cabinet_fixup_strip_inner_text_cb
  - fu_cabinet_build_silo_file
  - fu_cabinet_build_silo_metainfo
  - fu_cabinet_build_jcat_folder
  - fu_cabinet_build_silo_folder
  - fu_cabinet_build_silo
  - fu_cabinet_sign_filename
  - fu_cabinet_sign_enumerate_metainfo
  - fu_cabinet_sign_enumerate_firmware
  - fu_cabinet_sign
  - fu_cabinet_parse
  - fu_cabinet_get_components
  - fu_cabinet_get_component
  - fu_cabinet_init
  - fu_cabinet_finalize
  - fu_cabinet_class_init
  - fu_cabinet_new
  source_file: /src/fwupd/src/fu-cabinet.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-cabinet.c
      type_or_value: '"FuCabinet"'
    structs:
    - fields:
      - name: parent_instance
        type: FuCabFirmware
      - name: '*container_checksum'
        type: gchar
      - name: '*container_checksum_alt'
        type: gchar
      - name: '*builder'
        type: XbBuilder
      - name: '*silo'
        type: XbSilo
      - name: '*jcat_context'
        type: JcatContext
      - name: '*jcat_file'
        type: JcatFile
      item_type: struct
      name: _FuCabinet
      pos:
        line_end: 30
        line_start: 22
        source_file: /src/fwupd/src/fu-cabinet.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ENGINE_CONFIG
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-engine-config.h
      type_or_value: (fu_engine_config_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-device-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVICE_LIST
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-device-list.h
      type_or_value: (fu_device_list_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bluez_backend_object_properties_changed
  - fu_bluez_backend_object_properties_changed_cb
  - fu_bluez_backend_object_added
  - fu_bluez_backend_object_added_cb
  - fu_bluez_backend_object_removed_cb
  - fu_bluez_backend_helper_free
  - fu_bluez_backend_connect_cb
  - fu_bluez_backend_timeout_cb
  - fu_bluez_backend_setup
  - fu_bluez_backend_coldplug
  - fu_bluez_backend_finalize
  - fu_bluez_backend_init
  - fu_bluez_backend_class_init
  - fu_bluez_backend_new
  source_file: /src/fwupd/src/fu-bluez-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-bluez-backend.c
      type_or_value: '"FuBackend"'
    - item_type: preproc_def
      name: FU_BLUEZ_BACKEND_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/src/fu-bluez-backend.c
      type_or_value: '1500 '
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      - name: '*object_manager'
        type: GDBusObjectManager
      item_type: struct
      name: _FuBluezBackend
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/src/fu-bluez-backend.c
    - fields:
      - name: '*object_manager'
        type: GDBusObjectManager
      - name: '*loop'
        type: GMainLoop
      - name: '**error'
        type: GError
      - name: '*cancellable'
        type: GCancellable
      - name: timeout_id
        type: guint
      item_type: struct
      name: FuBluezBackendHelper
      pos:
        line_end: 135
        line_start: 129
        source_file: /src/fwupd/src/fu-bluez-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_console_color_format
  - fu_util_traverse_tree
  - fu_util_free_tree_cb
  - fu_util_free_node
  - fu_util_print_node
  - fu_util_is_interesting_child
  - fu_util_is_interesting_device
  - fu_util_get_user_cache_path
  - fu_util_update_shutdown
  - fu_util_update_reboot
  - fu_util_get_release_description_with_fallback
  - fu_util_prompt_warning
  - fu_util_prompt_complete
  - fu_util_cmd_free
  - fu_util_cmd_array_new
  - fu_util_cmd_sort_cb
  - fu_util_cmd_array_sort
  - fu_util_cmd_array_add
  - fu_util_cmd_array_run
  - fu_util_cmd_array_to_string
  - fu_util_branch_for_display
  - fu_util_release_get_name
  - fu_util_parse_filter_device_flags
  - fu_util_parse_filter_release_flags
  - fu_util_convert_description_head_cb
  - fu_util_convert_description_tail_cb
  - fu_util_convert_description
  - fu_util_time_to_str
  - fu_util_device_flag_to_string
  - fu_util_request_flag_to_string
  - fu_util_update_state_to_string
  - fu_util_device_problem_to_string
  - fu_util_device_to_string
  - fu_util_plugin_name_sort_cb
  - fu_util_plugin_flag_to_string
  - fu_util_plugin_flag_to_cli_text
  - fu_util_plugin_to_string
  - fu_util_license_to_string
  - fu_util_release_urgency_to_string
  - fu_util_release_flag_to_string
  - fu_util_report_add_string
  - fu_util_release_to_string
  - fu_util_remote_to_string
  - fu_util_request_get_message
  - fu_util_security_attr_result_to_string
  - fu_util_security_attr_get_result
  - fu_util_security_attr_append_str
  - fu_util_security_event_to_string
  - fu_util_security_events_to_string
  - fu_util_security_issues_to_string
  - fu_util_security_attrs_to_string
  - fu_util_sort_devices_by_flags_cb
  - fu_util_switch_branch_warning
  - fu_util_prompt_warning_fde
  - fu_util_show_unsupported_warning
  - fu_util_modify_remote_warning
  - fu_util_is_url
  - fu_util_print_builder
  - fu_util_print_error_as_json
  - fu_util_dependency_kind_to_string
  - fu_util_parse_project_dependency
  - fu_util_print_version_key_valid
  - fu_util_project_versions_as_json
  - fu_util_project_versions_to_string
  - fu_util_get_prgname
  source_file: /src/fwupd/src/fu-util-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-util-common.c
      type_or_value: '"FuMain"'
    structs:
    - fields:
      - name: '*client'
        type: FwupdClient
      - name: '*console'
        type: FuConsole
      item_type: struct
      name: FuUtilPrintTreeHelper
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/fwupd/src/fu-util-common.c
    - fields:
      - name: cnt
        type: guint
      - name: '*str'
        type: GString
      item_type: struct
      name: FuUtilConvertHelper
      pos:
        line_end: 880
        line_start: 877
        source_file: /src/fwupd/src/fu-util-common.c
    - fields:
      - name: '*appstream_id'
        type: gchar
      - name: result_old
        type: FwupdSecurityAttrResult
      - name: result_new
        type: FwupdSecurityAttrResult
      - name: '*text'
        type: gchar
      item_type: struct
      name: "items[] = {{FWUPD_SECURITY_ATTR_ID_IOMMU,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_FOUND,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t      /* TRANSLATORS: HSI event
        title */\n\t\t      _(\"IOMMU device protection enabled\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_IOMMU,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_FOUND,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"IOMMU device protection
        disabled\")},\n\t\t     /* ------------------------------------------*/\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_FWUPD_PLUGINS,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_TAINTED,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED,\n\t\t      NULL},\n\t\t     {FWUPD_SECURITY_ATTR_ID_FWUPD_PLUGINS,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_TAINTED,\n\t\t
        \     NULL},\n\t\t     {FWUPD_SECURITY_ATTR_ID_FWUPD_PLUGINS,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_UNKNOWN,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      NULL},\n\t\t     /*
        ------------------------------------------*/\n\t\t     {FWUPD_SECURITY_ATTR_ID_KERNEL_TAINTED,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_TAINTED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"Kernel is no longer
        tainted\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_KERNEL_TAINTED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_TAINTED,\n\t\t      /* TRANSLATORS: HSI event
        title */\n\t\t      _(\"Kernel is tainted\")},\n\t\t     /* ------------------------------------------*/\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_KERNEL_LOCKDOWN,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      /* TRANSLATORS: HSI
        event title */\n\t\t      _(\"Kernel lockdown disabled\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_KERNEL_LOCKDOWN,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"Kernel lockdown enabled\")},\n\t\t
        \    /* ------------------------------------------*/\n\t\t     {FWUPD_SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"Pre-boot DMA protection
        is disabled\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"Pre-boot DMA protection
        is enabled\")},\n\t\t     /* ------------------------------------------*/\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_UEFI_SECUREBOOT,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      /* TRANSLATORS: HSI
        event title */\n\t\t      _(\"Secure Boot disabled\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_SECUREBOOT,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_ENABLED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"Secure Boot enabled\")},\n\t\t
        \    /* ------------------------------------------*/\n\t\t     {FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_UNKNOWN,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_VALID,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"All TPM PCRs are valid\")},\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_VALID,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,\n\t\t      /* TRANSLATORS: HSI
        event title */\n\t\t      _(\"A TPM PCR is now an invalid value\")},\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_VALID,\n\t\t      /* TRANSLATORS: HSI event
        title */\n\t\t      _(\"All TPM PCRs are now valid\")},\n\t\t     /* ------------------------------------------*/\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_FOUND,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,\n\t\t      /* TRANSLATORS: HSI
        event title */\n\t\t      _(\"TPM PCR0 reconstruction is invalid\")},\n\t\t
        \    {FWUPD_SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_VALID,\n\t\t      /* TRANSLATORS: HSI event
        title */\n\t\t      _(\"TPM PCR0 reconstruction is now valid\")},\n\t\t     /*
        ------------------------------------------*/\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_LOCKED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"UEFI memory protection
        enabled but not locked\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_LOCKED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"UEFI memory protection
        enabled and locked\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_NOT_LOCKED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_LOCKED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"UEFI memory protection
        is now locked\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_LOCKED,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_LOCKED,\n\t\t
        \     /* TRANSLATORS: HSI event title */\n\t\t      _(\"UEFI memory protection
        is now unlocked\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_UEFI_DB,\n\t\t      FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,\n\t\t
        \     FWUPD_SECURITY_ATTR_RESULT_VALID,\n\t\t      /* TRANSLATORS: HSI event
        title */\n\t\t      _(\"The UEFI certificate store is now up to date\")},\n\t\t
        \    {NULL, 0, 0, NULL}}"
      pos:
        line_end: 2305
        line_start: 2300
        source_file: /src/fwupd/src/fu-util-common.c
    typedefs:
    - item_type: typedef
      name: FuUtilDependencyKind
      pos:
        line_end: 2885
        line_start: 2881
        source_file: /src/fwupd/src/fu-util-common.c
    union: []
- function_names:
  - fu_idle_check_cb
  - fu_idle_start
  - fu_idle_stop
  - fu_idle_emit_inhibit_changed
  - fu_idle_reset
  - fu_idle_uninhibit
  - fu_idle_inhibit
  - fu_idle_has_inhibit
  - fu_idle_set_timeout
  - fu_idle_item_free
  - fu_idle_locker_new
  - fu_idle_locker_free
  - fu_idle_class_init
  - fu_idle_init
  - fu_idle_finalize
  - fu_idle_new
  source_file: /src/fwupd/src/fu-idle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-idle.c
      type_or_value: '"FuIdle"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*items'
        type: GPtrArray
      - name: idle_id
        type: guint
      - name: timeout
        type: guint
      - name: inhibit_old
        type: FuIdleInhibit
      item_type: struct
      name: _FuIdle
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/fwupd/src/fu-idle.c
    - fields:
      - name: inhibit
        type: FuIdleInhibit
      - name: '*reason'
        type: gchar
      - name: token
        type: guint32
      item_type: struct
      name: FuIdleItem
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/fwupd/src/fu-idle.c
    typedefs: []
    union: []
- function_names:
  - fu_engine_request_add_string
  - fu_engine_request_codec_iface_init
  - fu_engine_request_get_sender
  - fu_engine_request_get_feature_flags
  - fu_engine_request_get_locale
  - fu_engine_request_add_flag
  - fu_engine_request_has_flag
  - fu_engine_request_set_feature_flags
  - fu_engine_request_set_locale
  - fu_engine_request_has_feature_flag
  - fu_engine_request_get_converter_flags
  - fu_engine_request_set_converter_flags
  - fu_engine_request_has_converter_flag
  - fu_engine_request_init
  - fu_engine_request_finalize
  - fu_engine_request_class_init
  - fu_engine_request_new
  source_file: /src/fwupd/src/fu-engine-request.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-engine-request.c
      type_or_value: '"FuEngine"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: flags
        type: FuEngineRequestFlag
      - name: feature_flags
        type: FwupdFeatureFlags
      - name: converter_flags
        type: FwupdCodecFlags
      - name: '*sender'
        type: gchar
      - name: '*locale'
        type: gchar
      item_type: struct
      name: _FuEngineRequest
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/src/fu-engine-request.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-console.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CONSOLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-console.h
      type_or_value: (fu_console_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuConsoleColor
      pos:
        line_end: 22
        line_start: 13
        source_file: /src/fwupd/src/fu-console.h
    - item_type: typedef
      name: FuConsolePrintFlags
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/fwupd/src/fu-console.h
    union: []
- function_names:
  - fu_device_list_emit_device_added
  - fu_device_list_emit_device_removed
  - fu_device_list_emit_device_changed
  - fu_device_list_add_string
  - fu_device_list_get_children
  - fu_device_list_depsolve_order_full
  - fu_device_list_depsolve_order
  - fu_device_list_get_all
  - fu_device_list_get_active
  - fu_device_list_find_by_device
  - fu_device_list_find_by_guid
  - fu_device_list_find_by_connection
  - fu_device_list_item_sort_by_priority_cb
  - fu_device_list_filter_by_id
  - fu_device_list_find_by_id
  - fu_device_list_get_old
  - fu_device_list_get_by_guids_removed
  - fu_device_list_device_delayed_remove_cb
  - fu_device_list_remove_with_delay
  - fu_device_list_should_remove_with_delay
  - fu_device_list_remove
  - fu_device_list_remove_all
  - fu_device_list_add_missing_guids
  - fu_device_list_item_finalized_cb
  - fu_device_list_item_set_device_old
  - fu_device_list_item_set_device
  - fu_device_list_clear_wait_for_replug
  - _fu_device_incorporate_problem_update_in_progress
  - fu_device_list_replace
  - fu_device_list_add
  - fu_device_list_get_by_guid
  - fu_device_list_get_wait_for_replug
  - fu_device_list_wait_for_replug
  - fu_device_list_get_by_id
  - fu_device_list_item_free
  - fu_device_list_codec_iface_init
  - fu_device_list_dispose
  - fu_device_list_class_init
  - fu_device_list_init
  - fu_device_list_finalize
  - fu_device_list_new
  source_file: /src/fwupd/src/fu-device-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-device-list.c
      type_or_value: '"FuDeviceList"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*devices'
        type: GPtrArray
      - name: devices_mutex
        type: GRWLock
      item_type: struct
      name: _FuDeviceList
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/fwupd/src/fu-device-list.c
    - fields:
      - name: '*device'
        type: FuDevice
      - name: '*device_old'
        type: FuDevice
      - name: '*self'
        type: FuDeviceList
      - name: remove_id
        type: guint
      item_type: struct
      name: FuDeviceItem
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/fwupd/src/fu-device-list.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-cabinet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CABINET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/src/fu-cabinet.h
      type_or_value: (fu_cabinet_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuCabinetSignFlags
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/fwupd/src/fu-cabinet.h
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-history.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PENDING
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-history.h
      type_or_value: (fu_history_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_get_release_with_tag
  - fu_engine_update_motd
  - fu_engine_update_devices_file
  - fu_engine_integrity_add_measurement
  - fu_engine_integrity_measure_acpi
  - fu_engine_integrity_measure_uefi
  - fu_engine_integrity_new
  - fu_engine_integrity_to_string
  - fu_engine_error_array_find
  - fu_engine_error_array_count
  - fu_engine_error_array_matches_any
  - fu_engine_error_array_get_best
  - fu_engine_build_machine_id
  source_file: /src/fwupd/src/fu-engine-helper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/src/fu-engine-helper.c
      type_or_value: '"FuEngine"'
    structs:
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      item_type: struct
      name: "keys[] = {\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"BootCurrent\"},\n\t
        \   {FU_EFIVARS_GUID_EFI_GLOBAL, \"KEK\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"KEKDefault\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"OsIndications\"},\n\t
        \   {FU_EFIVARS_GUID_EFI_GLOBAL, \"OsIndicationsSupported\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"PK\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"PKDefault\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"SecureBoot\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"SetupMode\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"SignatureSupport\"},\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"VendorKeys\"},\n\t
        \   {FU_EFIVARS_GUID_SECURITY_DATABASE, \"db\"},\n\t    {FU_EFIVARS_GUID_SECURITY_DATABASE,
        \"dbDefault\"},\n\t    {FU_EFIVARS_GUID_SECURITY_DATABASE, \"dbx\"},\n\t    {FU_EFIVARS_GUID_SECURITY_DATABASE,
        \"dbxDefault\"},\n\t}"
      pos:
        line_end: 231
        line_start: 228
        source_file: /src/fwupd/src/fu-engine-helper.c
    typedefs: []
    union: []
- function_names:
  - fu_udev_backend_to_string
  - fu_udev_backend_rescan_dpaux_device
  - fu_udev_backend_rescan_dpaux_devices_cb
  - fu_udev_backend_rescan_dpaux_devices
  - fu_udev_backend_create_ddc_proxy
  - fu_udev_backend_get_gtype_for_subsystem_devtype
  - fu_udev_backend_create_device_for_donor
  - fu_udev_backend_create_device
  - fu_udev_backend_device_add_from_device
  - fu_udev_backend_device_remove
  - fu_udev_backend_device_number_sort_cb
  - fu_udev_backend_coldplug_subsystem
  - fu_udev_backend_netlink_parse_blob
  - fu_udev_backend_netlink_cb
  - fu_udev_backend_netlink_setup
  - fu_udev_backend_coldplug
  - fu_udev_backend_setup
  - fu_udev_backend_get_device_parent
  - fu_udev_backend_create_device_impl
  - fu_udev_backend_finalize
  - fu_udev_backend_init
  - fu_udev_backend_class_init
  - fu_udev_backend_new
  source_file: /src/fwupd/src/fu-udev-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-udev-backend.c
      type_or_value: '"FuBackend"'
    - item_type: preproc_def
      name: FU_UDEV_BACKEND_DPAUX_RESCAN_DELAY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/src/fu-udev-backend.c
      type_or_value: '5 '
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      - name: netlink_fd
        type: gint
      - name: '*map_paths'
        type: GHashTable
      - name: '*dpaux_devices'
        type: GPtrArray
      - name: dpaux_devices_rescan_id
        type: guint
      - name: done_coldplug
        type: gboolean
      item_type: struct
      name: _FuUdevBackend
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/fwupd/src/fu-udev-backend.c
    - fields:
      - name: '*subsystem'
        type: gchar
      - name: '*devtype'
        type: gchar
      - name: gtype
        type: GType
      item_type: struct
      name: "map[] = {\n\t    {\"mei\", NULL, FU_TYPE_MEI_DEVICE},\n\t    {\"drm\",
        NULL, FU_TYPE_DRM_DEVICE},\n\t    {\"usb\", \"usb_device\", FU_TYPE_USB_DEVICE},\n\t
        \   {\"i2c\", NULL, FU_TYPE_I2C_DEVICE},\n\t    {\"i2c-dev\", NULL, FU_TYPE_I2C_DEVICE},\n\t
        \   {\"drm_dp_aux_dev\", NULL, FU_TYPE_DPAUX_DEVICE},\n\t    {\"hidraw\",
        NULL, FU_TYPE_HIDRAW_DEVICE},\n\t    {\"block\", \"disk\", FU_TYPE_BLOCK_DEVICE},\n\t
        \   {\"block\", \"partition\", FU_TYPE_BLOCK_PARTITION},\n\t    {\"serio\",
        NULL, FU_TYPE_SERIO_DEVICE},\n\t    {\"pci\", NULL, FU_TYPE_PCI_DEVICE},\n\t
        \   {\"video4linux\", NULL, FU_TYPE_V4L_DEVICE},\n\t}"
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/fwupd/src/fu-udev-backend.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-util-bios-setting.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ENGINE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/src/fu-engine.h
      type_or_value: (fu_engine_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuEngineLoadFlags
      pos:
        line_end: 52
        line_start: 38
        source_file: /src/fwupd/src/fu-engine.h
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-security-attr-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_util_client_notify_cb
  - fu_util_update_device_request_cb
  - fu_util_update_device_changed_cb
  - fu_util_prompt_for_device
  - fu_util_perhaps_show_unreported
  - fu_util_build_device_tree_node
  - fu_util_build_device_tree_cb
  - fu_util_build_device_tree
  - fu_util_get_releases_as_json
  - fu_util_get_devices_as_json
  - fu_util_check_reboot_needed
  - fu_util_get_devices
  - fu_util_get_plugins
  - fu_util_download_if_required
  - fu_util_display_current_message
  - fu_util_device_test_helper_free
  - fu_util_device_test_helper_new
  - fu_util_filter_devices
  - fu_util_device_test_component
  - fu_util_device_test_remove_emulated_devices
  - fu_util_maybe_expand_basename
  - fu_util_device_test_step
  - fu_util_device_test_filename
  - fu_util_inhibit_helper_free
  - fu_util_inhibit_timeout_cb
  - fu_util_inhibit
  - fu_util_uninhibit
  - fu_util_device_wait_added_cb
  - fu_util_device_wait_timeout_cb
  - fu_util_device_wait
  - fu_util_quit
  - fu_util_device_test_full
  - fu_util_device_emulate
  - fu_util_device_test
  - fu_util_download
  - fu_util_local_install
  - fu_util_get_details
  - fu_util_report_history_for_remote
  - fu_util_report_history_force
  - fu_util_report_export
  - fu_util_report_history_full
  - fu_util_report_history
  - fu_util_get_history
  - fu_util_get_device_by_id
  - fu_util_get_device_or_prompt
  - fu_util_get_release_for_device_version
  - fu_util_clear_results
  - fu_util_verify_update
  - fu_util_download_metadata_enable_lvfs
  - fu_util_check_oldest_remote
  - fu_util_download_metadata
  - fu_util_refresh
  - fu_util_get_results
  - fu_util_get_releases
  - fu_util_prompt_for_release
  - fu_util_verify
  - fu_util_unlock
  - fu_util_perhaps_refresh_remotes
  - fu_util_get_updates_as_json
  - fu_util_get_updates
  - fu_util_get_remotes
  - fu_util_get_release_with_tag
  - fu_util_get_release_with_branch
  - fu_util_prompt_warning_bkc
  - fu_util_prompt_warning_composite
  - fu_util_update_device_with_release
  - fu_util_maybe_send_reports
  - fu_util_update
  - fu_util_remote_modify
  - fu_util_remote_enable
  - fu_util_remote_disable
  - fu_util_downgrade
  - fu_util_reinstall
  - fu_util_install
  - _g_str_equal0
  - fu_util_switch_branch
  - fu_util_activate
  - fu_util_set_approved_firmware
  - fu_util_get_checksums_as_json
  - fu_util_get_approved_firmware
  - fu_util_modify_config
  - fu_util_reset_config
  - fu_util_get_remote_with_report_uri
  - fu_util_upload_security
  - fu_util_security_as_json
  - fu_util_sync
  - fu_util_security_fix_attr
  - fu_util_security
  - fu_util_ignore_cb
  - fu_util_sigint_cb
  - fu_util_setup_signal_handlers
  - fu_util_private_free
  - fu_util_check_daemon_version
  - fu_util_check_polkit_actions
  - fu_util_get_history_checksum
  - fu_util_block_firmware
  - fu_util_unblock_firmware
  - fu_util_get_blocked_firmware
  - fu_util_show_plugin_warnings
  - fu_util_set_bios_setting
  - fu_util_get_bios_setting
  - fu_util_security_fix
  - fu_util_report_devices
  - fu_util_security_undo
  - fu_util_emulation_tag
  - fu_util_emulation_untag
  - fu_util_emulation_save
  - fu_util_emulation_load
  - fu_util_version
  - fu_util_setup_interactive
  - fu_util_cancelled_cb
  - fu_util_print_error
  - main
  source_file: /src/fwupd/src/fu-util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-util.c
      type_or_value: '"FuMain"'
    structs:
    - fields:
      - name: '*cancellable'
        type: GCancellable
      - name: '*main_ctx'
        type: GMainContext
      - name: '*loop'
        type: GMainLoop
      - name: '*context'
        type: GOptionContext
      - name: flags
        type: FwupdInstallFlags
      - name: download_flags
        type: FwupdClientDownloadFlags
      - name: '*client'
        type: FwupdClient
      - name: '*console'
        type: FuConsole
      - name: no_remote_check
        type: gboolean
      - name: no_metadata_check
        type: gboolean
      - name: no_reboot_check
        type: gboolean
      - name: no_unreported_check
        type: gboolean
      - name: no_safety_check
        type: gboolean
      - name: no_device_prompt
        type: gboolean
      - name: no_emulation_check
        type: gboolean
      - name: no_security_fix
        type: gboolean
      - name: assume_yes
        type: gboolean
      - name: sign
        type: gboolean
      - name: show_all
        type: gboolean
      - name: disable_ssl_strict
        type: gboolean
      - name: as_json
        type: gboolean
      - name: current_operation
        type: FuUtilOperation
      - name: '*current_device'
        type: FwupdDevice
      - name: '*post_requests'
        type: GPtrArray
      - name: completion_flags
        type: FwupdDeviceFlags
      - name: filter_device_include
        type: FwupdDeviceFlags
      - name: filter_device_exclude
        type: FwupdDeviceFlags
      - name: filter_release_include
        type: FwupdReleaseFlags
      - name: filter_release_exclude
        type: FwupdReleaseFlags
      item_type: struct
      name: FuUtil
      pos:
        line_end: 76
        line_start: 45
        source_file: /src/fwupd/src/fu-util.c
    - fields:
      - name: nr_success
        type: guint
      - name: nr_missing
        type: guint
      - name: nr_skipped
        type: guint
      - name: '*builder'
        type: JsonBuilder
      - name: '*name'
        type: gchar
      - name: use_emulation
        type: gboolean
      - name: '*report_metadata'
        type: GHashTable
      item_type: struct
      name: FuUtilDeviceTestHelper
      pos:
        line_end: 765
        line_start: 757
        source_file: /src/fwupd/src/fu-util.c
    - fields:
      - name: '*self'
        type: FuUtil
      - name: '*inhibit_id'
        type: gchar
      item_type: struct
      name: FuUtilInhibitHelper
      pos:
        line_end: 1234
        line_start: 1231
        source_file: /src/fwupd/src/fu-util.c
    - fields:
      - name: '*self'
        type: FuUtil
      - name: '*value'
        type: gchar
      - name: '*device'
        type: FwupdDevice
      item_type: struct
      name: FuUtilWaitHelper
      pos:
        line_end: 1333
        line_start: 1329
        source_file: /src/fwupd/src/fu-util.c
    typedefs:
    - item_type: typedef
      name: FuUtilOperation
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/fwupd/src/fu-util.c
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-daemon.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DAEMON
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-daemon.h
      type_or_value: (fu_daemon_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: "(*setup)(FuDaemon *self,\n\t\t\t  const gchar *socket_address,\n\t\t\t
          \ FuProgress *progress,\n\t\t\t  GError **error)"
        type: gboolean
      - name: (*start)(FuDaemon *self, GError **error)
        type: gboolean
      - name: (*stop)(FuDaemon *self, GError **error)
        type: gboolean
      item_type: struct
      name: _FuDaemonClass
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/fwupd/src/fu-daemon.h
    typedefs: []
    union: []
- function_names:
  - fu_console_setup
  - fu_console_erase_line
  - fu_console_reset_line
  - fu_console_print_kv
  - readline
  - fu_console_input_uint
  - fu_console_input_bool
  - fu_console_strsplit_words
  - fu_console_box_line
  - fu_console_line
  - fu_console_box
  - fu_console_status_to_string
  - _fu_status_is_predictable
  - fu_console_estimate_ready
  - fu_console_time_remaining_str
  - fu_console_refresh
  - fu_console_print_full
  - fu_console_print_literal
  - fu_console_print
  - fu_console_set_progress_title
  - fu_console_set_main_context
  - fu_console_spin_inc
  - fu_console_spin_cb
  - fu_console_spin_end
  - fu_console_spin_start
  - fu_console_set_progress
  - fu_console_set_interactive
  - fu_console_set_status_length
  - fu_console_set_percentage_length
  - fu_console_beep
  - fu_console_init
  - fu_console_finalize
  - fu_console_class_init
  - fu_console_new
  source_file: /src/fwupd/src/fu-console.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/src/fu-console.c
      type_or_value: '"FuProgressBar"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*main_ctx'
        type: GMainContext
      - name: status
        type: FwupdStatus
      - name: spinner_count_up
        type: gboolean
      - name: spinner_idx
        type: guint
      - name: length_percentage
        type: guint
      - name: length_status
        type: guint
      - name: percentage
        type: guint
      - name: '*timer_source'
        type: GSource
      - name: last_animated
        type: gint64
      - name: '*time_elapsed'
        type: GTimer
      - name: last_estimate
        type: gdouble
      - name: interactive
        type: gboolean
      - name: contents_to_clear
        type: gboolean
      item_type: struct
      name: _FuConsole
      pos:
        line_end: 40
        line_start: 25
        source_file: /src/fwupd/src/fu-console.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_report_get_created
  - fwupd_report_set_created
  - fwupd_report_get_version_old
  - fwupd_report_set_version_old
  - fwupd_report_get_vendor
  - fwupd_report_set_vendor
  - fwupd_report_get_vendor_id
  - fwupd_report_set_vendor_id
  - fwupd_report_get_device_name
  - fwupd_report_set_device_name
  - fwupd_report_get_distro_id
  - fwupd_report_set_distro_id
  - fwupd_report_get_distro_variant
  - fwupd_report_set_distro_variant
  - fwupd_report_get_remote_id
  - fwupd_report_set_remote_id
  - fwupd_report_get_distro_version
  - fwupd_report_set_distro_version
  - fwupd_report_get_metadata
  - fwupd_report_add_metadata_item
  - fwupd_report_get_metadata_item
  - fwupd_report_add_variant
  - fwupd_report_from_key_value
  - fwupd_report_add_json
  - fwupd_report_string_append_flags
  - fwupd_report_add_string
  - fwupd_report_get_flags
  - fwupd_report_set_flags
  - fwupd_report_add_flag
  - fwupd_report_remove_flag
  - fwupd_report_has_flag
  - fwupd_report_flag_to_string
  - fwupd_report_flag_from_string
  - fwupd_report_get_property
  - fwupd_report_set_property
  - fwupd_report_init
  - fwupd_report_finalize
  - fwupd_report_class_init
  - fwupd_report_from_variant_iter
  - fwupd_report_codec_iface_init
  - fwupd_report_new
  source_file: /src/fwupd/libfwupd/fwupd-report.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: created
        type: guint64
      - name: '*version_old'
        type: gchar
      - name: '*vendor'
        type: gchar
      - name: vendor_id
        type: guint32
      - name: '*device_name'
        type: gchar
      - name: '*distro_id'
        type: gchar
      - name: '*distro_version'
        type: gchar
      - name: '*metadata'
        type: GHashTable
      - name: '*distro_variant'
        type: gchar
      - name: '*remote_id'
        type: gchar
      - name: flags
        type: FwupdReportFlags
      item_type: struct
      name: FwupdReportPrivate
      pos:
        line_end: 39
        line_start: 27
        source_file: /src/fwupd/libfwupd/fwupd-report.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-codec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_CODEC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupd/fwupd-codec.h
      type_or_value: (fwupd_codec_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: (*add_string)(FwupdCodec *self, guint idt, GString *str)
        type: void
      - name: '*(*to_string)(FwupdCodec *self)'
        type: gchar
      - name: (*add_json)(FwupdCodec *self, JsonBuilder *builder, FwupdCodecFlags
          flags)
        type: void
      - name: (*from_json)(FwupdCodec *self, JsonNode *json_node, GError **error)
        type: gboolean
      - name: (*add_variant)(FwupdCodec *self, GVariantBuilder *builder, FwupdCodecFlags
          flags)
        type: void
      - name: '*(*to_variant)(FwupdCodec *self, FwupdCodecFlags flags)'
        type: GVariant
      - name: (*from_variant)(FwupdCodec *self, GVariant *value, GError **error)
        type: gboolean
      - name: (*from_variant_iter)(FwupdCodec *self, GVariantIter *iter)
        type: void
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdCodecInterface
      pos:
        line_end: 66
        line_start: 48
        source_file: /src/fwupd/libfwupd/fwupd-codec.h
    typedefs:
    - item_type: typedef
      name: FwupdCodecFlags
      pos:
        line_end: 46
        line_start: 21
        source_file: /src/fwupd/libfwupd/fwupd-codec.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-release.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_RELEASE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupd/fwupd-release.h
      type_or_value: (fwupd_release_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdReleaseClass
      pos:
        line_end: 26
        line_start: 16
        source_file: /src/fwupd/libfwupd/fwupd-release.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_request_kind_to_string
  - fwupd_request_kind_from_string
  - fwupd_request_flag_to_string
  - fwupd_request_flag_from_string
  - fwupd_request_emit_invalidate
  - fwupd_request_get_id
  - fwupd_request_set_id
  - fwupd_request_get_device_id
  - fwupd_request_set_device_id
  - fwupd_request_get_created
  - fwupd_request_set_created
  - fwupd_request_add_variant
  - fwupd_request_from_key_value
  - fwupd_request_get_message
  - fwupd_request_set_message
  - fwupd_request_get_image
  - fwupd_request_set_image
  - fwupd_request_get_kind
  - fwupd_request_set_kind
  - fwupd_request_get_flags
  - fwupd_request_set_flags
  - fwupd_request_add_flag
  - fwupd_request_remove_flag
  - fwupd_request_has_flag
  - fwupd_request_add_string
  - fwupd_request_get_property
  - fwupd_request_set_property
  - fwupd_request_finalize
  - fwupd_request_init
  - fwupd_request_class_init
  - fwupd_request_from_variant_iter
  - fwupd_request_codec_iface_init
  - fwupd_request_new
  source_file: /src/fwupd/libfwupd/fwupd-request.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*id'
        type: gchar
      - name: kind
        type: FwupdRequestKind
      - name: flags
        type: FwupdRequestFlags
      - name: created
        type: guint64
      - name: '*device_id'
        type: gchar
      - name: '*message'
        type: gchar
      - name: '*image'
        type: gchar
      item_type: struct
      name: FwupdRequestPrivate
      pos:
        line_end: 29
        line_start: 21
        source_file: /src/fwupd/libfwupd/fwupd-request.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-remote-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-request-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_bios_setting_get_id
  - fwupd_bios_setting_set_id
  - fwupd_bios_setting_get_read_only
  - fwupd_bios_setting_set_read_only
  - fwupd_bios_setting_get_lower_bound
  - fwupd_bios_setting_get_upper_bound
  - fwupd_bios_setting_get_scalar_increment
  - fwupd_bios_setting_set_upper_bound
  - fwupd_bios_setting_set_lower_bound
  - fwupd_bios_setting_set_scalar_increment
  - fwupd_bios_setting_get_kind
  - fwupd_bios_setting_set_kind
  - fwupd_bios_setting_set_name
  - fwupd_bios_setting_set_path
  - fwupd_bios_setting_set_description
  - fwupd_bios_setting_key_is_positive
  - fwupd_bios_setting_key_is_negative
  - fwupd_bios_setting_map_possible_value
  - fwupd_bios_setting_has_possible_value
  - fwupd_bios_setting_add_possible_value
  - fwupd_bios_setting_get_possible_values
  - fwupd_bios_setting_get_name
  - fwupd_bios_setting_get_path
  - fwupd_bios_setting_get_description
  - fwupd_bios_setting_get_current_value
  - fwupd_bios_setting_set_current_value
  - _fu_strtoull_simple
  - fwupd_bios_setting_validate_value
  - fwupd_bios_setting_write_value
  - fwupd_bios_setting_trusted
  - fwupd_bios_setting_add_variant
  - fwupd_bios_setting_from_key_value
  - fwupd_bios_setting_from_json
  - fwupd_bios_setting_add_json
  - fwupd_bios_setting_add_string
  - fwupd_bios_setting_class_init
  - fwupd_bios_setting_init
  - fwupd_bios_setting_finalize
  - fwupd_bios_setting_from_variant_iter
  - fwupd_bios_setting_codec_iface_init
  - fwupd_bios_setting_new
  source_file: /src/fwupd/libfwupd/fwupd-bios-setting.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: FwupdBiosSettingKind
      - name: '*id'
        type: gchar
      - name: '*name'
        type: gchar
      - name: '*description'
        type: gchar
      - name: '*path'
        type: gchar
      - name: '*current_value'
        type: gchar
      - name: lower_bound
        type: guint64
      - name: upper_bound
        type: guint64
      - name: scalar_increment
        type: guint64
      - name: read_only
        type: gboolean
      - name: '*possible_values'
        type: GPtrArray
      item_type: struct
      name: FwupdBiosSettingPrivate
      pos:
        line_end: 35
        line_start: 23
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-client.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_CLIENT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupd/fwupd-client.h
      type_or_value: (fwupd_client_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*changed)(FwupdClient *client)
        type: void
      - name: (*status_changed)(FwupdClient *client, FwupdStatus status)
        type: void
      - name: (*device_added)(FwupdClient *client, FwupdDevice *result)
        type: void
      - name: (*device_removed)(FwupdClient *client, FwupdDevice *result)
        type: void
      - name: (*device_changed)(FwupdClient *client, FwupdDevice *result)
        type: void
      - name: (*device_request)(FwupdClient *client, FwupdRequest *request)
        type: void
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      item_type: struct
      name: _FwupdClientClass
      pos:
        line_end: 37
        line_start: 22
        source_file: /src/fwupd/libfwupd/fwupd-client.h
    typedefs:
    - item_type: typedef
      name: FwupdClientDownloadFlags
      pos:
        line_end: 63
        line_start: 44
        source_file: /src/fwupd/libfwupd/fwupd-client.h
    - item_type: typedef
      name: FwupdClientUploadFlags
      pos:
        line_end: 89
        line_start: 70
        source_file: /src/fwupd/libfwupd/fwupd-client.h
    union: []
- function_names:
  - fwupd_status_to_string
  - fwupd_status_from_string
  - fwupd_device_flag_to_string
  - fwupd_device_flag_from_string
  - fwupd_device_problem_to_string
  - fwupd_device_problem_from_string
  - fwupd_plugin_flag_to_string
  - fwupd_plugin_flag_from_string
  - fwupd_update_state_to_string
  - fwupd_update_state_from_string
  - fwupd_feature_flag_to_string
  - fwupd_feature_flag_from_string
  - fwupd_release_flag_to_string
  - fwupd_release_flag_from_string
  - fwupd_release_urgency_to_string
  - fwupd_release_urgency_from_string
  - fwupd_version_format_from_string
  - fwupd_version_format_to_string
  - fwupd_install_flags_from_string
  - fwupd_install_flags_to_string
  source_file: /src/fwupd/libfwupd/fwupd-enums.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_DEVICE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/libfwupd/fwupd-device.h
      type_or_value: (fwupd_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdDeviceClass
      pos:
        line_end: 29
        line_start: 19
        source_file: /src/fwupd/libfwupd/fwupd-device.h
    typedefs: []
    union: []
- function_names:
  - fwupd_client_helper_free
  - fwupd_client_helper_new
  - fwupd_client_connect_cb
  - fwupd_client_connect
  - fwupd_client_quit_cb
  - fwupd_client_quit
  - fwupd_client_get_devices_cb
  - fwupd_client_get_devices
  - fwupd_client_get_plugins_cb
  - fwupd_client_get_plugins
  - fwupd_client_get_history_cb
  - fwupd_client_get_history
  - fwupd_client_get_releases_cb
  - fwupd_client_get_releases
  - fwupd_client_get_downgrades_cb
  - fwupd_client_get_downgrades
  - fwupd_client_get_upgrades_cb
  - fwupd_client_get_upgrades
  - fwupd_client_get_details_bytes_cb
  - fwupd_client_get_details_bytes
  - fwupd_client_get_details_cb
  - fwupd_client_get_details
  - fwupd_client_verify_cb
  - fwupd_client_verify
  - fwupd_client_verify_update_cb
  - fwupd_client_verify_update
  - fwupd_client_unlock_cb
  - fwupd_client_unlock
  - fwupd_client_inhibit_cb
  - fwupd_client_inhibit
  - fwupd_client_uninhibit_cb
  - fwupd_client_uninhibit
  - fwupd_client_modify_config_cb
  - fwupd_client_modify_config
  - fwupd_client_reset_config_cb
  - fwupd_client_reset_config
  - fwupd_client_activate_cb
  - fwupd_client_activate
  - fwupd_client_clear_results_cb
  - fwupd_client_clear_results
  - fwupd_client_get_results_cb
  - fwupd_client_get_results
  - fwupd_client_modify_bios_setting_cb
  - fwupd_client_modify_bios_setting
  - fwupd_client_get_bios_settings_cb
  - fwupd_client_get_bios_settings
  - fwupd_client_get_host_security_attrs_cb
  - fwupd_client_get_host_security_attrs
  - fwupd_client_get_host_security_events_cb
  - fwupd_client_get_host_security_events
  - fwupd_client_get_device_by_id_cb
  - fwupd_client_get_device_by_id
  - fwupd_client_get_devices_by_guid_cb
  - fwupd_client_get_devices_by_guid
  - fwupd_client_install_fd_cb
  - fwupd_client_install
  - fwupd_client_install_bytes_cb
  - fwupd_client_install_bytes
  - fwupd_client_install_release_cb
  - fwupd_client_install_release
  - fwupd_client_update_metadata_cb
  - fwupd_client_update_metadata
  - fwupd_client_update_metadata_bytes_cb
  - fwupd_client_update_metadata_bytes
  - fwupd_client_refresh_remote_cb
  - fwupd_client_refresh_remote
  - fwupd_client_modify_remote_cb
  - fwupd_client_modify_remote
  - fwupd_client_get_report_metadata_cb
  - fwupd_client_get_report_metadata
  - fwupd_client_modify_device_cb
  - fwupd_client_modify_device
  - fwupd_client_get_remotes_cb
  - fwupd_client_get_remotes
  - fwupd_client_get_remote_by_id_noref
  - fwupd_client_get_remote_by_id
  - fwupd_client_get_approved_firmware_cb
  - fwupd_client_get_approved_firmware
  - fwupd_client_set_approved_firmware_cb
  - fwupd_client_set_approved_firmware
  - fwupd_client_get_blocked_firmware_cb
  - fwupd_client_get_blocked_firmware
  - fwupd_client_set_blocked_firmware_cb
  - fwupd_client_set_blocked_firmware
  - fwupd_client_set_feature_flags_cb
  - fwupd_client_set_feature_flags
  - fwupd_client_self_sign_cb
  - fwupd_client_self_sign
  - fwupd_client_download_bytes_cb
  - fwupd_client_download_bytes
  - fwupd_client_download_file
  - fwupd_client_upload_bytes_cb
  - fwupd_client_upload_bytes
  - fwupd_client_upload_report_cb
  - fwupd_client_upload_report
  - fwupd_client_emulation_load_cb
  - fwupd_client_emulation_load
  - fwupd_client_emulation_save_cb
  - fwupd_client_emulation_save
  - fwupd_client_fix_host_security_attr_cb
  - fwupd_client_fix_host_security_attr
  - fwupd_client_undo_host_security_attr_cb
  - fwupd_client_undo_host_security_attr
  source_file: /src/fwupd/libfwupd/fwupd-client-sync.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ret
        type: gboolean
      - name: '*str'
        type: gchar
      - name: '*error'
        type: GError
      - name: '*array'
        type: GPtrArray
      - name: '*context'
        type: GMainContext
      - name: '*loop'
        type: GMainLoop
      - name: '*val'
        type: GVariant
      - name: '*hash'
        type: GHashTable
      - name: '*bytes'
        type: GBytes
      - name: '*device'
        type: FwupdDevice
      item_type: struct
      name: FwupdClientHelper
      pos:
        line_end: 29
        line_start: 18
        source_file: /src/fwupd/libfwupd/fwupd-client-sync.c
    typedefs: []
    union: []
- function_names:
  - fwupd_codec_default_init
  - fwupd_codec_add_string_from_json_node
  - fwupd_codec_add_string
  - fwupd_codec_to_string
  - fwupd_codec_from_json
  - fwupd_codec_from_json_string
  - fwupd_codec_to_json
  - fwupd_codec_to_json_string
  - fwupd_codec_from_variant
  - fwupd_codec_array_from_variant
  - fwupd_codec_array_to_json
  - fwupd_codec_array_to_variant
  - fwupd_codec_to_variant
  - _fu_strwidth
  - fwupd_codec_string_append
  - fwupd_codec_string_append_int
  - fwupd_codec_string_append_hex
  - fwupd_codec_string_append_bool
  - fwupd_codec_string_append_time
  - fwupd_codec_string_append_size
  - fwupd_codec_json_append
  - fwupd_codec_json_append_int
  - fwupd_codec_json_append_bool
  - fwupd_codec_json_append_strv
  - fwupd_codec_json_append_map
  source_file: /src/fwupd/libfwupd/fwupd-codec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_client_curl_helper_free
  - fwupd_client_context_helper_free
  - fwupd_client_context_object_notify
  - fwupd_client_context_idle_cb
  - fwupd_client_context_helper
  - fwupd_client_object_notify
  - fwupd_client_request_invalidate
  - fwupd_client_signal_emit_object
  - fwupd_client_signal_emit_changed
  - fwupd_client_build_user_agent_os_release
  - fwupd_client_build_user_agent_system
  - fwupd_client_rebuild_user_agent
  - fwupd_client_set_host_vendor
  - fwupd_client_set_host_product
  - fwupd_client_set_host_machine_id
  - fwupd_client_set_host_security_id
  - fwupd_client_set_daemon_version
  - fwupd_client_download_set_retries
  - fwupd_client_set_host_bkc
  - fwupd_client_set_status
  - fwupd_client_set_percentage
  - fwupd_client_set_battery_level
  - fwupd_client_set_battery_threshold
  - fwupd_client_properties_changed_cb
  - fwupd_client_update_proxy_name_owner
  - fwupd_client_name_owner_changed_cb
  - fwupd_client_signal_cb
  - fwupd_client_get_main_context
  - fwupd_client_set_main_context
  - fwupd_client_ensure_networking
  - fwupd_client_progress_callback_cb
  - fwupd_client_curl_helper_set_proxy
  - fwupd_client_curl_new
  - fwupd_client_set_hints_cb
  - fwupd_client_connect_get_proxy_cb
  - fwupd_client_connect_get_connection_cb
  - fwupd_client_connect_async
  - fwupd_client_connect_finish
  - fwupd_client_disconnect
  - fwupd_client_quit_cb
  - fwupd_client_quit_async
  - fwupd_client_quit_finish
  - fwupd_client_fixup_dbus_error
  - fwupd_client_get_host_security_attrs_cb
  - fwupd_client_get_host_security_attrs_async
  - fwupd_client_get_host_security_attrs_finish
  - fwupd_client_modify_bios_setting_cb
  - fwupd_client_modify_bios_setting_async
  - fwupd_client_modify_bios_setting_finish
  - fwupd_client_get_bios_settings_cb
  - fwupd_client_get_bios_settings_async
  - fwupd_client_get_bios_settings_finish
  - fwupd_client_get_host_security_events_cb
  - fwupd_client_get_host_security_events_async
  - fwupd_client_get_host_security_events_finish
  - fwupd_client_report_metadata_hash_from_variant
  - fwupd_client_get_report_metadata_cb
  - fwupd_client_get_report_metadata_async
  - fwupd_client_get_report_metadata_finish
  - fwupd_client_get_devices_cb
  - fwupd_client_get_devices_async
  - fwupd_client_get_devices_finish
  - fwupd_client_get_plugins_cb
  - fwupd_client_get_plugins_async
  - fwupd_client_get_plugins_finish
  - fwupd_client_get_history_cb
  - fwupd_client_get_history_async
  - fwupd_client_get_history_finish
  - fwupd_client_get_device_by_id_cb
  - fwupd_client_get_device_by_id_async
  - fwupd_client_get_device_by_id_finish
  - fwupd_client_get_devices_by_guid_cb
  - fwupd_client_get_devices_by_guid_async
  - fwupd_client_get_devices_by_guid_finish
  - fwupd_client_get_releases_cb
  - fwupd_client_get_releases_async
  - fwupd_client_get_releases_finish
  - fwupd_client_get_downgrades_cb
  - fwupd_client_get_downgrades_async
  - fwupd_client_get_downgrades_finish
  - fwupd_client_get_upgrades_cb
  - fwupd_client_get_upgrades_async
  - fwupd_client_get_upgrades_finish
  - fwupd_client_modify_config_cb
  - fwupd_client_modify_config_async
  - fwupd_client_modify_config_finish
  - fwupd_client_reset_config_cb
  - fwupd_client_reset_config_async
  - fwupd_client_reset_config_finish
  - fwupd_client_activate_cb
  - fwupd_client_activate_async
  - fwupd_client_activate_finish
  - fwupd_client_verify_cb
  - fwupd_client_verify_async
  - fwupd_client_verify_finish
  - fwupd_client_verify_update_cb
  - fwupd_client_verify_update_async
  - fwupd_client_verify_update_finish
  - fwupd_client_unlock_cb
  - fwupd_client_unlock_async
  - fwupd_client_unlock_finish
  - fwupd_client_clear_results_cb
  - fwupd_client_clear_results_async
  - fwupd_client_clear_results_finish
  - fwupd_client_get_results_cb
  - fwupd_client_get_results_async
  - fwupd_client_get_results_finish
  - fwupd_client_install_stream_cb
  - fwupd_client_install_stream_async
  - fwupd_client_install_bytes_async
  - fwupd_client_install_bytes_finish
  - fwupd_client_install_async
  - fwupd_client_install_finish
  - fwupd_client_install_release_data_free
  - fwupd_client_install_release_cb
  - fwupd_client_install_release_bytes_cb
  - fwupd_client_install_release_download_cb
  - fwupd_client_is_url_http
  - fwupd_client_is_url_ipfs
  - fwupd_client_is_localhost
  - fwupd_client_is_url_p2p
  - fwupd_client_install_release_remote_cb
  - fwupd_client_filter_locations
  - fwupd_client_install_release_async
  - fwupd_client_install_release_finish
  - fwupd_client_get_details_stream_cb
  - fwupd_client_get_details_stream_async
  - fwupd_client_get_details_bytes_async
  - fwupd_client_get_details_bytes_finish
  - fwupd_client_get_details_async
  - fwupd_client_get_details_finish
  - fwupd_client_get_percentage
  - fwupd_client_get_daemon_version
  - fwupd_client_get_host_bkc
  - fwupd_client_get_host_product
  - fwupd_client_get_host_vendor
  - fwupd_client_get_host_machine_id
  - fwupd_client_get_host_security_id
  - fwupd_client_get_battery_level
  - fwupd_client_get_battery_threshold
  - fwupd_client_get_status
  - fwupd_client_get_tainted
  - fwupd_client_get_only_trusted
  - fwupd_client_get_daemon_interactive
  - fwupd_client_update_metadata_stream_cb
  - fwupd_client_update_metadata_stream_async
  - fwupd_client_update_metadata_bytes_async
  - fwupd_client_update_metadata_bytes_finish
  - fwupd_client_refresh_remote_data_free
  - fwupd_client_refresh_remote_update_cb
  - fwupd_client_refresh_remote_metadata_cb
  - fwupd_client_refresh_remote_signature_cb
  - fwupd_client_refresh_remote_async
  - fwupd_client_refresh_remote_finish
  - fwupd_client_get_remotes_cb
  - fwupd_client_get_remotes_async
  - fwupd_client_get_remotes_finish
  - fwupd_client_get_approved_firmware_cb
  - fwupd_client_get_approved_firmware_async
  - fwupd_client_get_approved_firmware_finish
  - fwupd_client_set_approved_firmware_cb
  - fwupd_client_set_approved_firmware_async
  - fwupd_client_set_approved_firmware_finish
  - fwupd_client_get_blocked_firmware_cb
  - fwupd_client_get_blocked_firmware_async
  - fwupd_client_get_blocked_firmware_finish
  - fwupd_client_set_blocked_firmware_cb
  - fwupd_client_set_blocked_firmware_async
  - fwupd_client_set_blocked_firmware_finish
  - fwupd_client_set_feature_flags_cb
  - fwupd_client_set_feature_flags_async
  - fwupd_client_set_feature_flags_finish
  - fwupd_client_self_sign_cb
  - fwupd_client_self_sign_async
  - fwupd_client_self_sign_finish
  - fwupd_client_modify_remote_cb
  - fwupd_client_modify_remote_async
  - fwupd_client_modify_remote_finish
  - fwupd_client_modify_device_cb
  - fwupd_client_modify_device_async
  - fwupd_client_modify_device_finish
  - fwupd_client_get_remote_by_id_noref
  - fwupd_client_get_remote_by_id_cb
  - fwupd_client_get_remote_by_id_async
  - fwupd_client_get_remote_by_id_finish
  - fwupd_client_set_user_agent
  - fwupd_client_get_user_agent
  - fwupd_client_set_user_agent_for_package
  - fwupd_client_download_write_callback_cb
  - fwupd_client_download_ipfs
  - fwupd_client_download_http
  - fwupd_client_download_error_is_fatal
  - fwupd_client_download_http_retry
  - fwupd_client_download_bytes_thread_cb
  - fwupd_client_download_bytes2_async
  - fwupd_client_download_bytes_async
  - fwupd_client_download_bytes_finish
  - fwupd_client_upload_bytes_thread_cb
  - fwupd_client_upload_bytes_async
  - fwupd_client_upload_bytes_finish
  - fwupd_client_upload_report_cb
  - fwupd_client_upload_report_async
  - fwupd_client_upload_report_finish
  - fwupd_client_inhibit_cb
  - fwupd_client_inhibit_async
  - fwupd_client_inhibit_finish
  - fwupd_client_uninhibit_cb
  - fwupd_client_uninhibit_async
  - fwupd_client_uninhibit_finish
  - fwupd_client_add_hint
  - fwupd_client_emulation_load_cb
  - fwupd_client_emulation_load_async
  - fwupd_client_emulation_load_finish
  - fwupd_client_emulation_save_cb
  - fwupd_client_emulation_save_async
  - fwupd_client_emulation_save_finish
  - fwupd_client_fix_host_security_attr_cb
  - fwupd_client_fix_host_security_attr_async
  - fwupd_client_fix_host_security_attr_finish
  - fwupd_client_undo_host_security_attr_cb
  - fwupd_client_undo_host_security_attr_async
  - fwupd_client_undo_host_security_attr_finish
  - fwupd_client_build_report_metadata
  - fwupd_client_build_report_devices
  - fwupd_client_build_report_history_device
  - fwupd_client_build_report_history
  - fwupd_client_build_report_security
  - fwupd_client_get_property
  - fwupd_client_set_property
  - fwupd_client_class_init
  - fwupd_client_init
  - fwupd_client_finalize
  - fwupd_client_new
  source_file: /src/fwupd/libfwupd/fwupd-client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_CLIENT_DBUS_PROXY_TIMEOUT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/libfwupd/fwupd-client.c
      type_or_value: '180000 '
    structs:
    - fields:
      - name: '*main_ctx'
        type: GMainContext
      - name: status
        type: FwupdStatus
      - name: tainted
        type: gboolean
      - name: interactive
        type: gboolean
      - name: percentage
        type: guint
      - name: battery_level
        type: guint32
      - name: battery_threshold
        type: guint32
      - name: download_retries
        type: guint
      - name: idle_mutex
        type: GMutex
      - name: idle_id
        type: guint
      - name: '*idle_sources'
        type: GPtrArray
      - name: '*daemon_version'
        type: gchar
      - name: '*host_bkc'
        type: gchar
      - name: '*host_product'
        type: gchar
      - name: '*host_vendor'
        type: gchar
      - name: '*host_machine_id'
        type: gchar
      - name: '*host_security_id'
        type: gchar
      - name: only_trusted
        type: gboolean
      - name: proxy_mutex
        type: GMutex
      - name: '*proxy'
        type: GDBusProxy
      - name: '*proxy_name_owner'
        type: gchar
      - name: '*proxy_resolver'
        type: GProxyResolver
      - name: '*package_name'
        type: gchar
      - name: '*package_version'
        type: gchar
      - name: '*user_agent'
        type: gchar
      - name: '*hints'
        type: GHashTable
      - name: '*immediate_requests'
        type: GHashTable
      item_type: struct
      name: FwupdClientPrivate
      pos:
        line_end: 83
        line_start: 55
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    - fields:
      - name: '*urls'
        type: GPtrArray
      - name: '*curl'
        type: CURL
      - name: '*mime'
        type: curl_mime
      - name: '*headers'
        type: struct curl_slist
      item_type: struct
      name: FwupdCurlHelper
      pos:
        line_end: 90
        line_start: 85
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    - fields:
      - name: '*self'
        type: FwupdClient
      - name: '*property_name'
        type: gchar
      - name: signal_id
        type: guint
      - name: '*payload'
        type: GObject
      item_type: struct
      name: FwupdClientContextHelper
      pos:
        line_end: 150
        line_start: 145
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    - fields:
      - name: '*device'
        type: FwupdDevice
      - name: '*release'
        type: FwupdRelease
      - name: install_flags
        type: FwupdInstallFlags
      - name: download_flags
        type: FwupdClientDownloadFlags
      item_type: struct
      name: FwupdClientInstallReleaseData
      pos:
        line_end: 3387
        line_start: 3382
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    - fields:
      - name: '*remote'
        type: FwupdRemote
      - name: download_flags
        type: FwupdClientDownloadFlags
      - name: '*signature'
        type: GBytes
      - name: '*metadata'
        type: GBytes
      item_type: struct
      name: FwupdClientRefreshRemoteData
      pos:
        line_end: 4336
        line_start: 4331
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    typedefs:
    - item_type: typedef
      name: '*(*FwupdClientObjectNewFunc)(void)'
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    - item_type: typedef
      name: CURLSTR
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/fwupd/libfwupd/fwupd-client.c
      type: char
    union: []
- function_names:
  - fwupd_version_string
  source_file: /src/fwupd/libfwupd/fwupd-version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_device_ensure_checksums
  - fwupd_device_get_checksums
  - fwupd_device_has_checksum
  - fwupd_device_add_checksum
  - fwupd_device_ensure_issues
  - fwupd_device_get_issues
  - fwupd_device_add_issue
  - fwupd_device_ensure_children
  - fwupd_device_get_children
  - fwupd_device_get_summary
  - fwupd_device_set_summary
  - fwupd_device_get_branch
  - fwupd_device_set_branch
  - fwupd_device_get_serial
  - fwupd_device_set_serial
  - fwupd_device_get_id
  - fwupd_device_set_id
  - fwupd_device_get_parent_id
  - fwupd_device_set_parent_id
  - fwupd_device_get_composite_id
  - fwupd_device_set_composite_id
  - fwupd_device_get_parent
  - fwupd_device_get_root
  - fwupd_device_set_parent
  - fwupd_device_child_finalized_cb
  - fwupd_device_add_child
  - fwupd_device_remove_child
  - fwupd_device_remove_children
  - fwupd_device_ensure_guids
  - fwupd_device_get_guids
  - fwupd_device_has_guid
  - fwupd_device_add_guid
  - fwupd_device_get_guid_default
  - fwupd_device_ensure_instance_ids
  - fwupd_device_get_instance_ids
  - fwupd_device_has_instance_id
  - fwupd_device_add_instance_id
  - fwupd_device_ensure_icons
  - fwupd_device_get_icons
  - fwupd_device_has_icon
  - fwupd_device_add_icon
  - fwupd_device_get_name
  - fwupd_device_set_name
  - fwupd_device_get_vendor
  - fwupd_device_set_vendor
  - fwupd_device_ensure_vendor_ids
  - fwupd_device_get_vendor_ids
  - fwupd_device_has_vendor_id
  - fwupd_device_add_vendor_id
  - fwupd_device_get_version
  - fwupd_device_set_version
  - fwupd_device_get_version_lowest
  - fwupd_device_set_version_lowest
  - fwupd_device_get_version_lowest_raw
  - fwupd_device_set_version_lowest_raw
  - fwupd_device_get_version_bootloader
  - fwupd_device_set_version_bootloader
  - fwupd_device_get_version_bootloader_raw
  - fwupd_device_set_version_bootloader_raw
  - fwupd_device_get_flashes_left
  - fwupd_device_set_flashes_left
  - fwupd_device_get_battery_level
  - fwupd_device_set_battery_level
  - fwupd_device_get_battery_threshold
  - fwupd_device_set_battery_threshold
  - fwupd_device_get_install_duration
  - fwupd_device_set_install_duration
  - fwupd_device_get_plugin
  - fwupd_device_set_plugin
  - fwupd_device_ensure_protocols
  - fwupd_device_get_protocols
  - fwupd_device_has_protocol
  - fwupd_device_add_protocol
  - fwupd_device_get_flags
  - fwupd_device_set_flags
  - fwupd_device_add_flag
  - fwupd_device_remove_flag
  - fwupd_device_has_flag
  - fwupd_device_get_problems
  - fwupd_device_set_problems
  - fwupd_device_add_problem
  - fwupd_device_remove_problem
  - fwupd_device_has_problem
  - fwupd_device_get_request_flags
  - fwupd_device_set_request_flags
  - fwupd_device_add_request_flag
  - fwupd_device_remove_request_flag
  - fwupd_device_has_request_flag
  - fwupd_device_get_created
  - fwupd_device_set_created
  - fwupd_device_get_modified
  - fwupd_device_set_modified
  - fwupd_device_incorporate
  - fwupd_device_add_variant
  - fwupd_device_from_key_value
  - fwupd_device_string_append_flags
  - fwupd_device_string_append_request_flags
  - fwupd_device_string_append_problems
  - fwupd_device_get_update_state
  - fwupd_device_set_update_state
  - fwupd_device_get_version_format
  - fwupd_device_set_version_format
  - fwupd_device_get_version_raw
  - fwupd_device_set_version_raw
  - fwupd_device_get_version_build_date
  - fwupd_device_set_version_build_date
  - fwupd_device_get_update_error
  - fwupd_device_set_update_error
  - fwupd_device_get_release_default
  - fwupd_device_ensure_releases
  - fwupd_device_get_releases
  - fwupd_device_add_release
  - fwupd_device_get_status
  - fwupd_device_set_status
  - fwupd_device_get_percentage
  - fwupd_device_set_percentage
  - fwupd_device_string_append_update_state
  - fwupd_device_add_json
  - fwupd_device_from_json
  - fwupd_device_verstr_raw
  - fwupd_device_guid_helper_new
  - fwupd_device_guid_helper_array_find
  - fwupd_device_add_string
  - fwupd_device_get_property
  - fwupd_device_set_property
  - fwupd_device_class_init
  - fwupd_device_init
  - fwupd_device_finalize
  - fwupd_device_from_variant_iter
  - fwupd_device_codec_iface_init
  - fwupd_device_array_ensure_parents
  - fwupd_device_compare
  - fwupd_device_match_flags
  - fwupd_device_array_filter_flags
  - fwupd_device_new
  source_file: /src/fwupd/libfwupd/fwupd-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_BATTERY_THRESHOLD_DEFAULT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/fwupd/libfwupd/fwupd-device.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: '*id'
        type: gchar
      - name: '*parent_id'
        type: gchar
      - name: '*composite_id'
        type: gchar
      - name: created
        type: guint64
      - name: modified
        type: guint64
      - name: flags
        type: guint64
      - name: request_flags
        type: guint64
      - name: problems
        type: guint64
      - name: '*guids'
        type: GPtrArray
      - name: '*vendor_ids'
        type: GPtrArray
      - name: '*protocols'
        type: GPtrArray
      - name: '*instance_ids'
        type: GPtrArray
      - name: '*icons'
        type: GPtrArray
      - name: '*issues'
        type: GPtrArray
      - name: '*name'
        type: gchar
      - name: '*serial'
        type: gchar
      - name: '*summary'
        type: gchar
      - name: '*branch'
        type: gchar
      - name: '*vendor'
        type: gchar
      - name: '*homepage'
        type: gchar
      - name: '*plugin'
        type: gchar
      - name: '*version'
        type: gchar
      - name: '*version_lowest'
        type: gchar
      - name: '*version_bootloader'
        type: gchar
      - name: version_format
        type: FwupdVersionFormat
      - name: version_raw
        type: guint64
      - name: version_build_date
        type: guint64
      - name: version_lowest_raw
        type: guint64
      - name: version_bootloader_raw
        type: guint64
      - name: '*checksums'
        type: GPtrArray
      - name: '*children'
        type: GPtrArray
      - name: flashes_left
        type: guint32
      - name: battery_level
        type: guint32
      - name: battery_threshold
        type: guint32
      - name: install_duration
        type: guint32
      - name: update_state
        type: FwupdUpdateState
      - name: '*update_error'
        type: gchar
      - name: status
        type: FwupdStatus
      - name: percentage
        type: guint
      - name: '*releases'
        type: GPtrArray
      - name: '*parent'
        type: FwupdDevice
      item_type: struct
      name: FwupdDevicePrivate
      pos:
        line_end: 70
        line_start: 28
        source_file: /src/fwupd/libfwupd/fwupd-device.c
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*instance_id'
        type: gchar
      item_type: struct
      name: FwupdDeviceGuidHelper
      pos:
        line_end: 3394
        line_start: 3391
        source_file: /src/fwupd/libfwupd/fwupd-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.PrebootDma"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_ENCRYPTED_RAM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.EncryptedRam"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_FWUPD_ATTESTATION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Fwupd.Attestation"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_FWUPD_PLUGINS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Fwupd.Plugins"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_FWUPD_UPDATES
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Fwupd.Updates"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ENABLED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelBootguard.Enabled"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_VERIFIED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelBootguard.Verified"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ACM
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelBootguard.Acm"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_POLICY
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelBootguard.Policy"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_OTP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelBootguard.Otp"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_IOMMU
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Iommu"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_KERNEL_LOCKDOWN
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Kernel.Lockdown"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_KERNEL_SWAP
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Kernel.Swap"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_KERNEL_TAINTED
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Kernel.Tainted"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_MEI_MANUFACTURING_MODE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Mei.ManufacturingMode"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_MEI_OVERRIDE_STRAP
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Mei.OverrideStrap"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_MEI_KEY_MANIFEST
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Mei.KeyManifest"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_MEI_VERSION
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Mei.Version"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SPI_BIOSWE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Spi.Bioswe"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SPI_BLE
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Spi.Ble"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SPI_SMM_BWP
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Spi.SmmBwp"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SPI_DESCRIPTOR
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Spi.Descriptor"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_IDLE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.SuspendToIdle"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_RAM
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.SuspendToRam"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Tpm.EmptyPcr"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Tpm.ReconstructionPcr0"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_TPM_VERSION_20
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Tpm.Version20"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_UEFI_SECUREBOOT
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.SecureBoot"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_UEFI_BOOTSERVICE_VARS
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.BootserviceVars"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_ENABLED
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.PlatformDebugEnabled"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_PLATFORM_FUSED
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.PlatformFused"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_LOCKED
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.PlatformDebugLocked"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_UEFI_PK
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.Pk"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SUPPORTED_CPU
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.SupportedCpu"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_ROLLBACK_PROTECTION
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.RollbackProtection"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_SPI_WRITE_PROTECTION
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.SpiWriteProtection"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_SPI_REPLAY_PROTECTION
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.SpiReplayProtection"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_HOST_EMULATION
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.HostEmulation"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_BIOS_ROLLBACK_PROTECTION
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Bios.RollbackProtection"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_INTEL_GDS
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.IntelGds"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_BIOS_CAPSULE_UPDATES
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Bios.CapsuleUpdates"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_SMAP
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Smap"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_CET_ENABLED
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Cet.Enabled"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_CET_ACTIVE
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Cet.Active"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_SMM_LOCKED
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.SmmLocked"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.MemoryProtection"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_UEFI_DB
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.Db"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_APPSTREAM_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"AppstreamId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_RELEASE_ID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"ReleaseId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_CHECKSUM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Checksum"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_TAGS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Tags"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_CREATED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Created"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DESCRIPTION
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Description"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DETACH_CAPTION
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DetachCaption"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DETACH_IMAGE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DetachImage"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DEVICE_ID
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DeviceId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_PARENT_DEVICE_ID
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"ParentDeviceId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_COMPOSITE_ID
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"CompositeId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_FILENAME
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Filename"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_PROTOCOL
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Protocol"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_CATEGORIES
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Categories"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_ISSUES
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Issues"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_FLAGS
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Flags"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_REQUEST_FLAGS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"RequestFlags"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_FLASHES_LEFT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"FlashesLeft"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_URGENCY
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Urgency"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_REQUEST_KIND
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"RequestKind"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_HSI_LEVEL
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"HsiLevel"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_HSI_RESULT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"HsiResult"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_HSI_RESULT_FALLBACK
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"HsiResultFallback"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_HSI_RESULT_SUCCESS
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"HsiResultSuccess"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_INSTALL_DURATION
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"InstallDuration"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_GUID
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Guid"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_INSTANCE_IDS
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"InstanceIds"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_HOMEPAGE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Homepage"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DETAILS_URL
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DetailsUrl"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_SOURCE_URL
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"SourceUrl"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_SBOM_URL
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"SbomUrl"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_ICON
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Icon"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_LICENSE
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"License"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_MODIFIED
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Modified"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_BUILD_DATE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionBuildDate"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_METADATA
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Metadata"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_NAME
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Name"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_NAME_VARIANT_SUFFIX
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"NameVariantSuffix"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_PLUGIN
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Plugin"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_RELEASE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Release"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_REMOTE_ID
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"RemoteId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_SERIAL
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Serial"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_SIZE
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Size"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_STATUS
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Status"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_PERCENTAGE
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Percentage"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_SUMMARY
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Summary"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BRANCH
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Branch"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_TRUST_FLAGS
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"TrustFlags"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_PROBLEMS
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Problems"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_UPDATE_MESSAGE
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"UpdateMessage"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_UPDATE_IMAGE
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"UpdateImage"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_UPDATE_ERROR
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"UpdateError"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_UPDATE_STATE
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"UpdateState"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_URI
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Uri"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_LOCATIONS
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Locations"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VENDOR_ID
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VendorId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VENDOR
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Vendor"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_BOOTLOADER
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionBootloader"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_BOOTLOADER_RAW
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionBootloaderRaw"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_FORMAT
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionFormat"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_RAW
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionRaw"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_LOWEST
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionLowest"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_LOWEST_RAW
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionLowestRaw"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Version"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_OLD
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionOld"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BATTERY_LEVEL
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BatteryLevel"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BATTERY_THRESHOLD
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BatteryThreshold"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_ID
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_TARGET_VALUE
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingTargetValue"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_CURRENT_VALUE
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingCurrentValue"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_TYPE
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingType"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_POSSIBLE_VALUES
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingPossibleValues"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_LOWER_BOUND
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingLowerBound"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_UPPER_BOUND
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingUpperBound"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_SCALAR_INCREMENT
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingScalarIncrement"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_READ_ONLY
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingReadOnly"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_KERNEL_CURRENT_VALUE
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"KernelCurrentValue"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_KERNEL_TARGET_VALUE
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"KernelTargetValue"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DISTRO_ID
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DistroId"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DISTRO_VARIANT
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DistroVariant"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DISTRO_VERSION
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DistroVersion"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_REPORTS
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"Reports"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_DEVICE_NAME
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DeviceName"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_SECURITY_ATTR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
      type_or_value: (fwupd_security_attr_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdSecurityAttrClass
      pos:
        line_end: 28
        line_start: 18
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
    typedefs:
    - item_type: typedef
      name: FwupdSecurityAttrFlags
      pos:
        line_end: 108
        line_start: 35
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
    - item_type: typedef
      name: FwupdSecurityAttrLevel
      pos:
        line_end: 166
        line_start: 115
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
    - item_type: typedef
      name: FwupdSecurityAttrResult
      pos:
        line_end: 296
        line_start: 173
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
    union: []
- function_names:
  - fwupd_error_to_string
  - fwupd_error_from_string
  - fwupd_error_quark
  - fwupd_error_convert
  - fwupd_strerror
  source_file: /src/fwupd/libfwupd/fwupd-error.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: domain
        type: GQuark
      - name: code
        type: gint
      - name: fwupd_code
        type: FwupdError
      item_type: struct
      name: "map[] = {\n\t    {G_FILE_ERROR, G_FILE_ERROR_ACCES, FWUPD_ERROR_PERMISSION_DENIED},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_AGAIN, FWUPD_ERROR_BUSY},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_BADF, FWUPD_ERROR_INTERNAL},\n\t    {G_FILE_ERROR, G_FILE_ERROR_EXIST,
        FWUPD_ERROR_PERMISSION_DENIED},\n\t    {G_FILE_ERROR, G_FILE_ERROR_FAILED,
        FWUPD_ERROR_INTERNAL},\n\t    {G_FILE_ERROR, G_FILE_ERROR_FAULT, FWUPD_ERROR_INTERNAL},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_INTR, FWUPD_ERROR_BUSY},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_INVAL, FWUPD_ERROR_INVALID_DATA},\n\t    {G_FILE_ERROR, G_FILE_ERROR_IO,
        FWUPD_ERROR_INTERNAL},\n\t    {G_FILE_ERROR, G_FILE_ERROR_ISDIR, FWUPD_ERROR_INVALID_FILE},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_LOOP, FWUPD_ERROR_NOT_SUPPORTED},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_MFILE, FWUPD_ERROR_INTERNAL},\n\t    {G_FILE_ERROR, G_FILE_ERROR_NAMETOOLONG,
        FWUPD_ERROR_INVALID_DATA},\n\t    {G_FILE_ERROR, G_FILE_ERROR_NFILE, FWUPD_ERROR_BROKEN_SYSTEM},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_NODEV, FWUPD_ERROR_NOT_SUPPORTED},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_NOENT, FWUPD_ERROR_INVALID_FILE},\n\t    {G_FILE_ERROR, G_FILE_ERROR_NOSPC,
        FWUPD_ERROR_BROKEN_SYSTEM},\n\t    {G_FILE_ERROR, G_FILE_ERROR_NOSYS, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_NOTDIR, FWUPD_ERROR_INVALID_FILE},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_NXIO, FWUPD_ERROR_NOT_FOUND},\n\t    {G_FILE_ERROR, G_FILE_ERROR_PERM,
        FWUPD_ERROR_PERMISSION_DENIED},\n\t    {G_FILE_ERROR, G_FILE_ERROR_PIPE, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_FILE_ERROR, G_FILE_ERROR_ROFS, FWUPD_ERROR_NOT_SUPPORTED},\n\t    {G_FILE_ERROR,
        G_FILE_ERROR_TXTBSY, FWUPD_ERROR_BUSY},\n\t    {G_IO_ERROR, G_IO_ERROR_BUSY,
        FWUPD_ERROR_TIMED_OUT},\n\t    {G_IO_ERROR, G_IO_ERROR_CANCELLED, FWUPD_ERROR_INTERNAL},\n\t
        \   {G_IO_ERROR, G_IO_ERROR_FAILED, FWUPD_ERROR_INTERNAL},\n\t    {G_IO_ERROR,
        G_IO_ERROR_INVALID_ARGUMENT, FWUPD_ERROR_INVALID_DATA},\n\t    {G_IO_ERROR,
        G_IO_ERROR_INVALID_DATA, FWUPD_ERROR_INVALID_DATA},\n\t    {G_IO_ERROR, G_IO_ERROR_NOT_CONNECTED,
        FWUPD_ERROR_NOT_FOUND},\n\t    {G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_IO_ERROR, G_IO_ERROR_NOT_FOUND, FWUPD_ERROR_NOT_FOUND},\n\t    {G_IO_ERROR,
        G_IO_ERROR_NOT_INITIALIZED, FWUPD_ERROR_INTERNAL},\n\t    {G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE,
        FWUPD_ERROR_INVALID_DATA},\n\t    {G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT, FWUPD_ERROR_READ},\n\t    {G_IO_ERROR,
        G_IO_ERROR_PERMISSION_DENIED, FWUPD_ERROR_PERMISSION_DENIED},\n\t    {G_IO_ERROR,
        G_IO_ERROR_TIMED_OUT, FWUPD_ERROR_TIMED_OUT},\n\t    {G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK,
        FWUPD_ERROR_TIMED_OUT},\n\t    {G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_UNKNOWN_ENCODING, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_PARSE, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_NOT_FOUND, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_INVALID_VALUE, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_BAD_UTF8, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_MISSING_ATTRIBUTE, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, FWUPD_ERROR_INVALID_DATA},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, FWUPD_ERROR_NOT_SUPPORTED},\n\t
        \   {G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, FWUPD_ERROR_NOT_SUPPORTED},\n\t}"
      pos:
        line_end: 172
        line_start: 168
        source_file: /src/fwupd/libfwupd/fwupd-error.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_release_get_remote_id
  - fwupd_release_set_remote_id
  - fwupd_release_get_version
  - fwupd_release_set_version
  - fwupd_release_get_filename
  - fwupd_release_set_filename
  - fwupd_release_get_update_message
  - fwupd_release_set_update_message
  - fwupd_release_get_update_image
  - fwupd_release_set_update_image
  - fwupd_release_get_protocol
  - fwupd_release_set_protocol
  - fwupd_release_ensure_issues
  - fwupd_release_get_issues
  - fwupd_release_add_issue
  - fwupd_release_ensure_categories
  - fwupd_release_get_categories
  - fwupd_release_add_category
  - fwupd_release_has_category
  - fwupd_release_ensure_checksums
  - fwupd_release_get_checksums
  - fwupd_release_add_checksum
  - fwupd_release_has_checksum
  - fwupd_release_ensure_tags
  - fwupd_release_get_tags
  - fwupd_release_add_tag
  - fwupd_release_has_tag
  - fwupd_release_ensure_metadata
  - fwupd_release_get_metadata
  - fwupd_release_add_metadata_item
  - fwupd_release_add_metadata
  - fwupd_release_get_metadata_item
  - fwupd_release_ensure_locations
  - fwupd_release_get_locations
  - fwupd_release_add_location
  - fwupd_release_get_homepage
  - fwupd_release_set_homepage
  - fwupd_release_get_details_url
  - fwupd_release_set_details_url
  - fwupd_release_get_source_url
  - fwupd_release_set_source_url
  - fwupd_release_set_sbom_url
  - fwupd_release_get_sbom_url
  - fwupd_release_get_description
  - fwupd_release_set_description
  - fwupd_release_get_appstream_id
  - fwupd_release_set_appstream_id
  - fwupd_release_get_id
  - fwupd_release_set_id
  - fwupd_release_get_detach_caption
  - fwupd_release_set_detach_caption
  - fwupd_release_get_detach_image
  - fwupd_release_set_detach_image
  - fwupd_release_get_size
  - fwupd_release_set_size
  - fwupd_release_get_created
  - fwupd_release_set_created
  - fwupd_release_get_summary
  - fwupd_release_set_summary
  - fwupd_release_get_branch
  - fwupd_release_set_branch
  - fwupd_release_get_vendor
  - fwupd_release_set_vendor
  - fwupd_release_get_license
  - fwupd_release_set_license
  - fwupd_release_get_name
  - fwupd_release_set_name
  - fwupd_release_get_name_variant_suffix
  - fwupd_release_set_name_variant_suffix
  - fwupd_release_get_flags
  - fwupd_release_set_flags
  - fwupd_release_add_flag
  - fwupd_release_remove_flag
  - fwupd_release_has_flag
  - fwupd_release_get_urgency
  - fwupd_release_set_urgency
  - fwupd_release_get_install_duration
  - fwupd_release_ensure_reports
  - fwupd_release_get_reports
  - fwupd_release_add_report
  - fwupd_release_set_install_duration
  - fwupd_release_add_variant
  - fwupd_release_from_key_value
  - fwupd_release_string_append_flags
  - fwupd_release_add_json
  - fwupd_release_add_string
  - fwupd_release_get_property
  - fwupd_release_set_property
  - fwupd_release_class_init
  - fwupd_release_init
  - fwupd_release_finalize
  - fwupd_release_from_variant_iter
  - fwupd_release_codec_iface_init
  - fwupd_release_match_flags
  - fwupd_release_array_filter_flags
  - fwupd_release_new
  source_file: /src/fwupd/libfwupd/fwupd-release.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*checksums'
        type: GPtrArray
      - name: '*tags'
        type: GPtrArray
      - name: '*categories'
        type: GPtrArray
      - name: '*issues'
        type: GPtrArray
      - name: '*metadata'
        type: GHashTable
      - name: '*description'
        type: gchar
      - name: '*filename'
        type: gchar
      - name: '*protocol'
        type: gchar
      - name: '*homepage'
        type: gchar
      - name: '*details_url'
        type: gchar
      - name: '*source_url'
        type: gchar
      - name: '*sbom_url'
        type: gchar
      - name: '*appstream_id'
        type: gchar
      - name: '*id'
        type: gchar
      - name: '*detach_caption'
        type: gchar
      - name: '*detach_image'
        type: gchar
      - name: '*license'
        type: gchar
      - name: '*name'
        type: gchar
      - name: '*name_variant_suffix'
        type: gchar
      - name: '*summary'
        type: gchar
      - name: '*branch'
        type: gchar
      - name: '*locations'
        type: GPtrArray
      - name: '*vendor'
        type: gchar
      - name: '*version'
        type: gchar
      - name: '*remote_id'
        type: gchar
      - name: size
        type: guint64
      - name: created
        type: guint64
      - name: install_duration
        type: guint32
      - name: flags
        type: FwupdReleaseFlags
      - name: urgency
        type: FwupdReleaseUrgency
      - name: '*update_message'
        type: gchar
      - name: '*update_image'
        type: gchar
      - name: '*reports'
        type: GPtrArray
      item_type: struct
      name: FwupdReleasePrivate
      pos:
        line_end: 66
        line_start: 32
        source_file: /src/fwupd/libfwupd/fwupd-release.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_DBUS_PATH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type_or_value: '"/"'
    - item_type: preproc_def
      name: FWUPD_DBUS_SERVICE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type_or_value: '"org.freedesktop.fwupd"'
    - item_type: preproc_def
      name: FWUPD_DBUS_INTERFACE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type_or_value: '"org.freedesktop.fwupd"'
    - item_type: preproc_def
      name: FWUPD_DEVICE_ID_ANY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type_or_value: '"*"'
    structs: []
    typedefs:
    - item_type: typedef
      name: FwupdGuidFlags
      pos:
        line_end: 70
        line_start: 43
        source_file: /src/fwupd/libfwupd/fwupd-common.h
    - item_type: typedef
      name: '*fwupd_guid_t'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/fwupd/libfwupd/fwupd-common.h
    - item_type: typedef
      name: fwupd_guid_t[16]
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/fwupd/libfwupd/fwupd-common.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-error.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_ERROR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupd/fwupd-error.h
      type_or_value: fwupd_error_quark()
    structs: []
    typedefs:
    - item_type: typedef
      name: FwupdError
      pos:
        line_end: 198
        line_start: 19
        source_file: /src/fwupd/libfwupd/fwupd-error.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-remote.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_REMOTE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-remote.h
      type_or_value: (fwupd_remote_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdRemoteClass
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-remote.h
    typedefs:
    - item_type: typedef
      name: FwupdRemoteKind
      pos:
        line_end: 63
        line_start: 34
        source_file: /src/fwupd/libfwupd/fwupd-remote.h
    - item_type: typedef
      name: FwupdRemoteFlags
      pos:
        line_end: 127
        line_start: 70
        source_file: /src/fwupd/libfwupd/fwupd-remote.h
    union: []
- function_names:
  - fu_test_compare_lines
  - fwupd_enums_func
  - fwupd_release_func
  - fwupd_report_func
  - fwupd_plugin_func
  - fwupd_remote_func
  - fwupd_request_func
  - fwupd_device_filter_func
  - fwupd_client_api_undefined_setter
  - fwupd_client_api_undefined_getter
  - fwupd_client_api_ro_props
  - fwupd_client_api
  - fwupd_common_history_report_func
  - fwupd_device_func
  - fwupd_client_devices_func
  - fwupd_client_remotes_func
  - fwupd_has_system_bus
  - fwupd_common_device_id_func
  - fwupd_common_guid_func
  - fwupd_security_attr_func
  - fwupd_bios_settings_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_BIOS_SETTING
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
      type_or_value: (fwupd_bios_setting_get_type())
    - item_type: preproc_def
      name: FWUPD_BIOS_SETTING_PENDING_REBOOT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
      type_or_value: '"pending_reboot"'
    - item_type: preproc_def
      name: FWUPD_BIOS_SETTING_RESET_BIOS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
      type_or_value: '"reset_bios"'
    - item_type: preproc_def
      name: FWUPD_BIOS_SETTING_DEBUG_CMD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
      type_or_value: '"debug_cmd"'
    - item_type: preproc_def
      name: FWUPD_BIOS_SETTING_SELF_TEST
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
      type_or_value: '"fwupd_self_test"'
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*write_value)(FwupdBiosSetting *self, const gchar *value, GError **error)
        type: gboolean
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdBiosSettingClass
      pos:
        line_end: 28
        line_start: 18
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
    typedefs:
    - item_type: typedef
      name: FwupdBiosSettingKind
      pos:
        line_end: 76
        line_start: 41
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_plugin_get_name
  - fwupd_plugin_set_name
  - fwupd_plugin_get_flags
  - fwupd_plugin_set_flags
  - fwupd_plugin_add_flag
  - fwupd_plugin_remove_flag
  - fwupd_plugin_has_flag
  - fwupd_plugin_add_variant
  - fwupd_plugin_from_key_value
  - fwupd_plugin_string_append_flags
  - fwupd_plugin_add_json
  - fwupd_plugin_add_string
  - fwupd_plugin_get_property
  - fwupd_plugin_set_property
  - fwupd_plugin_class_init
  - fwupd_plugin_init
  - fwupd_plugin_finalize
  - fwupd_plugin_from_variant_iter
  - fwupd_plugin_codec_iface_init
  - fwupd_plugin_new
  source_file: /src/fwupd/libfwupd/fwupd-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: flags
        type: guint64
      item_type: struct
      name: FwupdPluginPrivate
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/libfwupd/fwupd-plugin.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_security_attr_flag_to_string
  - fwupd_security_attr_flag_from_string
  - fwupd_security_attr_result_to_string
  - fwupd_security_attr_result_from_string
  - fwupd_security_attr_flag_to_suffix
  - fwupd_security_attr_get_bios_setting_id
  - fwupd_security_attr_set_bios_setting_id
  - fwupd_security_attr_get_obsoletes
  - fwupd_security_attr_add_obsolete
  - fwupd_security_attr_has_obsolete
  - fwupd_security_attr_get_guids
  - fwupd_security_attr_add_guid
  - fwupd_security_attr_add_guids
  - fwupd_security_attr_has_guid
  - fwupd_security_attr_get_appstream_id
  - fwupd_security_attr_set_appstream_id
  - fwupd_security_attr_get_url
  - fwupd_security_attr_set_name
  - fwupd_security_attr_get_bios_setting_target_value
  - fwupd_security_attr_set_bios_setting_target_value
  - fwupd_security_attr_get_bios_setting_current_value
  - fwupd_security_attr_set_bios_setting_current_value
  - fwupd_security_attr_get_kernel_current_value
  - fwupd_security_attr_set_kernel_current_value
  - fwupd_security_attr_get_kernel_target_value
  - fwupd_security_attr_set_kernel_target_value
  - fwupd_security_attr_set_title
  - fwupd_security_attr_set_description
  - fwupd_security_attr_set_plugin
  - fwupd_security_attr_set_fwupd_version
  - fwupd_security_attr_set_url
  - fwupd_security_attr_get_created
  - fwupd_security_attr_set_created
  - fwupd_security_attr_get_name
  - fwupd_security_attr_get_title
  - fwupd_security_attr_get_description
  - fwupd_security_attr_get_plugin
  - fwupd_security_attr_get_fwupd_version
  - fwupd_security_attr_get_flags
  - fwupd_security_attr_set_flags
  - fwupd_security_attr_ensure_result
  - fwupd_security_attr_add_flag
  - fwupd_security_attr_remove_flag
  - fwupd_security_attr_has_flag
  - fwupd_security_attr_get_level
  - fwupd_security_attr_set_level
  - fwupd_security_attr_set_result
  - fwupd_security_attr_get_result
  - fwupd_security_attr_set_result_fallback
  - fwupd_security_attr_get_result_fallback
  - fwupd_security_attr_set_result_success
  - fwupd_security_attr_get_result_success
  - fwupd_security_attr_add_variant
  - fwupd_security_attr_get_metadata
  - fwupd_security_attr_add_metadata
  - fwupd_security_attr_from_key_value
  - fwupd_security_attr_string_append_tfl
  - fwupd_security_attr_from_json
  - fwupd_security_attr_add_json
  - fwupd_security_attr_add_string
  - fwupd_security_attr_class_init
  - fwupd_security_attr_init
  - fwupd_security_attr_finalize
  - fwupd_security_attr_from_variant_iter
  - fwupd_security_attr_codec_iface_init
  - fwupd_security_attr_copy
  - fwupd_security_attr_new
  source_file: /src/fwupd/libfwupd/fwupd-security-attr.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*appstream_id'
        type: gchar
      - name: '*obsoletes'
        type: GPtrArray
      - name: '*guids'
        type: GPtrArray
      - name: '*metadata'
        type: GHashTable
      - name: '*name'
        type: gchar
      - name: '*title'
        type: gchar
      - name: '*description'
        type: gchar
      - name: '*plugin'
        type: gchar
      - name: '*fwupd_version'
        type: gchar
      - name: '*url'
        type: gchar
      - name: created
        type: guint64
      - name: level
        type: FwupdSecurityAttrLevel
      - name: result
        type: FwupdSecurityAttrResult
      - name: result_fallback
        type: FwupdSecurityAttrResult
      - name: result_success
        type: FwupdSecurityAttrResult
      - name: flags
        type: FwupdSecurityAttrFlags
      - name: '*bios_setting_id'
        type: gchar
      - name: '*bios_setting_target_value'
        type: gchar
      - name: '*bios_setting_current_value'
        type: gchar
      - name: '*kernel_current_value'
        type: gchar
      - name: '*kernel_target_value'
        type: gchar
      item_type: struct
      name: FwupdSecurityAttrPrivate
      pos:
        line_end: 48
        line_start: 26
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.c
    typedefs: []
    union: []
- function_names:
  - fwupd_thread_test_exit_idle_cb
  - fwupd_thread_test_thread_cb
  - fwupd_thread_test_idle_cb
  - fwupd_thread_test_activate_cb
  - fwupd_thread_test_notify_cb
  - fwupd_thread_test_has_system_bus
  - main
  source_file: /src/fwupd/libfwupd/fwupd-context-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*app'
        type: GApplication
      - name: '*client'
        type: FwupdClient
      - name: '*main_thread'
        type: GThread
      - name: '*worker_thread'
        type: GThread
      item_type: struct
      name: FuThreadTestSelf
      pos:
        line_end: 14
        line_start: 9
        source_file: /src/fwupd/libfwupd/fwupd-context-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fwupd_remote_flag_to_string
  - fwupd_remote_flag_from_string
  - fwupd_remote_add_json
  - fwupd_remote_get_flags
  - fwupd_remote_set_flags
  - fwupd_remote_add_flag
  - fwupd_remote_remove_flag
  - fwupd_remote_has_flag
  - fwupd_remote_strdup_nonempty
  - fwupd_remote_set_username
  - fwupd_remote_set_title
  - fwupd_remote_set_privacy_uri
  - fwupd_remote_set_agreement
  - fwupd_remote_set_checksum_sig
  - fwupd_remote_set_checksum_sig_metadata
  - fwupd_remote_set_password
  - fwupd_remote_set_kind
  - fwupd_remote_set_id
  - fwupd_remote_set_filename_source
  - fwupd_remote_build_uri
  - fwupd_remote_set_metadata_uri
  - fwupd_remote_set_firmware_base_uri
  - fwupd_remote_set_report_uri
  - fwupd_remote_kind_from_string
  - fwupd_remote_kind_to_string
  - fwupd_remote_set_filename_cache
  - fwupd_remote_set_order_before
  - fwupd_remote_set_order_after
  - fwupd_remote_setup
  - fwupd_remote_get_order_after
  - fwupd_remote_get_order_before
  - fwupd_remote_get_filename_cache
  - fwupd_remote_get_filename_cache_sig
  - fwupd_remote_get_filename_source
  - fwupd_remote_get_priority
  - fwupd_remote_get_kind
  - fwupd_remote_get_age
  - fwupd_remote_set_remotes_dir
  - fwupd_remote_set_priority
  - fwupd_remote_set_mtime
  - fwupd_remote_get_refresh_interval
  - fwupd_remote_set_refresh_interval
  - fwupd_remote_get_username
  - fwupd_remote_get_password
  - fwupd_remote_get_title
  - fwupd_remote_get_privacy_uri
  - fwupd_remote_get_agreement
  - fwupd_remote_get_remotes_dir
  - fwupd_remote_get_checksum
  - fwupd_remote_get_checksum_metadata
  - fwupd_remote_build_firmware_uri
  - fwupd_remote_build_report_uri
  - fwupd_remote_build_metadata_sig_uri
  - fwupd_remote_build_metadata_uri
  - fwupd_remote_get_report_uri
  - fwupd_remote_get_metadata_uri
  - fwupd_remote_load_signature_jcat
  - fwupd_remote_load_signature_bytes
  - fwupd_remote_load_signature
  - fwupd_remote_get_metadata_uri_sig
  - fwupd_remote_get_firmware_base_uri
  - fwupd_remote_needs_refresh
  - fwupd_remote_get_id
  - fwupd_remote_from_variant_iter
  - fwupd_remote_add_variant
  - fwupd_remote_get_property
  - fwupd_remote_set_property
  - fwupd_remote_class_init
  - fwupd_remote_init
  - fwupd_remote_finalize
  - fwupd_remote_codec_iface_init
  - fwupd_remote_new
  source_file: /src/fwupd/libfwupd/fwupd-remote.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: FwupdRemoteKind
      - name: flags
        type: FwupdRemoteFlags
      - name: '*id'
        type: gchar
      - name: '*firmware_base_uri'
        type: gchar
      - name: '*report_uri'
        type: gchar
      - name: '*metadata_uri'
        type: gchar
      - name: '*metadata_uri_sig'
        type: gchar
      - name: '*username'
        type: gchar
      - name: '*password'
        type: gchar
      - name: '*title'
        type: gchar
      - name: '*privacy_uri'
        type: gchar
      - name: '*agreement'
        type: gchar
      - name: '*checksum'
        type: gchar
      - name: '*checksum_sig'
        type: gchar
      - name: '*filename_cache'
        type: gchar
      - name: '*filename_cache_sig'
        type: gchar
      - name: '*filename_source'
        type: gchar
      - name: priority
        type: gint
      - name: mtime
        type: guint64
      - name: refresh_interval
        type: guint64
      - name: '**order_after'
        type: gchar
      - name: '**order_before'
        type: gchar
      - name: '*remotes_dir'
        type: gchar
      item_type: struct
      name: FwupdRemotePrivate
      pos:
        line_end: 55
        line_start: 31
        source_file: /src/fwupd/libfwupd/fwupd-remote.c
    typedefs:
    - item_type: typedef
      name: curlptr
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/fwupd/libfwupd/fwupd-remote.c
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_PLUGIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-plugin.h
      type_or_value: (fwupd_plugin_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdPluginClass
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-plugin.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-enums.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_BATTERY_LEVEL_INVALID
      pos:
        line_end: 1377
        line_start: 1376
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
      type_or_value: '101'
    structs: []
    typedefs:
    - item_type: typedef
      name: FwupdFeatureFlags
      pos:
        line_end: 238
        line_start: 147
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdDeviceFlags
      pos:
        line_end: 599
        line_start: 245
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdDeviceProblem
      pos:
        line_end: 730
        line_start: 608
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdReleaseFlags
      pos:
        line_end: 826
        line_start: 737
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdReleaseUrgency
      pos:
        line_end: 846
        line_start: 838
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdPluginFlags
      pos:
        line_end: 1045
        line_start: 853
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdInstallFlags
      pos:
        line_end: 1143
        line_start: 1052
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdSelfSignFlags
      pos:
        line_end: 1177
        line_start: 1150
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdUpdateState
      pos:
        line_end: 1235
        line_start: 1184
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    - item_type: typedef
      name: FwupdVersionFormat
      pos:
        line_end: 1368
        line_start: 1245
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-request.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_REQUEST
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: (fwupd_request_get_type())
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_REMOVE_REPLUG
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.request.remove-replug"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_PRESS_UNLOCK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.request.press-unlock"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_REMOVE_USB_CABLE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.request.remove-usb-cable"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_INSERT_USB_CABLE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.request.insert-usb-cable"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_DO_NOT_POWER_OFF
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.request.do-not-power-off"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_REPLUG_INSTALL
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.replug-install"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_REPLUG_POWER
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.replug-power"'
    - item_type: preproc_def
      name: FWUPD_REQUEST_ID_RESTART_DAEMON
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/fwupd/libfwupd/fwupd-request.h
      type_or_value: '"org.freedesktop.fwupd.restart-daemon"'
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*invalidate)(FwupdRequest *client)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdRequestClass
      pos:
        line_end: 25
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-request.h
    typedefs:
    - item_type: typedef
      name: FwupdRequestKind
      pos:
        line_end: 59
        line_start: 32
        source_file: /src/fwupd/libfwupd/fwupd-request.h
    - item_type: typedef
      name: FwupdRequestFlags
      pos:
        line_end: 196
        line_start: 147
        source_file: /src/fwupd/libfwupd/fwupd-request.h
    union: []
- function_names:
  - G_GNUC_NON_NULL
  source_file: /src/fwupd/libfwupd/fwupd-build.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_thread_test_exit_idle_cb
  - fwupd_thread_test_thread_cb
  - fwupd_thread_test_idle_cb
  - fwupd_thread_test_activate_cb
  - fwupd_thread_test_has_system_bus
  - main
  source_file: /src/fwupd/libfwupd/fwupd-thread-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*app'
        type: GApplication
      - name: '*client'
        type: FwupdClient
      - name: '*worker_threads'
        type: GPtrArray
      item_type: struct
      name: FuThreadTestSelf
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/fwupd/libfwupd/fwupd-thread-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-common-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-client-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-report.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_REPORT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupd/fwupd-report.h
      type_or_value: (fwupd_report_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*_fwupd_reserved1)(void)
        type: void
      - name: (*_fwupd_reserved2)(void)
        type: void
      - name: (*_fwupd_reserved3)(void)
        type: void
      - name: (*_fwupd_reserved4)(void)
        type: void
      - name: (*_fwupd_reserved5)(void)
        type: void
      - name: (*_fwupd_reserved6)(void)
        type: void
      - name: (*_fwupd_reserved7)(void)
        type: void
      item_type: struct
      name: _FwupdReportClass
      pos:
        line_end: 25
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-report.h
    typedefs:
    - item_type: typedef
      name: FwupdReportFlags
      pos:
        line_end: 67
        line_start: 32
        source_file: /src/fwupd/libfwupd/fwupd-report.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-client-sync.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_checksum_guess_kind
  - fwupd_checksum_type_to_string_display
  - fwupd_checksum_format_for_display
  - fwupd_checksum_get_by_kind
  - fwupd_checksum_get_best
  - fwupd_guid_to_string
  - fwupd_guid_from_string
  - fwupd_guid_hash_data
  - fwupd_device_id_is_valid
  - fwupd_guid_is_valid
  - fwupd_guid_hash_string
  - fwupd_hash_kv_to_variant
  - fwupd_variant_to_hash_kv
  - fwupd_unix_input_stream_from_bytes
  - fwupd_unix_input_stream_from_fn
  - fwupd_unix_output_stream_from_fn
  source_file: /src/fwupd/libfwupd/fwupd-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_GUID_NAMESPACE_DEFAULT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/fwupd/libfwupd/fwupd-common.c
      type_or_value: '"6ba7b810-9dad-11d1-80b4-00c04fd430c8"'
    - item_type: preproc_def
      name: FWUPD_GUID_NAMESPACE_MICROSOFT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/fwupd/libfwupd/fwupd-common.c
      type_or_value: '"70ffd812-4c7f-4c7d-0000-000000000000"'
    structs:
    - fields:
      - name: a
        type: guint32
      - name: b
        type: guint16
      - name: c
        type: guint16
      - name: d
        type: guint16
      - name: e[6]
        type: guint8
      item_type: struct
      name: fwupd_guid_native_t
      pos:
        line_end: 160
        line_start: 154
        source_file: /src/fwupd/libfwupd/fwupd-common.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-x509-certificate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_X509_CERTIFICATE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-x509-certificate.h
      type_or_value: (fu_x509_certificate_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_volume_export
  - fu_efi_volume_validate
  - fu_efi_volume_parse
  - fu_efi_volume_write
  - fu_efi_volume_init
  - fu_efi_volume_class_init
  - fu_efi_volume_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.c
      type_or_value: '"FuEfiVolume"'
    structs:
    - fields:
      - name: attrs
        type: guint16
      item_type: struct
      name: FuEfiVolumePrivate
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_block_partition_to_string
  - fu_block_partition_set_fs_type
  - fu_block_partition_set_fs_uuid
  - fu_block_partition_set_fs_label
  - fu_block_partition_incorporate
  - fu_block_partition_get_fs_type
  - fu_block_partition_get_fs_uuid
  - fu_block_partition_get_fs_label
  - fu_block_partition_get_mount_point
  - fu_block_partition_setup
  - fu_block_partition_finalize
  - fu_block_partition_init
  - fu_block_partition_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-block-partition.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-block-partition.c
      type_or_value: '"FuBlockPartition"'
    structs:
    - fields:
      - name: '*fs_type'
        type: gchar
      - name: '*fs_uuid'
        type: gchar
      - name: '*fs_label'
        type: gchar
      item_type: struct
      name: FuBlockPartitionPrivate
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-block-partition.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FIT_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: (fu_fit_firmware_get_type())
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_COMPATIBLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"compatible"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_DATA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"data"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_ALGO
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"algo"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_DATA_OFFSET
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"data-offset"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_DATA_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"data-size"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_STORE_OFFSET
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"store-offset"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_VALUE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"value"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_SKIP_OFFSET
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"skip-offset"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_VERSION
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"version"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ATTR_TIMESTAMP
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"timestamp"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ID_IMAGES
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"images"'
    - item_type: preproc_def
      name: FU_FIT_FIRMWARE_ID_CONFIGURATIONS
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
      type_or_value: '"configurations"'
    structs:
    - fields:
      - name: parent_class
        type: FuFdtFirmwareClass
      item_type: struct
      name: _FuFitFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_usb_descriptor_parse
  - fu_usb_descriptor_class_init
  - fu_usb_descriptor_init
  source_file: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_kernel_locked_down
  - fu_kernel_check_version
  - fu_kernel_parse_config_line_cb
  - fu_kernel_parse_config
  - fu_kernel_get_config_path
  - fu_kernel_get_config
  - fu_kernel_parse_cmdline
  - fu_kernel_get_cmdline
  - fu_kernel_check_cmdline_mutable
  - fu_kernel_set_commandline
  - fu_kernel_add_cmdline_arg
  - fu_kernel_remove_cmdline_arg
  source_file: /src/fwupd/libfwupdplugin/fu-kernel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-kernel.c
      type_or_value: '"FuCommon"'
    structs:
    - fields:
      - name: '*hash'
        type: GHashTable
      - name: '*values'
        type: GHashTable
      item_type: struct
      name: FuKernelConfigHelper
      pos:
        line_end: 107
        line_start: 104
        source_file: /src/fwupd/libfwupdplugin/fu-kernel.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_linear_firmware_export
  - fu_linear_firmware_get_image_gtype
  - fu_linear_firmware_build
  - fu_linear_firmware_parse
  - fu_linear_firmware_write
  - fu_linear_firmware_get_property
  - fu_linear_firmware_set_property
  - fu_linear_firmware_init
  - fu_linear_firmware_class_init
  - fu_linear_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: image_gtype
        type: GType
      item_type: struct
      name: FuLinearFirmwarePrivate
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-interface.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_INTERFACE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-usb-interface.h
      type_or_value: (fu_usb_interface_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-smbios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SMBIOS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.h
      type_or_value: (fu_smbios_get_type())
    - item_type: preproc_def
      name: FU_SMBIOS_STRUCTURE_LENGTH_ANY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.h
      type_or_value: G_MAXUINT8
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.h
      type_or_value: (fu_uefi_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuUefiDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-mei-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MEI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.h
      type_or_value: (fu_mei_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuMeiDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.h
    typedefs: []
    union: []
- function_names:
  - fu_lzma_decompress_bytes
  - fu_lzma_compress_bytes
  source_file: /src/fwupd/libfwupdplugin/fu-lzma-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ARCHIVE_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.h
      type_or_value: (fu_archive_firmware_get_type())
    - item_type: preproc_def
      name: FU_TYPE_ARCHIVE_FIRMWARE_RECORD
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.h
      type_or_value: (fu_archive_firmware_record_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuArchiveFirmwareClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_volume_add_json
  - fu_volume_finalize
  - fu_volume_get_property
  - fu_volume_set_property
  - fu_volume_class_init
  - fu_volume_init
  - fu_volume_get_id
  - fu_volume_get_size
  - fu_volume_get_partition_size
  - fu_volume_get_partition_offset
  - fu_volume_get_partition_number
  - fu_volume_get_partition_uuid
  - fu_volume_get_partition_kind
  - fu_volume_set_partition_kind
  - fu_volume_set_partition_uuid
  - fu_volume_get_partition_name
  - fu_volume_is_mdraid
  - fu_volume_get_block_size_from_device_name
  - fu_volume_get_block_name
  - fu_volume_get_block_size
  - fu_volume_get_mount_point
  - fu_volume_set_filesystem_free
  - fu_volume_check_free_space
  - fu_volume_is_mounted
  - fu_volume_is_encrypted
  - fu_volume_mount
  - fu_volume_is_internal
  - fu_volume_get_id_type
  - fu_volume_unmount
  - fu_volume_locker
  - fu_volume_new_from_mount_path
  - fu_volume_kind_convert_to_gpt
  - fu_volume_check_block_device_symlinks
  - fu_volume_check_is_recovery
  - fu_volume_codec_iface_init
  - fu_volume_new_by_kind
  - fu_volume_new_by_device
  - fu_volume_new_by_devnum
  source_file: /src/fwupd/libfwupdplugin/fu-volume.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-volume.c
      type_or_value: '"FuVolume"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*proxy_blk'
        type: GDBusProxy
      - name: '*proxy_fs'
        type: GDBusProxy
      - name: '*proxy_part'
        type: GDBusProxy
      - name: '*mount_path'
        type: gchar
      - name: '*partition_kind'
        type: gchar
      - name: '*partition_uuid'
        type: gchar
      - name: fs_free
        type: guint64
      item_type: struct
      name: _FuVolume
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-volume.c
    - fields:
      - name: '*gpt'
        type: gchar
      - name: '*mbrs[6]'
        type: gchar
      item_type: struct
      name: "typeguids[] = {{FU_VOLUME_KIND_ESP,\n\t\t\t  {\n\t\t\t      \"0xef\",\n\t\t\t
        \     \"efi\",\n\t\t\t      NULL,\n\t\t\t  }},\n\t\t\t {FU_VOLUME_KIND_BDP,\n\t\t\t
        \ {\n\t\t\t      \"0x0b\",\n\t\t\t      \"0x06\",\n\t\t\t      \"vfat\",\n\t\t\t
        \     \"fat32\",\n\t\t\t      \"fat32lba\",\n\t\t\t      NULL,\n\t\t\t  }},\n\t\t\t
        {NULL, {NULL}}}"
      pos:
        line_end: 936
        line_start: 933
        source_file: /src/fwupd/libfwupdplugin/fu-volume.c
    typedefs: []
    union: []
- function_names:
  - fu_edid_get_pnp_id
  - fu_edid_set_pnp_id
  - fu_edid_get_eisa_id
  - fu_edid_set_eisa_id
  - fu_edid_get_serial_number
  - fu_edid_set_serial_number
  - fu_edid_get_product_code
  - fu_edid_set_product_code
  - fu_edid_strsafe
  - fu_edid_parse_descriptor
  - fu_edid_parse
  - fu_edid_write
  - fu_edid_build
  - fu_edid_export
  - fu_edid_finalize
  - fu_edid_class_init
  - fu_edid_init
  - fu_edid_new
  source_file: /src/fwupd/libfwupdplugin/fu-edid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-edid.c
      type_or_value: '"FuEdid"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*pnp_id'
        type: gchar
      - name: '*serial_number'
        type: gchar
      - name: '*product_name'
        type: gchar
      - name: '*eisa_id'
        type: gchar
      - name: product_code
        type: guint16
      item_type: struct
      name: _FuEdid
      pos:
        line_end: 23
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-edid.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFUSE_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.h
      type_or_value: (fu_dfuse_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDfuFirmwareClass
      item_type: struct
      name: _FuDfuseFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-endian.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuEndianType
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-endian.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-bios-settings-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_byte_array_to_string
  - fu_byte_array_from_string
  - fu_byte_array_append_uint8
  - fu_byte_array_append_uint16
  - fu_byte_array_append_uint24
  - fu_byte_array_append_uint32
  - fu_byte_array_append_uint64
  - fu_byte_array_append_bytes
  - fu_byte_array_set_size
  - fu_byte_array_align_up
  - fu_byte_array_compare
  source_file: /src/fwupd/libfwupdplugin/fu-byte-array.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-byte-array.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_acpi_table_export
  - fu_acpi_table_get_revision
  - fu_acpi_table_get_oem_id
  - fu_acpi_table_get_oem_table_id
  - fu_acpi_table_get_oem_revision
  - fu_acpi_table_parse
  - fu_acpi_table_init
  - fu_acpi_table_finalize
  - fu_acpi_table_class_init
  - fu_acpi_table_new
  source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: revision
        type: guint8
      - name: '*oem_id'
        type: gchar
      - name: '*oem_table_id'
        type: gchar
      - name: oem_revision
        type: guint32
      item_type: struct
      name: FuAcpiTablePrivate
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_cfu_offer_export
  - fu_cfu_offer_get_segment_number
  - fu_cfu_offer_get_force_immediate_reset
  - fu_cfu_offer_get_force_ignore_version
  - fu_cfu_offer_get_component_id
  - fu_cfu_offer_get_token
  - fu_cfu_offer_get_hw_variant
  - fu_cfu_offer_get_protocol_revision
  - fu_cfu_offer_get_bank
  - fu_cfu_offer_get_milestone
  - fu_cfu_offer_get_product_id
  - fu_cfu_offer_set_segment_number
  - fu_cfu_offer_set_force_immediate_reset
  - fu_cfu_offer_set_force_ignore_version
  - fu_cfu_offer_set_component_id
  - fu_cfu_offer_set_token
  - fu_cfu_offer_set_hw_variant
  - fu_cfu_offer_set_protocol_revision
  - fu_cfu_offer_set_bank
  - fu_cfu_offer_set_milestone
  - fu_cfu_offer_set_product_id
  - fu_cfu_offer_parse
  - fu_cfu_offer_write
  - fu_cfu_offer_build
  - fu_cfu_offer_convert_version
  - fu_cfu_offer_init
  - fu_cfu_offer_class_init
  - fu_cfu_offer_new
  source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: segment_number
        type: guint8
      - name: force_immediate_reset
        type: gboolean
      - name: force_ignore_version
        type: gboolean
      - name: component_id
        type: guint8
      - name: token
        type: guint8
      - name: hw_variant
        type: guint32
      - name: protocol_revision
        type: guint8
      - name: bank
        type: guint8
      - name: milestone
        type: guint8
      - name: product_id
        type: guint16
      item_type: struct
      name: FuCfuOfferPrivate
      pos:
        line_end: 41
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer
  - fu_intel_thunderbolt_firmware_parse
  - fu_intel_thunderbolt_firmware_write
  - fu_intel_thunderbolt_firmware_init
  - fu_intel_thunderbolt_firmware_class_init
  - fu_intel_thunderbolt_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-mem.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FREEBSD_EFIVARS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.h
      type_or_value: (fu_windows_efivars_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-plugin-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HECI_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
      type_or_value: (fu_heci_device_get_type())
    - item_type: preproc_def
      name: FU_HECI_DEVICE_UUID_MKHI
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
      type_or_value: '"8e6a6715-9abc-4043-88ef-9e39c6f63e0f"'
    - item_type: preproc_def
      name: FU_HECI_DEVICE_UUID_MCHI
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
      type_or_value: '"dd17041c-09ea-4b17-a271-5b989867ec65"'
    - item_type: preproc_def
      name: FU_HECI_DEVICE_UUID_MCHI2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
      type_or_value: '"fe2af7a6-ef22-4b45-872f-176b0bbc8b43"'
    - item_type: preproc_def
      name: FU_HECI_DEVICE_UUID_FWUPDATE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
      type_or_value: '"87d90ca5-3495-4559-8105-3fbfa37b8b79"'
    structs:
    - fields:
      - name: parent_class
        type: FuMeiDeviceClass
      item_type: struct
      name: _FuHeciDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-endpoint.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_ENDPOINT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-usb-endpoint.h
      type_or_value: (fu_usb_endpoint_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_COMPOSITE_INPUT_STREAM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.h
      type_or_value: (fu_composite_input_stream_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-udev-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IFWI_FPT_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: (fu_ifwi_fpt_firmware_get_type())
    - item_type: preproc_def
      name: FU_IFWI_FPT_FIRMWARE_IDX_INFO
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: '0x4f464e49'
    - item_type: preproc_def
      name: FU_IFWI_FPT_FIRMWARE_IDX_FWIM
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: '0x4d495746'
    - item_type: preproc_def
      name: FU_IFWI_FPT_FIRMWARE_IDX_IMGI
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: '0x49474d49'
    - item_type: preproc_def
      name: FU_IFWI_FPT_FIRMWARE_IDX_SDTA
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: '0x41544447'
    - item_type: preproc_def
      name: FU_IFWI_FPT_FIRMWARE_IDX_CKSM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
      type_or_value: '0x4d534b43'
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIfwiFptFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-chunk-array.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CHUNK_ARRAY
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-chunk-array.h
      type_or_value: (fu_chunk_array_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-uefi-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FDT_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.h
      type_or_value: (fu_fdt_image_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuFdtImageClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CAB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.h
      type_or_value: (fu_cab_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCabFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HWIDS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: (fu_hwids_get_type())
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BASEBOARD_MANUFACTURER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BaseboardManufacturer"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BASEBOARD_PRODUCT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BaseboardProduct"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BIOS_MAJOR_RELEASE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BiosMajorRelease"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BIOS_MINOR_RELEASE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BiosMinorRelease"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BIOS_VENDOR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BiosVendor"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_BIOS_VERSION
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BiosVersion"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"FirmwareMajorRelease"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_FIRMWARE_MINOR_RELEASE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"FirmwareMinorRelease"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_ENCLOSURE_KIND
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"EnclosureKind"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_FAMILY
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"Family"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_MANUFACTURER
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"Manufacturer"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_PRODUCT_NAME
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"ProductName"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_PRODUCT_SKU
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"ProductSku"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_load_option_set_optional_data
  - fu_efi_load_option_get_metadata
  - fu_efi_load_option_get_kind
  - fu_efi_load_option_set_kind
  - fu_efi_load_option_set_metadata
  - fu_efi_load_option_parse_optional_hive
  - fu_efi_load_option_parse_optional_path
  - fu_efi_load_option_parse_optional
  - fu_efi_load_option_parse
  - fu_efi_load_option_write_hive
  - fu_efi_load_option_write_path
  - fu_efi_load_option_write
  - fu_efi_load_option_build
  - fu_efi_load_option_export
  - fu_efi_load_option_add_json
  - fu_efi_load_option_codec_iface_init
  - fu_efi_load_option_finalize
  - fu_efi_load_option_class_init
  - fu_efi_load_option_init
  - fu_efi_load_option_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
      type_or_value: '"FuEfiLoadOption"'
    - item_type: preproc_def
      name: FU_EFI_LOAD_OPTION_DESCRIPTION_SIZE_MAX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
      type_or_value: '0x1000u '
    - item_type: preproc_def
      name: FU_EFI_LOAD_OPTION_HIVE_HEADER_VERSION_MIN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
      type_or_value: '1'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: attrs
        type: guint32
      - name: kind
        type: FuEfiLoadOptionKind
      - name: '*optional_data'
        type: GBytes
      - name: '*metadata'
        type: GHashTable
      item_type: struct
      name: _FuEfiLoadOption
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IFWI_CPD_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
      type_or_value: (fu_ifwi_cpd_firmware_get_type())
    - item_type: preproc_def
      name: FU_IFWI_CPD_FIRMWARE_IDX_MANIFEST
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_IFWI_CPD_FIRMWARE_IDX_METADATA
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_IFWI_CPD_FIRMWARE_IDX_MODULEDATA_IDX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIfwiCpdFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-security-attrs-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuSecurityAttrsFlags
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs-private.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_fdt_image_guess_format_from_key
  - fu_fdt_image_strlist_from_blob
  - fu_fdt_image_export
  - fu_fdt_image_get_attrs
  - fu_fdt_image_get_attr
  - fu_fdt_image_get_attr_u32
  - fu_fdt_image_get_attr_u64
  - fu_fdt_image_get_attr_strlist
  - fu_fdt_image_get_attr_str
  - fu_fdt_image_set_attr
  - fu_fdt_image_set_attr_format
  - fu_fdt_image_set_attr_uint32
  - fu_fdt_image_set_attr_uint64
  - fu_fdt_image_set_attr_str
  - fu_fdt_image_set_attr_strlist
  - fu_fdt_image_build_metadata_node
  - fu_fdt_image_build
  - fu_fdt_image_init
  - fu_fdt_image_finalize
  - fu_fdt_image_class_init
  - fu_fdt_image_new
  source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_FDT_IMAGE_FORMAT_STR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"str"'
    - item_type: preproc_def
      name: FU_FDT_IMAGE_FORMAT_STRLIST
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"strlist"'
    - item_type: preproc_def
      name: FU_FDT_IMAGE_FORMAT_UINT32
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"uint32"'
    - item_type: preproc_def
      name: FU_FDT_IMAGE_FORMAT_UINT64
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"uint64"'
    - item_type: preproc_def
      name: FU_FDT_IMAGE_FORMAT_DATA
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
      type_or_value: '"data"'
    structs:
    - fields:
      - name: '*hash_attrs'
        type: GHashTable
      - name: '*hash_attrs_format'
        type: GHashTable
      item_type: struct
      name: FuFdtImagePrivate
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*format'
        type: gchar
      item_type: struct
      name: "key_format_map[] = {{\"#address-cells\", FU_FDT_IMAGE_FORMAT_UINT32},\n\t\t\t
        \     {\"algo\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t      {\"arch\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {\"compatible\", FU_FDT_IMAGE_FORMAT_STRLIST},\n\t\t\t      {\"compression\",
        FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t      {\"creator\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {\"data-offset\", FU_FDT_IMAGE_FORMAT_UINT32},\n\t\t\t      {\"data-size\",
        FU_FDT_IMAGE_FORMAT_UINT32},\n\t\t\t      {\"default\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {\"description\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t      {\"entry\",
        FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t      {\"firmware\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {\"load\", FU_FDT_IMAGE_FORMAT_UINT32},\n\t\t\t      {\"os\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {\"timestamp\", FU_FDT_IMAGE_FORMAT_UINT32},\n\t\t\t      {\"type\",
        FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t      {\"version\", FU_FDT_IMAGE_FORMAT_STR},\n\t\t\t
        \     {NULL, NULL}}"
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_FILE_PATH_DEVICE_PATH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.h
      type_or_value: (fu_efi_file_path_device_path_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_msgpack_parse
  - fu_msgpack_write
  - fu_msgpack_map_lookup
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-msgpack.c
      type_or_value: '"FuMsgpack"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_device_set_plugin
  source_file: /src/fwupd/libfwupdplugin/fu-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-version-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_x509_certificate_gnutls_datum_deinit
  - fu_x509_certificate_export
  - fu_x509_certificate_get_issuer
  - fu_x509_certificate_set_issuer
  - fu_x509_certificate_set_subject
  - fu_x509_certificate_get_subject
  - fu_x509_certificate_set_activation_time
  - fu_x509_certificate_get_activation_time
  - fu_x509_certificate_parse
  - fu_x509_certificate_init
  - fu_x509_certificate_finalize
  - fu_x509_certificate_class_init
  - fu_x509_certificate_new
  source_file: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*issuer'
        type: gchar
      - name: '*subject'
        type: gchar
      - name: '*activation_time'
        type: GDateTime
      item_type: struct
      name: _FuX509Certificate
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-backend-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuIntegerBase
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-string.h
    - item_type: typedef
      name: "(*FuStrsplitFunc)(GString *token,\n\t\t\t\t   guint token_idx,\n\t\t\t\t
        \  gpointer user_data,\n\t\t\t\t   GError **error)"
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/fwupd/libfwupdplugin/fu-string.h
    - item_type: typedef
      name: FuUtfConvertFlags
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/fwupd/libfwupdplugin/fu-string.h
    union: []
- function_names:
  - fu_hid_report_item_get_kind
  - fu_hid_report_item_get_value
  - fu_hid_report_item_export
  - fu_hid_report_item_parse
  - fu_hid_report_item_write
  - fu_hid_report_item_build
  - fu_hid_report_item_init
  - fu_hid_report_item_class_init
  - fu_hid_report_item_new
  source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
      type_or_value: '"FuHidDevice"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: value
        type: guint32
      item_type: struct
      name: _FuHidReportItem
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_TBT_IS_SAFE_MODE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"Thunderbolt::IsSafeMode"'
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_UEFI_DEVICE_KIND
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"UefiDeviceKind"'
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_UEFI_FW_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"UefiFwVersion"'
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_UEFI_CAPSULE_FLAGS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"UefiCapsuleFlags"'
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_CPU_MITIGATIONS_REQUIRED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"CpuMitigationsRequired"'
    - item_type: preproc_def
      name: FU_DEVICE_METADATA_CPU_SINKCLOSE_MICROCODE_VER
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/libfwupdplugin/fu-device-metadata.h
      type_or_value: '"CpuSinkcloseMicrocodeVersion"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_BOS_DESCRIPTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.h
      type_or_value: (fu_usb_bos_descriptor_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_common_get_block_devices
  - fu_common_get_memory_size_impl
  - fu_common_get_kernel_cmdline_impl
  - fu_common_get_olson_timezone_id_impl
  source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
      type_or_value: '"FuCommon"'
    - item_type: preproc_def
      name: UDISKS_DBUS_PATH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
      type_or_value: '"/org/freedesktop/UDisks2/Manager"'
    - item_type: preproc_def
      name: UDISKS_DBUS_MANAGER_INTERFACE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
      type_or_value: '"org.freedesktop.UDisks2.Manager"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-oprom-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_OPROM_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-device.h
      type_or_value: (fu_oprom_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuPciDeviceClass
      item_type: struct
      name: _FuOpromDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_DEVICE_DS20
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.h
      type_or_value: (fu_usb_device_ds20_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      - name: "(*parse)(FuUsbDeviceDs20 *self,\n\t\t\t  GInputStream *stream,\n\t\t\t
          \ FuUsbDevice *device,\n\t\t\t  GError **error)"
        type: gboolean
      item_type: struct
      name: _FuUsbDeviceDs20Class
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_SIGNATURE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: (fu_efi_signature_get_type())
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_GUID_ZERO
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: '"00000000-0000-0000-0000-000000000000"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_GUID_MICROSOFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: '"77fa9abd-0359-4d32-bd60-28f4e78f784b"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_GUID_OVMF
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: '"a0baa8a3-041d-48a8-bc87-c36d121b5e3d"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_GUID_OVMF_LEGACY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: '"d5c1df0b-1bac-4edf-ba48-08834009ca5a"'
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiSignatureClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_x509_device_probe
  - fu_efi_x509_device_convert_version
  - fu_efi_x509_device_prepare_firmware
  - fu_efi_x509_device_write_firmware
  - fu_efi_x509_device_set_progress
  - fu_efi_x509_device_init
  - fu_efi_x509_device_finalize
  - fu_efi_x509_device_class_init
  - fu_efi_x509_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
      type_or_value: '"FuEfiX509Device"'
    structs:
    - fields:
      - name: '*sig'
        type: FuEfiX509Signature
      item_type: struct
      name: FuEfiX509DevicePrivate
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_pefile_firmware_export
  - fu_pefile_firmware_validate
  - fu_pefile_firmware_add_region
  - fu_pefile_firmware_region_free
  - fu_pefile_firmware_region_sort_cb
  - fu_pefile_firmware_parse_section
  - fu_pefile_firmware_parse
  - fu_pefile_firmware_section_free
  - fu_pefile_firmware_write
  - fu_pefile_firmware_get_checksum
  - fu_pefile_firmware_init
  - fu_pefile_firmware_finalize
  - fu_pefile_firmware_class_init
  - fu_pefile_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_PEFILE_SECTION_ID_STRTAB_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*authenticode_hash'
        type: gchar
      - name: subsystem_id
        type: guint16
      item_type: struct
      name: FuPefileFirmwarePrivate
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    - fields:
      - name: offset
        type: gsize
      - name: size
        type: gsize
      - name: '*name'
        type: gchar
      item_type: struct
      name: FuPefileFirmwareRegion
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    - fields:
      - name: '*blob'
        type: GBytes
      - name: '*id'
        type: gchar
      - name: offset
        type: gsize
      - name: blobsz_aligned
        type: gsize
      item_type: struct
      name: FuPefileSection
      pos:
        line_end: 377
        line_start: 372
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CONFIG
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-config.h
      type_or_value: (fu_config_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      item_type: struct
      name: _FuConfigClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-config.h
    typedefs: []
    union: []
- function_names:
  - fu_hwids_fdt_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: '*hwid'
        type: gchar
      - name: '*key'
        type: gchar
      item_type: struct
      name: "map[] = {{FU_HWIDS_KEY_MANUFACTURER, \"vendor\"},\n\t\t   {FU_HWIDS_KEY_FAMILY,
        \"model-name\"},\n\t\t   {FU_HWIDS_KEY_PRODUCT_NAME, \"model\"},\n\t\t   {NULL,
        NULL}}"
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
    - fields:
      - name: chassis_kind
        type: FuSmbiosChassisKind
      - name: '*dt'
        type: gchar
      item_type: struct
      name: "chassis_map[] = {{FU_SMBIOS_CHASSIS_KIND_CONVERTIBLE, \"convertible\"},\n\t\t\t\t
        \  {FU_SMBIOS_CHASSIS_KIND_EMBEDDED_PC, \"embedded\"},\n\t\t\t\t   {FU_SMBIOS_CHASSIS_KIND_HAND_HELD,
        \"handset\"},\n\t\t\t\t   {FU_SMBIOS_CHASSIS_KIND_LAPTOP, \"laptop\"},\n\t\t\t\t
        \  {FU_SMBIOS_CHASSIS_KIND_TABLET, \"tablet\"},\n\t\t\t\t   {FU_SMBIOS_CHASSIS_KIND_UNKNOWN,
        NULL}}"
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MSGPACK_ITEM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item.h
      type_or_value: (fu_msgpack_item_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-chunk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CHUNK
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-chunk.h
      type_or_value: (fu_chunk_get_type())
    - item_type: preproc_def
      name: FU_CHUNK_PAGESZ_NONE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-chunk.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_CHUNK_ADDR_OFFSET_NONE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-chunk.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIDRAW_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.h
      type_or_value: (fu_hidraw_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuHidrawDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.h
    typedefs: []
    union: []
- function_names:
  - fu_archive_finalize
  - fu_archive_class_init
  - fu_archive_init
  - fu_archive_add_entry
  - fu_archive_lookup_by_fn
  - fu_archive_iterate
  - fu_archive_read_ctx_free
  - fu_archive_write_ctx_free
  - fu_archive_entry_ctx_free
  - fu_archive_set_format
  - fu_archive_set_compression
  - fu_archive_read_new
  - fu_archive_read
  - fu_archive_new
  - fu_archive_skip_cb
  - fu_archive_read_cb
  - fu_archive_whence_to_seek_type
  - fu_archive_seek_cb
  - fu_archive_new_stream
  - fu_archive_write_cb
  - fu_archive_write
  source_file: /src/fwupd/libfwupdplugin/fu-archive.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-archive.c
      type_or_value: '"FuArchive"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*entries'
        type: GHashTable
      item_type: struct
      name: _FuArchive
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-archive.c
    - fields:
      - name: '*stream'
        type: GInputStream
      - name: buf[0x8000]
        type: guint8
      item_type: struct
      name: FuArchiveStreamHelper
      pos:
        line_end: 397
        line_start: 394
        source_file: /src/fwupd/libfwupdplugin/fu-archive.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLUEZ_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: (fu_bluez_device_get_type())
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_SYSTEM_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a23-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_MODEL_NUMBER
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a24-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_SERIAL_NUMBER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a25-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_FIRMWARE_REVISION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a26-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_HARDWARE_REVISION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a27-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_SOFTWARE_REVISION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a28-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_MANUFACTURER_NAME
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a29-0000-1000-8000-00805f9b34fb"'
    - item_type: preproc_def
      name: FU_BLUEZ_DEVICE_UUID_DI_PNP_UID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
      type_or_value: '"00002a50-0000-1000-8000-00805f9b34fb"'
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuBluezDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-gcab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SBATLEVEL_SECTION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.h
      type_or_value: (fu_sbatlevel_section_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuSbatlevelSectionClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-device-progress.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVICE_PROGRESS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-device-progress.h
      type_or_value: (fu_device_progress_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-device-event.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVICE_EVENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-device-event.h
      type_or_value: (fu_device_event_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-context.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CONTEXT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
      type_or_value: (fu_context_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*security_changed)(FuContext *self)
        type: void
      - name: (*housekeeping)(FuContext *self)
        type: void
      item_type: struct
      name: _FuContextClass
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
    typedefs:
    - item_type: typedef
      name: FuContextQuirkSource
      pos:
        line_end: 66
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
    - item_type: typedef
      name: "(*FuContextLookupIter)(FuContext *self,\n\t\t\t\t    const gchar *key,\n\t\t\t\t
        \   const gchar *value,\n\t\t\t\t    FuContextQuirkSource source,\n\t\t\t\t
        \   gpointer user_data)"
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
      type: void
    - item_type: typedef
      name: FuContextFlags
      pos:
        line_end: 163
        line_start: 89
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
    - item_type: typedef
      name: FuContextEspFileFlags
      pos:
        line_end: 322
        line_start: 281
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_HARD_DRIVE_DEVICE_PATH
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.h
      type_or_value: (fu_efi_hard_drive_device_path_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_LOAD_OPTION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.h
      type_or_value: (fu_efi_load_option_get_type())
    - item_type: preproc_def
      name: FU_EFI_LOAD_OPTION_METADATA_PATH
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.h
      type_or_value: '"path"'
    - item_type: preproc_def
      name: FU_EFI_LOAD_OPTION_METADATA_CMDLINE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-efi-load-option.h
      type_or_value: '"cmdline"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_smbios_get_item_for_type_length
  - fu_smbios_setup_from_data
  - fu_smbios_setup_from_file
  - fu_smbios_parse_ep32
  - fu_smbios_parse_ep64
  - fu_smbios_setup_from_path
  - fu_smbios_parse
  - fu_smbios_setup
  - fu_smbios_export
  - fu_smbios_get_data
  - fu_smbios_get_integer
  - fu_smbios_get_string
  - fu_smbios_item_free
  - fu_smbios_finalize
  - fu_smbios_class_init
  - fu_smbios_init
  - fu_smbios_new
  source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '"FuSmbios"'
    - item_type: preproc_def
      name: FU_SMBIOS_FT_SIG_ACPI
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '0x41435049'
    - item_type: preproc_def
      name: FU_SMBIOS_FT_SIG_FIRM
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '0x4649524D'
    - item_type: preproc_def
      name: FU_SMBIOS_FT_SIG_RSMB
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '0x52534D42'
    - item_type: preproc_def
      name: FU_SMBIOS_FT_RAW_OFFSET
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '0x08'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: structure_table_len
        type: guint32
      - name: '*items'
        type: GPtrArray
      item_type: struct
      name: _FuSmbios
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
    - fields:
      - name: type
        type: guint8
      - name: handle
        type: guint16
      - name: '*buf'
        type: GByteArray
      - name: '*strings'
        type: GPtrArray
      item_type: struct
      name: FuSmbiosItem
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_plugin_is_open
  - fu_plugin_get_name
  - fu_plugin_set_name
  - fu_plugin_get_vfuncs
  - fu_plugin_cache_lookup
  - fu_plugin_cache_add
  - fu_plugin_cache_remove
  - fu_plugin_get_data
  - fu_plugin_alloc_data
  - fu_plugin_guess_name_from_fn
  - fu_plugin_open
  - fu_plugin_add_string
  - fu_plugin_to_string
  - fu_plugin_build_device_update_error
  - fu_plugin_ensure_devices
  - fu_plugin_device_child_added_cb
  - fu_plugin_device_child_removed_cb
  - fu_plugin_device_add
  - fu_plugin_get_devices
  - fu_plugin_device_register
  - fu_plugin_device_remove
  - fu_plugin_check_supported
  - fu_plugin_get_context
  - fu_plugin_set_context
  - fu_plugin_device_attach
  - fu_plugin_device_detach
  - fu_plugin_device_activate
  - fu_plugin_device_write_firmware
  - fu_plugin_device_get_results
  - fu_plugin_device_read_firmware
  - fu_plugin_runner_startup
  - fu_plugin_runner_ready
  - fu_plugin_runner_init
  - fu_plugin_runner_device_generic
  - fu_plugin_runner_device_generic_progress
  - fu_plugin_runner_flagged_device_generic
  - fu_plugin_runner_device_array_generic
  - fu_plugin_runner_coldplug
  - fu_plugin_runner_composite_prepare
  - fu_plugin_runner_composite_cleanup
  - fu_plugin_runner_prepare
  - fu_plugin_runner_cleanup
  - fu_plugin_runner_attach
  - fu_plugin_runner_detach
  - fu_plugin_runner_reload
  - fu_plugin_runner_reboot_cleanup
  - fu_plugin_runner_add_security_attrs
  - fu_plugin_add_device_gtype
  - fu_plugin_get_device_gtypes
  - fu_plugin_get_device_gtype_default
  - fu_plugin_set_device_gtype_default
  - fu_plugin_string_uncamelcase
  - fu_plugin_check_amdgpu_dpaux
  - fu_plugin_add_device_udev_subsystem
  - fu_plugin_add_udev_subsystem
  - fu_plugin_add_firmware_gtype
  - fu_plugin_check_supported_device
  - fu_plugin_backend_device_added
  - fu_plugin_runner_backend_device_added
  - fu_plugin_runner_backend_device_changed
  - fu_plugin_runner_device_added
  - fu_plugin_runner_device_removed
  - fu_plugin_runner_device_register
  - fu_plugin_runner_device_created
  - fu_plugin_runner_verify
  - fu_plugin_runner_activate
  - fu_plugin_runner_unlock
  - fu_plugin_runner_write_firmware
  - fu_plugin_runner_clear_results
  - fu_plugin_runner_get_results
  - fu_plugin_runner_fix_host_security_attr
  - fu_plugin_runner_undo_host_security_attr
  - fu_plugin_runner_modify_config
  - fu_plugin_get_order
  - fu_plugin_set_order
  - fu_plugin_get_priority
  - fu_plugin_set_priority
  - fu_plugin_add_rule
  - fu_plugin_get_rules
  - fu_plugin_add_report_metadata
  - fu_plugin_get_report_metadata
  - fu_plugin_get_config_value
  - fu_plugin_set_config_default
  - fu_plugin_security_attr_new
  - fu_plugin_set_config_value
  - fu_plugin_reset_config_values
  - fu_plugin_get_config_value_boolean
  - fu_plugin_name_compare
  - fu_plugin_order_compare
  - fu_plugin_convert_gtype_to_name
  - fu_plugin_get_property
  - fu_plugin_set_property
  - fu_plugin_dispose
  - fu_plugin_class_init
  - fu_plugin_init
  - fu_plugin_finalize
  - fu_plugin_new_from_gtype
  - fu_plugin_new
  source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
      type_or_value: '"FuPlugin"'
    structs:
    - fields:
      - name: '*module'
        type: GModule
      - name: order
        type: guint
      - name: priority
        type: guint
      - name: done_init
        type: gboolean
      - name: '*rules[FU_PLUGIN_RULE_LAST]'
        type: GPtrArray
      - name: '*devices'
        type: GPtrArray
      - name: '*runtime_versions'
        type: GHashTable
      - name: '*compile_versions'
        type: GHashTable
      - name: '*ctx'
        type: FuContext
      - name: '*device_gtypes'
        type: GArray
      - name: device_gtype_default
        type: GType
      - name: '*cache'
        type: GHashTable
      - name: '*report_metadata'
        type: GHashTable
      - name: '*config_monitor'
        type: GFileMonitor
      - name: '*data'
        type: FuPluginData
      - name: vfuncs
        type: FuPluginVfuncs
      item_type: struct
      name: FuPluginPrivate
      pos:
        line_end: 55
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
    typedefs:
    - item_type: typedef
      name: (*FuPluginInitVfuncsFunc)(FuPluginVfuncs *vfuncs)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
      type: void
    - item_type: typedef
      name: (*FuPluginDeviceFunc)(FuPlugin *self, FuDevice *device, GError **error)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
    - item_type: typedef
      name: "(*FuPluginDeviceProgressFunc)(FuPlugin *self,\n\t\t\t\t\t       FuDevice
        *device,\n\t\t\t\t\t       FuProgress *progress,\n\t\t\t\t\t       GError
        **error)"
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
    - item_type: typedef
      name: "(*FuPluginFlaggedDeviceFunc)(FuPlugin *self,\n\t\t\t\t\t      FuDevice
        *device,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t      FwupdInstallFlags
        flags,\n\t\t\t\t\t      GError **error)"
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
    - item_type: typedef
      name: (*FuPluginDeviceArrayFunc)(FuPlugin *self, GPtrArray *devices, GError
        **error)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.c
    union: []
- function_names:
  - fu_device_event_blob_free
  - fu_device_event_blob_new
  - fu_device_event_build_id
  - fu_device_event_get_id
  - fu_device_event_set_str
  - fu_device_event_set_i64
  - fu_device_event_set_bytes
  - fu_device_event_set_data
  - fu_device_event_set_error
  - fu_device_event_check_error
  - fu_device_event_lookup
  - fu_device_event_get_str
  - fu_device_event_get_i64
  - fu_device_event_get_bytes
  - fu_device_event_copy_data
  - fu_device_event_add_json
  - fu_device_event_set_id
  - fu_device_event_from_json
  - fu_device_event_init
  - fu_device_event_finalize
  - fu_device_event_class_init
  - fu_device_event_codec_iface_init
  - fu_device_event_new
  source_file: /src/fwupd/libfwupdplugin/fu-device-event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-device-event.c
      type_or_value: '"FuDeviceEvent"'
    - item_type: preproc_def
      name: FU_DEVICE_EVENT_KEY_HASH_PREFIX_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/libfwupdplugin/fu-device-event.c
      type_or_value: '8'
    structs:
    - fields:
      - name: gtype
        type: GType
      - name: '*key'
        type: gchar
      - name: key_destroy
        type: GDestroyNotify
      - name: data
        type: gpointer
      - name: data_destroy
        type: GDestroyNotify
      item_type: struct
      name: FuDeviceEventBlob
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-device-event.c
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*id'
        type: gchar
      - name: '*id_uncompressed'
        type: gchar
      - name: '*values'
        type: GPtrArray
      item_type: struct
      name: _FuDeviceEvent
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-device-event.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-section.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_SECTION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-section.h
      type_or_value: (fu_efi_section_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiSectionClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-section.h
    typedefs: []
    union: []
- function_names:
  - fu_usb_endpoint_from_json
  - fu_usb_endpoint_add_json
  - fu_usb_endpoint_get_maximum_packet_size
  - fu_usb_endpoint_get_polling_interval
  - fu_usb_endpoint_get_address
  - fu_usb_endpoint_get_number
  - fu_usb_endpoint_get_direction
  - fu_usb_endpoint_parse
  - fu_usb_endpoint_codec_iface_init
  - fu_usb_endpoint_init
  - fu_usb_endpoint_class_init
  - fu_usb_endpoint_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDescriptor
      - name: endpoint_descriptor
        type: struct libusb_endpoint_descriptor
      item_type: struct
      name: _FuUsbEndpoint
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SECURITY_ATTRS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.h
      type_or_value: (fu_security_attrs_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-common-guid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hid_report_init
  - fu_hid_report_class_init
  - fu_hid_report_new
  source_file: /src/fwupd/libfwupdplugin/fu-hid-report.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report.c
      type_or_value: '"FuHidDevice"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuHidReport
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report.c
    typedefs: []
    union: []
- function_names:
  - fu_efivars_supported
  - fu_efivars_delete
  - fu_efivars_delete_with_glob
  - fu_efivars_exists
  - fu_efivars_get_data
  - fu_efivars_get_data_bytes
  - fu_efivars_get_names
  - fu_efivars_get_monitor
  - fu_efivars_space_used
  - fu_efivars_space_free
  - fu_efivars_set_data
  - fu_efivars_set_data_bytes
  - fu_efivars_get_secure_boot
  - fu_efivars_set_secure_boot
  - fu_efivars_get_boot_next
  - fu_efivars_set_boot_next
  - fu_efivars_get_boot_current
  - fu_efivars_set_boot_current
  - fu_efivars_get_boot_order
  - fu_efivars_set_boot_order
  - fu_efivars_build_boot_order
  - fu_efivars_create_boot_entry_for_volume
  - fu_efivars_get_boot_data
  - fu_efivars_set_boot_data
  - fu_efivars_get_boot_entry
  - fu_efivars_set_boot_entry
  - fu_efivars_get_boot_entries
  - fu_efivars_init
  - fu_efivars_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-efivars.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-kernel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_DEVICE_PATH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.h
      type_or_value: (fu_efi_device_path_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiDevicePathClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.h
    typedefs: []
    union: []
- function_names:
  - fu_msgpack_item_get_kind
  - fu_msgpack_item_get_boolean
  - fu_msgpack_item_get_integer
  - fu_msgpack_item_get_float
  - fu_msgpack_item_get_binary
  - fu_msgpack_item_get_map
  - fu_msgpack_item_get_array
  - fu_msgpack_item_get_string
  - fu_msgpack_item_new_nil
  - fu_msgpack_item_new_boolean
  - fu_msgpack_item_new_integer
  - fu_msgpack_item_new_float
  - fu_msgpack_item_new_binary
  - fu_msgpack_item_new_binary_stream
  - fu_msgpack_item_new_string
  - fu_msgpack_item_new_map
  - fu_msgpack_item_new_array
  - fu_msgpack_item_append_integer
  - fu_msgpack_item_append_double
  - fu_msgpack_item_append_array
  - fu_msgpack_item_append_map
  - fu_msgpack_item_append_string
  - fu_msgpack_item_append_binary_stream_chunk_cb
  - fu_msgpack_item_append_binary_stream
  - fu_msgpack_item_append_binary
  - fu_msgpack_item_append
  - fu_msgpack_item_read_binary
  - fu_msgpack_item_read_string
  - fu_msgpack_item_parse
  - fu_msgpack_item_init
  - fu_msgpack_item_finalize
  - fu_msgpack_item_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
      type_or_value: '"FuMsgpack"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: kind
        type: FuMsgpackItemKind
      - name: '*stream'
        type: GInputStream
      - name: value
        type: "union {\n\t\tgint64 i64;\n\t\tgdouble f64;\n\t\tGByteArray *buf;\n\t\tGString
          *str;\n\t}"
      item_type: struct
      name: _FuMsgpackItem
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FIRMWARE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: (fu_firmware_get_type())
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_PAYLOAD
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: '"payload"'
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_SIGNATURE
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: '"signature"'
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_HEADER
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: '"header"'
    - item_type: preproc_def
      name: FU_FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: (32 * 1024 * 1024)
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: "(*parse)(FuFirmware *self,\n\t\t\t  GInputStream *stream,\n\t\t\t  FuFirmwareParseFlags
          flags,\n\t\t\t  GError **error)"
        type: gboolean
      - name: '*(*write)(FuFirmware *self, GError **error)'
        type: GByteArray
      - name: (*export)(FuFirmware *self, FuFirmwareExportFlags flags, XbBuilderNode
          *bn)
        type: void
      - name: "(*tokenize)(FuFirmware *self,\n\t\t\t     GInputStream *stream,\n\t\t\t
          \    FuFirmwareParseFlags flags,\n\t\t\t     GError **error)"
        type: gboolean
      - name: (*build)(FuFirmware *self, XbNode *n, GError **error)
        type: gboolean
      - name: "*(*get_checksum)(FuFirmware *self,\n\t\t\t       GChecksumType csum_kind,\n\t\t\t
          \      GError **error)"
        type: gchar
      - name: (*validate)(FuFirmware *self, GInputStream *stream, gsize offset, GError
          **error)
        type: gboolean
      - name: "(*check_compatible)(FuFirmware *self,\n\t\t\t\t     FuFirmware *other,\n\t\t\t\t
          \    FuFirmwareParseFlags flags,\n\t\t\t\t     GError **error)"
        type: gboolean
      - name: '*(*convert_version)(FuFirmware *self, guint64 version_raw)'
        type: gchar
      item_type: struct
      name: _FuFirmwareClass
      pos:
        line_end: 137
        line_start: 115
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    typedefs:
    - item_type: typedef
      name: FuFirmwareExportFlags
      pos:
        line_end: 55
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    - item_type: typedef
      name: FuFirmwareParseFlags
      pos:
        line_end: 113
        line_start: 62
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    - item_type: typedef
      name: FuFirmwareFlags
      pos:
        line_end: 237
        line_start: 144
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    - item_type: typedef
      name: FuFirmwareAlignment
      pos:
        line_end: 304
        line_start: 269
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-context-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuContextHwidFlags
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-context-private.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_DEVICE_PATH_LIST
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.h
      type_or_value: (fu_efi_device_path_list_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FREEBSD_EFIVARS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.h
      type_or_value: (fu_freebsd_efivars_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_oprom_device_probe
  - fu_oprom_device_set_enabled
  - fu_oprom_device_dump_enable_cb
  - fu_oprom_device_dump_disable_cb
  - fu_oprom_device_dump_firmware
  - fu_oprom_device_init
  - fu_oprom_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-oprom-device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_csv_firmware_add_column_id
  - fu_csv_firmware_get_column_id
  - fu_csv_firmware_get_idx_for_column_id
  - fu_csv_firmware_set_write_column_ids
  - fu_csv_firmware_get_write_column_ids
  - fu_csv_firmware_parse_token_cb
  - fu_csv_firmware_parse_line_cb
  - fu_csv_firmware_parse
  - fu_csv_firmware_write
  - fu_csv_firmware_export
  - fu_csv_firmware_build
  - fu_csv_firmware_init
  - fu_csv_firmware_finalize
  - fu_csv_firmware_class_init
  - fu_csv_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*column_ids'
        type: GPtrArray
      - name: write_column_ids
        type: gboolean
      item_type: struct
      name: FuCsvFirmwarePrivate
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-block-partition.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLOCK_PARTITION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-block-partition.h
      type_or_value: (fu_block_partition_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuBlockDeviceClass
      item_type: struct
      name: _FuBlockPartitionClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-block-partition.h
    typedefs: []
    union: []
- function_names:
  - fu_sbatlevel_section_add_entry
  - fu_sbatlevel_section_parse
  - fu_sbatlevel_section_write
  - fu_sbatlevel_section_init
  - fu_sbatlevel_section_class_init
  - fu_sbatlevel_section_new
  source_file: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IFD_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.h
      type_or_value: (fu_ifd_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIfdFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_fit_firmware_get_image_root
  - fu_fit_firmware_get_timestamp
  - fu_fit_firmware_set_timestamp
  - fu_fit_firmware_verify_crc32
  - fu_fit_firmware_verify_checksum
  - fu_fit_firmware_verify_hash
  - fu_fit_firmware_verify_image
  - fu_fit_firmware_verify_configuration
  - fu_fit_firmware_parse
  - fu_fit_firmware_init
  - fu_fit_firmware_class_init
  - fu_fit_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usb_hid_descriptor_from_json
  - fu_usb_hid_descriptor_add_json
  - fu_usb_hid_descriptor_get_iface_number
  - fu_usb_hid_descriptor_set_iface_number
  - fu_usb_hid_descriptor_get_descriptor_length
  - fu_usb_hid_descriptor_get_blob
  - fu_usb_hid_descriptor_set_blob
  - fu_usb_hid_descriptor_parse
  - fu_usb_hid_descriptor_codec_iface_init
  - fu_usb_hid_descriptor_init
  - fu_usb_hid_descriptor_finalize
  - fu_usb_hid_descriptor_class_init
  - fu_usb_hid_descriptor_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDescriptor
      - name: iface_number
        type: guint8
      - name: descriptor_length
        type: gsize
      - name: '*blob'
        type: GBytes
      item_type: struct
      name: _FuUsbHidDescriptor
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    typedefs: []
    union: []
- function_names:
  - fu_hid_descriptor_count_table_dupes
  - fu_hid_descriptor_parse
  - fu_hid_descriptor_write_report_item
  - fu_hid_descriptor_write_report
  - fu_hid_descriptor_write
  - fu_hid_descriptor_find_report
  - fu_hid_descriptor_init
  - fu_hid_descriptor_class_init
  - fu_hid_descriptor_new
  source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
      type_or_value: '"FuHidDevice"'
    - item_type: preproc_def
      name: FU_HID_DESCRIPTOR_TABLE_LOCAL_SIZE_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FU_HID_DESCRIPTOR_TABLE_LOCAL_DUPES_MAX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_HID_DESCRIPTOR_TABLE_GLOBAL_SIZE_MAX
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FU_HID_DESCRIPTOR_TABLE_GLOBAL_DUPES_MAX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*id'
        type: gchar
      - name: value
        type: guint32
      item_type: struct
      name: FuHidDescriptorCondition
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    typedefs: []
    union: []
- function_names:
  - fu_usb_device_fw_ds20_parse
  - fu_usb_device_fw_ds20_class_init
  - fu_usb_device_fw_ds20_init
  - fu_usb_device_fw_ds20_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
      type_or_value: '"FuUsbDeviceDs20"'
    - item_type: preproc_def
      name: DS20_VERSION_LOWEST
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
      type_or_value: ((1u << 16) | (8u << 8) | 5u)
    - item_type: preproc_def
      name: DS20_VERSION_CURRENT
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
      type_or_value: "((((guint32)FWUPD_MAJOR_VERSION) << 16) | (((guint32)FWUPD_MINOR_VERSION)
        << 8) |          \\\n\t ((guint)FWUPD_MICRO_VERSION))"
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDeviceDs20
      item_type: struct
      name: _FuUsbDeviceFwDs20
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-bytes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_bluez_device_uuid_free
  - fu_bluez_device_get_uuid_helper
  - fu_bluez_device_signal_cb
  - fu_bluez_device_ensure_uuid_helper_proxy
  - fu_bluez_device_add_uuid_path
  - fu_bluez_device_set_modalias
  - fu_bluez_device_to_string
  - fu_bluez_device_get_ble_property
  - fu_bluez_device_get_ble_string_property
  - fu_bluez_device_get_interface_uuid
  - fu_bluez_device_add_characteristic_uuid
  - fu_bluez_device_add_instance_by_service_uuid
  - fu_bluez_device_read_battery_interface
  - fu_bluez_device_parse_device_information_service
  - fu_bluez_device_ensure_gatt_interfaces
  - fu_bluez_device_probe
  - fu_bluez_device_reload
  - fu_bluez_device_read
  - fu_bluez_device_read_string
  - fu_bluez_device_write
  - fu_bluez_device_notify_start
  - fu_bluez_device_notify_stop
  - fu_bluez_device_method_acquire
  - fu_bluez_device_notify_acquire
  - fu_bluez_device_write_acquire
  - fu_bluez_device_incorporate
  - fu_bluez_device_convert_version
  - fu_bluez_device_get_property
  - fu_bluez_device_set_property
  - fu_bluez_device_finalize
  - fu_bluez_device_init
  - fu_bluez_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
      type_or_value: '"FuBluezDevice"'
    - item_type: preproc_def
      name: DEFAULT_PROXY_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
      type_or_value: '5000'
    structs:
    - fields:
      - name: '*object_manager'
        type: GDBusObjectManager
      - name: '*proxy'
        type: GDBusProxy
      - name: '*uuids'
        type: GHashTable
      item_type: struct
      name: FuBluezDevicePrivate
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    - fields:
      - name: '*self'
        type: FuBluezDevice
      - name: '*uuid'
        type: gchar
      - name: '*path'
        type: gchar
      - name: signal_id
        type: gulong
      - name: '*proxy'
        type: GDBusProxy
      item_type: struct
      name: FuBluezDeviceUuidHelper
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HID_REPORT_ITEM
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.h
      type_or_value: (fu_hid_report_item_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_uefi_device_set_guid
  - fu_uefi_device_get_guid
  - fu_uefi_device_set_name
  - fu_uefi_device_get_name
  - fu_uefi_device_set_efivar_bytes
  - fu_uefi_device_get_efivar_bytes
  - fu_uefi_device_to_string
  - fu_uefi_device_incorporate
  - fu_uefi_device_probe
  - fu_uefi_device_dump_firmware
  - fu_uefi_device_add_json
  - fu_uefi_device_from_json
  - fu_uefi_device_finalize
  - fu_uefi_device_required_free_notify_cb
  - fu_uefi_device_init
  - fu_uefi_device_class_init
  - fu_uefi_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.c
      type_or_value: '"FuUefiDevice"'
    - item_type: preproc_def
      name: FU_UEFI_DEVICE_INHIBIT_ID_NO_EFIVARS_SPACE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.c
      type_or_value: '"no-efivars-space"'
    structs:
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      item_type: struct
      name: FuUefiDevicePrivate
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_TABLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.h
      type_or_value: (fu_acpi_table_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuAcpiTableClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-common-private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UDISKS_DBUS_SERVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-common-private.h
      type_or_value: '"org.freedesktop.UDisks2"'
    - item_type: preproc_def
      name: UDISKS_DBUS_INTERFACE_PARTITION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-common-private.h
      type_or_value: '"org.freedesktop.UDisks2.Partition"'
    - item_type: preproc_def
      name: UDISKS_DBUS_INTERFACE_FILESYSTEM
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-common-private.h
      type_or_value: '"org.freedesktop.UDisks2.Filesystem"'
    - item_type: preproc_def
      name: UDISKS_DBUS_INTERFACE_BLOCK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-common-private.h
      type_or_value: '"org.freedesktop.UDisks2.Block"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-firmware-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_chunk_array_length
  - fu_chunk_array_calculate_chunk_for_offset
  - fu_chunk_array_index
  - fu_chunk_array_ensure_offsets
  - fu_chunk_array_new_from_bytes
  - fu_chunk_array_new_virtual
  - fu_chunk_array_new_from_stream
  - fu_chunk_array_finalize
  - fu_chunk_array_class_init
  - fu_chunk_array_init
  source_file: /src/fwupd/libfwupdplugin/fu-chunk-array.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-chunk-array.c
      type_or_value: '"FuChunkArray"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*blob'
        type: GBytes
      - name: '*stream'
        type: GInputStream
      - name: addr_offset
        type: gsize
      - name: page_sz
        type: gsize
      - name: packet_sz
        type: gsize
      - name: '*offsets'
        type: GArray
      - name: total_size
        type: gsize
      item_type: struct
      name: _FuChunkArray
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_V4L_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.h
      type_or_value: (fu_v4l_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuV4lDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-serio-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SERIO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-serio-device.h
      type_or_value: (fu_serio_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuSerioDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-serio-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-pci-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PCI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-pci-device.h
      type_or_value: (fu_pci_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuPciDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-pci-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-chunk-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_filesystem_parse
  - fu_efi_filesystem_write
  - fu_efi_filesystem_init
  - fu_efi_filesystem_class_init
  - fu_efi_filesystem_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EFI_FILESYSTEM_FILES_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: FU_EFI_FILESYSTEM_SIZE_MAX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
      type_or_value: '0x10000000 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_firmware_flag_to_string
  - fu_firmware_flag_from_string
  - fu_firmware_patch_free
  - fu_firmware_add_flag
  - fu_firmware_has_flag
  - fu_firmware_get_version
  - fu_firmware_set_version
  - fu_firmware_get_version_raw
  - fu_firmware_set_version_raw
  - fu_firmware_get_version_format
  - fu_firmware_set_version_format
  - fu_firmware_get_filename
  - fu_firmware_set_filename
  - fu_firmware_set_id
  - fu_firmware_get_id
  - fu_firmware_set_addr
  - fu_firmware_get_addr
  - fu_firmware_set_offset
  - fu_firmware_get_offset
  - fu_firmware_get_parent
  - fu_firmware_set_parent
  - fu_firmware_set_size
  - fu_firmware_get_size
  - fu_firmware_set_size_max
  - fu_firmware_get_size_max
  - fu_firmware_set_idx
  - fu_firmware_get_idx
  - fu_firmware_set_bytes
  - fu_firmware_get_bytes
  - fu_firmware_get_bytes_with_patches
  - fu_firmware_set_alignment
  - fu_firmware_get_stream
  - fu_firmware_set_stream
  - fu_firmware_get_alignment
  - fu_firmware_get_chunks
  - fu_firmware_add_chunk
  - fu_firmware_get_checksum
  - fu_firmware_tokenize
  - fu_firmware_check_compatible
  - fu_firmware_validate_for_offset
  - fu_firmware_parse_stream
  - fu_firmware_parse_bytes
  - fu_firmware_build
  - fu_firmware_build_from_xml
  - fu_firmware_build_from_filename
  - fu_firmware_parse_file
  - fu_firmware_write
  - fu_firmware_add_patch
  - fu_firmware_write_chunk
  - fu_firmware_write_file
  - fu_firmware_set_depth
  - fu_firmware_get_depth
  - fu_firmware_add_image_full
  - fu_firmware_add_image
  - fu_firmware_set_images_max
  - fu_firmware_get_images_max
  - fu_firmware_remove_image
  - fu_firmware_remove_image_by_idx
  - fu_firmware_remove_image_by_id
  - fu_firmware_get_images
  - fu_firmware_get_image_by_id
  - fu_firmware_get_image_by_id_bytes
  - fu_firmware_get_image_by_id_stream
  - fu_firmware_get_image_by_idx
  - fu_firmware_get_image_by_checksum
  - fu_firmware_get_image_by_idx_bytes
  - fu_firmware_get_image_by_idx_stream
  - fu_firmware_get_image_by_gtype_bytes
  - fu_firmware_get_image_by_gtype
  - fu_firmware_export
  - fu_firmware_export_to_xml
  - fu_firmware_to_string
  - fu_firmware_get_property
  - fu_firmware_set_property
  - fu_firmware_init
  - fu_firmware_finalize
  - fu_firmware_class_init
  - fu_firmware_new
  - fu_firmware_new_from_bytes
  - fu_firmware_new_from_gtypes
  source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_FIRMWARE_IMAGE_DEPTH_MAX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
      type_or_value: '50'
    structs:
    - fields:
      - name: flags
        type: FuFirmwareFlags
      - name: '*parent'
        type: FuFirmware
      - name: '*images'
        type: GPtrArray
      - name: '*version'
        type: gchar
      - name: version_raw
        type: guint64
      - name: version_format
        type: FwupdVersionFormat
      - name: '*bytes'
        type: GBytes
      - name: '*stream'
        type: GInputStream
      - name: streamsz
        type: gsize
      - name: alignment
        type: FuFirmwareAlignment
      - name: '*id'
        type: gchar
      - name: '*filename'
        type: gchar
      - name: idx
        type: guint64
      - name: addr
        type: guint64
      - name: offset
        type: guint64
      - name: size
        type: gsize
      - name: size_max
        type: gsize
      - name: images_max
        type: guint
      - name: depth
        type: guint
      - name: '*chunks'
        type: GPtrArray
      - name: '*patches'
        type: GPtrArray
      item_type: struct
      name: FuFirmwarePrivate
      pos:
        line_end: 50
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
    - fields:
      - name: offset
        type: gsize
      - name: '*blob'
        type: GBytes
      item_type: struct
      name: FuFirmwarePatch
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_efi_variable_authentication2_get_signers
  - fu_efi_variable_authentication2_export
  - fu_efi_variable_authentication2_validate
  - fu_efi_variable_authentication2_add_content_info_prefix
  - fu_efi_variable_authentication2_parse_pkcs7_certs
  - fu_efi_variable_authentication2_parse
  - fu_efi_variable_authentication2_write
  - fu_efi_variable_authentication2_init
  - fu_efi_variable_authentication2_finalize
  - fu_efi_variable_authentication2_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
      type_or_value: '"FuEfiVariableAuthentication2"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfiSignatureList
      - name: '*signers'
        type: GPtrArray
      item_type: struct
      name: _FuEfiVariableAuthentication2
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CSV_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware.h
      type_or_value: (fu_csv_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCsvFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-csv-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_test_hang_check_cb
  - fu_test_loop_run_with_timeout
  - fu_test_loop_quit
  - fu_msgpack_lookup_func
  - fu_msgpack_binary_stream_func
  - fu_msgpack_parse_binary_func
  - fu_msgpack_func
  - fu_archive_invalid_func
  - fu_archive_cab_func
  - fu_volume_gpt_type_func
  - fu_common_align_up_func
  - fu_common_bitwise_func
  - fu_common_byte_array_func
  - fu_common_crc_func
  - fu_common_guid_func
  - fu_string_append_func
  - fu_version_guess_format_func
  - fu_device_version_format_func
  - fu_device_version_format_raw_func
  - fu_device_open_refcount_func
  - fu_device_rescan_func
  - fu_device_name_func
  - fu_device_cfi_device_func
  - fu_device_metadata_func
  - fu_string_utf16_func
  - fu_smbios_func
  - fu_kernel_cmdline_func
  - fu_kernel_config_func
  - fu_smbios3_func
  - fu_context_efivars_func
  - fu_context_backends_func
  - fu_context_flags_func
  - fu_context_udev_subsystems_func
  - fu_context_state_func
  - fu_context_firmware_gtypes_func
  - fu_context_hwids_dmi_func
  - fu_context_hwids_fdt_func
  - fu_test_strnsplit_add_cb
  - fu_test_strnsplit_nop_cb
  - fu_common_memmem_func
  - fu_strpassmask_func
  - fu_strsplit_func
  - fu_common_olson_timezone_id_func
  - fu_cpuid_func
  - fu_strsafe_func
  - fu_hwids_func
  - fu_test_plugin_device_added_cb
  - fu_config_func
  - fu_plugin_config_func
  - fu_plugin_devices_func
  - fu_plugin_device_inhibit_children_func
  - fu_plugin_delay_func
  - fu_plugin_fdt_func
  - fu_plugin_quirks_func
  - fu_plugin_quirks_performance_func
  - fu_plugin_quirks_append_cb
  - fu_plugin_device_progress_func
  - fu_plugin_quirks_append_func
  - fu_quirks_vendor_ids_func
  - fu_plugin_func
  - fu_plugin_vfuncs_func
  - fu_plugin_device_gtype_func
  - fu_plugin_backend_device_func
  - fu_test_plugin_backend_proxy_device_added_cb
  - fu_plugin_backend_proxy_device_func
  - fu_plugin_quirks_device_func
  - fu_common_kernel_lockdown_func
  - fu_common_kernel_search_func
  - fu_test_open_cb
  - fu_test_close_cb
  - fu_device_locker_func
  - fu_test_fail_open_cb
  - fu_test_fail_close_cb
  - fu_device_locker_fail_func
  - fu_common_endian_func
  - fu_common_bytes_get_data_func
  - fu_device_poll_cb
  - fu_device_poll_func
  - fu_device_func
  - fu_device_event_donor_func
  - fu_device_event_func
  - fu_device_event_uncompressed_func
  - fu_device_vfuncs_func
  - fu_device_instance_ids_func
  - fu_device_composite_id_func
  - fu_device_inhibit_func
  - fu_device_inhibit_updateable_func
  - fu_device_custom_flags_func
  - fu_device_flags_func
  - fu_device_children_func
  - fu_device_parent_func
  - fu_device_incorporate_descendant_func
  - fu_device_incorporate_non_generic_func
  - fu_device_incorporate_flag_func
  - fu_device_incorporate_func
  - fu_backend_emulate_count_cb
  - fu_backend_emulate_func
  - fu_backend_func
  - fu_chunk_array_func
  - fu_chunk_func
  - fu_strstrip_func
  - fu_version_semver_func
  - fu_strtoull_func
  - fu_strtoll_func
  - fu_common_version_func
  - fu_common_vercmp_func
  - fu_firmware_raw_aligned_func
  - fu_firmware_ihex_func
  - fu_firmware_ihex_signed_func
  - fu_firmware_ihex_offset_func
  - fu_firmware_srec_func
  - fu_firmware_fdt_func
  - fu_firmware_fit_func
  - fu_firmware_srec_tokenization_func
  - fu_firmware_build_func
  - fu_test_firmware_dfuse_image_get_size
  - fu_test_firmware_dfuse_get_size
  - fu_firmware_dfuse_func
  - fu_firmware_fmap_func
  - fu_firmware_new_from_gtypes_func
  - fu_firmware_csv_func
  - fu_firmware_archive_func
  - fu_firmware_linear_func
  - fu_firmware_dfu_func
  - fu_firmware_ifwi_cpd_func
  - fu_firmware_ifwi_fpt_func
  - fu_firmware_oprom_func
  - fu_firmware_dfu_patch_func
  - fu_hid_descriptor_container_func
  - fu_hid_descriptor_func
  - fu_firmware_func
  - fu_firmware_convert_version_func
  - fu_firmware_common_func
  - fu_firmware_dedupe_func
  - fu_efivar_func
  - fu_efivar_boot_func
  - fu_device_retry_success
  - fu_device_retry_failed
  - fu_device_retry_success_3rd_try
  - fu_device_retry_success_func
  - fu_device_retry_failed_func
  - fu_device_retry_hardware_func
  - fu_bios_settings_load_func
  - fu_security_attrs_hsi_func
  - fu_security_attrs_compare_func
  - fu_firmware_builder_round_trip_func
  - fu_progress_percentage_changed_cb
  - fu_progress_func
  - fu_progress_child_func
  - fu_progress_scaling_func
  - fu_progress_parent_one_step_proxy_func
  - fu_progress_non_equal_steps_func
  - fu_progress_finish_func
  - fu_progress_global_fraction_func
  - fu_progress_child_finished
  - fu_partial_input_stream_composite_func
  - fu_partial_input_stream_simple_func
  - fu_partial_input_stream_closed_base_func
  - fu_partial_input_stream_func
  - fu_composite_input_stream_func
  - fu_strsplit_stream_cb
  - fu_strsplit_stream_func
  - fu_input_stream_find_func
  - fu_input_stream_sum_overflow_func
  - fu_input_stream_chunkify_func
  - fu_lzma_func
  - fu_plugin_efi_x509_signature_func
  - fu_plugin_efi_variable_authentication2_func
  - fu_plugin_efi_signature_list_func
  - fu_device_udev_func
  - fu_cab_checksum_func
  - fu_efi_lz77_decompressor_func
  - fu_input_stream_func
  - fu_plugin_struct_bits_func
  - fu_plugin_struct_list_func
  - fu_plugin_struct_func
  - fu_plugin_struct_wrapped_func
  - fu_efi_load_option_path_func
  - fu_efi_load_option_hive_func
  - fu_efi_load_option_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
      type_or_value: '"FuSelfTest"'
    structs:
    - fields:
      - name: '*in'
        type: gchar
      - name: '*op'
        type: gchar
      item_type: struct
      name: "strs[] = {{\"foo https://test.com/auth bar\", \"foo https://test.com/auth
        bar\"},\n\t\t    {\"foo https://user%40host:SECRET@test.com/auth bar\",\n\t\t
        \    \"foo https://user%40host:XXXXXX@test.com/auth bar\"},\n\t\t    {\"foo
        https://user1%40host:SECRET@test.com/auth \"\n\t\t     \"https://user2%40host:SECRET2@test.com/auth
        bar\",\n\t\t     \"foo https://user1%40host:XXXXXX@test.com/auth \"\n\t\t
        \    \"https://user2%40host:XXXXXXX@test.com/auth bar\"},\n\t\t    {NULL,
        NULL}}"
      pos:
        line_end: 1061
        line_start: 1058
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: '*in'
        type: gchar
      - name: '*op'
        type: gchar
      item_type: struct
      name: "strs[] = {{\"dave123\", \"dave123\"},\n\t\t    {\"dave123XXX\", \"dave123\"},\n\t\t
        \   {\"dave\\x03XXX\", \"dave.XX\"},\n\t\t    {\"dave\\x03\\x04XXX\", \"dave..X\"},\n\t\t
        \   {\"\\x03\\x03\", NULL},\n\t\t    {NULL, NULL}}"
      pos:
        line_end: 1146
        line_start: 1143
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: '*key'
        type: gchar
      - name: '*value'
        type: gchar
      item_type: struct
      name: "guids[] = {{\"Manufacturer\", \"6de5d951-d755-576b-bd09-c5cf66b27234\"},\n\t\t
        \    {\"HardwareID-14\", \"6de5d951-d755-576b-bd09-c5cf66b27234\"},\n\t\t
        \    {\"HardwareID-13\", \"f8e1de5f-b68c-5f52-9d1a-f1ba52f1f773\"},\n\t\t
        \    {\"HardwareID-12\", \"e093d715-70f7-51f4-b6c8-b4a7e31def85\"},\n\t\t
        \    {\"HardwareID-11\", \"db73af4c-4612-50f7-b8a7-787cf4871847\"},\n\t\t
        \    {\"HardwareID-10\", \"f4275c1f-6130-5191-845c-3426247eb6a1\"},\n\t\t
        \    {\"HardwareID-09\", \"0cf8618d-9eff-537c-9f35-46861406eb9c\"},\n\t\t
        \    {\"HardwareID-08\", \"059eb22d-6dc7-59af-abd3-94bbe017f67c\"},\n\t\t
        \    {\"HardwareID-07\", \"da1da9b6-62f5-5f22-8aaa-14db7eeda2a4\"},\n\t\t
        \    {\"HardwareID-06\", \"178cd22d-ad9f-562d-ae0a-34009822cdbe\"},\n\t\t
        \    {\"HardwareID-05\", \"8dc9b7c5-f5d5-5850-9ab3-bd6f0549d814\"},\n\t\t
        \    {\"HardwareID-04\", \"660ccba8-1b78-5a33-80e6-9fb8354ee873\"},\n\t\t
        \    {\"HardwareID-03\", \"3faec92a-3ae3-5744-be88-495e90a7d541\"},\n\t\t
        \    {\"HardwareID-02\", \"f5ff077f-3eeb-5bae-be1c-e98ffe8ce5f8\"},\n\t\t
        \    {\"HardwareID-01\", \"b7cceb67-774c-537e-bf8b-22c6107e9a74\"},\n\t\t
        \    {\"HardwareID-00\", \"147efce9-f201-5fc8-ab0c-c859751c3440\"},\n\t\t
        \    {NULL, NULL}}"
      pos:
        line_end: 1187
        line_start: 1184
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: seen_one
        type: gboolean
      - name: seen_two
        type: gboolean
      item_type: struct
      name: FuPluginQuirksAppendHelper
      pos:
        line_end: 1641
        line_start: 1638
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: '*old'
        type: gchar
      - name: '*new'
        type: gchar
      item_type: struct
      name: "map[] = {{\"same\", \"same\"},\n\t\t   {\" leading\", \"leading\"},\n\t\t
        \  {\"tailing \", \"tailing\"},\n\t\t   {\"  b  \", \"b\"},\n\t\t   {\"  \",
        \"\"},\n\t\t   {NULL, NULL}}"
      pos:
        line_end: 3171
        line_start: 3168
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: '*old'
        type: gchar
      - name: '*new'
        type: gchar
      - name: fmt
        type: FwupdVersionFormat
      item_type: struct
      name: "map[] = {{\"1.2.3\", \"1.2.3\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t
        \  {\"1.2.3.4\", \"1.2.3\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t   {\"1.2\",
        \"0.1.2\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t   {\"1\", \"0.0.1\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t
        \  {\"CBET1.2.3\", \"1.2.3\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t   {\"4.11-1190-g12d8072e6b-dirty\",
        \"4.11.1190\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t   {\"4.11-1190-g12d8072e6b-dirty\",
        \"4.11\", FWUPD_VERSION_FORMAT_PAIR},\n\t\t   {NULL, NULL}}"
      pos:
        line_end: 3190
        line_start: 3186
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: val
        type: guint32
      - name: '*ver'
        type: gchar
      - name: flags
        type: FwupdVersionFormat
      item_type: struct
      name: "version_from_uint32[] = {\n\t    {0x0, \"0.0.0.0\", FWUPD_VERSION_FORMAT_QUAD},\n\t
        \   {0xff, \"0.0.0.255\", FWUPD_VERSION_FORMAT_QUAD},\n\t    {0xff01, \"0.0.255.1\",
        FWUPD_VERSION_FORMAT_QUAD},\n\t    {0xff0001, \"0.255.0.1\", FWUPD_VERSION_FORMAT_QUAD},\n\t
        \   {0xff000100, \"255.0.1.0\", FWUPD_VERSION_FORMAT_QUAD},\n\t    {0x0, \"0.0.0\",
        FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {0xff, \"0.0.255\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t
        \   {0xff01, \"0.0.65281\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {0xff0001,
        \"0.255.1\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {0xff000100, \"255.0.256\",
        FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {0x0, \"0\", FWUPD_VERSION_FORMAT_NUMBER},\n\t
        \   {0xff000100, \"4278190336\", FWUPD_VERSION_FORMAT_NUMBER},\n\t    {0x0,
        \"11.0.0.0\", FWUPD_VERSION_FORMAT_INTEL_ME},\n\t    {0xffffffff, \"18.31.255.65535\",
        FWUPD_VERSION_FORMAT_INTEL_ME},\n\t    {0x0b32057a, \"11.11.50.1402\", FWUPD_VERSION_FORMAT_INTEL_ME},\n\t
        \   {0xb8320d84, \"11.8.50.3460\", FWUPD_VERSION_FORMAT_INTEL_ME2},\n\t    {0x00000741,
        \"19.0.0.1857\", FWUPD_VERSION_FORMAT_INTEL_CSME19},\n\t    {0x226a4b00, \"137.2706.768\",
        FWUPD_VERSION_FORMAT_SURFACE_LEGACY},\n\t    {0x6001988, \"6.25.136\", FWUPD_VERSION_FORMAT_SURFACE},\n\t
        \   {0x00ff0001, \"255.0.1\", FWUPD_VERSION_FORMAT_DELL_BIOS},\n\t    {0x010f0201,
        \"1.15.2\", FWUPD_VERSION_FORMAT_DELL_BIOS_MSB},\n\t    {0xc8, \"0x000000c8\",
        FWUPD_VERSION_FORMAT_HEX},\n\t}"
      pos:
        line_end: 3276
        line_start: 3272
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: val
        type: guint32
      - name: '*ver'
        type: gchar
      - name: flags
        type: FwupdVersionFormat
      item_type: struct
      name: "version_from_uint24[] = {\n\t    {0x0, \"0.0.0\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t
        \   {0xff, \"0.0.255\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {0x0, \"0\",
        FWUPD_VERSION_FORMAT_NUMBER},\n\t    {0xc8, \"0x0000c8\", FWUPD_VERSION_FORMAT_HEX},\n\t}"
      pos:
        line_end: 3304
        line_start: 3300
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: val
        type: guint64
      - name: '*ver'
        type: gchar
      - name: flags
        type: FwupdVersionFormat
      item_type: struct
      name: "version_from_uint64[] = {\n\t    {0x0, \"0.0.0.0\", FWUPD_VERSION_FORMAT_QUAD},\n\t
        \   {0xff, \"0.0.0.255\", FWUPD_VERSION_FORMAT_QUAD},\n\t    {0xffffffffffffffff,
        \"65535.65535.65535.65535\", FWUPD_VERSION_FORMAT_QUAD},\n\t    {0xff, \"0.255\",
        FWUPD_VERSION_FORMAT_PAIR},\n\t    {0xffffffffffffffff, \"4294967295.4294967295\",
        FWUPD_VERSION_FORMAT_PAIR},\n\t    {0x0, \"0\", FWUPD_VERSION_FORMAT_NUMBER},\n\t
        \   {0x11000000c8, \"0x00000011000000c8\", FWUPD_VERSION_FORMAT_HEX},\n\t}"
      pos:
        line_end: 3314
        line_start: 3310
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: val
        type: guint16
      - name: '*ver'
        type: gchar
      - name: flags
        type: FwupdVersionFormat
      item_type: struct
      name: "version_from_uint16[] = {\n\t    {0x0, \"0.0\", FWUPD_VERSION_FORMAT_PAIR},\n\t
        \   {0xff, \"0.255\", FWUPD_VERSION_FORMAT_PAIR},\n\t    {0xff01, \"255.1\",
        FWUPD_VERSION_FORMAT_PAIR},\n\t    {0x0, \"0.0\", FWUPD_VERSION_FORMAT_BCD},\n\t
        \   {0x0110, \"1.10\", FWUPD_VERSION_FORMAT_BCD},\n\t    {0x9999, \"99.99\",
        FWUPD_VERSION_FORMAT_BCD},\n\t    {0x0, \"0\", FWUPD_VERSION_FORMAT_NUMBER},\n\t
        \   {0x1234, \"4660\", FWUPD_VERSION_FORMAT_NUMBER},\n\t    {0x1234, \"1.2.52\",
        FWUPD_VERSION_FORMAT_TRIPLET},\n\t}"
      pos:
        line_end: 3327
        line_start: 3323
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: '*old'
        type: gchar
      - name: '*new'
        type: gchar
      item_type: struct
      name: "version_parse[] = {\n\t    {\"0\", \"0\"},\n\t    {\"0x1a\", \"0.0.26\"},\n\t
        \   {\"257\", \"0.0.257\"},\n\t    {\"1.2.3\", \"1.2.3\"},\n\t    {\"0xff0001\",
        \"0.255.1\"},\n\t    {\"16711681\", \"0.255.1\"},\n\t    {\"20150915\", \"20150915\"},\n\t
        \   {\"dave\", \"dave\"},\n\t    {\"0x1x\", \"0x1x\"},\n\t}"
      pos:
        line_end: 3341
        line_start: 3338
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: cnt_success
        type: guint
      - name: cnt_failed
        type: guint
      item_type: struct
      name: FuDeviceRetryHelper
      pos:
        line_end: 4721
        line_start: 4718
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: gtype
        type: GType
      - name: '*xml_fn'
        type: gchar
      - name: '*checksum'
        type: gchar
      - name: flags
        type: FuFirmwareBuilderFlags
      item_type: struct
      name: "map[] = {\n\t    {\n\t\tFU_TYPE_CAB_FIRMWARE,\n\t\t\"cab.builder.xml\",\n\t\t\"a708f47b1a46377f1ea420597641ffe9a40abd75\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_CAB_FIRMWARE,\n\t\t\"cab-compressed.builder.xml\",\n\t\tNULL,
        /* not byte-identical */\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t    },\n\t
        \   {\n\t\tFU_TYPE_ELF_FIRMWARE,\n\t\t\"elf.builder.xml\",\n\t\t\"99ea60b8dd46085dcbf1ecd5e72b4cb73a3b6faa\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_DFUSE_FIRMWARE,\n\t\t\"dfuse.builder.xml\",\n\t\t\"c1ff429f0e381c8fe8e1b2ee41a5a9a79e2f2ff7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_PEFILE_FIRMWARE,\n\t\t\"pefile.builder.xml\",\n\t\t\"73b0e0dc9f6175b7bc27b77f20e0d9eca2d2d141\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_LINEAR_FIRMWARE,\n\t\t\"linear.builder.xml\",\n\t\t\"18fa8201652c82dc717df1905d8ab72e46e3d82b\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_HID_REPORT_ITEM,\n\t\t\"hid-report-item.builder.xml\",\n\t\t\"5b18c07399fc8968ce22127df38d8d923089ec92\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_HID_DESCRIPTOR,\n\t\t\"hid-descriptor.builder.xml\",\n\t\t\"6bb23f7c9fedc21f05528b3b63ad5837f4a16a92\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_SBATLEVEL_SECTION,\n\t\t\"sbatlevel.builder.xml\",\n\t\t\"8204ef9477b4305748a0de6e667547cb6ce5e426\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_CSV_FIRMWARE,\n\t\t\"csv.builder.xml\",\n\t\t\"986cbf8cde5bc7d8b49ee94cceae3f92efbd2eef\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_FDT_FIRMWARE,\n\t\t\"fdt.builder.xml\",\n\t\t\"40f7fbaff684a6bcf67c81b3079422c2529741e1\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_FIT_FIRMWARE,\n\t\t\"fit.builder.xml\",\n\t\t\"293ce07351bb7d76631c4e2ba47243db1e150f3c\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_SREC_FIRMWARE,\n\t\t\"srec.builder.xml\",\n\t\t\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_IHEX_FIRMWARE,\n\t\t\"ihex.builder.xml\",\n\t\t\"a8d74f767f3fc992b413e5ba801cedc80a4cf013\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_FMAP_FIRMWARE,\n\t\t\"fmap.builder.xml\",\n\t\t\"a0b9ffc10a586d217edf9e9bae7c1fe7c564ea01\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_LOAD_OPTION,\n\t\t\"efi-load-option.builder.xml\",\n\t\t\"7ef696d22902ae97ef5f73ad9c85a28095ad56f1\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_LOAD_OPTION,\n\t\t\"efi-load-option-hive.builder.xml\",\n\t\t\"76a378752b7ccdf3d68365d83784053356fa7e0a\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_LOAD_OPTION,\n\t\t\"efi-load-option-data.builder.xml\",\n\t\t\"6e6190dc6b1bf45bc6e30ba7a6a98d891d692dd0\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EDID,\n\t\t\"edid.builder.xml\",\n\t\t\"64cef10b75ccce684a483d576dd4a4ce6bef8165\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_SECTION,\n\t\t\"efi-section.builder.xml\",\n\t\t\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_SECTION,\n\t\t\"efi-section.builder.xml\",\n\t\t\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_FILE,\n\t\t\"efi-file.builder.xml\",\n\t\t\"90374d97cf6bc70059d24c816c188c10bd250ed7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_FILESYSTEM,\n\t\t\"efi-filesystem.builder.xml\",\n\t\t\"d6fbadc1c303a3b4eede9db7fb0ddb353efffc86\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_SIGNATURE,\n\t\t\"efi-signature.builder.xml\",\n\t\t\"ff7b862504262ce4853db29690b683bb06ce7d1f\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_SIGNATURE_LIST,\n\t\t\"efi-signature-list.builder.xml\",\n\t\t\"450111ea0f77a0ede5b6a6305cd2e02b44b5f1e9\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_VARIABLE_AUTHENTICATION2,\n\t\t\"efi-variable-authentication2.builder.xml\",\n\t\t\"bd08e81e9c86490dc1ffb32b1e3332606eb0fa97\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_EFI_VOLUME,\n\t\t\"efi-volume.builder.xml\",\n\t\t\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_IFD_FIRMWARE,\n\t\t\"ifd.builder.xml\",\n\t\t\"06ae066ea53cefe43fed2f1ca4fc7d8cccdbcf1e\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_CFU_OFFER,\n\t\t\"cfu-offer.builder.xml\",\n\t\t\"c10223887ff6cdf4475ad07c65b1f0f3a2d0d5ca\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_CFU_PAYLOAD,\n\t\t\"cfu-payload.builder.xml\",\n\t\t\"5da829f5fd15a28970aed98ebb26ebf2f88ed6f2\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_IFWI_CPD_FIRMWARE,\n\t\t\"ifwi-cpd.builder.xml\",\n\t\t\"91e348d17cb91ef7a528e85beb39d15a0532dca5\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_IFWI_FPT_FIRMWARE,\n\t\t\"ifwi-fpt.builder.xml\",\n\t\t\"d1f0fb2c2a7a99441bf4a825d060642315a94d91\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_OPROM_FIRMWARE,\n\t\t\"oprom.builder.xml\",\n\t\t\"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_INTEL_THUNDERBOLT_NVM,\n\t\t\"intel-thunderbolt.builder.xml\",\n\t\t\"b3a73baf05078dfdd833b407a0a6afb239ec2f23\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_INTEL_THUNDERBOLT_FIRMWARE,\n\t\t\"intel-thunderbolt.builder.xml\",\n\t\t\"1a2dec48aab3e1e29907f2148ab16e4730387325\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_USB_BOS_DESCRIPTOR,\n\t\t\"usb-bos-descriptor.builder.xml\",\n\t\t\"a305749853781c6899c4b28039cb4c7d9059b910\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n#ifdef HAVE_CBOR\n\t    {\n\t\tFU_TYPE_USWID_FIRMWARE,\n\t\t\"uswid.builder.xml\",\n\t\t\"b473fbdbe00f860c4da43f9499569394bac81f14\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_USWID_FIRMWARE,\n\t\t\"uswid-compressed.builder.xml\",\n\t\tNULL,
        /* not byte-identical */\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t    },\n#endif\n\t}"
      pos:
        line_end: 5182
        line_start: 5177
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    - fields:
      - name: last_percentage
        type: guint
      - name: updates
        type: guint
      item_type: struct
      name: FuProgressHelper
      pos:
        line_end: 5487
        line_start: 5484
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    typedefs:
    - item_type: typedef
      name: FuFirmwareBuilderFlags
      pos:
        line_end: 5172
        line_start: 5169
        source_file: /src/fwupd/libfwupdplugin/fu-self-test.c
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HID_DESCRIPTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.h
      type_or_value: (fu_hid_descriptor_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuHidDescriptorClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_ihex_firmware_get_records
  - fu_ihex_firmware_set_padding_value
  - fu_ihex_firmware_record_free
  - fu_ihex_firmware_record_new
  - fu_ihex_firmware_tokenize_cb
  - fu_ihex_firmware_tokenize
  - fu_ihex_firmware_parse
  - fu_ihex_firmware_emit_chunk
  - fu_ihex_firmware_image_to_string
  - fu_ihex_firmware_write
  - fu_ihex_firmware_finalize
  - fu_ihex_firmware_init
  - fu_ihex_firmware_class_init
  - fu_ihex_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_IHEX_FIRMWARE_TOKENS_MAX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
      type_or_value: '100000 '
    structs:
    - fields:
      - name: '*records'
        type: GPtrArray
      - name: padding_value
        type: guint8
      item_type: struct
      name: FuIhexFirmwarePrivate
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    - fields:
      - name: '*self'
        type: FuIhexFirmware
      - name: flags
        type: FuFirmwareParseFlags
      item_type: struct
      name: FuIhexFirmwareTokenHelper
      pos:
        line_end: 171
        line_start: 168
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_bios_settings_finalize
  - fu_bios_settings_class_init
  - fu_bios_setting_get_key
  - fu_bios_settings_set_description
  - fu_bios_setting_get_key_as_integer
  - fu_bios_setting_set_enumeration_attrs
  - fu_bios_setting_set_string_attrs
  - fu_bios_setting_set_integer_attrs
  - fu_bios_setting_set_current_value
  - fu_bios_settings_set_read_only
  - fu_bios_settings_set_type
  - fu_bios_settings_set_file_attributes
  - fu_bios_settings_set_folder_attributes
  - fu_bios_settings_add_attribute
  - fu_bios_settings_populate_attribute
  - fu_bios_settings_populate_descriptions
  - fu_bios_settings_populate_read_only
  - fu_bios_settings_combination_fixups
  - fu_bios_settings_setup
  - fu_bios_settings_init
  - fu_bios_settings_get_attr
  - fu_bios_settings_get_all
  - fu_bios_settings_get_pending_reboot
  - fu_bios_settings_to_variant
  - fu_bios_settings_from_json
  - fu_bios_settings_codec_iface_init
  - fu_bios_settings_to_hash_kv
  - fu_bios_settings_new
  source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.c
      type_or_value: '"FuBiosSettings"'
    - item_type: preproc_def
      name: LENOVO_READ_ONLY_NEEDLE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.c
      type_or_value: '"[Status:ShowOnly]"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*descriptions'
        type: GHashTable
      - name: '*read_only'
        type: GHashTable
      - name: '*attrs'
        type: GPtrArray
      item_type: struct
      name: _FuBiosSettings
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-darwin-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DARWIN_EFIVARS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-darwin-efivars.h
      type_or_value: (fu_darwin_efivars_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IFD_BIOS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.h
      type_or_value: (fu_ifd_bios_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuIfdImageClass
      item_type: struct
      name: _FuIfdBiosClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-byte-array.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_LZ77_DECOMPRESSOR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.h
      type_or_value: (fu_efi_lz77_decompressor_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_kernel_search_path_locker_get_path
  - fu_kernel_search_path_get_current
  - fu_kernel_search_path_set_current
  - fu_kernel_search_path_locker_close
  - fu_kernel_search_path_locker_new
  - fu_kernel_search_path_locker_dispose
  - fu_kernel_search_path_locker_finalize
  - fu_kernel_search_path_locker_class_init
  - fu_kernel_search_path_locker_init
  source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
      type_or_value: '"FuKernel"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*path'
        type: gchar
      - name: '*old_path'
        type: gchar
      item_type: struct
      name: _FuKernelSearchPathLocker
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_file_export
  - fu_efi_file_hdr_checksum8
  - fu_efi_file_parse
  - fu_efi_file_write_sections
  - fu_efi_file_write
  - fu_efi_file_build
  - fu_efi_file_init
  - fu_efi_file_class_init
  - fu_efi_file_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EFI_FILE_SIZE_MAX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file.c
      type_or_value: '0x1000000 '
    structs:
    - fields:
      - name: type
        type: guint8
      - name: attrib
        type: guint8
      item_type: struct
      name: FuEfiFilePrivate
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-interface-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-input-stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*FuInputStreamChunkifyFunc)(const guint8 *buf,\n\t\t\t\t\t      gsize
        bufsz,\n\t\t\t\t\t      gpointer user_data,\n\t\t\t\t\t      GError **error)"
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/fwupd/libfwupdplugin/fu-input-stream.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ioctl-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-lzma-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ifwi_fpt_firmware_validate
  - fu_ifwi_fpt_firmware_parse
  - fu_ifwi_fpt_firmware_write
  - fu_ifwi_fpt_firmware_init
  - fu_ifwi_fpt_firmware_class_init
  - fu_ifwi_fpt_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_IFWI_FPT_MAX_ENTRIES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
      type_or_value: '56'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bios_setting_write_value
  - fu_bios_setting_class_init
  - fu_bios_setting_init
  - fu_bios_setting_new
  source_file: /src/fwupd/libfwupdplugin/fu-bios-setting.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-bios-setting.c
      type_or_value: '"FuBiosSettings"'
    structs:
    - fields:
      - name: parent_instance
        type: FwupdBiosSetting
      item_type: struct
      name: _FuBiosSetting
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    typedefs: []
    union: []
- function_names:
  - fu_device_locker_finalize
  - fu_device_locker_class_init
  - fu_device_locker_init
  - fu_device_locker_close
  - fu_device_locker_new
  - fu_device_locker_new_full
  source_file: /src/fwupd/libfwupdplugin/fu-device-locker.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-device-locker.c
      type_or_value: '"FuDeviceLocker"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*device'
        type: GObject
      - name: device_open
        type: gboolean
      - name: open_func
        type: FuDeviceLockerFunc
      - name: close_func
        type: FuDeviceLockerFunc
      item_type: struct
      name: _FuDeviceLocker
      pos:
        line_end: 30
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-device-locker.c
    typedefs: []
    union: []
- function_names:
  - fu_path_rmtree
  - fu_path_get_file_list_internal
  - fu_path_get_files
  - fu_path_mkdir
  - fu_path_mkdir_parent
  - fu_path_find_program
  - fu_path_get_win32_basedir
  - fu_path_from_kind
  - fu_path_glob_sort_cb
  - fu_path_glob
  - fu_path_make_absolute
  - fu_path_get_symlink_target
  source_file: /src/fwupd/libfwupdplugin/fu-path.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-path.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_ifd_image_export
  - fu_ifd_image_set_access
  - fu_ifd_image_get_access
  - fu_ifd_image_write
  - fu_ifd_image_init
  - fu_ifd_image_class_init
  - fu_ifd_image_new
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: access[FU_IFD_REGION_MAX]
        type: FuIfdAccess
      item_type: struct
      name: FuIfdImagePrivate
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fwupdplugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dfuse_firmware_image_chunk_parse
  - fu_dfuse_firmware_image_parse_stream
  - fu_dfuse_firmware_validate
  - fu_dfuse_firmware_parse
  - fu_dfuse_firmware_chunk_write
  - fu_dfuse_firmware_write_image
  - fu_dfuse_firmware_write
  - fu_dfuse_firmware_init
  - fu_dfuse_firmware_class_init
  - fu_dfuse_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dpaux_device_to_string
  - fu_dpaux_device_invalidate
  - fu_dpaux_device_probe
  - fu_dpaux_device_setup
  - fu_dpaux_device_get_dpcd_ieee_oui
  - fu_dpaux_device_set_dpcd_ieee_oui
  - fu_dpaux_device_get_dpcd_hw_rev
  - fu_dpaux_device_set_dpcd_hw_rev
  - fu_dpaux_device_get_dpcd_dev_id
  - fu_dpaux_device_set_dpcd_dev_id
  - fu_dpaux_device_write
  - fu_dpaux_device_read
  - fu_dpaux_device_incorporate
  - fu_dpaux_device_convert_version
  - fu_dpaux_device_get_property
  - fu_dpaux_device_set_property
  - fu_dpaux_device_init
  - fu_dpaux_device_finalize
  - fu_dpaux_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
      type_or_value: '"FuDpauxDevice"'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_READ_TIMEOUT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: dpcd_ieee_oui
        type: guint32
      - name: dpcd_hw_rev
        type: guint8
      - name: '*dpcd_dev_id'
        type: gchar
      item_type: struct
      name: FuDpauxDevicePrivate
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_DEVICE_FW_DS20
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-fw-ds20.h
      type_or_value: (fu_usb_device_fw_ds20_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_COSWID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.h
      type_or_value: (fu_coswid_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCoswidFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_device_path_export
  - fu_efi_device_path_add_json
  - fu_efi_device_path_get_subtype
  - fu_efi_device_path_set_subtype
  - fu_efi_device_path_parse
  - fu_efi_device_path_write
  - fu_efi_device_path_build
  - fu_efi_device_path_codec_iface_init
  - fu_efi_device_path_init
  - fu_efi_device_path_class_init
  - fu_efi_device_path_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
      type_or_value: '"FuEfiDevicePath"'
    structs:
    - fields:
      - name: subtype
        type: guint8
      item_type: struct
      name: FuEfiDevicePathPrivate
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_FFS1
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"7a9354d9-0468-444a-81ce-0bf617d890df"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_FFS2
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"8c8ce578-8a3d-4f1c-9935-896185c32dd3"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_FFS3
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"5473c07a-3dcb-4dca-bd6f-1e9689e7349a"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_NVRAM_EVSA
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"fff12b8d-7696-4c8b-a985-2747075b4f50"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_NVRAM_NVAR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"cef5b9a3-476d-497f-9fdc-e98143e0422c"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_NVRAM_EVSA2
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"00504624-8a59-4eeb-bd0f-6b36e96128e0"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_APPLE_BOOT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"04adeead-61ff-4d31-b6ba-64f8bf901f5a"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_PFH1
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"16b45da2-7d70-4aea-a58d-760e9ecb841d"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_PFH2
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"e360bdba-c3ce-46be-8f37-b231e5cb9f35"'
    - item_type: preproc_def
      name: FU_EFI_VOLUME_GUID_HP_FS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"372b56df-cc9f-4817-ab97-0a10a92ceaa5"'
    - item_type: preproc_def
      name: FU_EFI_FILE_GUID_FV_IMAGE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"4e35fd93-9c72-4c15-8c4b-e77f1db2d792"'
    - item_type: preproc_def
      name: FU_EFI_FILE_GUID_MICROCODE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"197db236-f856-4924-90f8-cdf12fb875f3"'
    - item_type: preproc_def
      name: FU_EFI_FILE_GUID_BIOS_GUARD
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"7934156d-cfce-460e-92f5-a07909a59eca"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_LZMA_COMPRESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"ee4e5898-3914-4259-9d6e-dc7bd79403cf"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_TIANO_COMPRESS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"a31280ad-481e-41b6-95e8-127f4c984779"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_SMBIOS_TABLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"eb9d2d31-2d88-11d3-9a16-0090273fc14d"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_ESRT_TABLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"b122a263-3661-4f68-9929-78f8b0d62180"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_ACPI1_TABLE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"eb9d2d30-2d88-11d3-9a16-0090273fc14d"'
    - item_type: preproc_def
      name: FU_EFI_SECTION_GUID_ACPI2_TABLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-efi-common.h
      type_or_value: '"8868e871-e4f1-11d3-bc22-0080c73c8881"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-linear-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LINEAR_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-linear-firmware.h
      type_or_value: (fu_linear_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuLinearFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-linear-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (fu_dfu_firmware_get_type())
    - item_type: preproc_def
      name: FU_DFU_FIRMARE_VERSION_UNKNOWN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (0u)
    - item_type: preproc_def
      name: FU_DFU_FIRMARE_VERSION_DFU_1_0
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (0x0100)
    - item_type: preproc_def
      name: FU_DFU_FIRMARE_VERSION_DFU_1_1
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (0x0110)
    - item_type: preproc_def
      name: FU_DFU_FIRMARE_VERSION_DFUSE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (0x011a)
    - item_type: preproc_def
      name: FU_DFU_FIRMARE_VERSION_ATMEL_AVR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
      type_or_value: (0xff01)
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuDfuFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_memwrite_uint16
  - fu_memwrite_uint24
  - fu_memwrite_uint32
  - fu_memwrite_uint64
  - fu_memread_uint16
  - fu_memread_uint24
  - fu_memread_uint32
  - fu_memread_uint64
  - fu_memcmp_safe
  - fu_memchk_read
  - fu_memchk_write
  - fu_memcpy_safe
  - fu_memmem_safe
  - fu_memdup_safe
  - fu_memread_uint8_safe
  - fu_memread_uint16_safe
  - fu_memread_uint24_safe
  - fu_memread_uint32_safe
  - fu_memread_uint64_safe
  - fu_memwrite_uint8_safe
  - fu_memwrite_uint16_safe
  - fu_memwrite_uint32_safe
  - fu_memwrite_uint64_safe
  - fu_memstrsafe
  source_file: /src/fwupd/libfwupdplugin/fu-mem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-mem.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_partial_input_stream_add_string
  - fu_partial_input_stream_codec_iface_init
  - fu_partial_input_stream_tell
  - fu_partial_input_stream_can_seek
  - fu_partial_input_stream_seek
  - fu_partial_input_stream_can_truncate
  - fu_partial_input_stream_truncate
  - fu_partial_input_stream_seekable_iface_init
  - fu_partial_input_stream_new
  - fu_partial_input_stream_get_offset
  - fu_partial_input_stream_get_size
  - fu_partial_input_stream_read
  - fu_partial_input_stream_finalize
  - fu_partial_input_stream_class_init
  - fu_partial_input_stream_init
  source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
      type_or_value: '"FuPartialInputStream"'
    structs:
    - fields:
      - name: parent_instance
        type: GInputStream
      - name: '*base_stream'
        type: GInputStream
      - name: offset
        type: gsize
      - name: size
        type: gsize
      item_type: struct
      name: _FuPartialInputStream
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DPAUX_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: (fu_dpaux_device_get_type())
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_RECEIVER_CAPABILITY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_LINK_CONFIGURATION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_LINK_SINK_STATUS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_SOURCE_DEVICE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x300'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_SINK_DEVICE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: FU_DPAUX_DEVICE_DPCD_OFFSET_BRANCH_DEVICE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
      type_or_value: '0x500'
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuDpauxDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-dpaux-device.h
    typedefs: []
    union: []
- function_names:
  - fu_usb_device_ms_ds20_parse
  - fu_usb_device_ms_ds20_class_init
  - fu_usb_device_ms_ds20_init
  - fu_usb_device_ms_ds20_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
      type_or_value: '"FuUsbDeviceDs20"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDeviceDs20
      item_type: struct
      name: _FuUsbDeviceMsDs20
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_FMAP_FIRMWARE_STRLEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: FU_TYPE_FMAP_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.h
      type_or_value: (fu_fmap_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuFmapFirmwareClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_ioctl_fixup_free
  - fu_ioctl_fixup_build_key
  - fu_ioctl_set_name
  - fu_ioctl_new
  - fu_ioctl_append_key
  - fu_ioctl_append_key_as_u8
  - fu_ioctl_append_key_as_u16
  - fu_ioctl_append_key_from_buf
  - fu_ioctl_add_key_as_u8
  - fu_ioctl_add_key_as_u16
  - fu_ioctl_add_buffer
  - fu_ioctl_add_mutable_buffer
  - fu_ioctl_add_const_buffer
  - fu_ioctl_execute
  - fu_ioctl_init
  - fu_ioctl_finalize
  - fu_ioctl_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-ioctl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.c
      type_or_value: '"FuIoctl"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*udev_device'
        type: FuUdevDevice
      - name: '*event_id'
        type: GString
      - name: '*fixups'
        type: GPtrArray
      item_type: struct
      name: _FuIoctl
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.c
    - fields:
      - name: '*key'
        type: gchar
      - name: is_mutable
        type: gboolean
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      - name: fixup_cb
        type: FuIoctlFixupFunc
      item_type: struct
      name: FuIoctlFixup
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CSV_ENTRY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.h
      type_or_value: (fu_csv_entry_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCsvEntryClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_OPROM_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.h
      type_or_value: (fu_oprom_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuOpromFirmwareClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-mem-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_cab_firmware_get_compressed
  - fu_cab_firmware_set_compressed
  - fu_cab_firmware_get_only_basename
  - fu_cab_firmware_set_only_basename
  - fu_cab_firmware_parse_helper_free
  - fu_cab_firmware_compute_checksum
  - fu_cab_firmware_compute_checksum_stream_cb
  - fu_cab_firmware_zalloc
  - fu_cab_firmware_zfree
  - fu_cab_firmware_zstream_deflater_free
  - fu_cab_firmware_parse_data
  - fu_cab_firmware_parse_folder
  - fu_cab_firmware_parse_file
  - fu_cab_firmware_validate
  - fu_cab_firmware_parse_helper_new
  - fu_cab_firmware_parse
  - fu_cab_firmware_write
  - fu_cab_firmware_build
  - fu_cab_firmware_export
  - fu_cab_firmware_class_init
  - fu_cab_firmware_init
  - fu_cab_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '"FuCabFirmware"'
    - item_type: preproc_def
      name: FU_CAB_FIRMWARE_MAX_FILES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FU_CAB_FIRMWARE_MAX_FOLDERS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_CAB_FIRMWARE_DECOMPRESS_BUFSZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '0x4000 '
    structs:
    - fields:
      - name: compressed
        type: gboolean
      - name: only_basename
        type: gboolean
      item_type: struct
      name: FuCabFirmwarePrivate
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    - fields:
      - name: '*stream'
        type: GInputStream
      - name: parse_flags
        type: FuFirmwareParseFlags
      - name: rsvd_folder
        type: gsize
      - name: rsvd_block
        type: gsize
      - name: size_total
        type: gsize
      - name: compression
        type: FuCabCompression
      - name: '*folder_data'
        type: GPtrArray
      - name: zstrm
        type: z_stream
      - name: '*decompress_buf'
        type: guint8
      - name: decompress_bufsz
        type: gsize
      - name: ndatabsz
        type: gsize
      item_type: struct
      name: FuCabFirmwareParseHelper
      pos:
        line_end: 120
        line_start: 108
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    typedefs:
    - item_type: typedef
      name: z_stream_deflater
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    union: []
- function_names:
  - fu_efi_lz77_decompressor_memset16
  - fu_efi_lz77_decompressor_read_source_bits
  - fu_efi_lz77_decompressor_get_bits
  - fu_efi_lz77_decompressor_make_huffman_table
  - fu_efi_lz77_decompressor_decode_p
  - fu_efi_lz77_decompressor_read_pt_len
  - fu_efi_lz77_decompressor_read_c_len
  - fu_efi_lz77_decompressor_decode_c
  - fu_efi_lz77_decompressor_internal
  - fu_efi_lz77_decompressor_parse
  - fu_efi_lz77_decompressor_init
  - fu_efi_lz77_decompressor_class_init
  - fu_efi_lz77_decompressor_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: BITBUFSIZ
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAXMATCH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '256'
    - item_type: preproc_def
      name: THRESHOLD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CODE_BIT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '16'
    - item_type: preproc_def
      name: NC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: (0xff + MAXMATCH + 2 - THRESHOLD)
    - item_type: preproc_def
      name: CBIT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '9'
    - item_type: preproc_def
      name: MAXPBIT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TBIT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAXNP
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: ((1U << MAXPBIT) - 1)
    - item_type: preproc_def
      name: NT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: (CODE_BIT + 3)
    - item_type: preproc_def
      name: NPT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: NT
    - item_type: preproc_def
      name: NPT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
      type_or_value: MAXNP
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuEfiLz77Decompressor
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    - fields:
      - name: '*stream'
        type: GInputStream
      - name: '*dst'
        type: GByteArray
      - name: bit_count
        type: guint16
      - name: bit_buf
        type: guint32
      - name: sub_bit_buf
        type: guint32
      - name: block_size
        type: guint16
      - name: left[2 * NC - 1]
        type: guint16
      - name: right[2 * NC - 1]
        type: guint16
      - name: c_len[NC]
        type: guint8
      - name: pt_len[NPT]
        type: guint8
      - name: c_table[4096]
        type: guint16
      - name: pt_table[256]
        type: guint16
      - name: p_bit
        type: guint8
      item_type: struct
      name: FuEfiLz77DecompressHelper
      pos:
        line_end: 70
        line_start: 53
        source_file: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-bios-setting.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BIOS_SETTING
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-bios-setting.h
      type_or_value: (fu_bios_setting_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack-item-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-volume.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VOLUME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-volume.h
      type_or_value: (fu_volume_get_type())
    - item_type: preproc_def
      name: FU_VOLUME_KIND_ESP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-volume.h
      type_or_value: '"c12a7328-f81f-11d2-ba4b-00a0c93ec93b"'
    - item_type: preproc_def
      name: FU_VOLUME_KIND_BDP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-volume.h
      type_or_value: '"ebd0a0a2-b9e5-4433-87c0-68b6b72699c7"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_windows_efivars_supported
  - fu_windows_efivars_is_running_under_wine
  - fu_windows_efivars_get_data
  - fu_windows_efivars_exists
  - fu_windows_efivars_get_names
  - fu_windows_efivars_set_data
  - fu_windows_efivars_delete
  - fu_windows_efivars_delete_with_glob
  - fu_windows_efivars_init
  - fu_windows_efivars_class_init
  - fu_efivars_new
  source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
      type_or_value: '"FuWindowsEfivars"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfivars
      item_type: struct
      name: _FuWindowsEfivars
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      item_type: struct
      name: "variable_names[] = {{FU_EFIVARS_GUID_EFI_GLOBAL, \"AuditMode\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"BootCurrent\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"BootNext\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"BootOptionSupport\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"BootOrder\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"BootOrderDefault\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"BootXXXX\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"ConIn\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"ConInDev\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"ConOut\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"ConOutDev\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"CurrentPolicy\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"dbDefault\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"dbrDefault\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"dbtDefault\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"dbxDefault\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"DeployedMode\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"DriverOrder\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"DriverXXXX\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"ErrOut\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"ErrOutDev\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"HwErrRecSupprot\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"KEK\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"KEKDefault\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"KeyXXXX\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"Lang\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"LangCodes\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"OsIndications\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"OsIndicationsSupported\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"OsRecoveryOrder\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"PK\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"PKDefault\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"PlatformLang\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"PlatformLangCodes\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"PlatformRecoveryXXXX\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"RuntimeServicesSupported\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"SecureBoot\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"SetupMode\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"SignatureSupport\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"SysPrepOrder\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_EFI_GLOBAL, \"SysPrepXXXX\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL,
        \"Timeout\"},\n\t\t\t      {FU_EFIVARS_GUID_EFI_GLOBAL, \"VendorKeys\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_FWUPDATE, \"FWUPDATE_DEBUG_LOG\"},\n\t\t\t      {FU_EFIVARS_GUID_FWUPDATE,
        \"FWUPDATE_VERBOSE\"},\n\t\t\t      {FU_EFIVARS_GUID_FWUPDATE, \"fwupd-ux-capsule\"},\n\t\t\t
        \     {FU_EFIVARS_GUID_SECURITY_DATABASE, \"db\"},\n\t\t\t      {FU_EFIVARS_GUID_SECURITY_DATABASE,
        \"dbx\"},\n\t\t\t      {NULL, NULL}}"
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QUIRKS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: (fu_quirks_get_type())
    - item_type: preproc_def
      name: FU_QUIRKS_PLUGIN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Plugin"'
    - item_type: preproc_def
      name: FU_QUIRKS_FLAGS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Flags"'
    - item_type: preproc_def
      name: FU_QUIRKS_SUMMARY
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Summary"'
    - item_type: preproc_def
      name: FU_QUIRKS_ICON
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Icon"'
    - item_type: preproc_def
      name: FU_QUIRKS_NAME
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Name"'
    - item_type: preproc_def
      name: FU_QUIRKS_BRANCH
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Branch"'
    - item_type: preproc_def
      name: FU_QUIRKS_GUID
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Guid"'
    - item_type: preproc_def
      name: FU_QUIRKS_GUID_QUIRK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Guid[quirk]"'
    - item_type: preproc_def
      name: FU_QUIRKS_COUNTERPART_GUID
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CounterpartGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_PARENT_GUID
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ParentGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROXY_GUID
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ProxyGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_CHILDREN
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Children"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Version"'
    - item_type: preproc_def
      name: FU_QUIRKS_VENDOR
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Vendor"'
    - item_type: preproc_def
      name: FU_QUIRKS_VENDOR_ID
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"VendorId"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_SIZE_MIN
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareSizeMin"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_SIZE_MAX
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareSizeMax"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_SIZE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareSize"'
    - item_type: preproc_def
      name: FU_QUIRKS_INSTALL_DURATION
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"InstallDuration"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION_FORMAT
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"VersionFormat"'
    - item_type: preproc_def
      name: FU_QUIRKS_GTYPE
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"GType"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROXY_GTYPE
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ProxyGType"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_GTYPE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareGType"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROTOCOL
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Protocol"'
    - item_type: preproc_def
      name: FU_QUIRKS_UPDATE_MESSAGE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"UpdateMessage"'
    - item_type: preproc_def
      name: FU_QUIRKS_UPDATE_IMAGE
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"UpdateImage"'
    - item_type: preproc_def
      name: FU_QUIRKS_PRIORITY
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Priority"'
    - item_type: preproc_def
      name: FU_QUIRKS_BATTERY_THRESHOLD
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"BatteryThreshold"'
    - item_type: preproc_def
      name: FU_QUIRKS_REMOVE_DELAY
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"RemoveDelay"'
    - item_type: preproc_def
      name: FU_QUIRKS_ACQUIESCE_DELAY
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"AcquiesceDelay"'
    - item_type: preproc_def
      name: FU_QUIRKS_INHIBIT
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Inhibit"'
    - item_type: preproc_def
      name: FU_QUIRKS_ISSUE
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Issue"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_READ_ID
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdReadId"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_READ_ID_SZ
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdReadIdSz"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_CHIP_ERASE
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdChipErase"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_BLOCK_ERASE
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdBlockErase"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_SECTOR_ERASE
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdSectorErase"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_WRITE_STATUS
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdWriteStatus"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_PAGE_PROG
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdPageProg"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_READ_DATA
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdReadData"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_READ_STATUS
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdReadStatus"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_WRITE_EN
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceCmdWriteEn"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_PAGE_SIZE
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDevicePageSize"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_SECTOR_SIZE
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceSectorSize"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_BLOCK_SIZE
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceBlockSize"'
    structs: []
    typedefs:
    - item_type: typedef
      name: FuQuirksLoadFlags
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
    - item_type: typedef
      name: "(*FuQuirksIter)(FuQuirks *self,\n\t\t\t     const gchar *key,\n\t\t\t
        \    const gchar *value,\n\t\t\t     FuContextQuirkSource source,\n\t\t\t
        \    gpointer user_data)"
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type: void
    union: []
- function_names:
  - fu_freebsd_efivars_supported
  - fu_freebsd_efivars_delete
  - fu_freebsd_efivars_delete_with_glob
  - fu_freebsd_efivars_exists_guid
  - fu_freebsd_efivars_exists
  - fu_freebsd_efivars_get_data
  - fu_freebsd_efivars_get_names
  - fu_freebsd_efivars_space_used
  - fu_freebsd_efivars_set_data
  - fu_freebsd_efivars_init
  - fu_freebsd_efivars_class_init
  - fu_efivars_new
  source_file: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
      type_or_value: '"FuFreebsdEfivars"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfivars
      item_type: struct
      name: _FuFreebsdEfivars
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    typedefs: []
    union: []
- function_names:
  - FU_COMMON_VERSION_DECODE_BCD
  - fu_version_from_uint64
  - fu_version_from_uint32
  - fu_version_from_uint32_hex
  - fu_version_from_uint24
  - fu_version_from_uint16
  - fu_version_from_uint16_hex
  - fu_version_compare_char
  - fu_version_compare_chunk
  - _g_ascii_is_digits
  - fu_version_format_number_sections
  - fu_version_ensure_semver
  - fu_version_ensure_semver_internal
  - fu_version_parse_from_format
  - fu_version_guess_format
  - fu_version_format_convert_base
  - fu_version_verify_format
  - fu_version_compare_safe
  - fu_version_compare
  source_file: /src/fwupd/libfwupdplugin/fu-version-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-version-common.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_common_guid_is_plausible
  source_file: /src/fwupd/libfwupdplugin/fu-common-guid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common-guid.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fmap_firmware_parse
  - fu_fmap_firmware_write
  - fu_fmap_firmware_init
  - fu_fmap_firmware_class_init
  - fu_fmap_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FMAP_AREANAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
      type_or_value: '"FMAP"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_device_progress_percentage_changed_cb
  - fu_device_progress_status_changed_cb
  - fu_device_progress_finalize
  - fu_device_progress_class_init
  - fu_device_progress_init
  - fu_device_progress_new
  source_file: /src/fwupd/libfwupdplugin/fu-device-progress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-device-progress.c
      type_or_value: '"FuDeviceProgress"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*device'
        type: FuDevice
      - name: '*progress'
        type: FuProgress
      - name: percentage_changed_id
        type: guint
      - name: status_changed_id
        type: guint
      item_type: struct
      name: _FuDeviceProgress
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-device-progress.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dump.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuDumpFlags
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-dump.h
    union: []
- function_names:
  - fu_device_has_flag
  - fu_device_has_flag
  - fu_device_has_request_flag
  - fu_device_add_request_flag
  - fu_device_has_vendor_id
  - fu_device_has_protocol
  - fu_device_has_checksum
  - fu_device_add_checksum
  - fu_device_add_release
  - fu_device_add_icon
  - fu_device_has_icon
  - fu_device_add_issue
  - fu_device_set_description
  - fu_device_set_flags
  - fu_device_set_plugin
  - fu_device_set_serial
  - fu_device_set_summary
  - fu_device_set_branch
  - fu_device_set_update_error
  - fu_device_add_vendor_id
  - fu_device_add_protocol
  - fu_device_set_version_bootloader_raw
  - fu_device_set_version_build_date
  - fu_device_set_flashes_left
  - fu_device_set_install_duration
  - fu_device_get_checksums
  - fu_device_get_flags
  - fu_device_get_guids
  - fu_device_get_guid_default
  - fu_device_get_instance_ids
  - fu_device_get_icons
  - fu_device_get_issues
  - fu_device_get_name
  - fu_device_get_serial
  - fu_device_get_summary
  - fu_device_get_branch
  - fu_device_get_id
  - fu_device_get_composite_id
  - fu_device_get_plugin
  - fu_device_get_update_error
  - fu_device_get_update_state
  - fu_device_get_vendor
  - fu_device_get_version
  - fu_device_get_version_lowest
  - fu_device_get_version_bootloader
  - fu_device_get_version_format
  - fu_device_get_version_raw
  - fu_device_get_version_lowest_raw
  - fu_device_get_version_bootloader_raw
  - fu_device_get_version_build_date
  - fu_device_get_vendor_ids
  - fu_device_get_protocols
  - fu_device_get_flashes_left
  - fu_device_get_install_duration
  - fu_device_get_release_default
  - fu_device_get_status
  - fu_device_set_status
  - fu_device_get_percentage
  - fu_device_set_percentage
  source_file: /src/fwupd/libfwupdplugin/fu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVICE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: (fu_device_get_type())
    - item_type: preproc_def
      name: FU_DEVICE_REMOVE_DELAY_RE_ENUMERATE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_DEVICE_REMOVE_DELAY_USER_REPLUG
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '40000 '
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_AUTO_INSTANCE_IDS
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-auto-instance-ids"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ENSURE_SEMVER
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"ensure-semver"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ONLY_SUPPORTED
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"only-supported"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_NAME
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-name"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_NAME_CATEGORY
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-name-category"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_VERFMT
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-verfmt"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_ICON
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-icon"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_RETRY_OPEN
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"retry-open"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_REPLUG_MATCH_GUID
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"replug-match-guid"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_INHERIT_ACTIVATION
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"inherit-activation"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_IS_OPEN
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"is-open"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_SERIAL_NUMBER
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-serial-number"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_AUTO_PARENT_CHILDREN
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"auto-parent-children"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ATTACH_EXTRA_RESET
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"attach-extra-reset"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_INHIBIT_CHILDREN
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"inhibit-children"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_AUTO_REMOVE_CHILDREN
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-auto-remove-children"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_USE_PARENT_FOR_OPEN
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"use-parent-for-open"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_USE_PARENT_FOR_BATTERY
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"use-parent-for-battery"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_USE_PROXY_FALLBACK
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"use-proxy-fallback"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_AUTO_REMOVE
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-auto-remove"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_VENDOR
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-vendor"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_LID_CLOSED
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-lid-closed"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_PROBE
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-probe"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_SIGNED
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-signed"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_AUTO_PAUSE_POLLING
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"auto-pause-polling"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_DELAYED_REMOVAL
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"delayed-removal"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_IGNORE_SYSTEM_POWER
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"ignore-system-power"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_SAVE_INTO_BACKUP_REMOTE
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"save-into-backup-remote"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_FLAGS
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-flags"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_VERSION
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-version"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_ONLY_CHECKSUM
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-only-checksum"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ADD_INSTANCE_ID_REV
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"add-instance-id-rev"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_UNCONNECTED
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"unconnected"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_DISPLAY_REQUIRED
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"display-required"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_UPDATE_PENDING
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"update-pending"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_GENERIC_GUIDS
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-generic-guids"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ENFORCE_REQUIRES
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"enforce-requires"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_HOST_FIRMWARE
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"host-firmware"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_HOST_FIRMWARE_CHILD
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"host-firmware-child"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_HOST_CPU
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"host-cpu"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_HOST_CPU_CHILD
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"host-cpu-child"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_EXPLICIT_ORDER
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"explicit-order"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_REFCOUNTED_PROXY
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"refcounted-proxy"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_USE_PROXY_FOR_OPEN
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"use-proxy-for-open"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_INSTALL_PARENT_FIRST
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"install-parent-first"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_REGISTERED
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"registered"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ADD_COUNTERPART_GUIDS
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"add-counterpart-guids"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_USE_RUNTIME_VERSION
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"use-runtime-version"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_SKIPS_RESTART
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"skips-restart"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_IS_FAKE
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"is-fake"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_COUNTERPART_VISIBLE
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"counterpart-visible"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_DETACH_PREPARE_FIRMWARE
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"detach-prepare-firmware"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_EMULATED_REQUIRE_SETUP
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"emulated-require-setup"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_INSTALL_LOOP_RESTART
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"install-loop-restart"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_MD_SET_REQUIRED_FREE
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-required-free"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_COMPUTER
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"computer"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_GPU
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"gpu"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_AC_ADAPTER
      pos:
        line_end: 878
        line_start: 877
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"ac-adapter"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_DOCK
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"dock"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_DOCK_USB
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"dock-usb"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_USB_HUB
      pos:
        line_end: 905
        line_start: 904
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"usb-hub"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_THUNDERBOLT
      pos:
        line_end: 914
        line_start: 913
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"thunderbolt"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_MEMORY
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"media-memory"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_MODEM
      pos:
        line_end: 932
        line_start: 931
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"modem"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_NETWORK_WIRED
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"network-wired"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_NETWORK_WIRELESS
      pos:
        line_end: 950
        line_start: 949
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"network-wireless"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_DRIVE_HARDDISK
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"drive-harddisk"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_DRIVE_SSD
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"drive-harddisk-solidstate"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_DRIVE_MULTIDISK
      pos:
        line_end: 977
        line_start: 976
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"drive-multidisk"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_AUDIO_CARD
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"audio-card"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_VIDEO_DISPLAY
      pos:
        line_end: 995
        line_start: 994
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"video-display"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_TOUCHPAD
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-touchpad"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_KEYBOARD
      pos:
        line_end: 1013
        line_start: 1012
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-keyboard"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_MOUSE
      pos:
        line_end: 1022
        line_start: 1021
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-mouse"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_DIALPAD
      pos:
        line_end: 1031
        line_start: 1030
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-dialpad"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_GAMING
      pos:
        line_end: 1040
        line_start: 1039
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-gaming"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_INPUT_TABLET
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"input-tablet"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_AUTH_FINGERPRINT
      pos:
        line_end: 1058
        line_start: 1057
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"auth-fingerprint"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_USB_RECEIVER
      pos:
        line_end: 1067
        line_start: 1066
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"usb-receiver"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_PDA
      pos:
        line_end: 1076
        line_start: 1075
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"pda"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_WEB_CAMERA
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"camera-web"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_VIDEO_CAMERA
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"camera-video"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_APPLICATION_CERTIFICATE
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"application-certificate"'
    structs:
    - fields:
      - name: parent_class
        type: FwupdDeviceClass
      item_type: struct
      name: _FuDeviceClass
      pos:
        line_end: 98
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
    typedefs:
    - item_type: typedef
      name: FuDeviceIncorporateFlags
      pos:
        line_end: 276
        line_start: 105
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
    - item_type: typedef
      name: "(*FuDeviceRetryFunc)(FuDevice *self,\n\t\t\t\t      gpointer user_data,\n\t\t\t\t
        \     GError **error)"
      pos:
        line_end: 308
        line_start: 306
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_oprom_firmware_get_machine_type
  - fu_oprom_firmware_get_subsystem
  - fu_oprom_firmware_get_compression_type
  - fu_oprom_firmware_export
  - fu_oprom_firmware_validate
  - fu_oprom_firmware_parse
  - fu_oprom_firmware_write
  - fu_oprom_firmware_build
  - fu_oprom_firmware_init
  - fu_oprom_firmware_class_init
  - fu_oprom_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_OPROM_FIRMWARE_ALIGN_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
      type_or_value: 512u
    - item_type: preproc_def
      name: FU_OPROM_FIRMWARE_LAST_IMAGE_INDICATOR_BIT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
      type_or_value: (1u << 7)
    structs:
    - fields:
      - name: machine_type
        type: FuOpromMachineType
      - name: subsystem
        type: FuOpromSubsystem
      - name: compression_type
        type: FuOpromCompressionType
      - name: vendor_id
        type: guint16
      - name: device_id
        type: guint16
      item_type: struct
      name: FuOpromFirmwarePrivate
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IOCTL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
      type_or_value: (fu_ioctl_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuIoctlFlags
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
    - item_type: typedef
      name: "(*FuIoctlFixupFunc)(FuIoctl *self,\n\t\t\t\t     gpointer ptr,\n\t\t\t\t
        \    guint8 *buf,\n\t\t\t\t     gsize bufsz,\n\t\t\t\t     GError **error)"
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DUMMY_EFIVARS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.h
      type_or_value: (fu_dummy_efivars_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_udev_device_emit_changed
  - fu_udev_device_to_string
  - fu_udev_device_ensure_bind_id
  - fu_udev_device_set_subsystem
  - fu_udev_device_set_bind_id
  - fu_udev_device_set_driver
  - fu_udev_device_set_device_file
  - fu_udev_device_get_symlink_target
  - fu_udev_device_set_number
  - fu_udev_device_set_devtype
  - fu_udev_device_parse_number
  - fu_udev_device_ensure_devtype_from_modalias
  - fu_udev_device_probe
  - fu_udev_device_get_subsystem_depth
  - fu_udev_device_probe_complete
  - fu_udev_device_unbind_driver
  - fu_udev_device_bind_driver
  - fu_udev_device_get_open_flags
  - fu_udev_device_invalidate
  - fu_udev_device_incorporate
  - fu_udev_device_get_subsystem
  - fu_udev_device_get_bind_id
  - fu_udev_device_get_driver
  - fu_udev_device_get_device_file
  - fu_udev_device_get_sysfs_path
  - fu_udev_device_get_number
  - fu_udev_device_get_parent_subsystems
  - fu_udev_device_match_subsystem
  - fu_udev_device_get_device_file_from_subsystem
  - fu_udev_device_get_devpath
  - fu_udev_device_set_physical_id
  - fu_udev_device_get_io_channel
  - fu_udev_device_set_io_channel
  - fu_udev_device_remove_open_flag
  - fu_udev_device_add_open_flag
  - fu_udev_device_open
  - fu_udev_device_rescan
  - fu_udev_device_close
  - fu_udev_device_reopen
  - fu_udev_device_ioctl_new
  - fu_udev_device_ioctl
  - fu_udev_device_pread
  - fu_udev_device_seek
  - fu_udev_device_pwrite
  - fu_udev_device_read
  - fu_udev_device_read_bytes
  - fu_udev_device_write
  - fu_udev_device_write_bytes
  - fu_udev_device_list_sysfs
  - fu_udev_device_read_sysfs
  - fu_udev_device_read_sysfs_bytes
  - fu_udev_device_write_sysfs
  - fu_udev_device_write_sysfs_byte_array
  - fu_udev_device_write_sysfs_bytes
  - fu_udev_device_get_devtype
  - fu_udev_device_get_subsystem_devtype
  - fu_udev_device_add_property
  - fu_udev_device_read_property
  - fu_udev_device_add_json
  - fu_udev_device_from_json
  - fu_udev_device_get_property
  - fu_udev_device_set_property
  - fu_udev_device_finalize
  - fu_udev_device_vid_notify_cb
  - fu_udev_device_pid_notify_cb
  - fu_udev_device_init
  - fu_udev_device_class_init
  - fu_udev_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-udev-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.c
      type_or_value: '"FuUdevDevice"'
    structs:
    - fields:
      - name: '*subsystem'
        type: gchar
      - name: '*bind_id'
        type: gchar
      - name: '*driver'
        type: gchar
      - name: '*device_file'
        type: gchar
      - name: '*devtype'
        type: gchar
      - name: number
        type: guint64
      - name: '*io_channel'
        type: FuIOChannel
      - name: open_flags
        type: FuIoChannelOpenFlag
      - name: '*properties'
        type: GHashTable
      - name: properties_valid
        type: gboolean
      item_type: struct
      name: FuUdevDevicePrivate
      pos:
        line_end: 51
        line_start: 40
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.c
    typedefs: []
    union: []
- function_names:
  - fu_sum8
  - fu_sum8_bytes
  - fu_sum16
  - fu_sum16_bytes
  - fu_sum16w
  - fu_sum16w_bytes
  - fu_sum32
  - fu_sum32_bytes
  - fu_sum32w
  - fu_sum32w_bytes
  source_file: /src/fwupd/libfwupdplugin/fu-sum.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-sum.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_backend_device_added
  - fu_backend_device_removed
  - fu_backend_device_changed
  - fu_backend_registered
  - fu_backend_get_device_parent
  - fu_backend_create_device
  - fu_backend_create_device_for_donor
  - fu_backend_invalidate
  - fu_backend_add_string
  - fu_backend_setup
  - fu_backend_from_json
  - fu_backend_add_json
  - fu_backend_coldplug
  - fu_backend_get_name
  - fu_backend_get_context
  - fu_backend_get_enabled
  - fu_backend_set_enabled
  - fu_backend_lookup_by_id
  - fu_backend_get_devices_sort_cb
  - fu_backend_get_devices
  - fu_backend_get_property
  - fu_backend_set_property
  - fu_backend_codec_iface_init
  - fu_backend_init
  - fu_backend_dispose
  - fu_backend_finalize
  - fu_backend_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-backend.c
      type_or_value: '"FuBackend"'
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: '*name'
        type: gchar
      - name: enabled
        type: gboolean
      - name: done_setup
        type: gboolean
      - name: can_invalidate
        type: gboolean
      - name: device_gtype
        type: GType
      - name: '*devices'
        type: GHashTable
      - name: '*thread_init'
        type: GThread
      item_type: struct
      name: FuBackendPrivate
      pos:
        line_end: 31
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_i2c_device_probe
  - fu_i2c_device_set_address
  - fu_i2c_device_write
  - fu_i2c_device_read
  - fu_i2c_device_register_flags
  - fu_i2c_device_init
  - fu_i2c_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.c
      type_or_value: '"FuI2cDevice"'
    - item_type: preproc_def
      name: FU_I2C_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.c
      type_or_value: '2000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_composite_input_stream_add_string
  - fu_composite_input_stream_codec_iface_init
  - fu_composite_input_stream_item_free
  - fu_composite_input_stream_add_bytes
  - fu_composite_input_stream_add_partial_stream
  - fu_composite_input_stream_add_stream
  - fu_composite_input_stream_tell
  - fu_composite_input_stream_can_seek
  - fu_composite_input_stream_get_item_for_offset
  - fu_composite_input_stream_seek
  - fu_composite_input_stream_can_truncate
  - fu_composite_input_stream_truncate
  - fu_composite_input_stream_seekable_iface_init
  - fu_composite_input_stream_new
  - fu_composite_input_stream_read
  - fu_composite_input_stream_finalize
  - fu_composite_input_stream_class_init
  - fu_composite_input_stream_init
  source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
      type_or_value: '"FuCompositeInputStream"'
    structs:
    - fields:
      - name: '*partial_stream'
        type: FuPartialInputStream
      - name: global_offset
        type: gsize
      item_type: struct
      name: FuCompositeInputStreamItem
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    - fields:
      - name: parent_instance
        type: GInputStream
      - name: '*items'
        type: GPtrArray
      - name: '*last_item'
        type: FuCompositeInputStreamItem
      - name: pos
        type: goffset
      - name: pos_offset
        type: goffset
      - name: total_size
        type: gsize
      item_type: struct
      name: _FuCompositeInputStream
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IHEX_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.h
      type_or_value: (fu_ihex_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIhexFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.h
    - fields:
      - name: ln
        type: guint
      - name: '*buf'
        type: GString
      - name: byte_cnt
        type: guint8
      - name: addr
        type: guint32
      - name: record_type
        type: guint8
      - name: '*data'
        type: GByteArray
      item_type: struct
      name: FuIhexFirmwareRecord
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_firmware_strparse_uint4_safe
  - fu_firmware_strparse_uint8_safe
  - fu_firmware_strparse_uint16_safe
  - fu_firmware_strparse_uint24_safe
  - fu_firmware_strparse_uint32_safe
  source_file: /src/fwupd/libfwupdplugin/fu-firmware-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-firmware-common.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-edid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EDID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-edid.h
      type_or_value: (fu_edid_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KERNEL_SEARCH_PATH_LOCKER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path.h
      type_or_value: (fu_kernel_search_path_locker_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_srec_firmware_get_records
  - fu_srec_firmware_set_addr_min
  - fu_srec_firmware_set_addr_max
  - fu_srec_firmware_record_free
  - fu_srec_firmware_record_new
  - fu_srec_firmware_record_dup
  - fu_srec_firmware_record_get_type
  - fu_srec_firmware_tokenize_cb
  - fu_srec_firmware_tokenize
  - fu_srec_firmware_parse
  - fu_srec_firmware_write_line
  - fu_srec_firmware_write
  - fu_srec_firmware_finalize
  - fu_srec_firmware_init
  - fu_srec_firmware_class_init
  - fu_srec_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_SREC_FIRMWARE_TOKENS_MAX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
      type_or_value: '100000 '
    structs:
    - fields:
      - name: '*records'
        type: GPtrArray
      - name: addr_min
        type: guint32
      - name: addr_max
        type: guint32
      item_type: struct
      name: FuSrecFirmwarePrivate
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    - fields:
      - name: '*self'
        type: FuSrecFirmware
      - name: flags
        type: FuFirmwareParseFlags
      - name: got_eof
        type: gboolean
      item_type: struct
      name: FuSrecFirmwareTokenHelper
      pos:
        line_end: 164
        line_start: 160
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PEFILE_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.h
      type_or_value: (fu_pefile_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuPefileFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_I2C_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.h
      type_or_value: (fu_i2c_device_get_type())
    - item_type: preproc_def
      name: FU_I2C_DEVICE_PRIVATE_FLAG_NO_HWID_GUIDS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.h
      type_or_value: '"no-hwid-guids"'
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuI2cDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-i2c-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cab-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CAB_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-cab-image.h
      type_or_value: (fu_cab_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_VARIABLE_AUTHENTICATION2
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.h
      type_or_value: (fu_efi_variable_authentication2_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efivars-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bytes_set_contents
  - fu_bytes_get_contents
  - fu_bytes_align
  - fu_bytes_is_empty
  - fu_bytes_compare
  - fu_bytes_pad
  - fu_bytes_new_offset
  - fu_bytes_get_data_safe
  - fu_bytes_to_string
  - fu_bytes_from_string
  source_file: /src/fwupd/libfwupdplugin/fu-bytes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-bytes.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_chunk_set_idx
  - fu_chunk_get_idx
  - fu_chunk_set_page
  - fu_chunk_get_page
  - fu_chunk_set_address
  - fu_chunk_get_address
  - fu_chunk_get_data
  - fu_chunk_get_data_out
  - fu_chunk_get_data_sz
  - fu_chunk_set_data_sz
  - fu_chunk_set_bytes
  - fu_chunk_get_bytes
  - fu_chunk_new
  - fu_chunk_bytes_new
  - fu_chunk_export
  - fu_chunk_to_string
  - fu_chunk_array_to_string
  - fu_chunk_array_mutable_new
  - fu_chunk_array_new
  - fu_chunk_build
  - fu_chunk_finalize
  - fu_chunk_class_init
  - fu_chunk_init
  source_file: /src/fwupd/libfwupdplugin/fu-chunk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-chunk.c
      type_or_value: '"FuChunk"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: idx
        type: guint
      - name: page
        type: guint
      - name: address
        type: gsize
      - name: '*data'
        type: guint8
      - name: data_sz
        type: gsize
      - name: is_mutable
        type: gboolean
      - name: '*bytes'
        type: GBytes
      item_type: struct
      name: _FuChunk
      pos:
        line_end: 32
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-chunk.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-drm-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DRM_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-drm-device.h
      type_or_value: (fu_drm_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuDrmDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-drm-device.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_signature_export
  - fu_efi_signature_new
  - fu_efi_signature_get_kind
  - fu_efi_signature_set_kind
  - fu_efi_signature_get_owner
  - fu_efi_signature_parse
  - fu_efi_signature_write
  - fu_efi_signature_build
  - fu_efi_signature_get_checksum
  - fu_efi_signature_finalize
  - fu_efi_signature_class_init
  - fu_efi_signature_init
  source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: FuEfiSignatureKind
      - name: '*owner'
        type: gchar
      item_type: struct
      name: FuEfiSignaturePrivate
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    typedefs: []
    union: []
- function_names:
  - fu_dump_full
  - fu_dump_raw
  - fu_dump_bytes
  source_file: /src/fwupd/libfwupdplugin/fu-dump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-dump.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FDT_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.h
      type_or_value: (fu_fdt_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuFdtFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_pci_device_to_string
  - fu_pci_device_ensure_subsys_instance_id
  - fu_pci_device_set_subsystem_vid
  - fu_pci_device_get_subsystem_vid
  - fu_pci_device_set_subsystem_pid
  - fu_pci_device_get_subsystem_pid
  - fu_pci_device_set_revision
  - fu_pci_device_get_revision
  - fu_pci_device_to_incorporate
  - fu_pci_device_probe
  - fu_pci_device_set_quirks_fallback
  - fu_pci_device_probe_complete
  - fu_pci_device_init
  - fu_pci_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-pci-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-pci-device.c
      type_or_value: '"FuPciDevice"'
    structs:
    - fields:
      - name: revision
        type: guint8
      - name: class
        type: guint32
      - name: subsystem_vid
        type: guint16
      - name: subsystem_pid
        type: guint16
      item_type: struct
      name: FuPciDevicePrivate
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-pci-device.c
    typedefs: []
    union: []
- function_names:
  - fu_io_channel_unix_get_fd
  - fu_io_channel_shutdown
  - fu_io_channel_seek
  - fu_io_channel_flush_input
  - fu_io_channel_write_bytes
  - fu_io_channel_write_stream_cb
  - fu_io_channel_write_stream
  - fu_io_channel_write_byte_array
  - fu_io_channel_write_raw
  - fu_io_channel_read_bytes
  - fu_io_channel_read_byte_array
  - fu_io_channel_read_raw
  - fu_io_channel_finalize
  - fu_io_channel_class_init
  - fu_io_channel_init
  - fu_io_channel_unix_new
  - fu_io_channel_new_file
  - fu_io_channel_virtual_new
  source_file: /src/fwupd/libfwupdplugin/fu-io-channel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-io-channel.c
      type_or_value: '"FuIOChannel"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: fd
        type: gint
      item_type: struct
      name: _FuIOChannel
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/fwupd/libfwupdplugin/fu-io-channel.c
    - fields:
      - name: '*self'
        type: FuIOChannel
      - name: timeout_ms
        type: guint
      - name: flags
        type: FuIOChannelFlags
      item_type: struct
      name: FuIOChannelWriteStreamHelper
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/fwupd/libfwupdplugin/fu-io-channel.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-descriptor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_DESCRIPTOR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-usb-descriptor.h
      type_or_value: (fu_usb_descriptor_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuUsbDescriptorClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-usb-descriptor.h
    typedefs: []
    union: []
- function_names:
  - fu_cab_image_get_win32_filename
  - fu_cab_image_set_win32_filename
  - fu_cab_image_get_created
  - fu_cab_image_set_created
  - fu_cab_image_build
  - fu_cab_image_export
  - fu_cab_image_finalize
  - fu_cab_image_class_init
  - fu_cab_image_init
  - fu_cab_image_new
  source_file: /src/fwupd/libfwupdplugin/fu-cab-image.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-cab-image.c
      type_or_value: '"FuCabFirmware"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*win32_filename'
        type: gchar
      - name: '*created'
        type: GDateTime
      item_type: struct
      name: _FuCabImage
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-cab-image.c
    typedefs: []
    union: []
- function_names:
  - fu_security_attrs_finalize
  - fu_security_attrs_class_init
  - fu_security_attrs_init
  - fu_security_attrs_append_internal
  - fu_security_attrs_is_valid
  - fu_security_attrs_append
  - fu_security_attrs_get_by_appstream_id
  - fu_security_attrs_to_variant
  - fu_security_attrs_get_all
  - fu_security_attrs_remove_all
  - fu_security_attrs_calculate_hsi
  - fu_security_attrs_get_sort_key
  - fu_security_attrs_sort_cb
  - fu_security_attrs_ensure_level
  - fu_security_attrs_ensure_fwupd_version
  - fu_security_attrs_depsolve
  - fu_security_attrs_add_json
  - fu_security_attrs_from_json
  - fu_security_attrs_codec_iface_init
  - fu_security_attrs_compare
  - fu_security_attrs_equal
  - fu_security_attrs_new
  source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
      type_or_value: '"FuSecurityAttrs"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_DOC_URL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
      type_or_value: '"https://fwupd.github.io/libfwupdplugin/hsi.html"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*attrs'
        type: GPtrArray
      item_type: struct
      name: _FuSecurityAttrs
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    - fields:
      - name: '*appstream_id'
        type: gchar
      - name: level
        type: FwupdSecurityAttrLevel
      item_type: struct
      name: "appstream_id_level_map[] = {\n    {FWUPD_SECURITY_ATTR_ID_AMD_ROLLBACK_PROTECTION,
        FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_PROTECTION},\n    {FWUPD_SECURITY_ATTR_ID_AMD_SPI_REPLAY_PROTECTION,
        FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n    {FWUPD_SECURITY_ATTR_ID_AMD_SPI_WRITE_PROTECTION,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_ENCRYPTED_RAM,
        FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_PROTECTION},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ACM,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ENABLED,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_OTP,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_POLICY,
        FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_VERIFIED,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_CET_ACTIVE,
        FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n    {FWUPD_SECURITY_ATTR_ID_CET_ENABLED,
        FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_GDS,
        FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n    {FWUPD_SECURITY_ATTR_ID_SMAP, FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_PROTECTION},\n
        \   {FWUPD_SECURITY_ATTR_ID_IOMMU, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_MEI_MANUFACTURING_MODE, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_MEI_OVERRIDE_STRAP, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_MEI_KEY_MANIFEST, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_MEI_VERSION, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_ENABLED, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_LOCKED, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_PLATFORM_FUSED, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION, FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SPI_BIOSWE, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SPI_BLE, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SPI_DESCRIPTOR, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SPI_SMM_BWP, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SUPPORTED_CPU, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_IDLE, FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_RAM, FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_TPM_VERSION_20, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_UEFI_PK, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_UEFI_SECUREBOOT, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_UEFI_BOOTSERVICE_VARS, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_BIOS_ROLLBACK_PROTECTION, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_BIOS_CAPSULE_UPDATES, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_AMD_SMM_LOCKED, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n
        \   {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_UEFI_DB, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n}"
      pos:
        line_end: 367
        line_start: 364
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    - fields:
      - name: '*appstream_id'
        type: gchar
      - name: '*fwupd_version'
        type: gchar
      item_type: struct
      name: "appstream_id_version_map[] = {\n    {FWUPD_SECURITY_ATTR_ID_AMD_ROLLBACK_PROTECTION,
        \"1.8.0\"},\n    {FWUPD_SECURITY_ATTR_ID_AMD_SMM_LOCKED, \"2.0.2\"},\n    {FWUPD_SECURITY_ATTR_ID_AMD_SPI_REPLAY_PROTECTION,
        \"1.8.0\"},\n    {FWUPD_SECURITY_ATTR_ID_AMD_SPI_WRITE_PROTECTION, \"1.8.0\"},\n
        \   {FWUPD_SECURITY_ATTR_ID_BIOS_CAPSULE_UPDATES, \"1.9.6\"},\n    {FWUPD_SECURITY_ATTR_ID_BIOS_ROLLBACK_PROTECTION,
        \"1.8.8\"},\n    {FWUPD_SECURITY_ATTR_ID_CET_ACTIVE, \"2.0.0\"},\n    {FWUPD_SECURITY_ATTR_ID_CET_ENABLED,
        \"2.0.0\"},\n    {FWUPD_SECURITY_ATTR_ID_ENCRYPTED_RAM, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ACM,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_ENABLED, \"1.5.0\"},\n
        \   {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_OTP, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_POLICY,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_INTEL_BOOTGUARD_VERIFIED, \"1.5.0\"},\n
        \   {FWUPD_SECURITY_ATTR_ID_INTEL_GDS, \"1.9.4\"},\n    {FWUPD_SECURITY_ATTR_ID_IOMMU,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_KERNEL_LOCKDOWN, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_KERNEL_TAINTED,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_MEI_KEY_MANIFEST, \"1.8.7\"},\n    {FWUPD_SECURITY_ATTR_ID_MEI_MANUFACTURING_MODE,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_MEI_OVERRIDE_STRAP, \"1.5.0\"},\n
        \   {FWUPD_SECURITY_ATTR_ID_MEI_VERSION, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_ENABLED,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_PLATFORM_DEBUG_LOCKED, \"1.8.0\"},\n
        \   {FWUPD_SECURITY_ATTR_ID_PLATFORM_FUSED, \"1.8.0\"},\n    {FWUPD_SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION,
        \"1.8.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SMAP, \"2.0.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SPI_BIOSWE,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SPI_BLE, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SPI_DESCRIPTOR,
        \"1.6.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SPI_SMM_BWP, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SUPPORTED_CPU,
        \"1.8.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_IDLE, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_SUSPEND_TO_RAM,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_TPM_EMPTY_PCR, \"1.7.2\"},\n    {FWUPD_SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0,
        \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_TPM_VERSION_20, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_UEFI_BOOTSERVICE_VARS,
        \"1.9.3\"},\n    {FWUPD_SECURITY_ATTR_ID_UEFI_DB, \"2.0.8\"},\n    {FWUPD_SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION,
        \"2.0.7\"},\n    {FWUPD_SECURITY_ATTR_ID_UEFI_PK, \"1.5.0\"},\n    {FWUPD_SECURITY_ATTR_ID_UEFI_SECUREBOOT,
        \"1.5.0\"},\n}"
      pos:
        line_end: 439
        line_start: 436
        source_file: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    typedefs: []
    union: []
- function_names:
  - fu_plugin_get_flags
  - fu_plugin_has_flag
  - fu_plugin_add_flag
  - fu_plugin_remove_flag
  source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PLUGIN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
      type_or_value: (fu_plugin_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FwupdPluginClass
      - name: (*_device_added)(FuPlugin *self, FuDevice *device)
        type: void
      - name: (*_device_removed)(FuPlugin *self, FuDevice *device)
        type: void
      - name: (*_status_changed)(FuPlugin *self, FwupdStatus status)
        type: void
      - name: (*_percentage_changed)(FuPlugin *self, guint percentage)
        type: void
      - name: (*_device_register)(FuPlugin *self, FuDevice *device)
        type: void
      - name: (*_check_supported)(FuPlugin *self, const gchar *guid)
        type: gboolean
      - name: (*_rules_changed)(FuPlugin *self)
        type: void
      - name: (*constructed)(GObject *obj)
        type: void
      - name: (*finalize)(GObject *obj)
        type: void
      - name: (*startup)(FuPlugin *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: (*ready)(FuPlugin *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: (*coldplug)(FuPlugin *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: (*device_created)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: (*device_registered)(FuPlugin *self, FuDevice *device)
        type: void
      - name: (*device_added)(FuPlugin *self, FuDevice *device)
        type: void
      - name: "(*verify)(FuPlugin *self,\n\t\t\t   FuDevice *device,\n\t\t\t   FuProgress
          *progress,\n\t\t\t   FuPluginVerifyFlags flags,\n\t\t\t   GError **error)"
        type: gboolean
      - name: (*get_results)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: (*clear_results)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: "(*backend_device_added)(FuPlugin *self,\n\t\t\t\t\t FuDevice *device,\n\t\t\t\t\t
          FuProgress *progress,\n\t\t\t\t\t GError **error)"
        type: gboolean
      - name: (*backend_device_changed)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: (*backend_device_removed)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: (*add_security_attrs)(FuPlugin *self, FuSecurityAttrs *attrs)
        type: void
      - name: "(*write_firmware)(FuPlugin *self,\n\t\t\t\t   FuDevice *device,\n\t\t\t\t
          \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   FwupdInstallFlags
          flags,\n\t\t\t\t   GError **error)"
        type: gboolean
      - name: (*unlock)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: "(*activate)(FuPlugin *self,\n\t\t\t     FuDevice *device,\n\t\t\t     FuProgress
          *progress,\n\t\t\t     GError **error)"
        type: gboolean
      - name: (*attach)(FuPlugin *self, FuDevice *device, FuProgress *progress, GError
          **error)
        type: gboolean
      - name: (*detach)(FuPlugin *self, FuDevice *device, FuProgress *progress, GError
          **error)
        type: gboolean
      - name: "(*prepare)(FuPlugin *self,\n\t\t\t    FuDevice *device,\n\t\t\t    FuProgress
          *progress,\n\t\t\t    FwupdInstallFlags flags,\n\t\t\t    GError **error)"
        type: gboolean
      - name: "(*cleanup)(FuPlugin *self,\n\t\t\t    FuDevice *device,\n\t\t\t    FuProgress
          *progress,\n\t\t\t    FwupdInstallFlags flags,\n\t\t\t    GError **error)"
        type: gboolean
      - name: (*composite_prepare)(FuPlugin *self, GPtrArray *devices, GError **error)
        type: gboolean
      - name: (*composite_cleanup)(FuPlugin *self, GPtrArray *devices, GError **error)
        type: gboolean
      - name: (*load)(FuContext *ctx)
        type: void
      - name: (*to_string)(FuPlugin *self, guint idt, GString *str)
        type: void
      - name: (*fix_host_security_attr)(FuPlugin *self, FwupdSecurityAttr *attr, GError
          **error)
        type: gboolean
      - name: "(*undo_host_security_attr)(FuPlugin *self,\n\t\t\t\t\t    FwupdSecurityAttr
          *attr,\n\t\t\t\t\t    GError **error)"
        type: gboolean
      - name: (*reboot_cleanup)(FuPlugin *self, FuDevice *device, GError **error)
        type: gboolean
      - name: "(*modify_config)(FuPlugin *self,\n\t\t\t\t  const gchar *key,\n\t\t\t\t
          \ const gchar *value,\n\t\t\t\t  GError **error)"
        type: gboolean
      item_type: struct
      name: _FuPluginClass
      pos:
        line_end: 431
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
    typedefs:
    - item_type: typedef
      name: FuPluginVerifyFlags
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
    - item_type: typedef
      name: FuPluginRule
      pos:
        line_end: 461
        line_start: 452
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_HID_DESCRIPTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.h
      type_or_value: (fu_usb_hid_descriptor_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cfu-payload.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CFU_PAYLOAD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-payload.h
      type_or_value: (fu_cfu_payload_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCfuPayloadClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-payload.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-crc-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-path.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuPathKind
      pos:
        line_end: 93
        line_start: 57
        source_file: /src/fwupd/libfwupdplugin/fu-path.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_FILE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file.h
      type_or_value: (fu_efi_file_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiFileClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file.h
    typedefs: []
    union: []
- function_names:
  - fu_common_get_block_devices
  - fu_common_get_memory_size_impl
  - fu_common_get_kernel_cmdline_impl
  - fu_common_get_olson_timezone_id_impl
  source_file: /src/fwupd/libfwupdplugin/fu-common-darwin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common-darwin.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_FILESYSTEM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.h
      type_or_value: (fu_efi_filesystem_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiFilesystemClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-filesystem.h
    typedefs: []
    union: []
- function_names:
  - fu_common_get_block_devices
  - fu_common_get_memory_size_impl
  - fu_common_get_kernel_cmdline_impl
  source_file: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
      type_or_value: '"FuCommon"'
    - item_type: preproc_def
      name: UDISKS_DBUS_PATH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
      type_or_value: '"/org/freedesktop/UDisks2"'
    - item_type: preproc_def
      name: UDISKS_DBUS_MANAGER_INTERFACE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
      type_or_value: '"org.freedesktop.DBus.ObjectManager"'
    - item_type: preproc_def
      name: UDISKS_BLOCK_DEVICE_PATH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
      type_or_value: '"/org/freedesktop/UDisks2/block_devices/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_input_stream_from_path
  - fu_input_stream_read_safe
  - fu_input_stream_read_u8
  - fu_input_stream_read_u16
  - fu_input_stream_read_u24
  - fu_input_stream_read_u32
  - fu_input_stream_read_u64
  - fu_input_stream_read_byte_array
  - fu_input_stream_read_bytes
  - fu_input_stream_read_string
  - fu_input_stream_size
  - fu_input_stream_compute_checksum_cb
  - fu_input_stream_compute_checksum
  - fu_input_stream_compute_sum8_cb
  - fu_input_stream_compute_sum8
  - fu_input_stream_compute_sum16_cb
  - fu_input_stream_compute_sum16
  - fu_input_stream_compute_sum32_cb
  - fu_input_stream_compute_sum32
  - fu_input_stream_compute_crc32_cb
  - fu_input_stream_compute_crc32
  - fu_input_stream_compute_crc16_cb
  - fu_input_stream_compute_crc16
  - fu_input_stream_chunkify
  - fu_input_stream_find
  source_file: /src/fwupd/libfwupdplugin/fu-input-stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-input-stream.c
      type_or_value: '"FuInputStream"'
    structs:
    - fields:
      - name: kind
        type: FuCrcKind
      - name: crc
        type: guint32
      item_type: struct
      name: FuInputStreamComputeCrc32Helper
      pos:
        line_end: 584
        line_start: 581
        source_file: /src/fwupd/libfwupdplugin/fu-input-stream.c
    - fields:
      - name: kind
        type: FuCrcKind
      - name: crc
        type: guint16
      item_type: struct
      name: FuInputStreamComputeCrc16Helper
      pos:
        line_end: 626
        line_start: 623
        source_file: /src/fwupd/libfwupdplugin/fu-input-stream.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_THUNDERBOLT_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.h
      type_or_value: (fu_intel_thunderbolt_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuIntelThunderboltNvmClass
      item_type: struct
      name: _FuIntelThunderboltFirmwareClass
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_v4l_device_to_string
  - fu_v4l_device_get_index
  - fu_v4l_device_get_caps
  - fu_v4l_device_usb_probe
  - fu_v4l_device_probe
  - fu_v4l_device_setup
  - fu_v4l_device_incorporate
  - fu_v4l_device_init
  - fu_v4l_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.c
      type_or_value: '"FuV4lDevice"'
    structs:
    - fields:
      - name: index
        type: guint8
      - name: caps
        type: FuV4lCap
      item_type: struct
      name: FuV4lDevicePrivate
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PARTIAL_INPUT_STREAM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream.h
      type_or_value: (fu_partial_input_stream_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_progress_get_id
  - fu_progress_set_id
  - fu_progress_get_name
  - fu_progress_get_name_fallback
  - fu_progress_set_name
  - fu_progress_get_status
  - fu_progress_add_flag
  - fu_progress_remove_flag
  - fu_progress_has_flag
  - fu_progress_set_status
  - fu_progress_get_percentage
  - fu_progress_set_parent
  - fu_progress_get_duration
  - fu_progress_set_duration
  - fu_progress_build_parent_chain
  - fu_progress_set_percentage
  - fu_progress_set_percentage_full
  - fu_progress_set_profile
  - fu_progress_get_profile
  - fu_progress_reset
  - fu_progress_set_steps
  - fu_progress_get_global_fraction
  - fu_progress_get_steps
  - fu_progress_discrete_to_percent
  - fu_progress_get_step_percentage
  - fu_progress_child_status_changed_cb
  - fu_progress_child_percentage_changed_cb
  - fu_progress_add_step
  - fu_progress_finished
  - fu_progress_get_child
  - fu_progress_show_profile
  - fu_progress_step_done
  - fu_progress_sleep
  - fu_progress_traceback_cb
  - fu_progress_traceback
  - fu_progress_add_string
  - fu_progress_codec_iface_init
  - fu_progress_init
  - fu_progress_finalize
  - fu_progress_class_init
  - fu_progress_new
  source_file: /src/fwupd/libfwupdplugin/fu-progress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-progress.c
      type_or_value: '"FuProgress"'
    - item_type: preproc_def
      name: FU_PROGRESS_STEPS_MAX
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/fwupd/libfwupdplugin/fu-progress.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*id'
        type: gchar
      - name: '*name'
        type: gchar
      - name: flags
        type: FuProgressFlag
      - name: percentage
        type: guint
      - name: status
        type: FwupdStatus
      - name: '*children'
        type: GPtrArray
      - name: profile
        type: gboolean
      - name: duration
        type: gdouble
      - name: global_fraction
        type: gdouble
      - name: step_weighting
        type: guint
      - name: '*timer'
        type: GTimer
      - name: '*timer_child'
        type: GTimer
      - name: step_now
        type: guint
      - name: step_done
        type: guint
      - name: step_scaling
        type: guint
      - name: '*parent'
        type: FuProgress
      item_type: struct
      name: _FuProgress
      pos:
        line_end: 77
        line_start: 59
        source_file: /src/fwupd/libfwupdplugin/fu-progress.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-progress-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_cfi_device_get_size
  - fu_cfi_device_set_size
  - fu_cfi_device_get_flash_id
  - fu_cfi_device_set_flash_id
  - fu_cfi_device_get_property
  - fu_cfi_device_set_property
  - fu_cfi_device_finalize
  - fu_cfi_device_wait_for_status_cb
  - fu_cfi_device_wait_for_status
  - fu_cfi_device_read_jedec
  - fu_cfi_device_setup
  - fu_cfi_device_get_cmd
  - fu_cfi_device_get_page_size
  - fu_cfi_device_set_page_size
  - fu_cfi_device_get_sector_size
  - fu_cfi_device_set_block_size
  - fu_cfi_device_get_block_size
  - fu_cfi_device_set_sector_size
  - fu_cfi_device_set_quirk_kv
  - fu_cfi_device_to_string
  - fu_cfi_device_send_command
  - fu_cfi_device_chip_select
  - fu_cfi_device_chip_select_assert
  - fu_cfi_device_chip_select_deassert
  - fu_cfi_device_chip_select_locker_new
  - fu_cfi_device_write_enable
  - fu_cfi_device_chip_erase
  - fu_cfi_device_write_page
  - fu_cfi_device_write_pages
  - fu_cfi_device_read_block
  - fu_cfi_device_read_firmware
  - fu_cfi_device_dump_firmware
  - fu_cfi_device_write_firmware
  - fu_cfi_device_set_progress
  - fu_cfi_device_init
  - fu_cfi_device_constructed
  - fu_cfi_device_class_init
  - fu_cfi_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
      type_or_value: '"FuCfiDevice"'
    - item_type: preproc_def
      name: FU_CFI_DEVICE_PAGE_SIZE_DEFAULT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FU_CFI_DEVICE_SECTOR_SIZE_DEFAULT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FU_CFI_DEVICE_BLOCK_SIZE_DEFAULT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
      type_or_value: '0x10000'
    structs:
    - fields:
      - name: '*flash_id'
        type: gchar
      - name: cmd_read_id_sz
        type: guint8
      - name: page_size
        type: guint32
      - name: sector_size
        type: guint32
      - name: block_size
        type: guint32
      - name: cmds[FU_CFI_DEVICE_CMD_LAST]
        type: FuCfiDeviceCmd
      item_type: struct
      name: FuCfiDevicePrivate
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    - fields:
      - name: mask
        type: guint8
      - name: value
        type: guint8
      item_type: struct
      name: FuCfiDeviceHelper
      pos:
        line_end: 167
        line_start: 164
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-progress.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PROGRESS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-progress.h
      type_or_value: (fu_progress_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_heci_device_result_to_error
  - fu_heci_device_read_file
  - fu_heci_device_read_file_ex
  - fu_heci_device_arbh_svn_get_info
  - fu_heci_device_init
  - fu_heci_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-heci-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.c
      type_or_value: '"FuHeciDevice"'
    - item_type: preproc_def
      name: FU_HECI_DEVICE_TIMEOUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-heci-device.c
      type_or_value: '200 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hwids_darwin_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: '*hwid'
        type: gchar
      - name: '*key'
        type: gchar
      item_type: struct
      name: "map[] = {{FU_HWIDS_KEY_BIOS_VERSION, \"System Firmware Version\"},\n\t\t
        \  {FU_HWIDS_KEY_FAMILY, \"Model Name\"},\n\t\t   {FU_HWIDS_KEY_PRODUCT_NAME,
        \"Model Identifier\"},\n\t\t   {NULL}}"
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-security-attr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SECURITY_ATTR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-security-attr.h
      type_or_value: (fu_security_attr_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FwupdSecurityAttrClass
      item_type: struct
      name: _FuSecurityAttrClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-security-attr.h
    typedefs: []
    union: []
- function_names:
  - fu_linux_efivars_get_path
  - fu_linux_efivars_get_filename
  - fu_linux_efivars_supported
  - fu_linux_efivars_set_immutable_fd
  - fu_linux_efivars_set_immutable
  - fu_linux_efivars_delete
  - fu_linux_efivars_delete_with_glob
  - fu_linux_efivars_exists_guid
  - fu_linux_efivars_exists
  - fu_linux_efivars_get_data
  - fu_linux_efivars_get_names
  - fu_linux_efivars_get_monitor
  - fu_linux_efivars_space_used
  - fu_linux_efivars_space_free
  - fu_linux_efivars_set_data
  - fu_linux_efivars_init
  - fu_linux_efivars_class_init
  - fu_efivars_new
  source_file: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
      type_or_value: '"FuLinuxEfivars"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfivars
      item_type: struct
      name: _FuLinuxEfivars
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    typedefs: []
    union: []
- function_names:
  - fu_common_get_block_devices
  - fu_common_get_memory_size_impl
  - fu_common_get_kernel_cmdline_impl
  - fu_common_convert_tzinfo_to_olson_id
  - fu_common_get_olson_timezone_id_impl
  source_file: /src/fwupd/libfwupdplugin/fu-common-windows.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common-windows.c
      type_or_value: '"FuCommon"'
    structs:
    - fields:
      - name: '*tzinfo'
        type: gchar
      - name: '*olson_id'
        type: gchar
      item_type: struct
      name: "map[] = {{\"Afghanistan\", \"Asia/Kabul\"},\n\t\t   {\"Alaskan\", \"America/Anchorage\"},\n\t\t
        \  {\"Aleutian\", \"America/Adak\"},\n\t\t   {\"Altai\", \"Asia/Barnaul\"},\n\t\t
        \  {\"Arab\", \"Asia/Riyadh\"},\n\t\t   {\"Arabian\", \"Asia/Dubai\"},\n\t\t
        \  {\"Arabic\", \"Asia/Baghdad\"},\n\t\t   {\"Argentina\", \"America/Buenos_Aires\"},\n\t\t
        \  {\"Astrakhan\", \"Europe/Astrakhan\"},\n\t\t   {\"Atlantic\", \"America/Halifax\"},\n\t\t
        \  {\"AUS Central\", \"Australia/Darwin\"},\n\t\t   {\"Aus Central W.\", \"Australia/Eucla\"},\n\t\t
        \  {\"AUS Eastern\", \"Australia/Sydney\"},\n\t\t   {\"Azerbaijan\", \"Asia/Baku\"},\n\t\t
        \  {\"Azores\", \"Atlantic/Azores\"},\n\t\t   {\"Bahia\", \"America/Bahia\"},\n\t\t
        \  {\"Bangladesh\", \"Asia/Dhaka\"},\n\t\t   {\"Belarus\", \"Europe/Minsk\"},\n\t\t
        \  {\"Bougainville\", \"Pacific/Bougainville\"},\n\t\t   {\"Canada Central\",
        \"America/Regina\"},\n\t\t   {\"Cape Verde\", \"Atlantic/Cape_Verde\"},\n\t\t
        \  {\"Caucasus\", \"Asia/Yerevan\"},\n\t\t   {\"Cen. Australia\", \"Australia/Adelaide\"},\n\t\t
        \  {\"Central America\", \"America/Guatemala\"},\n\t\t   {\"Central\", \"America/Chicago\"},\n\t\t
        \  {\"Central Asia\", \"Asia/Almaty\"},\n\t\t   {\"Central Brazilian\", \"America/Cuiaba\"},\n\t\t
        \  {\"Central European\", \"Europe/Warsaw\"},\n\t\t   {\"Central Europe\",
        \"Europe/Budapest\"},\n\t\t   {\"Central Pacific\", \"Pacific/Guadalcanal\"},\n\t\t
        \  {\"Central Standard Time (Mexico)\", \"America/Mexico_City\"},\n\t\t   {\"Chatham
        Islands\", \"Pacific/Chatham\"},\n\t\t   {\"China\", \"Asia/Shanghai\"},\n\t\t
        \  {\"Cuba\", \"America/Havana\"},\n\t\t   {\"Dateline\", \"Etc/GMT+12\"},\n\t\t
        \  {\"E. Africa\", \"Africa/Nairobi\"},\n\t\t   {\"Easter Island\", \"Pacific/Easter\"},\n\t\t
        \  {\"Eastern\", \"America/New_York\"},\n\t\t   {\"Eastern Standard Time (Mexico)\",
        \"America/Cancun\"},\n\t\t   {\"E. Australia\", \"Australia/Brisbane\"},\n\t\t
        \  {\"E. Europe\", \"Europe/Chisinau\"},\n\t\t   {\"Egypt\", \"Africa/Cairo\"},\n\t\t
        \  {\"Ekaterinburg\", \"Asia/Yekaterinburg\"},\n\t\t   {\"E. South America\",
        \"America/Sao_Paulo\"},\n\t\t   {\"Fiji\", \"Pacific/Fiji\"},\n\t\t   {\"FILE\",
        \"Europe/Kiev\"},\n\t\t   {\"Georgian\", \"Asia/Tbilisi\"},\n\t\t   {\"GMT\",
        \"Europe/London\"},\n\t\t   {\"Greenland\", \"America/Godthab\"},\n\t\t   {\"Greenwich\",
        \"Atlantic/Reykjavik\"},\n\t\t   {\"GTB\", \"Europe/Bucharest\"},\n\t\t   {\"Haiti\",
        \"America/Port-au-Prince\"},\n\t\t   {\"Hawaiian\", \"Pacific/Honolulu\"},\n\t\t
        \  {\"India\", \"Asia/Calcutta\"},\n\t\t   {\"Iran\", \"Asia/Tehran\"},\n\t\t
        \  {\"Israel\", \"Asia/Jerusalem\"},\n\t\t   {\"Jordan\", \"Asia/Amman\"},\n\t\t
        \  {\"Kaliningrad\", \"Europe/Kaliningrad\"},\n\t\t   {\"Korea\", \"Asia/Seoul\"},\n\t\t
        \  {\"Libya\", \"Africa/Tripoli\"},\n\t\t   {\"Line Islands\", \"Pacific/Kiritimati\"},\n\t\t
        \  {\"Lord Howe\", \"Australia/Lord_Howe\"},\n\t\t   {\"Magadan\", \"Asia/Magadan\"},\n\t\t
        \  {\"Magallanes\", \"America/Punta_Arenas\"},\n\t\t   {\"Marquesas\", \"Pacific/Marquesas\"},\n\t\t
        \  {\"Mauritius\", \"Indian/Mauritius\"},\n\t\t   {\"Middle East\", \"Asia/Beirut\"},\n\t\t
        \  {\"Montevideo\", \"America/Montevideo\"},\n\t\t   {\"Morocco\", \"Africa/Casablanca\"},\n\t\t
        \  {\"Mountain\", \"America/Denver\"},\n\t\t   {\"Mountain Standard Time (Mexico)\",
        \"America/Mazatlan\"},\n\t\t   {\"Myanmar\", \"Asia/Rangoon\"},\n\t\t   {\"Namibia\",
        \"Africa/Windhoek\"},\n\t\t   {\"N. Central Asia\", \"Asia/Novosibirsk\"},\n\t\t
        \  {\"Nepal\", \"Asia/Katmandu\"},\n\t\t   {\"Newfoundland\", \"America/St_Johns\"},\n\t\t
        \  {\"New Zealand\", \"Pacific/Auckland\"},\n\t\t   {\"Norfolk\", \"Pacific/Norfolk\"},\n\t\t
        \  {\"North Asia\", \"Asia/Krasnoyarsk\"},\n\t\t   {\"North Asia East\", \"Asia/Irkutsk\"},\n\t\t
        \  {\"North Korea\", \"Asia/Pyongyang\"},\n\t\t   {\"Omsk\", \"Asia/Omsk\"},\n\t\t
        \  {\"Pacific\", \"America/Los_Angeles\"},\n\t\t   {\"Pacific SA\", \"America/Santiago\"},\n\t\t
        \  {\"Pacific Standard Time (Mexico)\", \"America/Tijuana\"},\n\t\t   {\"Pakistan\",
        \"Asia/Karachi\"},\n\t\t   {\"Paraguay\", \"America/Asuncion\"},\n\t\t   {\"Qyzylorda\",
        \"Asia/Qyzylorda\"},\n\t\t   {\"Romance\", \"Europe/Paris\"},\n\t\t   {\"Russian\",
        \"Europe/Moscow\"},\n\t\t   {\"Russia Time Zone 10\", \"Asia/Srednekolymsk\"},\n\t\t
        \  {\"Russia Time Zone 11\", \"Asia/Kamchatka\"},\n\t\t   {\"Russia Time Zone
        3\", \"Europe/Samara\"},\n\t\t   {\"SA Eastern\", \"America/Cayenne\"},\n\t\t
        \  {\"Saint Pierre\", \"America/Miquelon\"},\n\t\t   {\"Sakhalin\", \"Asia/Sakhalin\"},\n\t\t
        \  {\"Samoa\", \"Pacific/Apia\"},\n\t\t   {\"Sao Tome\", \"Africa/Sao_Tome\"},\n\t\t
        \  {\"SA Pacific\", \"America/Bogota\"},\n\t\t   {\"Saratov\", \"Europe/Saratov\"},\n\t\t
        \  {\"SA Western\", \"America/La_Paz\"},\n\t\t   {\"SE Asia\", \"Asia/Bangkok\"},\n\t\t
        \  {\"Singapore\", \"Asia/Singapore\"},\n\t\t   {\"South Africa\", \"Africa/Johannesburg\"},\n\t\t
        \  {\"South Sudan\", \"Africa/Juba\"},\n\t\t   {\"Sri Lanka\", \"Asia/Colombo\"},\n\t\t
        \  {\"Sudan\", \"Africa/Khartoum\"},\n\t\t   {\"Syria\", \"Asia/Damascus\"},\n\t\t
        \  {\"Taipei\", \"Asia/Taipei\"},\n\t\t   {\"Tasmania\", \"Australia/Hobart\"},\n\t\t
        \  {\"Tocantins\", \"America/Araguaina\"},\n\t\t   {\"Tokyo\", \"Asia/Tokyo\"},\n\t\t
        \  {\"Tomsk\", \"Asia/Tomsk\"},\n\t\t   {\"Tonga\", \"Pacific/Tongatapu\"},\n\t\t
        \  {\"Transbaikal\", \"Asia/Chita\"},\n\t\t   {\"Turkey\", \"Europe/Istanbul\"},\n\t\t
        \  {\"Turks And Caicos\", \"America/Grand_Turk\"},\n\t\t   {\"Ulaanbaatar\",
        \"Asia/Ulaanbaatar\"},\n\t\t   {\"US Eastern\", \"America/Indianapolis\"},\n\t\t
        \  {\"US Mountain\", \"America/Phoenix\"},\n\t\t   {\"UTC-02\", \"Etc/GMT+2\"},\n\t\t
        \  {\"UTC-08\", \"Etc/GMT+8\"},\n\t\t   {\"UTC-09\", \"Etc/GMT+9\"},\n\t\t
        \  {\"UTC-11\", \"Etc/GMT+11\"},\n\t\t   {\"UTC+12\", \"Etc/GMT-12\"},\n\t\t
        \  {\"UTC+13\", \"Etc/GMT-13\"},\n\t\t   {\"UTC\", \"Etc/UTC\"},\n\t\t   {\"Venezuela\",
        \"America/Caracas\"},\n\t\t   {\"Vladivostok\", \"Asia/Vladivostok\"},\n\t\t
        \  {\"Volgograd\", \"Europe/Volgograd\"},\n\t\t   {\"W. Australia\", \"Australia/Perth\"},\n\t\t
        \  {\"W. Central Africa\", \"Africa/Lagos\"},\n\t\t   {\"West Asia\", \"Asia/Tashkent\"},\n\t\t
        \  {\"West Bank\", \"Asia/Hebron\"},\n\t\t   {\"West Pacific\", \"Pacific/Port_Moresby\"},\n\t\t
        \  {\"W. Europe\", \"Europe/Berlin\"},\n\t\t   {\"W. Mongolia\", \"Asia/Hovd\"},\n\t\t
        \  {\"Yakutsk\", \"Asia/Yakutsk\"},\n\t\t   {\"Yukon\", \"America/Whitehorse\"},\n\t\t
        \  {NULL, NULL}}"
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-common-windows.c
    typedefs: []
    union: []
- function_names:
  - fu_usb_interface_export
  - fu_usb_interface_parse_extra
  - fu_usb_interface_from_json
  - fu_usb_interface_add_json
  - fu_usb_interface_new
  - fu_usb_interface_get_number
  - fu_usb_interface_get_alternate
  - fu_usb_interface_get_class
  - fu_usb_interface_get_subclass
  - fu_usb_interface_get_protocol
  - fu_usb_interface_get_index
  - fu_usb_interface_get_endpoints
  - fu_usb_interface_add_endpoint
  - fu_usb_interface_parse
  - fu_usb_interface_codec_iface_init
  - fu_usb_interface_finalize
  - fu_usb_interface_init
  - fu_usb_interface_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-usb-interface.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDescriptor
      - name: iface
        type: struct libusb_interface_descriptor
      - name: '*endpoints'
        type: GPtrArray
      item_type: struct
      name: _FuUsbInterface
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - FU_IFD_FREG_BASE
  - FU_IFD_FREG_LIMIT
  - fu_ifd_firmware_export
  - fu_ifd_firmware_validate
  - fu_ifd_firmware_fixup_stream
  - fu_ifd_firmware_region_to_access
  - fu_ifd_firmware_parse
  - fu_ifd_firmware_check_jedec_cmd
  - fu_ifd_firmware_write
  - fu_ifd_firmware_build
  - fu_ifd_firmware_init
  - fu_ifd_firmware_finalize
  - fu_ifd_firmware_class_init
  - fu_ifd_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
      type_or_value: '"FuIfdFirmware"'
    - item_type: preproc_def
      name: FU_IFD_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FU_IFD_FDBAR_FLASH_UPPER_MAP1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
      type_or_value: '0x0EFC'
    - item_type: preproc_def
      name: FU_IFD_FDBAR_OEM_SECTION
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
      type_or_value: '0x0F00'
    structs:
    - fields:
      - name: new_layout
        type: gboolean
      - name: descriptor_map0
        type: guint32
      - name: descriptor_map1
        type: guint32
      - name: descriptor_map2
        type: guint32
      - name: num_regions
        type: guint8
      - name: num_components
        type: guint8
      - name: flash_region_base_addr
        type: guint32
      - name: flash_component_base_addr
        type: guint32
      - name: flash_master_base_addr
        type: guint32
      - name: flash_master[4]
        type: guint32
      - name: flash_ich_strap_base_addr
        type: guint32
      - name: flash_mch_strap_base_addr
        type: guint32
      - name: components_rcd
        type: guint32
      - name: illegal_jedec
        type: guint32
      - name: illegal_jedec1
        type: guint32
      - name: '*flash_descriptor_regs'
        type: guint32
      item_type: struct
      name: FuIfdFirmwarePrivate
      pos:
        line_end: 48
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_cfu_payload_parse
  - fu_cfu_payload_write
  - fu_cfu_payload_init
  - fu_cfu_payload_class_init
  - fu_cfu_payload_new
  source_file: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.h
      type_or_value: (fu_usb_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuUsbDeviceClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.h
    typedefs:
    - item_type: typedef
      name: FuUsbDeviceClaimFlags
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-output-stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-pkcs7.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PKCS7
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-pkcs7.h
      type_or_value: (fu_pkcs7_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-crc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuCrcKind
      pos:
        line_end: 54
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-crc.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dfu_firmware_export
  - fu_dfu_firmware_get_footer_len
  - fu_dfu_firmware_get_vid
  - fu_dfu_firmware_get_pid
  - fu_dfu_firmware_get_release
  - fu_dfu_firmware_get_version
  - fu_dfu_firmware_set_vid
  - fu_dfu_firmware_set_pid
  - fu_dfu_firmware_set_release
  - fu_dfu_firmware_set_version
  - fu_dfu_firmware_validate
  - fu_dfu_firmware_parse_footer
  - fu_dfu_firmware_parse
  - fu_dfu_firmware_append_footer
  - fu_dfu_firmware_write
  - fu_dfu_firmware_build
  - fu_dfu_firmware_init
  - fu_dfu_firmware_class_init
  - fu_dfu_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      - name: release
        type: guint16
      - name: dfu_version
        type: guint16
      - name: footer_len
        type: guint8
      item_type: struct
      name: FuDfuFirmwarePrivate
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-context-helper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-volume-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-test-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TEST_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-test-device.h
      type_or_value: (fu_test_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-udev-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UDEV_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.h
      type_or_value: (fu_udev_device_get_type())
    - item_type: preproc_def
      name: FU_UDEV_DEVICE_ATTR_READ_TIMEOUT_DEFAULT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.h
      type_or_value: '50 '
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuUdevDeviceClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-device-event-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CFI_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.h
      type_or_value: (fu_cfi_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      - name: (*chip_select)(FuCfiDevice *self, gboolean value, GError **error)
        type: gboolean
      - name: "(*send_command)(FuCfiDevice *self,\n\t\t\t\t const guint8 *wbuf,\n\t\t\t\t
          gsize wbufsz,\n\t\t\t\t guint8 *rbuf,\n\t\t\t\t gsize rbufsz,\n\t\t\t\t
          FuProgress *progress,\n\t\t\t\t GError **error)"
        type: gboolean
      - name: (*read_jedec)(FuCfiDevice *self, GError **error)
        type: gboolean
      item_type: struct
      name: _FuCfiDeviceClass
      pos:
        line_end: 25
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-cfi-device.h
    typedefs: []
    union: []
- function_names:
  - fu_hwids_smbios_convert_string_table_cb
  - fu_hwids_smbios_convert_padded_integer_cb
  - fu_hwids_smbios_convert_integer_cb
  - fu_hwids_smbios_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: '*key'
        type: gchar
      - name: type
        type: guint8
      - name: offset
        type: guint8
      - name: func
        type: FuContextHwidConvertFunc
      item_type: struct
      name: "map[] = {{FU_HWIDS_KEY_MANUFACTURER,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_SYSTEM,\n\t\t
        \   0x04,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t   {FU_HWIDS_KEY_ENCLOSURE_KIND,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_CHASSIS,\n\t\t    0x05,\n\t\t    fu_hwids_smbios_convert_integer_cb},\n\t\t
        \  {FU_HWIDS_KEY_FAMILY,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_SYSTEM,\n\t\t    0x1a,\n\t\t
        \   fu_hwids_smbios_convert_string_table_cb},\n\t\t   {FU_HWIDS_KEY_PRODUCT_NAME,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_SYSTEM,\n\t\t    0x05,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t
        \  {FU_HWIDS_KEY_PRODUCT_SKU,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_SYSTEM,\n\t\t
        \   0x19,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t   {FU_HWIDS_KEY_BIOS_VENDOR,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t    0x04,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t
        \  {FU_HWIDS_KEY_BIOS_VERSION,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t
        \   0x05,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t   {FU_HWIDS_KEY_BIOS_MAJOR_RELEASE,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t    0x14,\n\t\t    fu_hwids_smbios_convert_padded_integer_cb},\n\t\t
        \  {FU_HWIDS_KEY_BIOS_MINOR_RELEASE,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t
        \   0x15,\n\t\t    fu_hwids_smbios_convert_padded_integer_cb},\n\t\t   {FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t    0x16,\n\t\t    fu_hwids_smbios_convert_padded_integer_cb},\n\t\t
        \  {FU_HWIDS_KEY_FIRMWARE_MINOR_RELEASE,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t
        \   0x17,\n\t\t    fu_hwids_smbios_convert_padded_integer_cb},\n\t\t   {FU_HWIDS_KEY_BASEBOARD_MANUFACTURER,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_BASEBOARD,\n\t\t    0x04,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t
        \  {FU_HWIDS_KEY_BASEBOARD_PRODUCT,\n\t\t    FU_SMBIOS_STRUCTURE_TYPE_BASEBOARD,\n\t\t
        \   0x05,\n\t\t    fu_hwids_smbios_convert_string_table_cb},\n\t\t   {NULL,
        0x00, 0x00, NULL}}"
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    typedefs:
    - item_type: typedef
      name: "*(*FuContextHwidConvertFunc)(FuSmbios *smbios,\n\t\t\t\t\t   guint8 type,\n\t\t\t\t\t
        \  guint8 offset,\n\t\t\t\t\t   GError **error)"
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_VOLUME
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.h
      type_or_value: (fu_efi_volume_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiVolumeClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_uswid_firmware_export
  - fu_uswid_firmware_validate
  - fu_uswid_firmware_parse
  - fu_uswid_firmware_write
  - fu_uswid_firmware_build
  - fu_uswid_firmware_init
  - fu_uswid_firmware_class_init
  - fu_uswid_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_USWID_FIRMARE_MINIMUM_HDRVER
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
      type_or_value: '1'
    structs:
    - fields:
      - name: hdrver
        type: guint8
      - name: compression
        type: FuUswidPayloadCompression
      item_type: struct
      name: FuUswidFirmwarePrivate
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_elf_firmware_validate
  - fu_elf_firmware_parse
  - fu_elf_firmware_strtab_entry_free
  - fu_elf_firmware_strtab_insert
  - fu_elf_firmware_strtab_new
  - fu_elf_firmware_strtab_write
  - fu_elf_firmware_strtab_get_offset_for_name
  - fu_elf_firmware_write
  - fu_elf_firmware_init
  - fu_elf_firmware_class_init
  - fu_elf_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: namesz
        type: gsize
      - name: offset
        type: gsize
      item_type: struct
      name: FuElfFirmwareStrtabEntry
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_efi_x509_signature_export
  - fu_efi_x509_signature_get_issuer
  - fu_efi_x509_signature_set_issuer
  - fu_efi_x509_signature_normalize_vendor
  - fu_efi_x509_signature_set_subject_vendor
  - fu_efi_x509_signature_set_subject_name
  - fu_efi_x509_signature_build_dedupe_key
  - fu_efi_x509_signature_set_subject
  - fu_efi_x509_signature_get_subject
  - fu_efi_x509_signature_get_subject_name
  - fu_efi_x509_signature_get_subject_vendor
  - fu_efi_x509_signature_parse
  - fu_efi_x509_signature_convert_version
  - fu_efi_x509_signature_init
  - fu_efi_x509_signature_finalize
  - fu_efi_x509_signature_class_init
  - fu_efi_x509_signature_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuEfiSignature
      - name: '*issuer'
        type: gchar
      - name: '*subject'
        type: gchar
      - name: '*subject_name'
        type: gchar
      - name: '*subject_vendor'
        type: gchar
      item_type: struct
      name: _FuEfiX509Signature
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    - fields:
      - name: '*search'
        type: gchar
      - name: '*replace'
        type: gchar
      item_type: struct
      name: "dmi_map[] = {\n\t    {\"ASUSTeK MotherBoard\", \"ASUSTeK\"},\n\t    {\"ASUSTeK
        Notebook\", \"ASUSTeK\"},\n\t    {\"Canonical Ltd.\", \"Canonical\"},\n\t
        \   {\"Dell Inc.\", \"Dell\"},\n\t    {\"Hughski Ltd.\", \"Hughski\"},\n\t
        \   {\"Lenovo(Beijing) Ltd\", \"Lenovo\"},\n\t    {\"Lenovo Ltd.\", \"Lenovo\"},\n\t
        \   {\"LG Electronics inc.\", \"LG\"},\n\t    {\"Microsoft Corporation\",
        \"Microsoft\"},\n\t    {\"KEK 2K CA\", \"KEK CA\"},\n\t    {\"KEK 3K CA\",
        \"KEK CA\"},\n\t}"
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-config-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-sum.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_coswid_read_string
  - fu_coswid_read_byte_array
  - fu_coswid_read_tag
  - fu_coswid_read_version_scheme
  - fu_coswid_read_u8
  - fu_coswid_read_s8
  - fu_coswid_read_u64
  - fu_coswid_write_tag_string
  - fu_coswid_write_tag_bytestring
  - fu_coswid_write_tag_bool
  - fu_coswid_write_tag_u16
  - fu_coswid_write_tag_u64
  - fu_coswid_write_tag_s8
  - fu_coswid_write_tag_item
  - fu_coswid_parse_one_or_many
  source_file: /src/fwupd/libfwupdplugin/fu-coswid-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-common.c
      type_or_value: '"FuFirmware"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_device_path_list_gtype_to_member_name
  - fu_efi_device_path_list_add_json
  - fu_efi_device_path_list_parse
  - fu_efi_device_path_list_write
  - fu_efi_device_path_list_codec_iface_init
  - fu_efi_device_path_list_class_init
  - fu_efi_device_path_list_init
  - fu_efi_device_path_list_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
      type_or_value: '"FuEfiDevicePath"'
    - item_type: preproc_def
      name: FU_EFI_DEVICE_PATH_LIST_IMAGES_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
      type_or_value: 1000u
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuEfiDevicePathList
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    typedefs: []
    union: []
- function_names:
  - fu_quirks_build_group_key
  - fu_quirks_validate_flags
  - fu_quirks_convert_helper_free
  - fu_quirks_convert_keyfile_to_xml_cb
  - fu_quirks_convert_keyfile_to_xml
  - fu_quirks_convert_quirk_to_xml_cb
  - fu_quirks_filename_sort_cb
  - fu_quirks_add_quirks_for_path
  - fu_quirks_strcasecmp_cb
  - fu_quirks_check_silo
  - fu_quirks_lookup_by_id
  - fu_quirks_lookup_by_id_iter
  - fu_quirks_db_helper_free
  - fu_quirks_db_add_vendor_entry
  - fu_quirks_db_add_name_entry
  - _g_ascii_isxstrn
  - fu_quirks_db_add_usbids_cb
  - fu_quirks_db_add_ouitxt_cb
  - fu_quirks_db_add_pnpids_cb
  - fu_quirks_db_sqlite3_exec
  - fu_quirks_db_load
  - fu_quirks_load
  - fu_quirks_add_possible_key
  - fu_quirks_housekeeping_cb
  - fu_quirks_dispose
  - fu_quirks_class_init
  - fu_quirks_init
  - fu_quirks_finalize
  - fu_quirks_new
  source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
      type_or_value: '"FuQuirks"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*ctx'
        type: FuContext
      - name: load_flags
        type: FuQuirksLoadFlags
      - name: '*possible_keys'
        type: GHashTable
      - name: '*invalid_keys'
        type: GPtrArray
      - name: '*silo'
        type: XbSilo
      - name: '*query_kv'
        type: XbQuery
      - name: '*query_vs'
        type: XbQuery
      - name: verbose
        type: gboolean
      item_type: struct
      name: _FuQuirks
      pos:
        line_end: 86
        line_start: 73
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
    - fields:
      - name: '*group'
        type: GString
      - name: '*bn'
        type: XbBuilderNode
      - name: '*root'
        type: XbBuilderNode
      item_type: struct
      name: FuQuirksConvertHelper
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
    - fields:
      - name: '*self'
        type: FuQuirks
      - name: '*stmt'
        type: sqlite3_stmt
      - name: '*subsystem'
        type: gchar
      - name: '*title_vid'
        type: gchar
      - name: '*title_pid'
        type: gchar
      - name: '*vid'
        type: GString
      item_type: struct
      name: FuQuirksDbHelper
      pos:
        line_end: 638
        line_start: 631
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
    - fields:
      - name: '*fn'
        type: gchar
      - name: '*subsystem'
        type: gchar
      - name: '*title_vid'
        type: gchar
      - name: '*title_pid'
        type: gchar
      - name: func
        type: FuStrsplitFunc
      item_type: struct
      name: FuQuirksDbItem
      pos:
        line_end: 809
        line_start: 803
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.c
    typedefs: []
    union: []
- function_names:
  - fu_usb_bos_descriptor_export
  - fu_usb_bos_descriptor_build
  - fu_usb_bos_descriptor_from_json
  - fu_usb_bos_descriptor_add_json
  - fu_usb_bos_descriptor_get_capability
  - fu_usb_bos_descriptor_parse
  - fu_usb_bos_descriptor_write
  - fu_usb_bos_descriptor_codec_iface_init
  - fu_usb_bos_descriptor_class_init
  - fu_usb_bos_descriptor_init
  - fu_usb_bos_descriptor_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDescriptor
      - name: bos_cap
        type: struct libusb_bos_dev_capability_descriptor
      item_type: struct
      name: _FuUsbBosDescriptor
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    typedefs: []
    union: []
- function_names:
  - fu_darwin_efivars_init
  - fu_darwin_efivars_class_init
  - fu_efivars_new
  source_file: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
      type_or_value: '"FuDarwinEfivars"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfivars
      item_type: struct
      name: _FuDarwinEfivars
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-darwin-efivars.c
    typedefs: []
    union: []
- function_names:
  - fu_pkcs7_parse_x509_certificate
  - fu_pkcs7_parse
  - fu_pkcs7_init
  - fu_pkcs7_class_init
  - fu_pkcs7_new
  source_file: /src/fwupd/libfwupdplugin/fu-pkcs7.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuPkcs7
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_ifwi_cpd_firmware_export
  - fu_ifwi_cpd_firmware_parse_manifest
  - fu_ifwi_cpd_firmware_validate
  - fu_ifwi_cpd_firmware_parse
  - fu_ifwi_cpd_firmware_write
  - fu_ifwi_cpd_firmware_build
  - fu_ifwi_cpd_firmware_init
  - fu_ifwi_cpd_firmware_class_init
  - fu_ifwi_cpd_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_IFWI_CPD_FIRMWARE_ENTRIES_MAX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: header_version
        type: guint8
      - name: entry_version
        type: guint8
      item_type: struct
      name: FuIfwiCpdFirmwarePrivate
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_usb_device_libusb_error_to_gerror
  - fu_usb_device_libusb_status_to_gerror
  - fu_usb_device_get_dev
  - fu_usb_device_not_open_error
  - fu_usb_device_invalidate
  - fu_usb_device_set_dev
  - fu_usb_device_vid_notify_cb
  - fu_usb_device_pid_notify_cb
  - fu_usb_device_get_property
  - fu_usb_device_set_property
  - fu_usb_device_finalize
  - fu_usb_device_init
  - fu_usb_device_set_claim_retry_count
  - fu_usb_device_get_claim_retry_count
  - fu_usb_device_set_configuration
  - fu_usb_device_add_interface
  - fu_usb_device_query_hub
  - fu_usb_device_open_internal
  - fu_usb_device_close_internal
  - fu_usb_device_set_configuration_internal
  - fu_usb_device_open
  - fu_usb_device_get_bus
  - fu_usb_device_get_address
  - fu_usb_device_get_manufacturer_index
  - fu_usb_device_get_product_index
  - libusb_get_parent
  - fu_usb_device_build_parent_port_number
  - fu_usb_device_build_physical_id
  - fu_usb_device_setup
  - fu_usb_device_ready
  - fu_usb_device_close
  - fu_usb_device_probe_bos_descriptor
  - fu_usb_device_load_descriptor_stream
  - fu_usb_device_parse_bos_descriptor
  - fu_usb_device_ensure_bos_descriptors
  - fu_usb_device_probe_bos_descriptors
  - fu_usb_device_probe_internal
  - fu_usb_device_probe
  - fu_usb_device_get_release
  - fu_usb_device_get_spec
  - fu_usb_device_get_class
  - fu_usb_device_add_interface_internal
  - fu_usb_device_incorporate
  - fu_usb_device_convert_version
  - fu_usb_device_control_transfer
  - fu_usb_device_bulk_transfer
  - fu_usb_device_interrupt_transfer
  - fu_usb_device_reset
  - fu_usb_device_parse_descriptor
  - fu_usb_device_ensure_interfaces
  - fu_usb_device_get_interfaces
  - fu_usb_device_get_interface
  - fu_usb_device_get_string_descriptor
  - fu_usb_device_get_string_descriptor_bytes
  - fu_usb_device_get_string_descriptor_bytes_full
  - fu_usb_device_claim_interface_internal
  - fu_usb_device_claim_interface_cb
  - fu_usb_device_claim_interface
  - fu_usb_device_release_interface
  - fu_usb_device_get_config_descriptor_for_value
  - fu_usb_device_get_configuration_index
  - fu_usb_device_get_serial_number_index
  - fu_usb_device_get_custom_index
  - fu_usb_device_set_interface_alt
  - fu_usb_device_ensure_hid_descriptor
  - fu_usb_device_ensure_hid_descriptors
  - fu_usb_device_get_hid_descriptors
  - fu_usb_device_from_json
  - fu_usb_device_add_json
  - fu_usb_device_new
  - fu_usb_device_to_string
  - fu_usb_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
      type_or_value: '"FuUsbDevice"'
    - item_type: preproc_def
      name: FU_DEVICE_CLAIM_INTERFACE_DELAY
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
      type_or_value: '500 '
    - item_type: preproc_def
      name: FU_USB_DEVICE_OPEN_DELAY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
      type_or_value: '50  '
    structs:
    - fields:
      - name: '*usb_device'
        type: libusb_device
      - name: '*handle'
        type: libusb_device_handle
      - name: desc
        type: struct libusb_device_descriptor
      - name: busnum
        type: guint8
      - name: devnum
        type: guint8
      - name: interfaces_valid
        type: gboolean
      - name: bos_descriptors_valid
        type: gboolean
      - name: '*interfaces'
        type: GPtrArray
      - name: '*bos_descriptors'
        type: GPtrArray
      - name: '*cfg_descriptors'
        type: GPtrArray
      - name: '*hid_descriptors'
        type: GPtrArray
      - name: configuration
        type: gint
      - name: '*device_interfaces'
        type: GPtrArray
      - name: claim_retry_count
        type: guint
      item_type: struct
      name: FuUsbDevicePrivate
      pos:
        line_end: 52
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
    - fields:
      - name: number
        type: guint8
      - name: claimed
        type: gboolean
      item_type: struct
      name: FuUsbDeviceInterface
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
    - fields:
      - name: iface
        type: guint8
      - name: flags
        type: FuUsbDeviceClaimFlags
      item_type: struct
      name: FuUsbDeviceClaimHelper
      pos:
        line_end: 2247
        line_start: 2244
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HID_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.h
      type_or_value: (fu_hid_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuHidDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.h
    typedefs:
    - item_type: typedef
      name: FuHidDeviceFlags
      pos:
        line_end: 42
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_csv_entry_add_value
  - fu_csv_entry_get_value_by_idx
  - fu_csv_entry_get_value_by_column_id
  - fu_csv_entry_get_value_by_column_id_uint64
  - fu_csv_entry_export
  - fu_csv_entry_build
  - fu_csv_entry_parse_token_cb
  - fu_csv_entry_parse
  - fu_csv_entry_write
  - fu_csv_entry_init
  - fu_csv_entry_finalize
  - fu_csv_entry_class_init
  - fu_csv_entry_new
  source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CSV_ENTRY_COLUMNS_MAX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.c
      type_or_value: 1000u
    structs:
    - fields:
      - name: '*values'
        type: GPtrArray
      item_type: struct
      name: FuCsvEntryPrivate
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_X509_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.h
      type_or_value: (fu_efi_x509_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuEfiX509DeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-device.h
    typedefs: []
    union: []
- function_names:
  - fu_kenv_get_string
  source_file: /src/fwupd/libfwupdplugin/fu-kenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_SIGNATURE_LIST
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.h
      type_or_value: (fu_efi_signature_list_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuEfiSignatureListClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.h
    typedefs: []
    union: []
- function_names:
  - fu_hwids_config_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-config.c
      type_or_value: '"FuContext"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_usb_device_ds20_set_version_lowest
  - fu_usb_device_ds20_apply_to_device
  - fu_usb_device_ds20_validate
  - fu_usb_device_ds20_sort_by_platform_ver_cb
  - fu_usb_device_ds20_parse
  - fu_usb_device_ds20_write
  - fu_usb_device_ds20_init
  - fu_usb_device_ds20_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
      type_or_value: '"FuUsbDeviceDs20"'
    structs:
    - fields:
      - name: version_lowest
        type: guint32
      item_type: struct
      name: FuUsbDeviceDs20Private
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    - fields:
      - name: platform_ver
        type: guint32
      - name: total_length
        type: guint16
      - name: vendor_code
        type: guint8
      - name: alt_code
        type: guint8
      item_type: struct
      name: FuUsbDeviceDs20Item
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_config_item_free
  - fu_config_emit_changed
  - fu_config_emit_loaded
  - fu_config_build_section_key
  - fu_config_load_bytes_replace
  - fu_config_migrate_keyfile
  - fu_config_reload
  - fu_config_monitor_changed_cb
  - fu_config_set_default
  - fu_config_save
  - fu_config_set_value
  - fu_config_reset_defaults
  - fu_config_get_value
  - fu_config_get_value_strv
  - fu_config_get_value_bool
  - fu_config_get_value_u64
  - fu_config_add_location
  - fu_config_load
  - fu_config_init
  - fu_config_finalize
  - fu_config_class_init
  - fu_config_new
  source_file: /src/fwupd/libfwupdplugin/fu-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
      type_or_value: '"FuConfig"'
    - item_type: preproc_def
      name: FU_CONFIG_FILE_MODE_SECURE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
      type_or_value: '0640'
    structs:
    - fields:
      - name: '*filename'
        type: gchar
      - name: '*file'
        type: GFile
      - name: '*monitor'
        type: GFileMonitor
      - name: is_writable
        type: gboolean
      - name: is_mutable
        type: gboolean
      item_type: struct
      name: FuConfigItem
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
    - fields:
      - name: '*keyfile'
        type: GKeyFile
      - name: '*default_values'
        type: GHashTable
      - name: '*items'
        type: GPtrArray
      item_type: struct
      name: FuConfigPrivate
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
    - fields:
      - name: '*group'
        type: gchar
      - name: '*key'
        type: gchar
      - name: '*value'
        type: gchar
      item_type: struct
      name: "key_values[] = {{\"fwupd\", \"ApprovedFirmware\", NULL},\n\t\t\t  {\"fwupd\",
        \"ArchiveSizeMax\", \"0\"},\n\t\t\t  {\"fwupd\", \"BlockedFirmware\", NULL},\n\t\t\t
        \ {\"fwupd\", \"DisabledDevices\", NULL},\n\t\t\t  {\"fwupd\", \"EnumerateAllDevices\",
        NULL},\n\t\t\t  {\"fwupd\", \"EspLocation\", NULL},\n\t\t\t  {\"fwupd\", \"HostBkc\",
        NULL},\n\t\t\t  {\"fwupd\", \"IdleTimeout\", \"7200\"},\n\t\t\t  {\"fwupd\",
        \"IdleTimeout\", NULL},\n\t\t\t  {\"fwupd\", \"IgnorePower\", NULL},\n\t\t\t
        \ {\"fwupd\", \"ShowDevicePrivate\", NULL},\n\t\t\t  {\"fwupd\", \"TrustedUids\",
        NULL},\n\t\t\t  {\"fwupd\", \"UpdateMotd\", NULL},\n\t\t\t  {\"fwupd\", \"UriSchemes\",
        NULL},\n\t\t\t  {\"fwupd\", \"VerboseDomains\", NULL},\n\t\t\t  {\"fwupd\",
        \"OnlyTrusted\", NULL},\n\t\t\t  {\"fwupd\", \"IgnorePower\", NULL},\n\t\t\t
        \ {\"fwupd\", \"RequireImmutableEnumeration\", NULL},\n\t\t\t  {\"fwupd\",
        \"DisabledPlugins\", \"test;test_ble;invalid\"},\n\t\t\t  {\"fwupd\", \"DisabledPlugins\",
        \"test;test_ble\"},\n\t\t\t  {\"redfish\", \"IpmiDisableCreateUser\", NULL},\n\t\t\t
        \ {\"redfish\", \"ManagerResetTimeout\", NULL},\n\t\t\t  {\"msr\", \"MinimumSmeKernelVersion\",
        NULL},\n\t\t\t  {\"thunderbolt\", \"MinimumKernelVersion\", NULL},\n\t\t\t
        \ {\"thunderbolt\", \"DelayedActivation\", NULL},\n\t\t\t  {NULL, NULL, NULL}}"
      pos:
        line_end: 172
        line_start: 168
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_coswid_firmware_entity_free
  - fu_coswid_firmware_link_free
  - fu_coswid_firmware_hash_free
  - fu_coswid_firmware_payload_new
  - fu_coswid_firmware_payload_free
  - fu_coswid_firmware_parse_meta
  - fu_coswid_firmware_parse_link
  - fu_coswid_firmware_parse_hash
  - fu_coswid_firmware_parse_hash_array
  - fu_coswid_firmware_parse_file
  - fu_coswid_firmware_parse_path_elements
  - fu_coswid_firmware_parse_directory
  - fu_coswid_firmware_parse_payload
  - fu_coswid_firmware_parse_entity_name
  - fu_coswid_firmware_parse_entity_regid
  - fu_coswid_firmware_parse_entity_role
  - fu_coswid_firmware_parse_entity
  - fu_coswid_firmware_malloc
  - fu_coswid_firmware_realloc
  - fu_coswid_firmware_free
  - fu_coswid_firmware_parse
  - fu_coswid_firmware_get_checksum
  - fu_coswid_firmware_get_product
  - fu_coswid_firmware_write_hash
  - fu_coswid_firmware_write_payload
  - fu_coswid_firmware_write_entity
  - fu_coswid_firmware_write
  - fu_coswid_firmware_build_entity
  - fu_coswid_firmware_build_link
  - fu_coswid_firmware_build_hash
  - fu_coswid_firmware_build_payload
  - fu_coswid_firmware_build
  - fu_coswid_firmware_export
  - fu_coswid_firmware_init
  - fu_coswid_firmware_finalize
  - fu_coswid_firmware_class_init
  - fu_coswid_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FU_COSWID_FIRMWARE_MAX_ALLOCATION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
      type_or_value: '0x32000'
    structs:
    - fields:
      - name: '*product'
        type: gchar
      - name: '*summary'
        type: gchar
      - name: '*colloquial_version'
        type: gchar
      - name: version_scheme
        type: FuCoswidVersionScheme
      - name: '*links'
        type: GPtrArray
      - name: '*entities'
        type: GPtrArray
      - name: '*payloads'
        type: GPtrArray
      item_type: struct
      name: FuCoswidFirmwarePrivate
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    - fields:
      - name: '*name'
        type: gchar
      - name: '*regid'
        type: gchar
      - name: roles
        type: guint8
      item_type: struct
      name: FuCoswidFirmwareEntity
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    - fields:
      - name: '*href'
        type: gchar
      - name: rel
        type: FuCoswidLinkRel
      item_type: struct
      name: FuCoswidFirmwareLink
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    - fields:
      - name: '*value'
        type: GByteArray
      - name: alg_id
        type: FuCoswidHashAlg
      item_type: struct
      name: FuCoswidFirmwareHash
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    - fields:
      - name: '*name'
        type: gchar
      - name: size
        type: guint64
      - name: '*hashes'
        type: GPtrArray
      item_type: struct
      name: FuCoswidFirmwarePayload
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    - fields:
      - name: kind
        type: GChecksumType
      - name: alg_id
        type: FuCoswidHashAlg
      item_type: struct
      name: "csum_kinds[] = {{G_CHECKSUM_SHA256, FU_COSWID_HASH_ALG_SHA256},\n\t\t\t
        \ {G_CHECKSUM_SHA384, FU_COSWID_HASH_ALG_SHA384},\n\t\t\t  {G_CHECKSUM_SHA512,
        FU_COSWID_HASH_ALG_SHA512},\n\t\t\t  {0, FU_COSWID_HASH_ALG_UNKNOWN}}"
      pos:
        line_end: 706
        line_start: 703
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_efi_hard_drive_device_path_export
  - fu_efi_hard_drive_device_path_add_json
  - fu_efi_hard_drive_device_path_parse
  - fu_efi_hard_drive_device_path_write
  - fu_efi_hard_drive_device_path_build
  - fu_efi_hard_drive_device_path_init
  - fu_efi_hard_drive_device_path_class_init
  - fu_efi_hard_drive_device_path_get_partition_signature
  - fu_efi_hard_drive_device_path_get_partition_size
  - fu_efi_hard_drive_device_path_get_partition_start
  - fu_efi_hard_drive_device_path_get_partition_number
  - fu_efi_hard_drive_device_path_compare
  - fu_efi_hard_drive_device_path_codec_iface_init
  - fu_efi_hard_drive_device_path_new
  - fu_efi_hard_drive_device_path_new_from_volume
  source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
      type_or_value: '"FuEfiDevicePath"'
    - item_type: preproc_def
      name: BLOCK_SIZE_FALLBACK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
      type_or_value: '0x200'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfiDevicePath
      - name: partition_number
        type: guint32
      - name: partition_start
        type: guint64
      - name: partition_size
        type: guint64
      - name: partition_signature
        type: fwupd_guid_t
      - name: partition_format
        type: FuEfiHardDriveDevicePathPartitionFormat
      - name: signature_type
        type: FuEfiHardDriveDevicePathSignatureType
      item_type: struct
      name: _FuEfiHardDriveDevicePath
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efi_section_export
  - fu_efi_section_parse_volume_image
  - fu_efi_section_parse_lzma_sections
  - fu_efi_section_parse_user_interface
  - fu_efi_section_parse_version
  - fu_efi_section_parse_compression_sections
  - fu_efi_section_freeform_subtype_guid_to_string
  - fu_efi_section_parse_freeform_subtype_guid
  - fu_efi_section_parse
  - fu_efi_section_write
  - fu_efi_section_build
  - fu_efi_section_init
  - fu_efi_section_finalize
  - fu_efi_section_class_init
  - fu_efi_section_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-section.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-section.c
      type_or_value: '"FuEfiSection"'
    structs:
    - fields:
      - name: type
        type: guint8
      - name: '*user_interface'
        type: gchar
      item_type: struct
      name: FuEfiSectionPrivate
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-efi-section.c
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*str'
        type: gchar
      item_type: struct
      name: "freeform_guids[] = {\n\t    {\"00781ca1-5de3-405f-abb8-379c3c076984\",
        \"AmiRomLayoutGuid\"},\n\t    {\"20feebde-e739-420e-ae31-77e2876508c0\", \"IntelRstOprom\"},\n\t
        \   {\"224d6eb4-307f-45ba-9dc3-fe9fc6b38148\", \"IntelEntRaidController\"},\n\t
        \   {\"2ebe0275-6458-4af9-91ed-d3f4edb100aa\", \"SignOn\"},\n\t    {\"380b6b4f-1454-41f2-a6d3-61d1333e8cb4\",
        \"IntelGop\"},\n\t    {\"50339d20-c90a-4bb2-9aff-d8a11b23bc15\", \"I219?Oprom\"},\n\t
        \   {\"88a15a4f-977d-4682-b17c-da1f316c1f32\", \"RomLayout\"},\n\t    {\"9bec7109-6d7a-413a-8e4b-019ced0503e1\",
        \"AmiBoardInfoSectionGuid\"},\n\t    {\"ab56dc60-0057-11da-a8db-000102eee626\",
        \"?BuildData\"},\n\t    {\"c5a4306e-e247-4ecd-a9d8-5b1985d3dcda\", \"?Oprom\"},\n\t
        \   {\"c9352cc3-a354-44e5-8776-b2ed8dd781ec\", \"IntelEntRaidController\"},\n\t
        \   {\"d46346ca-82a1-4cde-9546-77c86f893888\", \"?Oprom\"},\n\t    {\"e095affe-d4cd-4289-9b48-28f64e3d781d\",
        \"IntelRstOprom\"},\n\t    {\"fe612b72-203c-47b1-8560-a66d946eb371\", \"setupdata\"},\n\t
        \   {NULL, NULL},\n\t}"
      pos:
        line_end: 197
        line_start: 194
        source_file: /src/fwupd/libfwupdplugin/fu-efi-section.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_X509_SIGNATURE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.h
      type_or_value: (fu_efi_x509_signature_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_DEVICE_MS_DS20
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.h
      type_or_value: (fu_usb_device_ms_ds20_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_drm_device_to_string
  - fu_drm_device_get_state
  - fu_drm_device_get_enabled
  - fu_drm_device_get_connector_id
  - fu_drm_device_get_crtc_x
  - fu_drm_device_get_crtc_y
  - fu_drm_device_get_crtc_width
  - fu_drm_device_get_crtc_height
  - fu_drm_device_get_edid
  - fu_drm_device_probe
  - fu_drm_device_setup
  - fu_drm_device_incorporate
  - fu_drm_device_init
  - fu_drm_device_finalize
  - fu_drm_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-drm-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-drm-device.c
      type_or_value: '"FuDrmDevice"'
    structs:
    - fields:
      - name: '*connector_id'
        type: gchar
      - name: enabled
        type: gboolean
      - name: display_state
        type: FuDisplayState
      - name: '*edid'
        type: FuEdid
      - name: crtc_x
        type: guint32
      - name: crtc_y
        type: guint32
      - name: crtc_width
        type: guint32
      - name: crtc_height
        type: guint32
      item_type: struct
      name: FuDrmDevicePrivate
      pos:
        line_end: 36
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-drm-device.c
    typedefs: []
    union: []
- function_names:
  - fu_usb_config_descriptor_from_json
  - fu_usb_config_descriptor_add_json
  - fu_usb_config_descriptor_get_configuration
  - fu_usb_config_descriptor_get_configuration_value
  - fu_usb_config_descriptor_parse
  - fu_usb_config_descriptor_codec_iface_init
  - fu_usb_config_descriptor_class_init
  - fu_usb_config_descriptor_init
  - fu_usb_config_descriptor_new
  source_file: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDescriptor
      - name: configuration
        type: guint8
      - name: configuration_value
        type: guint8
      item_type: struct
      name: _FuUsbConfigDescriptor
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    typedefs: []
    union: []
- function_names:
  - fu_dummy_efivars_key_free
  - fu_dummy_efivars_supported
  - fu_dummy_efivars_find_by_guid_name
  - fu_dummy_efivars_delete
  - fu_dummy_efivars_delete_with_glob
  - fu_dummy_efivars_exists_guid
  - fu_dummy_efivars_exists
  - fu_dummy_efivars_get_data
  - fu_dummy_efivars_get_names
  - fu_dummy_efivars_space_used
  - fu_dummy_efivars_space_free
  - fu_dummy_efivars_set_data
  - fu_dummy_efivars_init
  - fu_dummy_efivars_finalize
  - fu_dummy_efivars_class_init
  - fu_dummy_efivars_new
  source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
      type_or_value: '"FuDummyEfivars"'
    - item_type: preproc_def
      name: FU_DUMMY_EFIVARS_NVRAM_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
      type_or_value: '10240 '
    structs:
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      - name: attr
        type: guint32
      - name: '*buf'
        type: GByteArray
      item_type: struct
      name: FuDummyEfivarsKey
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    - fields:
      - name: parent_instance
        type: FuEfivars
      - name: '*keys'
        type: GPtrArray
      item_type: struct
      name: _FuDummyEfivars
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-dummy-efivars.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-linux-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LINUX_EFIVARS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-linux-efivars.h
      type_or_value: (fu_linux_efivars_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-smbios-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_security_attr_check_fwupd_version
  - fu_security_attr_add_bios_target_value
  - fu_security_attr_init
  - fu_security_attr_dispose
  - fu_security_attr_class_init
  - fu_security_attr_new
  source_file: /src/fwupd/libfwupdplugin/fu-security-attr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-security-attr.c
      type_or_value: '"FwupdSecurityAttr"'
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      item_type: struct
      name: FuSecurityAttrPrivate
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-security-attr.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-endpoint-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_output_stream_from_path
  - fu_output_stream_write_bytes
  source_file: /src/fwupd/libfwupdplugin/fu-output-stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-output-stream.c
      type_or_value: '"FuOutputStream"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELF_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.h
      type_or_value: (fu_elf_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuElfFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-archive.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ARCHIVE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-archive.h
      type_or_value: (fu_archive_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuArchiveFlags
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-archive.h
    - item_type: typedef
      name: "(*FuArchiveIterateFunc)(FuArchive *self,\n\t\t\t\t\t const gchar *filename,\n\t\t\t\t\t
        GBytes *bytes,\n\t\t\t\t\t gpointer user_data,\n\t\t\t\t\t GError **error)"
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-archive.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_archive_firmware_export
  - fu_archive_firmware_parse_cb
  - fu_archive_firmware_parse
  - fu_archive_firmware_get_format
  - fu_archive_firmware_set_format
  - fu_archive_firmware_get_compression
  - fu_archive_firmware_set_compression
  - fu_archive_firmware_get_image_fnmatch
  - fu_archive_firmware_write
  - fu_archive_firmware_build
  - fu_archive_firmware_init
  - fu_archive_firmware_class_init
  - fu_archive_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: format
        type: FuArchiveFormat
      - name: compression
        type: FuArchiveCompression
      item_type: struct
      name: FuArchiveFirmwarePrivate
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-archive-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USB_CONFIG_DESCRIPTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.h
      type_or_value: (fu_usb_config_descriptor_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_file_path_device_path_get_name
  - fu_efi_file_path_device_path_set_name
  - fu_efi_file_path_device_path_export
  - fu_efi_file_path_device_path_add_json
  - fu_efi_file_path_device_path_build
  - fu_efi_file_path_device_path_codec_iface_init
  - fu_efi_file_path_device_path_init
  - fu_efi_file_path_device_path_class_init
  - fu_efi_file_path_device_path_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
      type_or_value: '"FuEfiDevicePath"'
    structs:
    - fields:
      - name: parent_instance
        type: FuEfiDevicePath
      item_type: struct
      name: _FuEfiFilePathDevicePath
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_THUNDERBOLT_NVM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.h
      type_or_value: (fu_intel_thunderbolt_nvm_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIntelThunderboltNvmClass
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.h
    typedefs: []
    union: []
- function_names:
  - fu_hidraw_device_parse_descriptor
  - fu_hidraw_device_probe_usb
  - fu_hidraw_device_probe
  - fu_hidraw_device_set_feature
  - fu_hidraw_device_get_feature
  - fu_hidraw_device_init
  - fu_hidraw_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
      type_or_value: '"FuHidrawDevice"'
    - item_type: preproc_def
      name: FU_HIDRAW_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
      type_or_value: '2500 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BACKEND
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-backend.h
      type_or_value: (fu_backend_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: "(*setup)(FuBackend *self,\n\t\t\t  FuBackendSetupFlags flags,\n\t\t\t
          \ FuProgress *progress,\n\t\t\t  GError **error)"
        type: gboolean
      - name: "(*coldplug)(FuBackend *self,\n\t\t\t     FuProgress *progress,\n\t\t\t
          \    GError **error)"
        type: gboolean
      - name: (*registered)(FuBackend *self, FuDevice *device)
        type: void
      - name: (*invalidate)(FuBackend *self)
        type: void
      - name: (*to_string)(FuBackend *self, guint indent, GString *str)
        type: void
      - name: "*(*get_device_parent)(FuBackend *self,\n\t\t\t\t       FuDevice *device,\n\t\t\t\t
          \      const gchar *subsystem,\n\t\t\t\t       GError **error)"
        type: FuDevice
      - name: "*(*create_device)(FuBackend *self,\n\t\t\t\t   const gchar *backend_id,\n\t\t\t\t
          \  GError **error)"
        type: FuDevice
      - name: "*(*create_device_for_donor)(FuBackend *self,\n\t\t\t\t\t     FuDevice
          *donor,\n\t\t\t\t\t     GError **error)"
        type: FuDevice
      item_type: struct
      name: _FuBackendClass
      pos:
        line_end: 58
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-backend.h
    typedefs:
    - item_type: typedef
      name: FuBackendSetupFlags
      pos:
        line_end: 33
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-backend.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFIVARS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (fu_efivars_get_type())
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_EFI_GLOBAL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"8be4df61-93ca-11d2-aa0d-00e098032b8c"'
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_FWUPDATE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"0abba7dc-e516-4167-bbf5-4d9d1c739416"'
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_UX_CAPSULE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"3b8c8162-188c-46a4-aec9-be43f1d65697"'
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_SECURITY_DATABASE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"d719b2cb-3d3a-4596-a3bc-dad00e67656f"'
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_EFI_CAPSULE_REPORT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"39b68c46-f7fb-441b-b6ec-16b0f69821f3"'
    - item_type: preproc_def
      name: FU_EFIVARS_GUID_SHIM
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"605dab50-e046-4300-abb6-3dd810dd8b23"'
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_NON_VOLATILE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_BOOTSERVICE_ACCESS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_RUNTIME_ACCESS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_HARDWARE_ERROR_RECORD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_AUTHENTICATED_WRITE_ACCESS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_TIME_BASED_AUTHENTICATED_WRITE_ACCESS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: FU_EFIVARS_ATTR_APPEND_WRITE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: (1 << 6)
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*supported)(FuEfivars *self, GError **error)
        type: gboolean
      - name: (*space_used)(FuEfivars *self, GError **error)
        type: guint64
      - name: (*space_free)(FuEfivars *self, GError **error)
        type: guint64
      - name: (*exists)(FuEfivars *self, const gchar *guid, const gchar *name)
        type: gboolean
      - name: "*(*get_monitor)(FuEfivars *self,\n\t\t\t\t     const gchar *guid,\n\t\t\t\t
          \    const gchar *name,\n\t\t\t\t     GError **error)"
        type: GFileMonitor
      - name: "(*get_data)(FuEfivars *self,\n\t\t\t     const gchar *guid,\n\t\t\t
          \    const gchar *name,\n\t\t\t     guint8 **data,\n\t\t\t     gsize *data_sz,\n\t\t\t
          \    guint32 *attr,\n\t\t\t     GError **error)"
        type: gboolean
      - name: "(*set_data)(FuEfivars *self,\n\t\t\t     const gchar *guid,\n\t\t\t
          \    const gchar *name,\n\t\t\t     const guint8 *data,\n\t\t\t     gsize
          sz,\n\t\t\t     guint32 attr,\n\t\t\t     GError **error)"
        type: gboolean
      - name: (*delete)(FuEfivars *self, const gchar *guid, const gchar *name, GError
          **error)
        type: gboolean
      - name: "(*delete_with_glob)(FuEfivars *self,\n\t\t\t\t     const gchar *guid,\n\t\t\t\t
          \    const gchar *name_glob,\n\t\t\t\t     GError **error)"
        type: gboolean
      - name: "*(*get_names)(FuEfivars *self,\n\t\t\t\tconst gchar *guid,\n\t\t\t\tGError
          **error)"
        type: GPtrArray
      item_type: struct
      name: _FuEfivarsClass
      pos:
        line_end: 49
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-block-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLOCK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-block-device.h
      type_or_value: (fu_block_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuBlockDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-block-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-device-locker.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVICE_LOCKER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-device-locker.h
      type_or_value: (fu_device_locker_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: (*FuDeviceLockerFunc)(GObject *device, GError **error)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-device-locker.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FIRMWARE_ATTRS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-bios-settings.h
      type_or_value: (fu_bios_settings_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_strtoull
  - fu_strtoll
  - fu_strtobool
  - fu_strstrip
  - fu_strdup
  - fu_strwidth
  - fu_strsplit
  - fu_strsplit_bytes
  - fu_strsplit_buffer_drain
  - fu_strsplit_stream
  - fu_strsplit_full
  - fu_strsafe
  - fu_strsafe_bytes
  - fu_strjoin
  - fu_strpassmask
  - fu_utf16_to_utf8_byte_array
  - fu_utf8_to_utf16_byte_array
  - fu_utf16_to_utf8_bytes
  - fu_utf8_to_utf16_bytes
  source_file: /src/fwupd/libfwupdplugin/fu-string.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-string.c
      type_or_value: '"FuCommon"'
    structs:
    - fields:
      - name: callback
        type: FuStrsplitFunc
      - name: user_data
        type: gpointer
      - name: token_idx
        type: guint
      - name: '*delimiter'
        type: gchar
      - name: delimiter_sz
        type: gsize
      - name: detected_nul
        type: gboolean
      - name: more_chunks
        type: gboolean
      item_type: struct
      name: FuStrsplitHelper
      pos:
        line_end: 411
        line_start: 403
        source_file: /src/fwupd/libfwupdplugin/fu-string.c
    typedefs: []
    union: []
- function_names:
  - fu_serio_device_probe
  - fu_serio_device_init
  - fu_serio_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-serio-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-serio-device.c
      type_or_value: '"FuSerioDevice"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-plugin-vfuncs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_fdt_firmware_string_new_safe
  - fu_fdt_firmware_export
  - fu_fdt_firmware_get_cpuid
  - fu_fdt_firmware_set_cpuid
  - fu_fdt_firmware_get_image_by_path
  - fu_fdt_firmware_parse_dt_struct
  - fu_fdt_firmware_parse_mem_rsvmap
  - fu_fdt_firmware_validate
  - fu_fdt_firmware_parse
  - fu_fdt_firmware_append_to_strtab
  - fu_fdt_firmware_write_image
  - fu_fdt_firmware_write
  - fu_fdt_firmware_build
  - fu_fdt_firmware_init
  - fu_fdt_firmware_class_init
  - fu_fdt_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
      type_or_value: '"FuFirmware"'
    - item_type: preproc_def
      name: FDT_LAST_COMP_VERSION
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FDT_DEPTH_MAX
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
      type_or_value: '128'
    structs:
    - fields:
      - name: cpuid
        type: guint32
      item_type: struct
      name: FuFdtFirmwarePrivate
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    - fields:
      - name: '*dt_strings'
        type: GByteArray
      - name: '*dt_struct'
        type: GByteArray
      - name: '*strtab'
        type: GHashTable
      item_type: struct
      name: FuFdtFirmwareBuildHelper
      pos:
        line_end: 413
        line_start: 409
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_crc_reflect8
  - fu_crc_reflect
  - fu_crc8_step
  - fu_crc8_done
  - fu_crc8
  - fu_crc8_bytes
  - fu_crc16_step
  - fu_crc16_done
  - fu_crc16
  - fu_crc16_bytes
  - fu_crc32_step
  - fu_crc32_done
  - fu_crc32
  - fu_crc32_bytes
  - fu_crc_find
  - fu_crc_misr16_step
  - fu_crc_misr16
  source_file: /src/fwupd/libfwupdplugin/fu-crc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-crc.c
      type_or_value: '"FuCommon"'
    structs:
    - fields:
      - name: kind
        type: FuCrcKind
      - name: bitwidth
        type: guint
      - name: poly
        type: guint32
      - name: init
        type: guint32
      - name: reflected
        type: gboolean
      - name: xorout
        type: guint32
      item_type: struct
      name: "crc_map[] = {\n    {FU_CRC_KIND_UNKNOWN, 32, 0x00000000, 0x00000000,
        TRUE, 0xFFFFFFFF},\n    {FU_CRC_KIND_B32_STANDARD, 32, 0x04C11DB7, 0xFFFFFFFF,
        TRUE, 0xFFFFFFFF},\n    {FU_CRC_KIND_B32_BZIP2, 32, 0x04C11DB7, 0xFFFFFFFF,
        FALSE, 0xFFFFFFFF},\n    {FU_CRC_KIND_B32_JAMCRC, 32, 0x04C11DB7, 0xFFFFFFFF,
        TRUE, 0x00000000},\n    {FU_CRC_KIND_B32_MPEG2, 32, 0x04C11DB7, 0xFFFFFFFF,
        FALSE, 0x00000000},\n    {FU_CRC_KIND_B32_POSIX, 32, 0x04C11DB7, 0x00000000,
        FALSE, 0xFFFFFFFF},\n    {FU_CRC_KIND_B32_SATA, 32, 0x04C11DB7, 0x52325032,
        FALSE, 0x00000000},\n    {FU_CRC_KIND_B32_XFER, 32, 0x000000AF, 0x00000000,
        FALSE, 0x00000000},\n    {FU_CRC_KIND_B32_C, 32, 0x1EDC6F41, 0xFFFFFFFF, TRUE,
        0xFFFFFFFF},\n    {FU_CRC_KIND_B32_D, 32, 0xA833982B, 0xFFFFFFFF, TRUE, 0xFFFFFFFF},\n
        \   {FU_CRC_KIND_B32_Q, 32, 0x814141AB, 0x00000000, FALSE, 0x00000000},\n
        \   {FU_CRC_KIND_B16_XMODEM, 16, 0x1021, 0x0000, FALSE, 0x0000},\n    {FU_CRC_KIND_B16_USB,
        16, 0x8005, 0xFFFF, TRUE, 0xFFFF},\n    {FU_CRC_KIND_B16_UMTS, 16, 0x8005,
        0x0000, FALSE, 0x0000},\n    {FU_CRC_KIND_B16_TMS37157, 16, 0x1021, 0x89ec,
        TRUE, 0x0000},\n    {FU_CRC_KIND_B16_BNR, 16, 0x8005, 0xFFFF, FALSE, 0x0000},\n
        \   {FU_CRC_KIND_B8_WCDMA, 8, 0x9B, 0x00, TRUE, 0x00},\n    {FU_CRC_KIND_B8_TECH_3250,
        8, 0x1D, 0xFF, TRUE, 0x00},\n    {FU_CRC_KIND_B8_STANDARD, 8, 0x07, 0x00,
        FALSE, 0x00},\n    {FU_CRC_KIND_B8_SAE_J1850, 8, 0x1D, 0xFF, FALSE, 0xFF},\n
        \   {FU_CRC_KIND_B8_ROHC, 8, 0x07, 0xFF, TRUE, 0x00},\n    {FU_CRC_KIND_B8_OPENSAFETY,
        8, 0x2F, 0x00, FALSE, 0x00},\n    {FU_CRC_KIND_B8_NRSC_5, 8, 0x31, 0xFF, FALSE,
        0x00},\n    {FU_CRC_KIND_B8_MIFARE_MAD, 8, 0x1D, 0xC7, FALSE, 0x00},\n    {FU_CRC_KIND_B8_MAXIM_DOW,
        8, 0x31, 0x00, TRUE, 0x00},\n    {FU_CRC_KIND_B8_LTE, 8, 0x9B, 0x00, FALSE,
        0x00},\n    {FU_CRC_KIND_B8_I_CODE, 8, 0x1D, 0xFD, FALSE, 0x00},\n    {FU_CRC_KIND_B8_ITU,
        8, 0x07, 0x00, FALSE, 0x55},\n    {FU_CRC_KIND_B8_HITAG, 8, 0x1D, 0xFF, FALSE,
        0x00},\n    {FU_CRC_KIND_B8_GSM_B, 8, 0x49, 0x00, FALSE, 0xFF},\n    {FU_CRC_KIND_B8_GSM_A,
        8, 0x1D, 0x00, FALSE, 0x00},\n    {FU_CRC_KIND_B8_DVB_S2, 8, 0xD5, 0x00, FALSE,
        0x00},\n    {FU_CRC_KIND_B8_DARC, 8, 0x39, 0x00, TRUE, 0x00},\n    {FU_CRC_KIND_B8_CDMA2000,
        8, 0x9B, 0xFF, FALSE, 0x00},\n    {FU_CRC_KIND_B8_BLUETOOTH, 8, 0xA7, 0x00,
        TRUE, 0x00},\n    {FU_CRC_KIND_B8_AUTOSAR, 8, 0x2F, 0xFF, FALSE, 0xFF},\n}"
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-crc.c
    typedefs: []
    union: []
- function_names:
  - fu_hwids_dmi_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: '*hwid'
        type: gchar
      - name: '*key'
        type: gchar
      item_type: struct
      name: "map[] = {{FU_HWIDS_KEY_BASEBOARD_MANUFACTURER, \"board_vendor\"},\n\t\t
        \  {FU_HWIDS_KEY_BASEBOARD_PRODUCT, \"board_name\"},\n\t\t   {FU_HWIDS_KEY_BIOS_VENDOR,
        \"bios_vendor\"},\n\t\t   {FU_HWIDS_KEY_BIOS_VERSION, \"bios_version\"},\n\t\t
        \  {FU_HWIDS_KEY_FAMILY, \"product_family\"},\n\t\t   {FU_HWIDS_KEY_MANUFACTURER,
        \"sys_vendor\"},\n\t\t   {FU_HWIDS_KEY_PRODUCT_NAME, \"product_name\"},\n\t\t
        \  {FU_HWIDS_KEY_PRODUCT_SKU, \"product_sku\"},\n\t\t   {FU_HWIDS_KEY_ENCLOSURE_KIND,
        \"chassis_type\"},\n\t\t   {NULL, NULL}}"
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CFU_OFFER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.h
      type_or_value: (fu_cfu_offer_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuCfuOfferClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_intel_thunderbolt_nvm_get_vendor_id
  - fu_intel_thunderbolt_nvm_get_device_id
  - fu_intel_thunderbolt_nvm_is_host
  - fu_intel_thunderbolt_nvm_is_native
  - fu_intel_thunderbolt_nvm_has_pd
  - fu_intel_thunderbolt_nvm_get_model_id
  - fu_intel_thunderbolt_nvm_get_flash_size
  - fu_intel_thunderbolt_nvm_export
  - fu_intel_thunderbolt_nvm_valid_pd_pointer
  - fu_intel_thunderbolt_nvm_read_ucode_section_len
  - fu_intel_thunderbolt_nvm_read_sections
  - fu_intel_thunderbolt_nvm_missing_needed_drom
  - fu_intel_thunderbolt_nvm_parse
  - fu_intel_thunderbolt_nvm_write
  - fu_intel_thunderbolt_nvm_check_compatible
  - fu_intel_thunderbolt_nvm_build
  - fu_intel_thunderbolt_nvm_convert_version
  - fu_intel_thunderbolt_nvm_init
  - fu_intel_thunderbolt_nvm_class_init
  - fu_intel_thunderbolt_nvm_new
  source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: sections[FU_INTEL_THUNDERBOLT_NVM_SECTION_LAST]
        type: guint32
      - name: family
        type: FuIntelThunderboltNvmFamily
      - name: is_host
        type: gboolean
      - name: is_native
        type: gboolean
      - name: has_pd
        type: gboolean
      - name: vendor_id
        type: guint16
      - name: device_id
        type: guint16
      - name: model_id
        type: guint16
      - name: gen
        type: guint
      - name: ports
        type: guint
      - name: flash_size
        type: guint8
      item_type: struct
      name: FuIntelThunderboltNvmPrivate
      pos:
        line_end: 44
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    - fields:
      - name: device_id
        type: guint16
      - name: gen
        type: guint
      - name: family
        type: FuIntelThunderboltNvmFamily
      - name: ports
        type: guint
      item_type: struct
      name: "hw_info_arr[] = {{0x156D, 2, FU_INTEL_THUNDERBOLT_NVM_FAMILY_FALCON_RIDGE,
        2},\n\t\t\t   {0x156B, 2, FU_INTEL_THUNDERBOLT_NVM_FAMILY_FALCON_RIDGE, 1},\n\t\t\t
        \  {0x157E, 2, FU_INTEL_THUNDERBOLT_NVM_FAMILY_WIN_RIDGE, 1},\n\t\t\t   {0x1578,
        3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_ALPINE_RIDGE, 2},\n\t\t\t   {0x1576, 3,
        FU_INTEL_THUNDERBOLT_NVM_FAMILY_ALPINE_RIDGE, 1},\n\t\t\t   {0x15C0, 3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_ALPINE_RIDGE,
        1},\n\t\t\t   {0x15D3, 3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_ALPINE_RIDGE_C,
        2},\n\t\t\t   {0x15DA, 3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_ALPINE_RIDGE_C,
        1},\n\t\t\t   {0x15E7, 3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_TITAN_RIDGE, 1},\n\t\t\t
        \  {0x15EA, 3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_TITAN_RIDGE, 2},\n\t\t\t   {0x15EF,
        3, FU_INTEL_THUNDERBOLT_NVM_FAMILY_TITAN_RIDGE, 2},\n\t\t\t   {0x15EE, 3,
        FU_INTEL_THUNDERBOLT_NVM_FAMILY_BB, 0},\n\t\t\t   {0x0B26, 4, FU_INTEL_THUNDERBOLT_NVM_FAMILY_GOSHEN_RIDGE,
        2},\n\t\t\t   {0x5786, 5, FU_INTEL_THUNDERBOLT_NVM_FAMILY_BARLOW_RIDGE, 2},\n\t\t\t
        \  /* Maple ridge devices\n\t\t\t    * NOTE: These are expected to be flashed
        via UEFI capsules *not*\n\t\t\t    * Thunderbolt plugin Flashing via fwupd
        will require matching kernel\n\t\t\t    * work. They're left here only for
        parsing the binaries\n\t\t\t    */\n\t\t\t   {0x1136, 4, FU_INTEL_THUNDERBOLT_NVM_FAMILY_MAPLE_RIDGE,
        2},\n\t\t\t   {0x1137, 4, FU_INTEL_THUNDERBOLT_NVM_FAMILY_MAPLE_RIDGE, 2},\n\t\t\t
        \  {0}}"
      pos:
        line_end: 370
        line_start: 365
        source_file: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USWID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.h
      type_or_value: (fu_uswid_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuUswidFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_efi_signature_list_get_newest
  - fu_efi_signature_list_parse_list
  - fu_efi_signature_list_validate
  - fu_efi_signature_list_parse
  - fu_efi_signature_list_write
  - fu_efi_signature_list_new
  - fu_efi_signature_list_class_init
  - fu_efi_signature_list_init
  source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
      type_or_value: '"FuEfiSignatureList"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FU_BIT_SET
  - FU_BIT_CLEAR
  - FU_BIT_IS_SET
  - FU_BIT_IS_CLEAR
  source_file: /src/fwupd/libfwupdplugin/fu-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SREC_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
      type_or_value: (fu_srec_firmware_get_type())
    - item_type: preproc_def
      name: FU_TYPE_SREC_FIRMWARE_RECORD
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
      type_or_value: (fu_srec_firmware_record_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuSrecFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
    - fields:
      - name: ln
        type: guint
      - name: kind
        type: FuFirmareSrecRecordKind
      - name: addr
        type: guint32
      - name: '*buf'
        type: GByteArray
      item_type: struct
      name: FuSrecFirmwareRecord
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
    typedefs:
    - item_type: typedef
      name: FuFirmareSrecRecordKind
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
    union: []
- function_names:
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-fuzzer-main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_device_get_property
  - fu_device_set_property
  - fu_device_register_private_flag_safe
  - fu_device_register_flags
  - fu_device_ensure_private_flags
  - fu_device_find_private_flag_registered
  - fu_device_add_private_flag
  - fu_device_remove_private_flag
  - fu_device_has_private_flag
  - fu_device_get_request_cnt
  - fu_device_get_possible_plugins
  - fu_device_add_possible_plugin
  - fu_device_retry_add_recovery
  - fu_device_retry_set_delay
  - fu_device_retry_full
  - fu_device_retry
  - fu_device_sleep
  - fu_device_sleep_full
  - fu_device_set_contents
  - fu_device_set_contents_bytes
  - fu_device_get_contents_bytes
  - fu_device_get_contents
  - fu_device_get_smbios_string
  - fu_device_query_file_exists
  - fu_device_poll_locker_open_cb
  - fu_device_poll_locker_close_cb
  - fu_device_poll_locker_new
  - fu_device_poll
  - fu_device_poll_cb
  - fu_device_set_poll_interval
  - fu_device_get_order
  - fu_device_set_order
  - fu_device_get_priority
  - fu_device_set_priority
  - fu_device_get_equivalent_id
  - fu_device_set_equivalent_id
  - fu_device_get_parent
  - fu_device_get_root
  - fu_device_set_composite_id
  - fu_device_set_parent
  - fu_device_incorporate_from_proxy_flags
  - fu_device_proxy_flags_notify_cb
  - fu_device_set_proxy
  - fu_device_get_proxy
  - fu_device_get_proxy_with_fallback
  - fu_device_get_children
  - fu_device_add_child
  - fu_device_remove_child
  - fu_device_remove_children
  - fu_device_ensure_parent_guids
  - fu_device_get_parent_guids
  - fu_device_has_parent_guid
  - fu_device_add_parent_guid
  - fu_device_get_parent_physical_ids
  - fu_device_has_parent_physical_id
  - fu_device_add_parent_physical_id
  - fu_device_get_parent_backend_ids
  - fu_device_has_parent_backend_id
  - fu_device_add_parent_backend_id
  - fu_device_add_child_by_type_guid
  - fu_device_add_child_by_kv
  - fu_device_set_quirk_inhibit_section
  - fu_device_set_quirk_kv
  - fu_device_get_specialized_gtype
  - fu_device_set_specialized_gtype
  - fu_device_get_proxy_gtype
  - fu_device_set_proxy_gtype
  - fu_device_get_firmware_gtype
  - fu_device_set_firmware_gtype
  - fu_device_quirks_iter_cb
  - fu_device_add_guid_quirks
  - fu_device_set_firmware_size
  - fu_device_set_firmware_size_min
  - fu_device_set_firmware_size_max
  - fu_device_get_firmware_size_min
  - fu_device_get_firmware_size_max
  - fu_device_get_required_free
  - fu_device_set_required_free
  - fu_device_has_guid
  - fu_device_instance_id_free
  - fu_device_get_instance_id
  - fu_device_has_instance_id
  - fu_device_add_instance_id_full
  - fu_device_add_instance_id
  - fu_device_get_counterpart_guids
  - fu_device_get_metadata
  - fu_device_get_metadata_boolean
  - fu_device_get_metadata_integer
  - fu_device_remove_metadata
  - fu_device_set_metadata
  - fu_device_set_metadata_boolean
  - fu_device_set_metadata_integer
  - fu_device_fixup_vendor_name
  - fu_device_set_vendor
  - fu_device_sanitize_name
  - fu_device_set_name
  - fu_device_set_id
  - fu_device_set_version_format
  - fu_device_set_version
  - fu_device_set_version_lowest
  - fu_device_set_version_bootloader
  - fu_device_set_version_raw
  - fu_device_set_version_lowest_raw
  - fu_device_is_updatable
  - fu_device_inhibit_free
  - fu_device_ensure_inhibits
  - fu_device_problem_to_inhibit_reason
  - fu_device_inhibit_full
  - fu_device_inhibit
  - fu_device_has_inhibit
  - fu_device_remove_problem
  - fu_device_has_problem
  - fu_device_add_problem
  - fu_device_uninhibit
  - fu_device_ensure_id
  - fu_device_get_logical_id
  - fu_device_set_logical_id
  - fu_device_get_backend_id
  - fu_device_set_backend_id
  - fu_device_get_backend
  - fu_device_set_backend
  - fu_device_get_backend_parent_with_subsystem
  - fu_device_get_backend_parent
  - fu_device_get_update_request_id
  - fu_device_set_update_request_id
  - fu_device_get_update_message
  - fu_device_set_update_message
  - fu_device_get_update_image
  - fu_device_set_update_image
  - fu_device_get_fwupd_version
  - fu_device_set_fwupd_version
  - fu_device_get_proxy_guid
  - fu_device_set_proxy_guid
  - fu_device_set_physical_id
  - fu_device_get_physical_id
  - fu_device_remove_flag
  - fu_device_add_flag
  - fu_device_register_private_flag
  - fu_device_set_custom_flag
  - fu_device_set_custom_flags
  - fu_device_get_custom_flags
  - fu_device_get_remove_delay
  - fu_device_set_remove_delay
  - fu_device_get_acquiesce_delay
  - fu_device_set_acquiesce_delay
  - fu_device_set_update_state
  - fu_device_ensure_battery_inhibit
  - fu_device_get_battery_level
  - fu_device_set_battery_level
  - fu_device_get_battery_threshold
  - fu_device_set_battery_threshold
  - fu_device_get_created_usec
  - fu_device_set_created_usec
  - fu_device_get_modified_usec
  - fu_device_get_vid
  - fu_device_set_vid
  - fu_device_get_pid
  - fu_device_set_pid
  - fu_device_set_modified_usec
  - fu_device_instance_flag_to_string_trunc
  - fu_device_to_string_impl
  - fu_device_get_common_class_parents
  - fu_device_add_string
  - fu_device_to_string
  - fu_device_set_context
  - fu_device_get_context
  - fu_device_get_results
  - fu_device_write_firmware
  - fu_device_prepare_firmware
  - fu_device_read_firmware
  - fu_device_dump_firmware
  - fu_device_detach
  - fu_device_detach_full
  - fu_device_attach
  - fu_device_attach_full
  - fu_device_reload
  - fu_device_prepare
  - fu_device_cleanup
  - fu_device_open_cb
  - fu_device_open_internal
  - fu_device_open
  - fu_device_close_internal
  - fu_device_close
  - fu_device_probe
  - fu_device_probe_complete
  - fu_device_rescan
  - fu_device_set_progress
  - fu_device_convert_instance_ids
  - fu_device_setup
  - fu_device_activate
  - fu_device_probe_invalidate
  - fu_device_report_metadata_pre
  - fu_device_report_metadata_post
  - fu_device_add_security_attrs
  - fu_device_bind_driver
  - fu_device_unbind_driver
  - fu_device_get_instance_str
  - fu_device_build_vendor_id
  - fu_device_build_vendor_id_u16
  - fu_device_incorporate_instance_ids
  - fu_device_incorporate
  - fu_device_replace
  - fu_device_incorporate_flag
  - fu_device_incorporate_from_component
  - fu_device_ensure_from_component_name
  - fu_device_ensure_from_component_vendor
  - fu_device_ensure_from_component_signed
  - fu_device_ensure_from_component_icon
  - fu_device_ensure_from_component_flags
  - fu_device_category_to_name
  - fu_device_ensure_from_component_name_category
  - _g_ptr_array_reverse
  - fu_device_ensure_from_component_verfmt
  - fu_device_ensure_from_component
  - fu_device_ensure_from_release
  - fu_device_emit_request
  - fu_device_flags_notify_cb
  - fu_device_ensure_instance_hash
  - fu_device_add_instance_str
  - fu_device_strsafe_instance_id_is_valid_char
  - fu_device_strsafe_instance_id
  - fu_device_add_instance_strsafe
  - fu_device_add_instance_strup
  - fu_device_add_instance_u4
  - fu_device_add_instance_u8
  - fu_device_add_instance_u16
  - fu_device_add_instance_u32
  - fu_device_build_instance_id
  - fu_device_build_instance_id_full
  - fu_device_security_attr_new
  - fu_device_ensure_events
  - fu_device_add_event
  - fu_device_save_event
  - fu_device_load_event
  - fu_device_get_events
  - fu_device_clear_events
  - fu_device_set_target
  - fu_device_add_json
  - fu_device_from_json
  - fu_device_dispose
  - fu_device_class_init
  - fu_device_init
  - fu_device_finalize
  - fu_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
      type_or_value: '"FuDevice"'
    - item_type: preproc_def
      name: FU_DEVICE_RETRY_OPEN_COUNT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_DEVICE_RETRY_OPEN_DELAY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
      type_or_value: '500 '
    structs:
    - fields:
      - name: '*equivalent_id'
        type: gchar
      - name: '*physical_id'
        type: gchar
      - name: '*logical_id'
        type: gchar
      - name: '*backend_id'
        type: gchar
      - name: '*update_request_id'
        type: gchar
      - name: '*update_message'
        type: gchar
      - name: '*update_image'
        type: gchar
      - name: '*fwupd_version'
        type: gchar
      - name: '*proxy_guid'
        type: gchar
      - name: '*proxy'
        type: FuDevice
      - name: '*target'
        type: FuDevice
      - name: '*backend'
        type: FuBackend
      - name: '*ctx'
        type: FuContext
      - name: created_usec
        type: gint64
      - name: modified_usec
        type: gint64
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      - name: '*inhibits'
        type: GHashTable
      - name: '*metadata'
        type: GHashTable
      - name: '*parent_guids'
        type: GPtrArray
      - name: '*parent_physical_ids'
        type: GPtrArray
      - name: '*parent_backend_ids'
        type: GPtrArray
      - name: '*events'
        type: GPtrArray
      - name: event_idx
        type: guint
      - name: remove_delay
        type: guint
      - name: acquiesce_delay
        type: guint
      - name: request_cnts[FWUPD_REQUEST_KIND_LAST]
        type: guint
      - name: order
        type: gint
      - name: priority
        type: guint
      - name: poll_id
        type: guint
      - name: poll_locker_cnt
        type: gint
      - name: done_probe
        type: gboolean
      - name: done_setup
        type: gboolean
      - name: device_id_valid
        type: gboolean
      - name: size_min
        type: guint64
      - name: size_max
        type: guint64
      - name: required_free
        type: guint64
      - name: open_refcount
        type: gint
      - name: specialized_gtype
        type: GType
      - name: proxy_gtype
        type: GType
      - name: firmware_gtype
        type: GType
      - name: '*possible_plugins'
        type: GPtrArray
      - name: '*instance_ids'
        type: GPtrArray
      - name: '*retry_recs'
        type: GPtrArray
      - name: retry_delay
        type: guint
      - name: '*private_flags_registered'
        type: GPtrArray
      - name: '*private_flags'
        type: GPtrArray
      - name: '*custom_flags'
        type: gchar
      - name: notify_flags_handler_id
        type: gulong
      - name: notify_flags_proxy_id
        type: gulong
      - name: '*instance_hash'
        type: GHashTable
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuDevicePrivate
      pos:
        line_end: 102
        line_start: 49
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    - fields:
      - name: domain
        type: GQuark
      - name: code
        type: gint
      - name: recovery_func
        type: FuDeviceRetryFunc
      item_type: struct
      name: FuDeviceRetryRecovery
      pos:
        line_end: 108
        line_start: 104
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    - fields:
      - name: problem
        type: FwupdDeviceProblem
      - name: '*inhibit_id'
        type: gchar
      - name: '*reason'
        type: gchar
      item_type: struct
      name: FuDeviceInhibit
      pos:
        line_end: 114
        line_start: 110
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    - fields:
      - name: '*instance_id'
        type: gchar
      - name: '*guid'
        type: gchar
      - name: flags
        type: FuDeviceInstanceFlag
      item_type: struct
      name: FuDeviceInstanceIdItem
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    typedefs: []
    union: []
- function_names:
  - fu_cpuid
  - fu_cpu_get_attrs
  - fu_cpu_get_vendor
  - fu_common_get_memory_size
  - fu_common_get_kernel_cmdline
  - fu_common_get_olson_timezone_id
  - fu_common_align_up
  - fu_power_state_is_ac
  - fu_error_convert
  - fu_xmlb_builder_insert_kv
  - fu_xmlb_builder_insert_kx
  - fu_xmlb_builder_insert_kb
  - fu_snap_is_in_snap
  source_file: /src/fwupd/libfwupdplugin/fu-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-common.c
      type_or_value: '"FuCommon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hwids_kenv_setup
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: '*hwid'
        type: gchar
      - name: '*key'
        type: gchar
      item_type: struct
      name: "map[] = {{FU_HWIDS_KEY_BASEBOARD_MANUFACTURER, \"smbios.planar.maker\"},\n\t\t
        \  {FU_HWIDS_KEY_BASEBOARD_PRODUCT, \"smbios.planar.product\"},\n\t\t   {FU_HWIDS_KEY_BIOS_VENDOR,
        \"smbios.bios.vendor\"},\n\t\t   {FU_HWIDS_KEY_BIOS_VERSION, \"smbios.bios.version\"},\n\t\t
        \  {FU_HWIDS_KEY_FAMILY, \"smbios.system.family\"},\n\t\t   {FU_HWIDS_KEY_MANUFACTURER,
        \"smbios.system.maker\"},\n\t\t   {FU_HWIDS_KEY_PRODUCT_NAME, \"smbios.system.product\"},\n\t\t
        \  {FU_HWIDS_KEY_PRODUCT_SKU, \"smbios.system.sku\"},\n\t\t   {{NULL, NULL}}}"
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c
    typedefs: []
    union: []
- function_names:
  - fu_test_device_init
  - fu_test_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-test-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuTestDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-test-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hid-report.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HID_REPORT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report.h
      type_or_value: (fu_hid_report_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-io-channel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IO_CHANNEL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-io-channel.h
      type_or_value: (fu_io_channel_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuIOChannelFlags
      pos:
        line_end: 32
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-io-channel.h
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-dfu-firmware-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_block_device_probe
  - fu_block_device_ioctl_buf_cb
  - fu_block_device_ioctl_cdb_cb
  - fu_block_device_ioctl_sense_cb
  - fu_block_device_sg_io_cmd_none
  - fu_block_device_sg_io_cmd_read
  - fu_block_device_sg_io_cmd_write
  - fu_block_device_init
  - fu_block_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-block-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-block-device.c
      type_or_value: '"FuBlockDevice"'
    - item_type: preproc_def
      name: FU_BLOCK_DEVICE_SG_IO_SENSE_BUFFER_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-block-device.c
      type_or_value: '32    '
    - item_type: preproc_def
      name: FU_BLOCK_DEVICE_SG_IO_TIMEOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-block-device.c
      type_or_value: '20000 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_hid_device_to_string
  - fu_hid_device_get_property
  - fu_hid_device_set_property
  - fu_hid_device_parse_descriptors
  - fu_hid_device_autodetect_eps
  - fu_hid_device_setup
  - fu_hid_device_open
  - fu_hid_device_close
  - fu_hid_device_set_interface
  - fu_hid_device_get_interface
  - fu_hid_device_set_ep_addr_in
  - fu_hid_device_get_ep_addr_in
  - fu_hid_device_set_ep_addr_out
  - fu_hid_device_get_ep_addr_out
  - fu_hid_device_add_flag
  - fu_hid_device_set_report_internal
  - fu_hid_device_set_report_internal_cb
  - fu_hid_device_set_report
  - fu_hid_device_get_report_internal
  - fu_hid_device_get_report_internal_cb
  - fu_hid_device_get_report
  - fu_hid_device_init
  - fu_hid_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '"FuHidDevice"'
    - item_type: preproc_def
      name: FU_HID_REPORT_GET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_HID_REPORT_SET
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: FU_HID_REPORT_TYPE_INPUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_HID_REPORT_TYPE_OUTPUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_HID_REPORT_TYPE_FEATURE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_HID_DEVICE_RETRIES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
      type_or_value: '10'
    structs:
    - fields:
      - name: interface
        type: guint8
      - name: ep_addr_in
        type: guint8
      - name: ep_addr_out
        type: guint8
      - name: interface_autodetect
        type: gboolean
      - name: flags
        type: FuHidDeviceFlags
      item_type: struct
      name: FuHidDevicePrivate
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
    - fields:
      - name: value
        type: guint8
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      - name: timeout
        type: guint
      - name: flags
        type: FuHidDeviceFlags
      item_type: struct
      name: FuHidDeviceRetryHelper
      pos:
        line_end: 417
        line_start: 411
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_context_get_fdt_file
  - fu_context_get_fdt
  - fu_context_get_efivars
  - fu_context_efivars_check_free_space
  - fu_context_get_smbios
  - fu_context_get_hwids
  - fu_context_get_config
  - fu_context_get_smbios_string
  - fu_context_get_smbios_data
  - fu_context_get_smbios_integer
  - fu_context_reload_bios_settings
  - fu_context_get_bios_settings
  - fu_context_get_bios_setting
  - fu_context_get_bios_setting_pending_reboot
  - fu_context_get_chassis_kind
  - fu_context_set_chassis_kind
  - fu_context_has_hwid_guid
  - fu_context_get_hwid_guids
  - fu_context_get_hwid_value
  - fu_context_get_hwid_replace_value
  - fu_context_add_runtime_version
  - fu_context_get_runtime_version
  - fu_context_get_runtime_versions
  - fu_context_add_compile_version
  - fu_context_get_compile_versions
  - fu_context_udev_plugin_names_sort_cb
  - fu_context_add_udev_subsystem
  - fu_context_get_plugin_names_for_udev_subsystem
  - fu_context_get_udev_subsystems
  - fu_context_add_firmware_gtype
  - fu_context_get_firmware_gtype_by_id
  - fu_context_gtypes_sort_cb
  - fu_context_get_firmware_gtype_ids
  - fu_context_get_firmware_gtypes
  - fu_context_add_quirk_key
  - fu_context_lookup_quirk_by_id
  - fu_context_lookup_quirk_by_id_iter_cb
  - fu_context_lookup_quirk_by_id_iter
  - fu_context_security_changed
  - fu_context_housekeeping
  - fu_context_detect_full_disk_encryption
  - fu_context_hwid_quirk_cb
  - fu_context_load_hwinfo
  - fu_context_has_hwid_flag
  - fu_context_load_quirks
  - fu_context_get_power_state
  - fu_context_set_power_state
  - fu_context_get_lid_state
  - fu_context_set_lid_state
  - fu_context_get_display_state
  - fu_context_set_display_state
  - fu_context_get_battery_level
  - fu_context_set_battery_level
  - fu_context_get_battery_threshold
  - fu_context_set_battery_threshold
  - fu_context_add_flag
  - fu_context_remove_flag
  - fu_context_has_flag
  - fu_context_add_esp_volume
  - fu_context_set_esp_location
  - fu_context_get_esp_location
  - fu_context_get_esp_volumes
  - fu_context_is_esp
  - fu_context_is_esp_linux
  - fu_context_sort_esp_score_cb
  - fu_context_get_default_esp
  - fu_context_get_esp_volume_by_hard_drive_device_path
  - fu_context_esp_load_pe_file
  - fu_context_build_uefi_basename_for_arch
  - fu_context_get_esp_files_for_entry
  - fu_context_get_esp_files
  - fu_context_get_backends
  - fu_context_add_backend
  - fu_context_get_backend_by_name
  - fu_context_has_backend
  - fu_context_get_data
  - fu_context_set_data
  - fu_context_get_property
  - fu_context_set_property
  - fu_context_dispose
  - fu_context_finalize
  - fu_context_class_init
  - fu_context_init
  - fu_context_new
  source_file: /src/fwupd/libfwupdplugin/fu-context.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
      type_or_value: '"FuContext"'
    structs:
    - fields:
      - name: flags
        type: FuContextFlags
      - name: '*hwids'
        type: FuHwids
      - name: '*config'
        type: FuConfig
      - name: '*smbios'
        type: FuSmbios
      - name: chassis_kind
        type: FuSmbiosChassisKind
      - name: '*quirks'
        type: FuQuirks
      - name: '*efivars'
        type: FuEfivars
      - name: '*backends'
        type: GPtrArray
      - name: '*runtime_versions'
        type: GHashTable
      - name: '*compile_versions'
        type: GHashTable
      - name: '*udev_subsystems'
        type: GHashTable
      - name: '*esp_volumes'
        type: GPtrArray
      - name: '*firmware_gtypes'
        type: GHashTable
      - name: '*hwid_flags'
        type: GHashTable
      - name: power_state
        type: FuPowerState
      - name: lid_state
        type: FuLidState
      - name: display_state
        type: FuDisplayState
      - name: battery_level
        type: guint
      - name: battery_threshold
        type: guint
      - name: '*host_bios_settings'
        type: FuBiosSettings
      - name: '*fdt'
        type: FuFirmware
      - name: '*esp_location'
        type: gchar
      item_type: struct
      name: FuContextPrivate
      pos:
        line_end: 56
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
    - fields:
      - name: '*self'
        type: FuContext
      - name: iter_cb
        type: FuContextLookupIter
      - name: user_data
        type: gpointer
      item_type: struct
      name: FuContextQuirkLookupHelper
      pos:
        line_end: 977
        line_start: 973
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
    - fields:
      - name: '*name'
        type: gchar
      - name: flag
        type: FuContextHwidFlags
      - name: func
        type: FuContextHwidsSetupFunc
      item_type: struct
      name: "hwids_setup_map[] = {{\"config\", FU_CONTEXT_HWID_FLAG_LOAD_CONFIG, fu_hwids_config_setup},\n\t\t\t
        \      {\"smbios\", FU_CONTEXT_HWID_FLAG_LOAD_SMBIOS, fu_hwids_smbios_setup},\n\t\t\t
        \      {\"fdt\", FU_CONTEXT_HWID_FLAG_LOAD_FDT, fu_hwids_fdt_setup},\n\t\t\t
        \      {\"kenv\", FU_CONTEXT_HWID_FLAG_LOAD_KENV, fu_hwids_kenv_setup},\n\t\t\t
        \      {\"dmi\", FU_CONTEXT_HWID_FLAG_LOAD_DMI, fu_hwids_dmi_setup},\n\t\t\t
        \      {\"darwin\", FU_CONTEXT_HWID_FLAG_LOAD_DARWIN, fu_hwids_darwin_setup},\n\t\t\t
        \      {NULL, FU_CONTEXT_HWID_FLAG_NONE, NULL}}"
      pos:
        line_end: 1133
        line_start: 1129
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
    typedefs:
    - item_type: typedef
      name: (*FuContextHwidsSetupFunc)(FuContext *self, FuHwids *hwids, GError **error)
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
    union: []
- function_names:
  - fu_hwids_get_value
  - fu_hwids_has_guid
  - fu_hwids_get_guids
  - fu_hwids_get_keys
  - fu_hwids_get_guid_for_str
  - fu_hwids_get_replace_keys
  - fu_hwids_add_chid
  - fu_hwids_sort_keys_cb
  - fu_hwids_get_chid_keys
  - fu_hwids_add_value
  - fu_hwids_get_replace_values
  - fu_hwids_get_guid
  - fu_hwids_add_guid
  - fu_hwids_setup
  - fu_hwids_finalize
  - fu_hwids_class_init
  - fu_hwids_init
  - fu_hwids_new
  source_file: /src/fwupd/libfwupdplugin/fu-hwids.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.c
      type_or_value: '"FuHwids"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*hash_values'
        type: GHashTable
      - name: '*hash_values_display'
        type: GHashTable
      - name: '*hash_guid'
        type: GHashTable
      - name: '*array_guids'
        type: GPtrArray
      - name: '*chids'
        type: GHashTable
      item_type: struct
      name: _FuHwids
      pos:
        line_end: 39
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-coswid-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*FuCoswidItemFunc)(cbor_item_t *item,\n\t\t\t\t     gpointer user_data,\n\t\t\t\t
        \    GError **error)"
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-common.h
    union: []
- function_names:
  - fu_ifd_bios_parse
  - fu_ifd_bios_init
  - fu_ifd_bios_class_init
  - fu_ifd_bios_new
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
      type_or_value: '"FuIfdBios"'
    - item_type: preproc_def
      name: FU_IFD_BIOS_FIT_SIGNATURE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
      type_or_value: '0x5449465F'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_guid_to_name
  - fu_efi_parse_sections
  source_file: /src/fwupd/libfwupdplugin/fu-efi-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-ifd-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IFD_IMAGE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-image.h
      type_or_value: (fu_ifd_image_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuIfdImageClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-image.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_mei_device_to_string
  - fu_mei_device_set_uuid
  - fu_mei_device_pci_probe
  - fu_mei_device_interfaces_probe
  - fu_mei_device_probe
  - fu_mei_device_get_multiline_attr
  - fu_mei_device_get_fw_ver
  - fu_mei_device_get_fw_status
  - fu_mei_device_get_max_msg_length
  - fu_mei_device_get_protocol_version
  - fu_mei_device_connect
  - fu_mei_device_read
  - fu_mei_device_write
  - fu_mei_device_incorporate
  - fu_mei_device_init
  - fu_mei_device_finalize
  - fu_mei_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
      type_or_value: '"FuMeiDevice"'
    - item_type: preproc_def
      name: FU_MEI_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: max_msg_length
        type: guint32
      - name: protocol_version
        type: guint8
      - name: '*uuid'
        type: gchar
      item_type: struct
      name: FuMeiDevicePrivate
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-kenv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RP_PICO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.h
      type_or_value: (fu_rp_pico_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rp_pico_device_to_string
  - fu_rp_pico_device_detach
  - fu_rp_pico_device_probe
  - fu_rp_pico_device_set_progress
  - fu_rp_pico_device_init
  - fu_rp_pico_device_class_init
  source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_RP_PICO_DEVICE_RESET_INTERFACE_SUBCLASS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_RP_PICO_DEVICE_RESET_INTERFACE_PROTOCOL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
      type_or_value: '0x01'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: iface_reset
        type: guint8
      item_type: struct
      name: _FuRpPicoDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-device.c
    typedefs: []
    union: []
- function_names:
  - fu_rp_pico_plugin_init
  - fu_rp_pico_plugin_constructed
  - fu_rp_pico_plugin_class_init
  source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuRpPicoPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TELINK_DFU_BLE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.h
      type_or_value: (fu_telink_dfu_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
  - fu_telink_dfu_hid_device_to_string
  - fu_telink_dfu_hid_device_create_packet
  - fu_telink_dfu_hid_device_write
  - fu_telink_dfu_hid_device_write_blocks
  - fu_telink_dfu_hid_device_ota_start
  - fu_telink_dfu_hid_device_ota_stop
  - fu_telink_dfu_hid_device_write_blob
  - fu_telink_dfu_hid_device_write_firmware
  - fu_telink_dfu_hid_device_set_progress
  - fu_telink_dfu_hid_device_set_quirk_kv
  - fu_telink_dfu_hid_device_init
  - fu_telink_dfu_hid_device_probe
  - fu_telink_dfu_hid_device_class_init
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_START_ADDR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_REPORT_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '500 '
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_OTA_LENGTH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '65'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_OTA_START_LEN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_OTA_END_LEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '6'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_OTA_DATA_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '20'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_REPORT_ID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: '6'
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_EP_IN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: (0x80 | 4)
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_EP_OUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
      type_or_value: (0x00 | 5)
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: windows_hid_tool_ver
        type: guint16
      item_type: struct
      name: _FuTelinkDfuHidDevice
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TELINK_DFU_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.h
      type_or_value: (fu_telink_dfu_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_telink_dfu_parse_image_version
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_telink_dfu_archive_load_file
  - fu_telink_dfu_archive_parse
  - fu_telink_dfu_archive_init
  - fu_telink_dfu_archive_class_init
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TELINK_DFU_FIRMWARE_JSON_FORMAT_VERSION_MAX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
      type_or_value: '0'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuTelinkDfuArchive
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    - fields:
      - name: '*name'
        type: gchar
      - name: ver_format
        type: FwupdVersionFormat
      item_type: struct
      name: "bl_type_keys[] = {\n\t    {\"beta\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t
        \   {\"ota-v1\", FWUPD_VERSION_FORMAT_TRIPLET},\n\t    {\"usb-dongle-simple\",
        FWUPD_VERSION_FORMAT_PAIR},\n\t}"
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    typedefs: []
    union: []
- function_names:
  - fu_telink_dfu_ble_device_create_packet
  - fu_telink_dfu_ble_device_write_blocks
  - fu_telink_dfu_ble_device_ota_start
  - fu_telink_dfu_ble_device_ota_stop
  - fu_telink_dfu_ble_device_write_blob
  - fu_telink_dfu_ble_device_write_firmware
  - fu_telink_dfu_ble_device_set_progress
  - fu_telink_dfu_ble_device_init
  - fu_telink_dfu_ble_device_class_init
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TELINK_DFU_HID_DEVICE_START_ADDR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
      type_or_value: '0x5000'
    - item_type: preproc_def
      name: FU_TELINK_DFU_BLE_DEVICE_UUID_OTA
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
      type_or_value: '"00010203-0405-0607-0809-0a0b0c0d2b12"'
    structs:
    - fields:
      - name: parent_instance
        type: FuBluezDevice
      item_type: struct
      name: _FuTelinkDfuBleDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TELINK_DFU_ARCHIVE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.h
      type_or_value: (fu_telink_dfu_archive_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_telink_dfu_plugin_init
  - fu_telink_dfu_plugin_constructed
  - fu_telink_dfu_plugin_class_init
  source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuTelinkDfuPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bnr_dp_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/bnr-dp/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bnr_dp_plugin_init
  - fu_bnr_dp_plugin_constructed
  - fu_bnr_dp_plugin_class_init
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuBnrDpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BNR_DP_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.h
      type_or_value: (fu_bnr_dp_firmware_get_type())
    - item_type: preproc_def
      name: FU_BNR_DP_FIRMWARE_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.h
      type_or_value: (3 * 1024 * 1024)
    - item_type: preproc_def
      name: FU_BNR_DP_FIRMWARE_SIZE_MAX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.h
      type_or_value: (FU_BNR_DP_FIRMWARE_SIZE + (4 * 1024))
    - item_type: preproc_def
      name: FU_BNR_DP_FIRMWARE_HEADER_OFFSET
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.h
      type_or_value: '0x10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bnr_dp_device_xor_checksum
  - fu_bnr_dp_device_build_request
  - fu_bnr_dp_device_eval_result
  - fu_bnr_dp_device_is_done
  - fu_bnr_dp_device_write_request
  - fu_bnr_dp_device_read_response
  - fu_bnr_dp_device_read_status
  - fu_bnr_dp_device_poll_status_cb
  - fu_bnr_dp_device_poll_status
  - fu_bnr_dp_device_exec_cmd
  - fu_bnr_dp_device_read_data
  - fu_bnr_dp_device_can_skip_chunk
  - fu_bnr_dp_device_write_data
  - fu_bnr_dp_device_factory_data
  - fu_bnr_dp_device_fw_header
  - fu_bnr_dp_device_info_flags
  - fu_bnr_dp_device_reset
  - fu_bnr_dp_device_setup
  - fu_bnr_dp_device_read_firmware
  - fu_bnr_dp_device_dump_firmware
  - fu_bnr_dp_device_prepare_firmware
  - fu_bnr_dp_device_write_firmware
  - fu_bnr_dp_device_convert_version
  - fu_bnr_dp_device_set_progress
  - fu_bnr_dp_device_init
  - fu_bnr_dp_device_class_init
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_BNR_DP_IEEE_OUI
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '0x006065'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_HEADER_OFFSET
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '0x00A00'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_DATA_OFFSET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '0x00900'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_DATA_CHUNK_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_FLASH_PAGE_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_DPAUX_TIMEOUT_MSEC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_POLL_MAX_FAST
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_POLL_MAX_TOTAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_POLL_INTERVAL_MSEC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '5'
    structs:
    - fields:
      - name: parent_instance
        type: FuDpauxDevice
      item_type: struct
      name: _FuBnrDpDevice
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    typedefs: []
    union: []
- function_names:
  - fu_bnr_dp_version_to_string
  - fu_bnr_dp_version_from_header
  - fu_bnr_dp_effective_product_num
  - fu_bnr_dp_effective_compat_id
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BNR_DP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.h
      type_or_value: (fu_bnr_dp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bnr_dp_firmware_export
  - fu_bnr_dp_firmware_convert_version
  - fu_bnr_dp_firmware_attribute_parse_u64
  - fu_bnr_dp_firmware_attribute_parse_string
  - fu_bnr_dp_firmware_header_parse
  - fu_bnr_dp_firmware_checksum_finish
  - fu_bnr_dp_firmware_stream_checksum
  - fu_bnr_dp_firmware_buf_checksum
  - fu_bnr_dp_firmware_payload_parse
  - fu_bnr_dp_firmware_parse
  - fu_bnr_dp_firmware_parse_from_device
  - fu_bnr_dp_firmware_write
  - fu_bnr_dp_firmware_patch_boot_counter
  - fu_bnr_dp_firmware_check
  - fu_bnr_dp_firmware_init
  - fu_bnr_dp_firmware_finalize
  - fu_bnr_dp_firmware_class_init
  - fu_bnr_dp_firmware_new
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: device_id
        type: guint64
      - name: '*usage'
        type: gchar
      - name: function
        type: gchar
      - name: variant
        type: guint64
      - name: payload_length
        type: guint64
      - name: payload_checksum
        type: guint16
      - name: '*material'
        type: gchar
      - name: '*creation_date'
        type: gchar
      - name: '*comment'
        type: gchar
      item_type: struct
      name: _FuBnrDpFirmware
      pos:
        line_end: 28
        line_start: 14
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_huddly_usb_hlink_msg_free
  - fu_huddly_usb_hlink_msg_new
  - fu_huddly_usb_hlink_msg_new_string
  - fu_huddly_usb_hlink_msg_write
  - fu_huddly_usb_hlink_msg_parse
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_huddly_usb_plugin_init
  - fu_huddly_usb_plugin_constructed
  - fu_huddly_usb_plugin_class_init
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHuddlyUsbPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*header'
        type: FuStructHLinkHeader
      - name: '*msg_name'
        type: gchar
      - name: '*payload'
        type: GByteArray
      item_type: struct
      name: FuHuddlyUsbHLinkMsg
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-common.h
    typedefs: []
    union: []
- function_names:
  - fu_huddly_usb_device_set_state
  - fu_huddly_usb_device_find_interface
  - fu_huddly_usb_device_bulk_write
  - fu_huddly_usb_device_bulk_read
  - fu_huddly_usb_device_hlink_send
  - fu_huddly_usb_device_hlink_receive
  - fu_huddly_usb_device_hlink_subscribe
  - fu_huddly_usb_device_hlink_unsubscribe
  - fu_huddly_usb_device_send_reset
  - fu_huddly_usb_device_salute
  - fu_huddly_usb_device_ensure_product_info
  - fu_huddly_usb_device_reboot
  - fu_huddly_usb_device_hcp_write_file
  - fu_huddly_usb_device_hpk_done_cb
  - fu_huddly_usb_device_hpk_run
  - fu_huddly_usb_device_to_string
  - fu_huddly_usb_device_verify
  - fu_huddly_usb_device_attach
  - fu_huddly_usb_device_probe
  - fu_huddly_usb_device_setup
  - fu_huddly_usb_device_cleanup
  - fu_huddly_usb_device_write_firmware
  - fu_huddly_usb_device_set_progress
  - fu_huddly_usb_device_init
  - fu_huddly_usb_device_replace
  - fu_huddly_usb_device_finalize
  - fu_huddly_usb_device_class_init
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HUDDLY_USB_RECEIVE_BUFFER_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: G_REGEX_DEFAULT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: G_REGEX_MATCH_DEFAULT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
      type_or_value: '0'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: bulk_ep[EP_LAST]
        type: guint
      - name: interfaces_claimed
        type: gboolean
      - name: pending_verify
        type: gboolean
      - name: '*input_stream'
        type: GInputStream
      - name: '*product_state'
        type: gchar
      - name: need_reboot
        type: gboolean
      item_type: struct
      name: _FuHuddlyUsbDevice
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HUDDLY_USB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.h
      type_or_value: (fu_huddly_usb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FRESCO_PD_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.h
      type_or_value: (fu_fresco_pd_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fresco_pd_device_to_string
  - fu_fresco_pd_device_transfer_read
  - fu_fresco_pd_device_transfer_write
  - fu_fresco_pd_device_read_byte
  - fu_fresco_pd_device_write_byte
  - fu_fresco_pd_device_set_byte
  - fu_fresco_pd_device_and_byte
  - fu_fresco_pd_device_or_byte
  - fu_fresco_pd_device_setup
  - fu_fresco_pd_device_prepare_firmware
  - fu_fresco_pd_device_panther_reset_device
  - fu_fresco_pd_device_write_firmware
  - fu_fresco_pd_device_set_progress
  - fu_fresco_pd_device_init
  - fu_fresco_pd_device_class_init
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: customer_id
        type: guint8
      item_type: struct
      name: _FuFrescoPdDevice
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_fresco_pd_version_from_buf
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fresco_pd_plugin_init
  - fu_fresco_pd_plugin_constructed
  - fu_fresco_pd_plugin_class_init
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFrescoPdPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_fresco_pd_firmware_get_customer_id
  - fu_fresco_pd_firmware_export
  - fu_fresco_pd_firmware_parse
  - fu_fresco_pd_firmware_init
  - fu_fresco_pd_firmware_class_init
  - fu_fresco_pd_firmware_new
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: customer_id
        type: guint8
      item_type: struct
      name: _FuFrescoPdFirmware
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FRESCO_PD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.h
      type_or_value: (fu_fresco_pd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_corsair_version_from_uint32
  source_file: /src/fwupd/plugins/corsair/fu-corsair-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_corsair_plugin_init
  - fu_corsair_plugin_constructed
  - fu_corsair_plugin_class_init
  source_file: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCorsairPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CORSAIR_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
      type_or_value: (fu_corsair_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuCorsairDeviceClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
    typedefs: []
    union: []
- function_names:
  - fu_corsair_device_probe
  - fu_corsair_device_poll_subdevice
  - fu_corsair_device_get_version
  - fu_corsair_device_get_bootloader_version
  - fu_corsair_device_setup
  - fu_corsair_device_reload
  - fu_corsair_device_is_subdevice_connected_cb
  - fu_corsair_device_reconnect_subdevice
  - fu_corsair_device_ensure_mode
  - fu_corsair_device_attach
  - fu_corsair_device_detach
  - fu_corsair_device_write_firmware
  - fu_corsair_device_to_string
  - fu_corsair_device_set_progress
  - fu_corsair_device_set_quirk_kv
  - fu_corsair_device_poll
  - fu_corsair_device_finalize
  - fu_corsair_device_class_init
  - fu_corsair_device_init
  - fu_corsair_device_new
  source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CORSAIR_DEFAULT_VENDOR_INTERFACE_ID
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CORSAIR_TRANSACTION_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '4000'
    - item_type: preproc_def
      name: CORSAIR_SUBDEVICE_POLL_PERIOD
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: CORSAIR_SUBDEVICE_REBOOT_DELAY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '4000 '
    - item_type: preproc_def
      name: CORSAIR_SUBDEVICE_RECONNECT_RETRIES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: CORSAIR_SUBDEVICE_RECONNECT_PERIOD
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: CORSAIR_SUBDEVICE_FIRST_POLL_DELAY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '2000 '
    - item_type: preproc_def
      name: FU_CORSAIR_DEVICE_FLAG_LEGACY_ATTACH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '"legacy-attach"'
    - item_type: preproc_def
      name: FU_CORSAIR_DEVICE_FLAG_IS_SUBDEVICE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '"is-subdevice"'
    - item_type: preproc_def
      name: FU_CORSAIR_DEVICE_FLAG_NO_VERSION_IN_BOOTLOADER
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '"no-version-in-bl"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: device_kind
        type: FuCorsairDeviceKind
      - name: vendor_interface
        type: guint8
      - name: '*subdevice_id'
        type: gchar
      - name: '*bp'
        type: FuCorsairBp
      item_type: struct
      name: _FuCorsairDevice
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CORSAIR_BP
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.h
      type_or_value: (fu_corsair_bp_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuCorsairBpClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_corsair_bp_command
  - fu_corsair_bp_flush_input_reports
  - fu_corsair_bp_write_first_chunk
  - fu_corsair_bp_write_chunk
  - fu_corsair_bp_incorporate
  - fu_corsair_bp_init
  - fu_corsair_bp_get_property
  - fu_corsair_bp_set_mode
  - fu_corsair_bp_write_firmware_chunks
  - fu_corsair_bp_commit_firmware
  - fu_corsair_bp_write_firmware
  - fu_corsair_bp_activate_firmware
  - fu_corsair_bp_attach
  - fu_corsair_bp_detach
  - fu_corsair_bp_to_string
  - fu_corsair_bp_class_init
  - fu_corsair_bp_new
  - fu_corsair_bp_set_cmd_size
  - fu_corsair_bp_set_endpoints
  - fu_corsair_bp_set_legacy_attach
  source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CORSAIR_DEFAULT_VENDOR_INTERFACE_ID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CORSAIR_ACTIVATION_TIMEOUT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: CORSAIR_MODE_BOOTLOADER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CORSAIR_FIRST_CHUNK_HEADER_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '7'
    - item_type: preproc_def
      name: CORSAIR_NEXT_CHUNKS_HEADER_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CORSAIR_TRANSACTION_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: CORSAIR_DEFAULT_CMD_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '64'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_PROPERTY_ID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_PROPERTY_VALUE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_CRC
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_MODE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_STATUS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_FIRMWARE_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_SET_MODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: CORSAIR_OFFSET_CMD_DESTINATION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CORSAIR_INPUT_FLUSH_TIMEOUT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CORSAIR_INPUT_FLUSH_ITERATIONS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
      type_or_value: '3'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: destination
        type: guint8
      - name: epin
        type: guint8
      - name: epout
        type: guint8
      - name: cmd_write_size
        type: guint16
      - name: cmd_read_size
        type: guint16
      - name: is_legacy_attach
        type: gboolean
      item_type: struct
      name: _FuCorsairBp
      pos:
        line_end: 47
        line_start: 39
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    typedefs:
    - item_type: typedef
      name: FuCorsairBpDestination
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/fwupd/plugins/corsair/fu-corsair-bp.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CORSAIR_MAX_CMD_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/corsair/fu-corsair-common.h
      type_or_value: '1024'
    structs: []
    typedefs:
    - item_type: typedef
      name: FuCorsairBpProperty
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/fwupd/plugins/corsair/fu-corsair-common.h
    - item_type: typedef
      name: FuCorsairDeviceMode
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/fwupd/plugins/corsair/fu-corsair-common.h
    union: []
- function_names:
  - fu_intel_cvs_plugin_init
  - fu_intel_cvs_plugin_constructed
  - fu_intel_cvs_plugin_class_init
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelCvsPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_cvs_firmware_export
  - fu_intel_cvs_firmware_validate
  - fu_intel_cvs_firmware_parse
  - fu_intel_cvs_firmware_get_vid
  - fu_intel_cvs_firmware_get_pid
  - fu_intel_cvs_firmware_init
  - fu_intel_cvs_firmware_class_init
  - fu_intel_cvs_firmware_new
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      item_type: struct
      name: _FuIntelCvsFirmware
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_cvs_device_to_string
  - fu_intel_cvs_device_setup
  - fu_intel_cvs_device_vid_notify_cb
  - fu_intel_cvs_device_pid_notify_cb
  - fu_intel_cvs_device_prepare_firmware
  - fu_intel_cvs_device_check_status_cb
  - fu_intel_cvs_device_write_firmware
  - fu_intel_cvs_device_set_quirk_kv
  - fu_intel_cvs_device_set_progress
  - fu_intel_cvs_device_init
  - fu_intel_cvs_device_class_init
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_INTEL_CVS_DEVICE_SYSFS_TIMEOUT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
      type_or_value: '500 '
    structs:
    - fields:
      - name: parent_instance
        type: FuI2cDevice
      - name: max_download_time
        type: guint32
      - name: max_retry_count
        type: guint32
      item_type: struct
      name: _FuIntelCvsDevice
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_CVS_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.h
      type_or_value: (fu_intel_cvs_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_CVS_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.h
      type_or_value: (fu_intel_cvs_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logind_plugin_to_string
  - fu_logind_plugin_startup
  - fu_logind_plugin_composite_prepare
  - fu_logind_plugin_composite_cleanup
  - fu_logind_plugin_init
  - fu_logind_plugin_finalize
  - fu_logind_plugin_class_init
  source_file: /src/fwupd/plugins/logind/fu-logind-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*logind_proxy'
        type: GDBusProxy
      - name: logind_fd
        type: gint
      item_type: struct
      name: _FuLogindPlugin
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/logind/fu-logind-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logind/fu-logind-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_linux_tainted_plugin_changed_cb
  - fu_linux_tainted_plugin_startup
  - fu_linux_tainted_plugin_add_security_attrs
  - fu_linux_tainted_plugin_init
  - fu_linux_tainted_plugin_finalize
  - fu_linux_tainted_plugin_class_init
  source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_PROPRIETARY_MODULE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_MODULE_FORCE_LOAD
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_KERNEL_OUT_OF_SPEC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_MODULE_FORCE_UNLOAD
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_PROCESSOR_MCE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_BAD_PAGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_REQUESTED_BY_USERSPACE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_KERNEL_DIED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_ACPI_OVERRIDDEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_KERNEL_ISSUED_WARNING
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_STAGING_DRIVER_LOADED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_FIRMWARE_WORKAROUND_APPLIED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_EXTERNAL_MODULE_LOADED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_UNSIGNED_MODULE_LOADED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_SOFT_LOCKUP_OCCURRED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_KERNEL_LIVE_PATCHED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_AUXILIARY_TAINT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_STRUCT_RANDOMIZATION_PLUGIN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: KERNEL_TAINT_FLAG_IN_KERNEL_TEST
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
      type_or_value: (1 << 18)
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*file'
        type: GFile
      - name: '*monitor'
        type: GFileMonitor
      item_type: struct
      name: _FuLinuxTaintedPlugin
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_SCALER_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.h
      type_or_value: (fu_genesys_scaler_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_scaler_device_enter_serial_debug_mode
  - fu_genesys_scaler_device_exit_serial_debug_mode
  - fu_genesys_scaler_device_enter_single_step_mode
  - fu_genesys_scaler_device_exit_single_step_mode
  - fu_genesys_scaler_device_enter_debug_mode
  - fu_genesys_scaler_device_mst_i2c_bus_ctrl
  - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
  - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
  - fu_genesys_scaler_device_disable_wp
  - fu_genesys_scaler_device_pause_r2_cpu
  - fu_genesys_scaler_device_set_isp_mode
  - fu_genesys_scaler_device_enter_isp_mode
  - fu_genesys_scaler_device_exit_isp_mode
  - fu_genesys_scaler_device_detach
  - fu_genesys_scaler_device_attach
  - fu_genesys_scaler_device_get_level
  - fu_genesys_scaler_device_get_version
  - fu_genesys_scaler_device_get_public_key
  - fu_genesys_scaler_device_read_flash
  - fu_genesys_scaler_device_wait_flash_control_register_cb
  - fu_genesys_scaler_device_flash_control_write_enable
  - fu_genesys_scaler_device_flash_control_write_status
  - fu_genesys_scaler_device_flash_control_sector_erase
  - fu_genesys_scaler_device_erase_flash
  - fu_genesys_scaler_device_flash_control_page_program
  - fu_genesys_scaler_device_write_sector
  - fu_genesys_scaler_device_write_flash
  - fu_genesys_scaler_device_calculate_checksum
  - fu_genesys_scaler_device_get_ddcci_data
  - fu_genesys_scaler_device_get_firmware_packet_version
  - fu_genesys_scaler_device_probe
  - fu_genesys_scaler_device_setup
  - fu_genesys_scaler_device_dump_firmware
  - fu_genesys_scaler_device_prepare_firmware
  - fu_genesys_scaler_device_write_firmware
  - fu_genesys_scaler_device_set_progress
  - fu_genesys_scaler_device_to_string
  - fu_genesys_scaler_device_set_quirk_kv
  - fu_genesys_scaler_device_init
  - fu_genesys_scaler_device_finalize
  - fu_genesys_scaler_device_class_init
  - fu_genesys_scaler_device_new
  source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GENESYS_SCALER_BANK_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: 0x200000U
    - item_type: preproc_def
      name: GENESYS_SCALER_MSTAR_READ
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x7a'
    - item_type: preproc_def
      name: GENESYS_SCALER_MSTAR_WRITE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x7b'
    - item_type: preproc_def
      name: GENESYS_SCALER_MSTAR_DATA_OUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x7c'
    - item_type: preproc_def
      name: GENESYS_SCALER_MSTAR_DATA_IN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: GENESYS_SCALER_CMD_DDCCI_FIRMWARE_PACKET_VERSION
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: GENESYS_SCALER_CMD_DATA_WRITE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: GENESYS_SCALER_CMD_DATA_READ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x11'
    - item_type: preproc_def
      name: GENESYS_SCALER_CMD_DATA_END
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0x12'
    - item_type: preproc_def
      name: GENESYS_SCALER_INFO
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '0xA4'
    - item_type: preproc_def
      name: GENESYS_SCALER_USB_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SCALER_FLAG_PAUSE_R2_CPU
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '"pause-r2-cpu"'
    - item_type: preproc_def
      name: FU_SCALER_FLAG_USE_I2C_CH0
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: '"use-i2c-ch0"'
    structs:
    - fields:
      - name: req_read
        type: guint8
      - name: req_write
        type: guint8
      item_type: struct
      name: FuGenesysVendorCommand
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    - fields:
      - name: stage
        type: guint8
      - name: model
        type: guint8
      - name: major
        type: guint8
      - name: minor
        type: guint8
      item_type: struct
      name: FuGenesysScalerFirmwarePacketVersion
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: level
        type: guint8
      - name: public_key
        type: FuGenesysPublicKey
      - name: cfi_flash_id
        type: guint32
      - name: '*cfi_device'
        type: FuCfiDevice
      - name: vc
        type: FuGenesysVendorCommand
      - name: sector_size
        type: guint32
      - name: page_size
        type: guint32
      - name: transfer_size
        type: guint32
      - name: gpio_out_reg
        type: guint16
      - name: gpio_en_reg
        type: guint16
      - name: gpio_val
        type: guint8
      item_type: struct
      name: _FuGenesysScalerDevice
      pos:
        line_end: 57
        line_start: 44
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    typedefs: []
    union: []
- function_names:
  - fu_genesys_usbhub_device_set_hid_channel
  - fu_genesys_usbhub_device_ctrl_transfer
  - fu_genesys_usbhub_device_mstar_scaler_setup
  - fu_genesys_usbhub_device_read_flash
  - fu_genesys_usbhub_device_compare_flash_blank
  - fu_genesys_usbhub_device_compare_flash_data
  - fu_genesys_usbhub_device_reset
  - fu_genesys_usbhub_device_cfi_setup
  - fu_genesys_usbhub_device_wait_flash_status_register_cb
  - fu_genesys_usbhub_device_set_isp_mode
  - fu_genesys_usbhub_device_authentication_request
  - fu_genesys_usbhub_device_authenticate
  - fu_genesys_usbhub_device_enter_isp_mode
  - fu_genesys_usbhub_device_get_descriptor_data
  - fu_genesys_usbhub_device_check_fw_signature
  - fu_genesys_usbhub_device_get_fw_bank_code_size
  - fu_genesys_usbhub_device_get_fw_bank_version
  - fu_genesys_usbhub_device_get_public_key
  - fu_genesys_usbhub_device_tsdigit_value
  - fu_genesys_usbhub_device_validate_token
  - fu_genesys_usbhub_device_get_info_from_static_ts
  - fu_genesys_usbhub_device_get_info_from_dynamic_ts
  - fu_genesys_usbhub_device_get_info_from_vendor_ts
  - fu_genesys_usbhub_device_get_info_from_project_ts
  - fu_genesys_usbhub_device_detach
  - fu_genesys_usbhub_device_attach
  - fu_genesys_usbhub_device_dump_firmware
  - fu_genesys_usbhub_device_probe
  - fu_genesys_usbhub_device_open
  - fu_genesys_usbhub_device_close
  - fu_genesys_usbhub_device_setup
  - fu_genesys_usbhub_device_codesign_to_string
  - fu_genesys_usbhub_device_to_string
  - fu_genesys_usbhub_device_prepare
  - fu_genesys_usbhub_device_compare_fw_public_key
  - fu_genesys_usbhub_device_adjust_fw_addr
  - fu_genesys_usbhub_device_prepare_firmware
  - fu_genesys_usbhub_device_erase_flash
  - fu_genesys_usbhub_device_write_flash
  - fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
  - fu_genesys_usbhub_device_update_firmware
  - fu_genesys_usbhub_device_setup_hw_module
  - fu_genesys_usbhub_device_send_hash_data_length
  - fu_genesys_usbhub_device_send_hash_digest
  - fu_genesys_usbhub_device_check_hash_digest_verification
  - fu_genesys_usbhub_device_toggle_hw_read_key
  - fu_genesys_usbhub_device_send_signature
  - fu_genesys_usbhub_device_check_signature_verification
  - fu_genesys_usbhub_device_compare_firmware_flash_data
  - fu_genesys_usbhub_device_examine_fw_codesign_hw
  - fu_genesys_usbhub_device_write_firmware
  - fu_genesys_usbhub_device_set_progress
  - fu_genesys_usbhub_device_set_quirk_kv
  - fu_genesys_usbhub_device_init
  - fu_genesys_usbhub_device_finalize
  - fu_genesys_usbhub_device_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_GENESYS_USBHUB_FLAG_HAS_MSTAR_SCALER
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '"has-mstar-scaler"'
    - item_type: preproc_def
      name: FU_GENESYS_USBHUB_FLAG_HAS_PUBLIC_KEY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '"has-public-key"'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_DESC_IDX_USB_3_0
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x84'
    - item_type: preproc_def
      name: GENESYS_USBHUB_DYNAMIC_TOOL_DESC_IDX_USB_3_0
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x85'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_DESC_IDX_USB_2_0
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: GENESYS_USBHUB_DYNAMIC_TOOL_DESC_IDX_USB_2_0
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_INFO_DESC_IDX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: GENESYS_USBHUB_VENDOR_SUPPORT_DESC_IDX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: GENESYS_USBHUB_BRAND_PROJECT_DESC_IDX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x8A'
    - item_type: preproc_def
      name: GENESYS_USBHUB_GL_HUB_VERIFY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x71'
    - item_type: preproc_def
      name: GENESYS_USBHUB_GL_HUB_SWITCH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: GENESYS_USBHUB_GL_HUB_READ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: GENESYS_USBHUB_GL_HUB_WRITE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: GENESYS_USBHUB_GL_HUB_HW_SECURITY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0xAC'
    - item_type: preproc_def
      name: GENESYS_USBHUB_ENCRYPT_REGION_START
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: GENESYS_USBHUB_ENCRYPT_REGION_END
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x15'
    - item_type: preproc_def
      name: GENESYS_USBHUB_USB_TIMEOUT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: GENESYS_USBHUB_FLASH_WRITE_TIMEOUT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: "500\t"
    - item_type: preproc_def
      name: GL3523_BONDING_VALID_BIT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: GL3590_BONDING_VALID_BIT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: '0x7F'
    - item_type: preproc_def
      name: GL3523_BONDING_FLASH_DUMP_LOCATION_BIT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: 1 << 4
    - item_type: preproc_def
      name: GL3590_BONDING_FLASH_DUMP_LOCATION_BIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
      type_or_value: 1 << 7
    structs:
    - fields:
      - name: req_switch
        type: guint8
      - name: req_read
        type: guint8
      - name: req_write
        type: guint8
      item_type: struct
      name: FuGenesysVendorCommandSetting
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    - fields:
      - name: cmd
        type: guint16
      - name: len
        type: guint16
      item_type: struct
      name: FuGenesysQueryRdidFormat
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    - fields:
      - name: chip
        type: FuGenesysChip
      - name: support_dual_bank
        type: gboolean
      - name: support_code_size
        type: gboolean
      - name: fw_bank_addr[FW_BANK_COUNT][FU_GENESYS_FW_TYPE_INSIDE_HUB_COUNT]
        type: guint32
      - name: fw_bank_capacity[FU_GENESYS_FW_TYPE_INSIDE_HUB_COUNT]
        type: guint32
      - name: fw_data_max_count
        type: guint32
      item_type: struct
      name: FuGenesysModelSpec
      pos:
        line_end: 79
        line_start: 72
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: '*st_static_ts'
        type: GByteArray
      - name: '*st_dynamic_ts'
        type: GByteArray
      - name: '*st_fwinfo_ts'
        type: GByteArray
      - name: '*st_vendor_ts'
        type: GByteArray
      - name: '*st_project_ts'
        type: GByteArray
      - name: vcs
        type: FuGenesysVendorCommandSetting
      - name: spec
        type: FuGenesysModelSpec
      - name: tool_string_version
        type: FuGenesysTsVersion
      - name: running_bank
        type: FuGenesysFwStatus
      - name: bonding
        type: guint8
      - name: is_gl352350
        type: gboolean
      - name: '*cfi_device'
        type: FuCfiDevice
      - name: flash_erase_delay
        type: guint32
      - name: flash_write_delay
        type: guint32
      - name: flash_block_size
        type: guint32
      - name: flash_sector_size
        type: guint32
      - name: flash_rw_size
        type: guint32
      - name: fw_bank_code_sizes[FW_BANK_COUNT][FU_GENESYS_FW_TYPE_INSIDE_HUB_COUNT]
        type: guint16
      - name: fw_bank_vers[FW_BANK_COUNT][FU_GENESYS_FW_TYPE_INSIDE_HUB_COUNT]
        type: guint16
      - name: update_fw_banks[FU_GENESYS_FW_TYPE_INSIDE_HUB_COUNT]
        type: FuGenesysFwBank
      - name: backup_hub_fw_bank1
        type: gboolean
      - name: '*hub_fw_bank1_data'
        type: GBytes
      - name: has_codesign
        type: gboolean
      - name: has_hw_codesign
        type: gboolean
      - name: codesign_check
        type: FuGenesysVsCodesignCheck
      - name: codesign
        type: FuGenesysFwCodesign
      - name: '*st_codesign'
        type: GByteArray
      - name: '*st_public_key'
        type: GByteArray
      - name: '*hid_channel'
        type: FuGenesysHubhidDevice
      item_type: struct
      name: _FuGenesysUsbhubDevice
      pos:
        line_end: 131
        line_start: 81
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    typedefs:
    - item_type: typedef
      name: FuGenesysIspMode
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    - item_type: typedef
      name: FuGenesysFwBank
      pos:
        line_end: 70
        line_start: 65
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    union: []
- function_names:
  - fu_genesys_usbhub_firmware_get_chip
  - fu_genesys_usbhub_firmware_verify_checksum
  - fu_genesys_usbhub_firmware_calculate_size
  - fu_genesys_usbhub_firmware_ensure_version
  - fu_genesys_usbhub_firmware_validate
  - fu_genesys_usbhub_firmware_parse
  - fu_genesys_usbhub_firmware_write
  - fu_genesys_usbhub_firmware_export
  - fu_genesys_usbhub_firmware_build
  - fu_genesys_usbhub_firmware_convert_version
  - fu_genesys_usbhub_firmware_init
  - fu_genesys_usbhub_firmware_finalize
  - fu_genesys_usbhub_firmware_class_init
  - fu_genesys_usbhub_firmware_new
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: '*st_static_ts'
        type: GByteArray
      - name: chip
        type: FuGenesysChip
      item_type: struct
      name: _FuGenesysUsbhubFirmware
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_USBHUB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.h
      type_or_value: (fu_genesys_usbhub_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_plugin_init
  - fu_genesys_plugin_constructed
  - fu_genesys_plugin_get_device_by_physical_id
  - fu_genesys_plugin_device_added
  - fu_genesys_plugin_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuGenesysPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_HUBHID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.h
      type_or_value: (fu_genesys_hubhid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_usbhub_pd_firmware_validate
  - fu_genesys_usbhub_pd_firmware_parse
  - fu_genesys_usbhub_pd_firmware_init
  - fu_genesys_usbhub_pd_firmware_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuGenesysUsbhubPdFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_genesys_usbhub_dev_firmware_validate
  - fu_genesys_usbhub_dev_firmware_parse
  - fu_genesys_usbhub_dev_firmware_init
  - fu_genesys_usbhub_dev_firmware_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuGenesysUsbhubDevFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_scaler_firmware_parse
  - fu_genesys_scaler_firmware_export
  - fu_genesys_scaler_firmware_build
  - fu_genesys_scaler_firmware_write
  - fu_genesys_scaler_firmware_init
  - fu_genesys_scaler_firmware_class_init
  - fu_genesys_scaler_firmware_new
  source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: public_key
        type: FuGenesysPublicKey
      item_type: struct
      name: _FuGenesysScalerFirmware
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_SCALER_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.h
      type_or_value: (fu_genesys_scaler_firmware_get_type())
    - item_type: preproc_def
      name: GENESYS_SCALER_BANK_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.h
      type_or_value: 0x200000U
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_hubhid_device_command_read
  - fu_genesys_hubhid_device_can_pack_report
  - fu_genesys_hubhid_device_command_write
  - fu_genesys_hubhid_device_send_report
  - fu_genesys_hubhid_device_validate_token
  - fu_genesys_hubhid_device_probe
  - fu_genesys_hubhid_device_setup
  - fu_genesys_hubhid_device_init
  - fu_genesys_hubhid_device_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GENESYS_HUBHID_REPORT_ID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GENESYS_HUBHID_REPORT_BYTE_LENGTH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: GENESYS_HUBHID_REPORT_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
      type_or_value: '100 '
    - item_type: preproc_def
      name: GENESYS_HUBHID_REPORT_FLAGS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
      type_or_value: FU_HID_DEVICE_FLAG_ALLOW_TRUNC | FU_HID_DEVICE_FLAG_IS_FEATURE
    structs:
    - fields:
      - name: req_type
        type: FuGenesysUsbRequestType
      - name: request
        type: guint8
      - name: value
        type: guint16
      - name: index
        type: guint16
      - name: length
        type: guint16
      item_type: struct
      name: FuGenesysUsbSetup
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: support_report_pack
        type: gboolean
      - name: report_length
        type: guint16
      - name: max_report_pack_data_length
        type: guint16
      item_type: struct
      name: _FuGenesysHubhidDevice
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    typedefs: []
    union:
    - fields:
      - name: bm
        type: guint8
      item_type: union
      name: FuGenesysUsbRequestType
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_USBHUB_DEV_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.h
      type_or_value: (fu_genesys_usbhub_dev_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_usbhub_codesign_firmware_get_codesign
  - fu_genesys_usbhub_codesign_firmware_validate
  - fu_genesys_usbhub_codesign_firmware_parse
  - fu_genesys_usbhub_codesign_firmware_export
  - fu_genesys_usbhub_codesign_firmware_init
  - fu_genesys_usbhub_codesign_firmware_class_init
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: codesign
        type: FuGenesysFwCodesign
      item_type: struct
      name: _FuGenesysUsbhubCodesignFirmware
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_USBHUB_CODESIGN_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.h
      type_or_value: (fu_genesys_usbhub_codesign_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_CONFIGURATION_OFFSET
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_CONFIGURATION_WITHOUT_SERIAL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x55'
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_CONFIGURATION_WITH_SERIAL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0xAA'
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_CONFIGURATION_NEW_FORMAT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0xA5'
    - item_type: preproc_def
      name: GENESYS_USBHUB_FW_CONFIGURATION_NEW_FORMAT_V2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0xA6'
    - item_type: preproc_def
      name: GENESYS_USBHUB_CODE_SIZE_OFFSET
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0xFB'
    - item_type: preproc_def
      name: GENESYS_USBHUB_VERSION_OFFSET
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x10E'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3521
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x221'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3523
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x221'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3590
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x241'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3525
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x251'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3525_V2
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x1E1'
    structs:
    - fields:
      - name: N[0x206]
        type: guint8
      - name: E[0x00c]
        type: guint8
      item_type: struct
      name: FuGenesysPublicKey
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
    - fields:
      - name: reg
        type: guint8
      - name: expected_val
        type: guint8
      item_type: struct
      name: FuGenesysWaitFlashRegisterHelper
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
    - fields:
      - name: model
        type: FuGenesysModel
      - name: revision
        type: gint32
      item_type: struct
      name: FuGenesysChip
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
    typedefs:
    - item_type: typedef
      name: FuGenesysModel
      pos:
        line_end: 34
        line_start: 21
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_USBHUB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.h
      type_or_value: (fu_genesys_usbhub_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_USBHUB_PD_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.h
      type_or_value: (fu_genesys_usbhub_pd_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_parade_usbhub_plugin_init
  - fu_parade_usbhub_plugin_constructed
  - fu_parade_usbhub_plugin_class_init
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuParadeUsbhubPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PARADE_USBHUB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.h
      type_or_value: (fu_parade_usbhub_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-common.h
      type_or_value: '0x60000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_parade_usbhub_device_to_string
  - fu_parade_usbhub_device_mmio_read_u8
  - fu_parade_usbhub_device_mmio_read
  - fu_parade_usbhub_device_mmio_write_raw
  - fu_parade_usbhub_device_mmio_write
  - fu_parade_usbhub_device_mmio_write_u8
  - fu_parade_usbhub_device_mmio_write_u16
  - fu_parade_usbhub_device_mmio_write_u24
  - fu_parade_usbhub_device_mmio_set_bit
  - fu_parade_usbhub_device_mmio_clear_bit
  - fu_parade_usbhub_device_spi_rom_wait_done_cb
  - fu_parade_usbhub_device_spi_rom_wait_done
  - fu_parade_usbhub_device_spi_read_dma_dbi
  - fu_parade_usbhub_device_spi_write_dma_dbi
  - fu_parade_usbhub_device_spi_data_read
  - fu_parade_usbhub_device_spi_data_write
  - fu_parade_usbhub_device_spi_data_write_ex
  - fu_parade_usbhub_device_spi_write_command
  - fu_parade_usbhub_device_enable_spi_master
  - fu_parade_usbhub_device_disable_spi_master
  - fu_parade_usbhub_device_spi_wait_status_cb
  - fu_parade_usbhub_device_spi_wait_status
  - fu_parade_usbhub_device_acquire_spi_master
  - fu_parade_usbhub_device_spi_rom_chip_unprotect
  - fu_parade_usbhub_device_spi_rom_erase_sector
  - fu_parade_usbhub_device_spi_rom_erase
  - fu_parade_usbhub_device_sram_set_page
  - fu_parade_usbhub_device_sram_page_write
  - fu_parade_usbhub_device_spi_rom_write_trigger
  - fu_parade_usbhub_device_spi_rom_write
  - fu_parade_usbhub_device_spi_rom_chip_protect
  - fu_parade_usbhub_device_calculate_checksum
  - fu_parade_usbhub_device_spi_rom_checksum
  - fu_parade_usbhub_device_set_ufp_disconnect_flag
  - fu_parade_usbhub_device_ensure_version
  - fu_parade_usbhub_device_detach
  - fu_parade_usbhub_device_attach
  - fu_parade_usbhub_device_setup
  - fu_parade_usbhub_device_prepare
  - fu_parade_usbhub_device_cleanup
  - fu_parade_usbhub_device_prepare_firmware
  - fu_parade_usbhub_device_write_firmware
  - fu_parade_usbhub_device_set_progress
  - fu_parade_usbhub_device_convert_version
  - fu_parade_usbhub_device_set_quirk_kv
  - fu_parade_usbhub_device_init
  - fu_parade_usbhub_device_constructed
  - fu_parade_usbhub_device_finalize
  - fu_parade_usbhub_device_class_init
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_TIMEOUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '1500 '
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_BANK_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_ADDRESS_BANK4_HUB_FIRMWARE_1
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_ADDRESS_BANK5_HUB_FIRMWARE_2
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '0x50000'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_ERASE_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: 4096u
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_SPI_ROM_CHECKSUM_BUFFER_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DMA_SRAM_ADDRESS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '0xF800'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DMA_SRAM_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_SPI_BURST_DBI_MAX
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_MMIO_BURST_WRITE_MAX
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_SPI_RETRY_COUNT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_SPI_RETRY_DELAY
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '50 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: '*cfi_device'
        type: FuCfiDevice
      - name: chip
        type: FuParadeUsbhubChip
      - name: spi_address
        type: guint32
      item_type: struct
      name: _FuParadeUsbhubDevice
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PARADE_USBHUB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.h
      type_or_value: (fu_parade_usbhub_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_parade_usbhub_firmware_validate
  - fu_parade_usbhub_firmware_parse
  - fu_parade_usbhub_firmware_convert_version
  - fu_parade_usbhub_firmware_init
  - fu_parade_usbhub_firmware_class_init
  - fu_parade_usbhub_firmware_new
  source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuParadeUsbhubFirmware
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_android_boot_device_to_string
  - fu_android_boot_device_probe
  - fu_android_boot_device_setup
  - fu_android_boot_device_open
  - fu_android_boot_device_write
  - fu_android_boot_device_erase
  - fu_android_boot_device_verify
  - fu_android_boot_device_write_firmware
  - fu_android_boot_device_set_quirk_kv
  - fu_android_boot_device_finalize
  - fu_android_boot_device_init
  - fu_android_boot_device_class_init
  source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ANDROID_BOOT_UNKNOWN_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
      type_or_value: '"0.0.0"'
    - item_type: preproc_def
      name: ANDROID_BOOT_SECTOR_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
      type_or_value: '512'
    structs:
    - fields:
      - name: parent_instance
        type: FuBlockPartition
      - name: '*boot_slot'
        type: gchar
      - name: max_size
        type: guint64
      item_type: struct
      name: _FuAndroidBootDevice
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_android_boot_plugin_init
  - fu_android_boot_plugin_constructed
  - fu_android_boot_plugin_class_init
  source_file: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAndroidBootPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ANDROID_BOOT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/android-boot/fu-android-boot-device.h
      type_or_value: (fu_android_boot_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FASTBOOT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.h
      type_or_value: (fu_fastboot_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fastboot_device_to_string
  - fu_fastboot_device_probe
  - fu_fastboot_device_write
  - fu_fastboot_device_writestr
  - fu_fastboot_device_read
  - fu_fastboot_device_getvar
  - fu_fastboot_device_cmd
  - fu_fastboot_device_flash
  - fu_fastboot_device_download
  - fu_fastboot_device_setup
  - fu_fastboot_device_write_qfil_part
  - fu_fastboot_device_write_motorola_part
  - fu_fastboot_device_write_motorola
  - fu_fastboot_device_write_qfil
  - fu_fastboot_device_write_firmware
  - fu_fastboot_device_set_quirk_kv
  - fu_fastboot_device_attach
  - fu_fastboot_device_set_progress
  - fu_fastboot_device_init
  - fu_fastboot_device_class_init
  source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FASTBOOT_REMOVE_DELAY_RE_ENUMERATE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: '60000 '
    - item_type: preproc_def
      name: FASTBOOT_TRANSACTION_TIMEOUT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: "1000\t "
    - item_type: preproc_def
      name: FASTBOOT_TRANSACTION_RETRY_MAX
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: '600'
    - item_type: preproc_def
      name: FASTBOOT_EP_IN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FASTBOOT_EP_OUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FASTBOOT_CMD_BUFSZ
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
      type_or_value: '64 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: blocksz
        type: guint
      - name: operation_delay
        type: guint
      item_type: struct
      name: _FuFastbootDevice
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    - fields:
      - name: kind
        type: GChecksumType
      - name: '*str'
        type: gchar
      item_type: struct
      name: "csum_kinds[] = {{G_CHECKSUM_MD5, \"MD5\"},\n\t\t\t\t  {G_CHECKSUM_SHA1,
        \"SHA1\"},\n\t\t\t\t  {G_CHECKSUM_SHA256, \"SHA256\"},\n\t\t\t\t  {0, NULL}}"
      pos:
        line_end: 458
        line_start: 455
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    typedefs:
    - item_type: typedef
      name: FuFastbootDeviceReadFlags
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    union: []
- function_names:
  - fu_fastboot_plugin_init
  - fu_fastboot_plugin_constructed
  - fu_fastboot_plugin_class_init
  source_file: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFastbootPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_analogix_device_to_string
  - fu_analogix_device_send
  - fu_analogix_device_receive
  - fu_analogix_device_get_update_status
  - fu_analogix_device_setup
  - fu_analogix_device_find_interface
  - fu_analogix_device_probe
  - fu_analogix_device_write_chunks
  - fu_analogix_device_write_image
  - fu_analogix_device_write_firmware
  - fu_analogix_device_attach
  - fu_analogix_device_set_progress
  - fu_analogix_device_init
  - fu_analogix_device_class_init
  source_file: /src/fwupd/plugins/analogix/fu-analogix-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: ocm_version
        type: guint16
      - name: custom_version
        type: guint16
      item_type: struct
      name: _FuAnalogixDevice
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/analogix/fu-analogix-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/analogix/fu-analogix-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_analogix_firmware_parse
  - fu_analogix_firmware_convert_version
  - fu_analogix_firmware_init
  - fu_analogix_firmware_class_init
  source_file: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuIhexFirmwareClass
      item_type: struct
      name: _FuAnalogixFirmware
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/analogix/fu-analogix-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ANALOGIX_FIRMWARE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/plugins/analogix/fu-analogix-firmware.h
      type_or_value: (fu_analogix_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ANX_BB_TRANSACTION_TIMEOUT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '5000 '
    - item_type: preproc_def
      name: BILLBOARD_CLASS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: BILLBOARD_SUBCLASS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BILLBOARD_PROTOCOL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BILLBOARD_MAX_PACKET_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '64'
    - item_type: preproc_def
      name: OCM_FLASH_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x18000'
    - item_type: preproc_def
      name: SECURE_OCM_TX_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: SECURE_OCM_RX_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: CUSTOM_FLASH_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FLASH_OCM_ADDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FLASH_TXFW_ADDR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x31000'
    - item_type: preproc_def
      name: FLASH_RXFW_ADDR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x34000'
    - item_type: preproc_def
      name: FLASH_CUSTOM_ADDR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x38000'
    - item_type: preproc_def
      name: OCM_FW_VERSION_ADDR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
      type_or_value: '0x14FF0'
    structs: []
    typedefs:
    - item_type: typedef
      name: AnxBbRqtCode
      pos:
        line_end: 35
        line_start: 27
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
    - item_type: typedef
      name: AnxwValCode
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/fwupd/plugins/analogix/fu-analogix-common.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/analogix/fu-analogix-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ANALOGIX_DEVICE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/plugins/analogix/fu-analogix-device.h
      type_or_value: (fu_analogix_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_analogix_plugin_init
  - fu_analogix_plugin_constructed
  - fu_analogix_plugin_class_init
  source_file: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAnalogixPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaprom_reply_new
  - fu_synaprom_error_from_status
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaprom_config_setup
  - fu_synaprom_config_prepare_firmware
  - fu_synaprom_config_write_firmware
  - fu_synaprom_config_init
  - fu_synaprom_config_constructed
  - fu_synaprom_config_attach
  - fu_synaprom_config_detach
  - fu_synaprom_config_class_init
  - fu_synaprom_config_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPROM_CMD_IOTA_FIND_FLAGS_ALLIOTAS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
      type_or_value: "0x0001\t     "
    - item_type: preproc_def
      name: FU_SYNAPROM_CMD_IOTA_FIND_FLAGS_READMAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
      type_or_value: "0x0002\t     "
    - item_type: preproc_def
      name: FU_SYNAPROM_MAX_IOTA_READ_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
      type_or_value: '(64 * 1024) '
    - item_type: preproc_def
      name: FU_SYNAPROM_IOTA_ITYPE_CONFIG_VERSION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
      type_or_value: '0x0009 '
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: configid1
        type: guint32
      - name: configid2
        type: guint32
      item_type: struct
      name: _FuSynapromConfig
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.c
    typedefs: []
    union: []
- function_names:
  - fu_synaprom_firmware_get_product_id
  - fu_synaprom_firmware_set_signature_size
  - fu_synaprom_firmware_export
  - fu_synaprom_firmware_parse
  - fu_synaprom_firmware_write
  - fu_synaprom_firmware_build
  - fu_synaprom_firmware_init
  - fu_synaprom_firmware_class_init
  - fu_synaprom_firmware_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPROM_FIRMWARE_TAG_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
      type_or_value: '0xfff0'
    - item_type: preproc_def
      name: FU_SYNAPROM_FIRMWARE_COUNT_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: product_id
        type: guint32
      - name: signature_size
        type: guint32
      item_type: struct
      name: _FuSynapromFirmware
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_synaprom_plugin_init
  - fu_synaprom_plugin_object_constructed
  - fu_synaprom_plugin_constructed
  - fu_synaprom_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapromPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_test_synaprom_firmware_func
  - fu_synaprom_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPROM_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.h
      type_or_value: (fu_synaprom_firmware_get_type())
    - item_type: preproc_def
      name: FU_SYNAPROM_FIRMWARE_PROMETHEUS_SIGSIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FU_SYNAPROM_FIRMWARE_TRITON_SIGSIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-firmware.h
      type_or_value: '0x180'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPROM_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.h
      type_or_value: (fu_synaprom_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaprom_device_cmd_send
  - fu_synaprom_device_get_product_type
  - fu_synaprom_device_set_version
  - fu_synaprom_device_set_serial_number
  - fu_synaprom_device_setup
  - fu_synaprom_device_prepare_firmware
  - fu_synaprom_device_write_chunks
  - fu_synaprom_device_write_fw
  - fu_synaprom_device_write_firmware
  - fu_synaprom_device_attach
  - fu_synaprom_device_detach
  - fu_synaprom_device_set_progress
  - fu_synaprom_device_init
  - fu_synaprom_device_class_init
  - fu_synaprom_device_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPROM_USB_CTRLREQUEST_VENDOR_WRITEDFT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: '21'
    - item_type: preproc_def
      name: FU_SYNAPROM_USB_REQUEST_EP
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_SYNAPROM_USB_REPLY_EP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_SYNAPROM_USB_FINGERPRINT_EP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: FU_SYNAPROM_USB_INTERRUPT_EP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: FU_SYNAPROM_SECURITY1_PROD_SENSOR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
      type_or_value: (1 << 5)
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: vmajor
        type: guint8
      - name: vminor
        type: guint8
      - name: product_type
        type: guint32
      item_type: struct
      name: _FuSynapromDevice
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPROM_CONFIG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaprom-config.h
      type_or_value: (fu_synaprom_config_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCALFP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.h
      type_or_value: (fu_focalfp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_focalfp_firmware_get_checksum
  - fu_focalfp_firmware_export
  - fu_focalfp_firmware_compute_checksum_cb
  - fu_focalfp_firmware_parse
  - fu_focalfp_firmware_init
  - fu_focalfp_firmware_class_init
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FOCAL_NAME_START_ADDR_WRDS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
      type_or_value: '0x011E'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: start_address
        type: guint16
      - name: checksum
        type: guint32
      item_type: struct
      name: _FuFocalfpFirmware
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_focalfp_plugin_init
  - fu_focalfp_plugin_constructed
  - fu_focalfp_plugin_class_init
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFocalfpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_focalfp_hid_device_probe
  - fu_focalfp_hid_device_generate_checksum
  - fu_focalfp_hid_device_io
  - fu_focalfp_hid_device_check_cmd_crc
  - fu_focalfp_hid_device_read_reg_cb
  - fu_focalfp_hid_device_read_reg
  - fu_focalfp_hid_device_enter_upgrade_mode
  - fu_focalfp_hid_device_check_current_state
  - fu_focalfp_hid_device_wait_for_upgrade_ready_cb
  - fu_focalfp_hid_device_wait_for_upgrade_ready
  - fu_focalfp_hid_device_read_update_id_cb
  - fu_focalfp_hid_device_read_update_id
  - fu_focalfp_hid_device_erase_flash
  - fu_focalfp_hid_device_send_data_cb
  - fu_focalfp_hid_device_send_data
  - fu_focalfp_hid_device_checksum_upgrade
  - fu_focalfp_hid_device_setup
  - fu_focalfp_hid_device_write_chunks
  - fu_focalfp_hid_device_write_firmware
  - fu_focalfp_hid_device_reload
  - fu_focalfp_hid_device_detach_cb
  - fu_focalfp_hid_device_detach
  - fu_focalfp_hid_device_attach
  - fu_focalfp_hid_device_set_progress
  - fu_focalfp_hid_device_convert_version
  - fu_focalfp_hid_device_init
  - fu_focalfp_hid_device_class_init
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_ENTER_UPGRADE_MODE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CMD_CHECK_CURRENT_STATE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: CMD_READY_FOR_UPGRADE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x42'
    - item_type: preproc_def
      name: CMD_SEND_DATA
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x43'
    - item_type: preproc_def
      name: CMD_UPGRADE_CHECKSUM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x44'
    - item_type: preproc_def
      name: CMD_EXIT_UPGRADE_MODE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x45'
    - item_type: preproc_def
      name: CMD_USB_READ_UPGRADE_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x46'
    - item_type: preproc_def
      name: CMD_USB_ERASE_FLASH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x47'
    - item_type: preproc_def
      name: CMD_USB_BOOT_READ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x48'
    - item_type: preproc_def
      name: CMD_USB_BOOT_BOOTLOADERVERSION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x49'
    - item_type: preproc_def
      name: CMD_READ_REGISTER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: CMD_WRITE_REGISTER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x51'
    - item_type: preproc_def
      name: CMD_ACK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: CMD_NACK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: FIRST_PACKET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: MID_PACKET
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: END_PACKET
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REPORT_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_USB_PACKET_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
      type_or_value: '56'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuFocalfpHidDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCALFP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focalfp/fu-focalfp-hid-device.h
      type_or_value: (fu_focalfp_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focalfp/fu-focalfp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/test/fu-test-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_plugin_coldplug
  - fu_test_plugin_modify_config
  - fu_test_plugin_device_registered
  - fu_test_plugin_verify
  - fu_test_plugin_get_version
  - fu_test_plugin_write_firmware
  - fu_test_plugin_activate
  - fu_test_plugin_get_results
  - fu_test_plugin_composite_prepare
  - fu_test_plugin_composite_cleanup
  - fu_test_plugin_attach
  - fu_test_plugin_init
  - fu_test_plugin_constructed
  - fu_test_plugin_finalize
  - fu_test_plugin_class_init
  source_file: /src/fwupd/plugins/test/fu-test-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuTestPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/test/fu-test-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_test_ble_plugin_init
  - fu_test_ble_plugin_constructed
  - fu_test_ble_plugin_class_init
  source_file: /src/fwupd/plugins/test/fu-test-ble-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuTestBlePlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/test/fu-test-ble-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_test_ble_device_init
  - fu_test_ble_device_class_init
  source_file: /src/fwupd/plugins/test/fu-test-ble-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuBluezDevice
      item_type: struct
      name: _FuTestBleDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/test/fu-test-ble-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/test/fu-test-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TEST_BLE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/test/fu-test-ble-device.h
      type_or_value: (fu_test_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/test/fu-test-ble-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/scsi/fu-scsi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_scsi_plugin_init
  - fu_scsi_plugin_constructed
  - fu_scsi_plugin_class_init
  source_file: /src/fwupd/plugins/scsi/fu-scsi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuScsiPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/scsi/fu-scsi-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_scsi_device_to_string
  - fu_scsi_device_probe
  - fu_scsi_device_prepare_firmware
  - fu_scsi_device_ioctl_buf_cb
  - fu_scsi_device_ioctl_cdb_cb
  - fu_scsi_device_ioctl_sense_cb
  - fu_scsi_device_send_scsi_cmd_v3
  - fu_scsi_device_setup
  - fu_scsi_device_write_firmware
  - fu_scsi_device_set_quirk_kv
  - fu_scsi_device_set_progress
  - fu_scsi_device_init
  - fu_scsi_device_class_init
  source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INQUIRY_CMD
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x12'
    - item_type: preproc_def
      name: INQUIRY_CMDLEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SCSI_INQ_BUFF_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '254'
    - item_type: preproc_def
      name: BUFFER_VENDOR_MODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BUFFER_DUFS_MODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BUFFER_FFU_MODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: BUFFER_EHS_MODE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x1C'
    - item_type: preproc_def
      name: SENSE_BUFF_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '18'
    - item_type: preproc_def
      name: WRITE_BUF_CMDLEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: READ_BUF_CMDLEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: WRITE_BUFFER_CMD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x3B'
    - item_type: preproc_def
      name: READ_BUFFER_CMD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '0x3C'
    - item_type: preproc_def
      name: FU_SCSI_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SCSI_DEFAULT_WRITE_BUFFER_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
      type_or_value: '4096 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: ffu_timeout
        type: guint64
      - name: write_buffer_size
        type: guint32
      item_type: struct
      name: _FuScsiDevice
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/scsi/fu-scsi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SCSI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/scsi/fu-scsi-device.h
      type_or_value: (fu_scsi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_file_device_to_string
  - fu_jabra_file_device_probe
  - fu_jabra_file_device_tx_cb
  - fu_jabra_file_device_tx
  - fu_jabra_file_device_rx_cb
  - fu_jabra_file_device_rx
  - fu_jabra_file_device_rx_with_sequence_cb
  - fu_jabra_file_device_rx_with_sequence
  - fu_jabra_file_device_ensure_name
  - fu_jabra_file_device_ensure_dfu_pid
  - fu_jabra_file_device_ensure_version
  - fu_jabra_file_device_file_checksum
  - fu_jabra_file_device_write_delete_file
  - fu_jabra_file_device_write_first_block
  - fu_jabra_file_device_write_next_block
  - fu_jabra_file_device_write_blocks
  - fu_jabra_file_device_check_device_busy
  - fu_jabra_file_device_start_update
  - fu_jabra_file_device_prepare_firmware
  - fu_jabra_file_device_setup
  - fu_jabra_file_device_write_firmware
  - fu_jabra_file_device_attach
  - fu_jabra_file_device_set_progress
  - fu_jabra_file_device_init
  - fu_jabra_file_device_class_init
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_JABRA_FILE_FIRST_BLOCK
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_JABRA_FILE_NEXT_BLOCK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_JABRA_FILE_CANCEL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_JABRA_FILE_MAX_RETRIES
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_JABRA_FILE_RETRY_DELAY
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '100  '
    - item_type: preproc_def
      name: FU_JABRA_FILE_STANDARD_SEND_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '3000 '
    - item_type: preproc_def
      name: FU_JABRA_FILE_STANDARD_RECEIVE_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
      type_or_value: '1000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: sequence_number
        type: guint8
      - name: address
        type: guint8
      - name: epin
        type: guint8
      - name: epout
        type: guint8
      - name: dfu_pid
        type: guint
      item_type: struct
      name: _FuJabraFileDevice
      pos:
        line_end: 27
        line_start: 20
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_FILE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.h
      type_or_value: (fu_jabra_file_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_file_plugin_init
  - fu_jabra_file_plugin_constructed
  - fu_jabra_file_plugin_class_init
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuJabraFilePlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_jabra_file_firmware_export
  - fu_jabra_file_firmware_parse_info
  - fu_jabra_file_firmware_parse
  - fu_jabra_file_firmware_get_dfu_pid
  - fu_jabra_file_firmware_init
  - fu_jabra_file_firmware_class_init
  - fu_jabra_file_firmware_new
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuArchiveFirmware
      - name: dfu_pid
        type: guint16
      item_type: struct
      name: _FuJabraFileFirmware
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_FILE_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.h
      type_or_value: (fu_jabra_file_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_INPUT_REPORT_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '35'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_OUTPUT_REPORT_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '39'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_USB_TIMEOUT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '2000 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_MEM_WRITEID
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_MEM_READID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_VALIDITY_SIGNATURE_OFFSET
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_PATCH_INFO_OFFSET
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0014'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_CUSTOM_INFO_OFFSET
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_CPX_PATCH_VERSION_ADDRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0022'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_CPX_PATCH2_VERSION_ADDRESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0176'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_STORAGE_SIZE_ADDRESS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_STORAGE_PADDING_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x4 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_DEVICE_CAPABILITIES_STRIDX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_SIGNATURE_BYTE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '''S'''
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_SIGNATURE_PATCH_BYTE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '''P'''
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_REG_FIRMWARE_PARK_ADDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_REG_FIRMWARE_VERSION_ADDR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x1001'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_REG_RESET_ADDR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CXAUDIO_EEPROM_SHADOW_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-common.h
      type_or_value: (8 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cxaudio_firmware_get_file_type
  - fu_synaptics_cxaudio_firmware_get_devtype
  - fu_synaptics_cxaudio_firmware_get_layout_version
  - fu_synaptics_cxaudio_firmware_export
  - fu_synaptics_cxaudio_firmware_badblock_add
  - fu_synaptics_cxaudio_firmware_is_addr_valid
  - fu_synaptics_cxaudio_firmware_is_record_valid
  - fu_synaptics_cxaudio_firmware_avoid_badblocks
  - fu_synaptics_cxaudio_firmware_parse
  - fu_synaptics_cxaudio_firmware_init
  - fu_synaptics_cxaudio_firmware_class_init
  - fu_synaptics_cxaudio_firmware_new
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSrecFirmwareClass
      - name: file_kind
        type: FuSynapticsCxaudioFileKind
      - name: device_kind
        type: FuSynapticsCxaudioDeviceKind
      - name: layout_signature
        type: guint8
      - name: layout_version
        type: guint8
      - name: vendor_id
        type: guint16
      - name: product_id
        type: guint16
      - name: revision_id
        type: guint16
      item_type: struct
      name: _FuSynapticsCxaudioFirmware
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    - fields:
      - name: '*str'
        type: gchar
      - name: addr
        type: guint32
      - name: len
        type: guint32
      item_type: struct
      name: FuSynapticsCxaudioFirmwareBadblock
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cxaudio_device_to_string
  - fu_synaptics_cxaudio_device_output_report
  - fu_synaptics_cxaudio_device_input_report
  - fu_synaptics_cxaudio_device_operation
  - fu_synaptics_cxaudio_device_register_clear_bit
  - fu_synaptics_cxaudio_device_register_set_bit
  - fu_synaptics_cxaudio_device_eeprom_read_string
  - fu_synaptics_cxaudio_device_ensure_patch_level
  - fu_synaptics_cxaudio_device_setup
  - fu_synaptics_cxaudio_device_prepare_firmware
  - fu_synaptics_cxaudio_device_write_firmware
  - fu_synaptics_cxaudio_device_attach
  - fu_synaptics_cxaudio_device_set_quirk_kv
  - fu_synaptics_cxaudio_device_set_progress
  - fu_synaptics_cxaudio_device_init
  - fu_synaptics_cxaudio_device_class_init
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: chip_id_base
        type: guint32
      - name: chip_id
        type: guint32
      - name: serial_number_set
        type: gboolean
      - name: sw_reset_supported
        type: gboolean
      - name: eeprom_layout_version
        type: guint32
      - name: eeprom_patch2_valid_addr
        type: guint32
      - name: eeprom_patch_valid_addr
        type: guint32
      - name: eeprom_storage_address
        type: guint32
      - name: eeprom_storage_sz
        type: guint32
      - name: eeprom_sz
        type: guint32
      - name: patch_level
        type: guint8
      item_type: struct
      name: _FuSynapticsCxaudioDevice
      pos:
        line_end: 29
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    typedefs:
    - item_type: typedef
      name: FuSynapticsCxaudioOperation
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    - item_type: typedef
      name: FuSynapticsCxaudioOperationFlags
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CXAUDIO_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.h
      type_or_value: (fu_synaptics_cxaudio_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CXAUDIO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.h
      type_or_value: (fu_synaptics_cxaudio_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cxaudio_plugin_init
  - fu_synaptics_cxaudio_plugin_constructed
  - fu_synaptics_cxaudio_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsCxaudioPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/gpio/fu-gpio-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gpio_device_to_string
  - fu_gpio_device_probe
  - fu_gpio_device_setup
  - fu_gpio_device_unassign
  - fu_gpio_device_assign_full
  - fu_gpio_device_assign
  - fu_gpio_device_init
  - fu_gpio_device_finalize
  - fu_gpio_device_class_init
  source_file: /src/fwupd/plugins/gpio/fu-gpio-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_GPIO_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/gpio/fu-gpio-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: num_lines
        type: guint
      - name: fd
        type: gint
      item_type: struct
      name: _FuGpioDevice
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/gpio/fu-gpio-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/gpio/fu-gpio-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GPIO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/gpio/fu-gpio-device.h
      type_or_value: (fu_gpio_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gpio_plugin_to_string
  - fu_gpio_plugin_parse_level
  - fu_gpio_plugin_process_quirk
  - fu_gpio_plugin_prepare
  - fu_gpio_plugin_cleanup
  - fu_gpio_plugin_device_added
  - fu_gpio_plugin_init
  - fu_gpio_plugin_constructed
  - fu_gpio_plugin_finalize
  - fu_gpio_plugin_class_init
  source_file: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*current_logical_ids'
        type: GPtrArray
      item_type: struct
      name: _FuGpioPlugin
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_dmar_opt_in_func
  - fu_acpi_dmar_opt_out_func
  - main
  source_file: /src/fwupd/plugins/acpi-dmar/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_DMAR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.h
      type_or_value: (fu_acpi_dmar_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_dmar_parse
  - fu_acpi_dmar_new
  - fu_acpi_dmar_get_opt_in
  - fu_acpi_dmar_class_init
  - fu_acpi_dmar_init
  source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DMAR_DMA_CTRL_PLATFORM_OPT_IN_FLAG
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
      type_or_value: '0x4'
    structs:
    - fields:
      - name: parent_instance
        type: FuAcpiTable
      - name: opt_in
        type: gboolean
      item_type: struct
      name: _FuAcpiDmar
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_dmar_plugin_add_security_attrs
  - fu_acpi_dmar_plugin_init
  - fu_acpi_dmar_plugin_class_init
  source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAcpiDmarPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hailuck_bl_device_attach
  - fu_hailuck_bl_device_probe
  - fu_hailuck_bl_device_read_block_start
  - fu_hailuck_bl_device_read_block
  - fu_hailuck_bl_device_dump_firmware
  - fu_hailuck_bl_device_erase
  - fu_hailuck_bl_device_write_block_start
  - fu_hailuck_bl_device_write_block
  - fu_hailuck_bl_device_write_firmware
  - fu_hailuck_bl_device_init
  - fu_hailuck_bl_device_class_init
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuHailuckBlDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.c
    typedefs: []
    union: []
- function_names:
  - fu_hailuck_tp_device_probe
  - fu_hailuck_tp_device_cmd_cb
  - fu_hailuck_tp_device_write_firmware
  - fu_hailuck_tp_device_set_progress
  - fu_hailuck_tp_device_init
  - fu_hailuck_tp_device_class_init
  - fu_hailuck_tp_device_new
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuHailuckTpDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    - fields:
      - name: type
        type: guint8
      - name: success
        type: guint8
      item_type: struct
      name: FuHailuckTpDeviceReq
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HAILUCK_TP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-tp-device.h
      type_or_value: (fu_hailuck_tp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HAILUCK_BL_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-bl-device.h
      type_or_value: (fu_hailuck_bl_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_HAILUCK_REPORT_ID_SHORT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_HAILUCK_REPORT_ID_LONG
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-common.h
      type_or_value: '0x06'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hailuck_plugin_init
  - fu_hailuck_plugin_constructed
  - fu_hailuck_plugin_class_init
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHailuckPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HAILUCK_KBD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.h
      type_or_value: (fu_hailuck_kbd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HAILUCK_KBD_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.h
      type_or_value: (fu_hailuck_kbd_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hailuck_kbd_device_detach
  - fu_hailuck_kbd_device_probe
  - fu_hailuck_kbd_device_set_progress
  - fu_hailuck_kbd_device_init
  - fu_hailuck_kbd_device_class_init
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuHailuckKbdDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_hailuck_kbd_firmware_parse
  - fu_hailuck_kbd_firmware_init
  - fu_hailuck_kbd_firmware_class_init
  source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuIhexFirmwareClass
      item_type: struct
      name: _FuHailuckKbdFirmware
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/hailuck/fu-hailuck-kbd-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_amt_plugin_init
  - fu_intel_amt_plugin_constructed
  - fu_intel_amt_plugin_class_init
  source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelAmtPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_AMT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.h
      type_or_value: (fu_intel_amt_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_amt_device_status_set_error
  - fu_intel_amt_device_host_if_call
  - fu_intel_amt_device_get_provisioning_state
  - fu_intel_amt_device_ensure_version
  - fu_intel_amt_device_setup
  - fu_intel_amt_device_init
  - fu_intel_amt_device_class_init
  source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_AMT_STATUS_HOST_IF_EMPTY_RESPONSE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: FU_INTEL_AMT_DEVICE_UUID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
      type_or_value: '"12f80028-b4b7-4b2d-aca8-46e0ff65814c"'
    structs:
    - fields:
      - name: parent_instance
        type: FuMeiDevice
      item_type: struct
      name: _FuIntelAmtDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_linux_swap_strip_spaces
  - fu_linux_swap_verify_partition
  - fu_linux_swap_verify_file
  - fu_linux_swap_new
  - fu_linux_swap_get_encrypted
  - fu_linux_swap_get_enabled
  - fu_linux_swap_class_init
  - fu_linux_swap_init
  source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: encrypted_cnt
        type: guint
      - name: enabled_cnt
        type: guint
      item_type: struct
      name: _FuLinuxSwap
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    typedefs: []
    union: []
- function_names:
  - fu_linux_swap_none_func
  - fu_linux_swap_plain_func
  - fu_linux_swap_encrypted_func
  - main
  source_file: /src/fwupd/plugins/linux-swap/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_linux_swap_plugin_changed_cb
  - fu_linux_swap_plugin_startup
  - fu_linux_swap_plugin_add_security_attrs
  - fu_linux_swap_plugin_init
  - fu_linux_swap_plugin_finalize
  - fu_linux_swap_plugin_class_init
  source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*file'
        type: GFile
      - name: '*monitor'
        type: GFileMonitor
      item_type: struct
      name: _FuLinuxSwapPlugin
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LINUX_SWAP
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap.h
      type_or_value: (fu_linux_swap_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_dbx_snapd_notifier_new
  - fu_uefi_dbx_snapd_notifier_init
  - fu_uefi_dbx_snapd_notifier_finalize
  - fu_uefi_dbx_snapd_notifier_class_init
  - fu_uefi_dbx_snapd_notifier_rsp_cb
  - fu_uefi_dbx_snapd_notifier_simple_req
  - fu_uefi_dbx_snapd_notifier_dbx_manager_startup
  - fu_uefi_dbx_snapd_notifier_dbx_update_prepare
  - fu_uefi_dbx_snapd_notifier_dbx_update_cleanup
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*curl_template'
        type: CURL
      - name: '*req_hdrs'
        type: struct curl_slist
      item_type: struct
      name: _FuUefiDbxSnapdNotifier
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_image_func
  - fu_self_test_mock_snapd_easy_post_request
  - fu_self_test_curl_write_callback
  - fu_self_test_mock_snapd_easy_get_request
  - fu_self_test_mock_snapd_assert_calls
  - fu_self_test_mock_snapd_reset
  - fu_self_test_mock_snapd_setup_scenario
  - fu_self_test_mock_snapd_init
  - fu_self_test_set_up
  - fu_self_test_tear_down
  - fu_test_mock_efivar_content
  - fu_test_mock_dbx_efivars
  - fu_test_mock_dbx_update_firmware
  - fu_uefi_dbx_test_plugin_update
  - fu_uefi_dbx_test_plugin_failed_update
  - fu_uefi_dbx_test_plugin_coldplug_probed_device
  - fu_uefi_dbx_test_plugin_startup
  - main
  source_file: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*basename'
        type: gchar
      - name: '*checksum'
        type: gchar
      item_type: struct
      name: "map[] = {\n\t    {\"bootmgr.efi\", \"fd26aad248cc1e21e0c6b453212b2b309f7e221047bf22500ed0f8ce30bd1610\"},\n\t
        \   {\"fwupdx64-2.efi\", \"6e0f01e7018c90a1e3d24908956fbeffd29a620c6c5f3ffa3feb2f2802ed4448\"},\n\t}"
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    - fields:
      - name: running_in_snap
        type: gboolean
      - name: snapd_fde_detected
        type: gboolean
      - name: snapd_supported
        type: gboolean
      - name: '*mock_snapd_scenario'
        type: gchar
      item_type: struct
      name: FuTestCase
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: mock_snapd_available
        type: gboolean
      - name: '*mock_snapd_curl'
        type: CURL
      - name: '*mock_curl_hdrs'
        type: struct curl_slist
      item_type: struct
      name: FuTestFixture
      pos:
        line_end: 73
        line_start: 66
        source_file: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    - fields:
      - name: startup
        type: guint
      - name: prepare
        type: guint
      - name: cleanup
        type: guint
      item_type: struct
      name: FuTestSnapdCalls
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_dbx_get_efi_arch
  - fu_uefi_dbx_get_authenticode_hash
  - fu_uefi_dbx_signature_list_validate_filename
  - fu_uefi_dbx_signature_list_validate
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*arch'
        type: gchar
      - name: '*arch_efi'
        type: gchar
      item_type: struct
      name: "map[] = {\n\t    {\"x86\", \"ia32\"},\n\t    {\"x86_64\", \"x64\"},\n\t
        \   {\"arm\", \"arm\"},\n\t    {\"aarch64\", \"aa64\"},\n\t    {\"loongarch64\",
        \"loongarch64\"},\n\t    {\"riscv64\", \"riscv64\"},\n\t}"
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_dbx_device_set_snapd_notifier
  - fu_uefi_dbx_device_maybe_notify_snapd_prepare
  - fu_uefi_dbx_device_maybe_notify_snapd_cleanup
  - fu_uefi_dbx_device_write_firmware
  - fu_uefi_dbx_device_set_checksum
  - fu_uefi_dbx_device_ensure_checksum
  - fu_uefi_dbx_device_reload
  - fu_uefi_dbx_device_version_notify_cb
  - fu_uefi_dbx_device_prepare_firmware
  - fu_uefi_dbx_device_probe
  - fu_uefi_dbx_device_set_progress
  - fu_uefi_dbx_device_cleanup
  - fu_uefi_dbx_device_init
  - fu_uefi_dbx_device_finalize
  - fu_uefi_dbx_device_class_init
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UEFI_DBX_DEVICE_DEFAULT_REQUIRED_FREE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
      type_or_value: '(30 * 1024) '
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiDevice
      - name: '*snapd_notifier'
        type: FuUefiDbxSnapdNotifier
      item_type: struct
      name: _FuUefiDbxDevice
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_DBX_SNAPD_NOTIFIER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-snapd-notifier.h
      type_or_value: (fu_uefi_dbx_snapd_notifier_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_DBX_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.h
      type_or_value: (fu_uefi_dbx_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_util_ignore_cb
  - fu_dbxtool_get_siglist_system
  - fu_dbxtool_get_siglist_local
  - fu_dbxtool_siglist_inclusive
  - fu_dbxtool_guid_to_string
  - main
  source_file: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXIT_NOTHING_TO_DO
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_dbx_plugin_device_created
  - fu_uefi_dbx_plugin_init
  - fu_uefi_dbx_plugin_finalize
  - fu_uefi_dbx_plugin_snapd_notify_init
  - fu_uefi_dbx_plugin_constructed
  - fu_uefi_dbx_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*snapd_notifier'
        type: FuUefiDbxSnapdNotifier
      - name: snapd_integration_supported
        type: gboolean
      item_type: struct
      name: _FuUefiDbxPlugin
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_amd_pmc_plugin_init
  - fu_amd_pmc_plugin_constructed
  - fu_amd_pmc_plugin_class_init
  source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAmdPmcPlugin
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_amd_pmc_device_probe
  - fu_amd_pmc_device_init
  - fu_amd_pmc_device_class_init
  source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      item_type: struct
      name: _FuAmdPmcDevice
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_PMC_DEVICE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-device.h
      type_or_value: (fu_amd_pmc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_mchi_device_add_checksum_for_id
  - fu_intel_mchi_device_setup
  - fu_intel_mchi_device_add_security_attrs
  - fu_intel_mchi_device_version_notify_cb
  - fu_intel_mchi_device_init
  - fu_intel_mchi_device_class_init
  source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_INTEL_MCHI_DEVICE_FLAG_LEAKED_KM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
      type_or_value: '"leaked-km"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHeciDevice
      item_type: struct
      name: _FuIntelMchiDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_mchi_plugin_init
  - fu_intel_mchi_plugin_constructed
  - fu_intel_mchi_plugin_class_init
  source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelMchiPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_MCHI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.h
      type_or_value: (fu_intel_mchi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_HID_HAPTIC_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.h
      type_or_value: (fu_elantp_hid_haptic_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elantp_haptic_firmware_get_driver_ic
  - fu_elantp_haptic_firmware_export
  - fu_elantp_haptic_firmware_validate
  - fu_elantp_haptic_firmware_parse
  - fu_elantp_haptic_firmware_init
  - fu_elantp_haptic_firmware_class_init
  - fu_elantp_haptic_firmware_new
  source_file: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: driver_ic
        type: guint16
      item_type: struct
      name: _FuElantpHapticFirmware
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_elantp_i2c_device_to_string
  - fu_elantp_i2c_device_writeln
  - fu_elantp_i2c_device_rebind_driver
  - fu_elantp_i2c_device_probe
  - fu_elantp_i2c_device_send_cmd
  - fu_elantp_i2c_device_write_cmd
  - fu_elantp_i2c_device_read_cmd
  - fu_elantp_i2c_device_ensure_iap_ctrl
  - fu_elantp_i2c_device_setup
  - fu_elantp_i2c_device_open
  - fu_elantp_i2c_device_prepare_firmware
  - fu_elantp_i2c_device_write_firmware
  - fu_elantp_i2c_device_detach
  - fu_elantp_i2c_device_attach
  - fu_elantp_i2c_device_set_quirk_kv
  - fu_elantp_i2c_device_set_progress
  - fu_elantp_i2c_device_convert_version
  - fu_elantp_i2c_device_init
  - fu_elantp_i2c_device_finalize
  - fu_elantp_i2c_device_class_init
  source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ELANTP_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuI2cDevice
      - name: i2c_addr
        type: guint16
      - name: ic_page_count
        type: guint16
      - name: iap_type
        type: guint16
      - name: iap_ctrl
        type: guint16
      - name: iap_password
        type: guint16
      - name: module_id
        type: guint16
      - name: fw_page_size
        type: guint16
      - name: pattern
        type: guint8
      - name: '*bind_path'
        type: gchar
      - name: '*bind_id'
        type: gchar
      item_type: struct
      name: _FuElantpI2cDevice
      pos:
        line_end: 26
        line_start: 14
        source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    typedefs: []
    union: []
- function_names:
  - fu_elantp_hid_haptic_device_get_parent
  - fu_elantp_hid_haptic_device_to_string
  - fu_elantp_hid_haptic_device_send_cmd
  - fu_elantp_hid_haptic_device_read_cmd
  - fu_elantp_hid_haptic_device_write_cmd
  - fu_elantp_hid_haptic_device_ensure_iap_ctrl
  - fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
  - fu_elantp_hid_haptic_device_get_haptic_driver_ic
  - fu_elantp_hid_haptic_device_get_version
  - fu_elantp_hid_haptic_device_write_fw_password
  - fu_elantp_hid_haptic_device_write_checksum_cb
  - fu_elantp_hid_haptic_device_wait_calc_checksum_cb
  - fu_elantp_hid_haptic_device_get_checksum
  - fu_elantp_hid_haptic_device_setup
  - fu_elantp_hid_haptic_device_prepare_firmware
  - fu_elantp_hid_haptic_device_write_chunks_cb
  - fu_elantp_hid_haptic_device_write_firmware
  - fu_elantp_hid_haptic_device_detach
  - fu_elantp_hid_haptic_device_attach
  - fu_elantp_hid_haptic_device_set_quirk_kv
  - fu_elantp_hid_haptic_device_set_progress
  - fu_elantp_hid_haptic_device_init
  - fu_elantp_hid_haptic_device_class_init
  - fu_elantp_hid_haptic_device_new
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: ic_page_count
        type: guint16
      - name: iap_type
        type: guint16
      - name: tp_iap_ctrl
        type: guint16
      - name: tp_iap_ver
        type: guint16
      - name: tp_ic_type
        type: guint16
      - name: iap_ctrl
        type: guint16
      - name: iap_password
        type: guint16
      - name: module_id
        type: guint16
      - name: fw_page_size
        type: guint16
      - name: pattern
        type: guint8
      - name: driver_ic
        type: gint16
      - name: iap_ver
        type: guint8
      item_type: struct
      name: _FuElantpHidHapticDevice
      pos:
        line_end: 26
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    - fields:
      - name: checksum
        type: guint16
      - name: iap_password
        type: guint16
      - name: tp_iap_ver
        type: guint16
      - name: tp_ic_type
        type: guint16
      item_type: struct
      name: FuElantpHaptictpWaitFlashEEPROMChecksumHelper
      pos:
        line_end: 319
        line_start: 314
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    - fields:
      - name: checksum
        type: guint16
      - name: idx_page_start
        type: guint
      - name: '*fw'
        type: GBytes
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuElantpHaptictpWriteHelper
      pos:
        line_end: 641
        line_start: 636
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    typedefs: []
    union: []
- function_names:
  - fu_elantp_firmware_get_module_id
  - fu_elantp_firmware_get_ic_type
  - fu_elantp_firmware_get_iap_addr
  - fu_elantp_firmware_get_forcetable_support
  - fu_elantp_firmware_get_forcetable_addr
  - fu_elantp_firmware_export
  - fu_elantp_firmware_validate
  - fu_elantp_firmware_parse
  - fu_elantp_firmware_build
  - fu_elantp_firmware_write
  - fu_elantp_firmware_init
  - fu_elantp_firmware_class_init
  - fu_elantp_firmware_new
  source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ETP_IC_TYPE_ADDR_WRDS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: ETP_IAP_VER_ADDR_WRDS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
      type_or_value: '0x0082'
    - item_type: preproc_def
      name: ETP_IAP_START_ADDR_WRDS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
      type_or_value: '0x0083'
    - item_type: preproc_def
      name: ETP_IAP_FORCETABLE_ADDR_V5
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
      type_or_value: '0x0085'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: module_id
        type: guint16
      - name: ic_type
        type: guint16
      - name: iap_addr
        type: guint16
      - name: iap_ver
        type: guint16
      - name: force_table_support
        type: gboolean
      - name: force_table_addr
        type: guint32
      item_type: struct
      name: _FuElantpFirmware
      pos:
        line_end: 20
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_elantp_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/elantp/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elantp_plugin_device_created
  - fu_elantp_plugin_init
  - fu_elantp_plugin_constructed
  - fu_elantp_plugin_class_init
  source_file: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuElantpPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ETP_CMD_GET_HID_DESCRIPTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: ETP_CMD_GET_HARDWARE_ID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: ETP_CMD_GET_MODULE_ID
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0101'
    - item_type: preproc_def
      name: ETP_CMD_I2C_FW_CHECKSUM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x030F'
    - item_type: preproc_def
      name: ETP_CMD_I2C_FW_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0102'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0311'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_CHECKSUM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0315'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_CTRL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0310'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_ICBODY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0110'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_RESET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0314'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_VERSION
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0111'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_VERSION_2
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0110'
    - item_type: preproc_def
      name: ETP_CMD_I2C_OSM_VERSION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0103'
    - item_type: preproc_def
      name: ETP_CMD_I2C_GET_HID_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: ETP_CMD_I2C_IAP_TYPE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0304'
    - item_type: preproc_def
      name: ETP_CMD_I2C_FW_PW
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x030E'
    - item_type: preproc_def
      name: ETP_CMD_FORCE_ADDR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x03AD'
    - item_type: preproc_def
      name: ETP_CMD_I2C_FORCE_TYPE_ENABLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0104'
    - item_type: preproc_def
      name: ETP_CMD_I2C_SET_EEPROM_CTRL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0321'
    - item_type: preproc_def
      name: ETP_CMD_I2C_GET_EEPROM_FW_VERSION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0710'
    - item_type: preproc_def
      name: ETP_CMD_I2C_GET_EEPROM_IAP_VERSION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0711'
    - item_type: preproc_def
      name: ETP_CMD_I2C_SET_EEPROM_ENTER_IAP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0607'
    - item_type: preproc_def
      name: ETP_CMD_I2C_SET_EEPROM_LEAVE_IAP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0606'
    - item_type: preproc_def
      name: ETP_CMD_I2C_SET_EEPROM_DATATYPE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0702'
    - item_type: preproc_def
      name: ETP_CMD_I2C_CALC_EEPROM_CHECKSUM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x060F'
    - item_type: preproc_def
      name: ETP_CMD_I2C_READ_EEPROM_CHECKSUM
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x070A'
    - item_type: preproc_def
      name: ETP_CMD_I2C_HAPTIC_RESTART
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0601'
    - item_type: preproc_def
      name: ETP_CMD_I2C_EEPROM_SETTING
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0322'
    - item_type: preproc_def
      name: ETP_CMD_I2C_EEPROM_LONG_TRANS_ENABLE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x4607'
    - item_type: preproc_def
      name: ETP_CMD_I2C_EEPROM_SETTING_INITIAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: ETP_CMD_I2C_EEPROM_WRITE_INFORMATION
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x4600'
    - item_type: preproc_def
      name: ETP_CMD_I2C_EEPROM_WRITE_CHECKSUM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x048B'
    - item_type: preproc_def
      name: ETP_I2C_IC13_IAPV5_PW
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x37CA'
    - item_type: preproc_def
      name: ETP_FW_FORCE_TYPE_ENABLE_BIT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ETP_FW_EEPROM_ENABLE_BIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ETP_I2C_IAP_TYPE_REG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ETP_I2C_ENABLE_REPORT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: ETP_I2C_IAP_RESET
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0xF0F0'
    - item_type: preproc_def
      name: ETP_I2C_MAIN_MODE_ON
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: ETP_I2C_MAIN_MODE_ON2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: ETP_I2C_IAP_REG_L
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ETP_I2C_IAP_REG_H
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: ETP_FW_IAP_INTF_ERR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: ETP_FW_IAP_PAGE_ERR
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: ETP_FW_IAP_CHECK_PW
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: ETP_FW_IAP_LAST_FIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: ELANTP_DELAY_COMPLETE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '1200 '
    - item_type: preproc_def
      name: ELANTP_DELAY_RESET
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: "30\t  "
    - item_type: preproc_def
      name: ELANTP_EEPROM_READ_DELAY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '100  '
    - item_type: preproc_def
      name: ELANTP_DELAY_UNLOCK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '100  '
    - item_type: preproc_def
      name: ELANTP_DELAY_WRITE_BLOCK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: "35\t  "
    - item_type: preproc_def
      name: ELANTP_DELAY_WRITE_BLOCK_512
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: "50\t  "
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elantp_hid_device_to_string
  - fu_elantp_hid_device_probe
  - fu_elantp_hid_device_send_cmd
  - fu_elantp_hid_device_read_cmd
  - fu_elantp_hid_device_write_cmd
  - fu_elantp_hid_device_ensure_iap_ctrl
  - fu_elantp_hid_device_read_force_table_enable
  - fu_elantp_hid_device_read_haptic_enable
  - fu_elantp_hid_device_get_forcetable_address
  - fu_elantp_hid_device_write_fw_password
  - fu_elantp_hid_device_setup
  - fu_elantp_hid_device_prepare_firmware
  - fu_elantp_hid_device_filling_forcetable_firmware
  - fu_elantp_hid_device_write_firmware
  - fu_elantp_hid_device_detach
  - fu_elantp_hid_device_attach
  - fu_elantp_hid_device_set_quirk_kv
  - fu_elantp_hid_device_set_progress
  - fu_elantp_hid_device_convert_version
  - fu_elantp_hid_device_init
  - fu_elantp_hid_device_class_init
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: ic_page_count
        type: guint16
      - name: ic_type
        type: guint16
      - name: iap_type
        type: guint16
      - name: iap_ctrl
        type: guint16
      - name: iap_password
        type: guint16
      - name: iap_ver
        type: guint16
      - name: module_id
        type: guint16
      - name: fw_page_size
        type: guint16
      - name: force_table_support
        type: gboolean
      - name: force_table_addr
        type: guint32
      - name: pattern
        type: guint8
      item_type: struct
      name: _FuElantpHidDevice
      pos:
        line_end: 26
        line_start: 13
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ELANTP_I2C_DEVICE_ABSOLUTE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.h
      type_or_value: '"elantp-absolute"'
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_I2C_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.h
      type_or_value: (fu_elantp_i2c_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.h
      type_or_value: (fu_elantp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_HAPTIC_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.h
      type_or_value: (fu_elantp_haptic_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-device.h
      type_or_value: (fu_elantp_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_thunderbolt_device_set_retries
  - fu_thunderbolt_device_find_nvmem
  - fu_thunderbolt_device_check_authorized
  - fu_thunderbolt_device_get_version
  - fu_thunderbolt_device_to_string
  - fu_thunderbolt_device_set_auth_method
  - fu_thunderbolt_device_activate
  - fu_thunderbolt_device_authenticate
  - fu_thunderbolt_device_flush_update
  - fu_thunderbolt_device_attach
  - fu_thunderbolt_device_rescan
  - fu_thunderbolt_device_write_data
  - fu_thunderbolt_device_prepare_firmware
  - fu_thunderbolt_device_write_firmware
  - fu_thunderbolt_device_probe
  - fu_thunderbolt_device_set_progress
  - fu_thunderbolt_device_init
  - fu_thunderbolt_device_class_init
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TBT_NVM_RETRY_TIMEOUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
      type_or_value: '200   '
    - item_type: preproc_def
      name: FU_PLUGIN_THUNDERBOLT_UPDATE_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
      type_or_value: '60000 '
    structs:
    - fields:
      - name: '*auth_method'
        type: gchar
      - name: retries
        type: guint
      item_type: struct
      name: FuThunderboltDevicePrivate
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_THUNDERBOLT_DEVICE_FLAG_FORCE_ENUMERATION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.h
      type_or_value: '"force-enumeration"'
    - item_type: preproc_def
      name: FU_THUNDERBOLT_DEVICE_WRITE_TIMEOUT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.h
      type_or_value: '1500 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_thunderbolt_retimer_set_parent_port_offline
  - fu_thunderbolt_retimer_set_parent_port_online
  - fu_thunderbolt_retimer_probe
  - fu_thunderbolt_retimer_reload
  - fu_thunderbolt_retimer_attach
  - fu_thunderbolt_retimer_setup
  - fu_thunderbolt_retimer_init
  - fu_thunderbolt_retimer_class_init
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuThunderboltDevice
      item_type: struct
      name: _FuThunderboltRetimer
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    typedefs: []
    union: []
- function_names:
  - fu_thunderbolt_device_find_usb4_port_path
  - fu_thunderbolt_udev_set_port_offline
  - fu_thunderbolt_udev_rescan_port
  - fu_thunderbolt_udev_set_port_online
  - fu_thunderbolt_udev_get_attr_uint16
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_THUNDERBOLT_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.h
      type_or_value: (fu_thunderbolt_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuThunderboltDeviceClass
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.h
    typedefs: []
    union: []
- function_names:
  - fu_thunderbolt_controller_check_safe_mode
  - fu_thunderbolt_controller_ensure_fallback_name
  - fu_thunderbolt_controller_to_string
  - fu_thunderbolt_controller_probe
  - fu_thunderbolt_controller_read_status_block
  - fu_thunderbolt_controller_can_update
  - fu_thunderbolt_controller_set_port_online_cb
  - fu_thunderbolt_controller_setup_usb4
  - fu_thunderbolt_controller_setup
  - fu_thunderbolt_controller_write_firmware
  - fu_thunderbolt_controller_init
  - fu_thunderbolt_controller_finalize
  - fu_thunderbolt_controller_class_init
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TBT_OFFSET_NATIVE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
      type_or_value: '0x7B'
    - item_type: preproc_def
      name: FU_TBT_CHUNK_SZ
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
      type_or_value: '0x40'
    structs:
    - fields:
      - name: parent_instance
        type: FuThunderboltDevice
      - name: controller_kind
        type: FuThunderboltControllerKind
      - name: safe_mode
        type: gboolean
      - name: is_native
        type: gboolean
      - name: gen
        type: guint16
      - name: host_online_timer_id
        type: guint
      item_type: struct
      name: _FuThunderboltController
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    typedefs: []
    union: []
- function_names:
  - udev_mock_add_nvmem
  - udev_mock_add_usb4_port
  - mock_tree_new
  - mock_tree_free
  - mock_tree_init_children
  - mock_tree_init
  - mock_tree_dump
  - mock_tree_firmware_verify
  - mock_tree_contains
  - mock_tree_all
  - mock_tree_compare_uuid
  - mock_tree_find_uuid
  - mock_tree_node_have_fu_device
  - write_controller_fw
  - mock_tree_attach_device
  - on_sync_timeout
  - sync_device_added
  - sync_device_removed
  - mock_tree_sync
  - mock_tree_plugin_device_added
  - mock_tree_settle
  - mock_tree_attach
  - mock_tree_node_is_detached
  - mock_tree_detach
  - update_context_free
  - reattach_tree
  - udev_file_changed_cb
  - mock_tree_prepare_for_update
  - fu_thunderbolt_gudev_uevent_cb
  - test_set_up
  - test_tear_down
  - test_tree_uuids
  - test_tree
  - test_image_validation
  - test_change_uevent
  - test_update_working
  - test_update_wd19
  - test_update_fail
  - test_update_fail_nowshow
  - main
  source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
  types:
    enum:
    - enumerators:
      - name: UPDATE_SUCCESS
        value: '0'
      - name: UPDATE_FAIL_DEVICE_NOSHOW
        value: '2'
      - name: UPDATE_FAIL_DEVICE_INTERNAL
        value: '1'
      item_type: enum
      name: FuThunderboltTestUpdateResult
      pos:
        line_end: 641
        line_start: 635
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - enumerators:
      - name: TEST_INITIALIZE_TREE
        value: 1 << 0
      - name: TEST_ATTACH
        value: 1 << 1
      - name: TEST_PREPARE_ALL
        value: TEST_INITIALIZE_TREE | TEST_ATTACH | TEST_PREPARE_FIRMWARE
      - name: TEST_PREPARE_FIRMWARE
        value: 1 << 2
      item_type: enum
      name: FuThunderboltTestFlags
      pos:
        line_end: 841
        line_start: 835
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    preproc_defs:
    - item_type: preproc_def
      name: TEST_INIT_FULL
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
      type_or_value: (GUINT_TO_POINTER(TEST_PREPARE_ALL))
    - item_type: preproc_def
      name: TEST_INIT_NONE
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
      type_or_value: (GUINT_TO_POINTER(0))
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*id'
        type: char
      - name: '*nvm_version'
        type: char
      - name: '*nvm_parsed_version'
        type: char
      - name: delay_ms
        type: int
      - name: domain_id
        type: int
      - name: '*children'
        type: struct MockDevice
      - name: '*uuid'
        type: char
      item_type: struct
      name: MockDevice
      pos:
        line_end: 73
        line_start: 59
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*device'
        type: MockDevice
      - name: '*parent'
        type: MockTree
      - name: '*children'
        type: GPtrArray
      - name: '*sysfs_parent'
        type: gchar
      - name: sysfs_id
        type: int
      - name: sysfs_nvm_id
        type: int
      - name: '*uuid'
        type: gchar
      - name: '*bed'
        type: UMockdevTestbed
      - name: '*path'
        type: gchar
      - name: '*nvm_non_active'
        type: gchar
      - name: '*nvm_active'
        type: gchar
      - name: nvm_authenticate
        type: guint
      - name: '*nvm_version'
        type: gchar
      - name: '*fu_device'
        type: FuDevice
      item_type: struct
      name: MockTree
      pos:
        line_end: 97
        line_start: 77
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*tree'
        type: MockTree
      - name: '*loop'
        type: GMainLoop
      item_type: struct
      name: SyncContext
      pos:
        line_end: 427
        line_start: 424
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*tree'
        type: MockTree
      - name: '*loop'
        type: GMainLoop
      - name: complete
        type: gboolean
      item_type: struct
      name: AttachContext
      pos:
        line_end: 518
        line_start: 511
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*monitor'
        type: GFileMonitor
      - name: result
        type: FuThunderboltTestUpdateResult
      - name: timeout
        type: guint
      - name: '*data'
        type: GBytes
      - name: '*bed'
        type: UMockdevTestbed
      - name: '*plugin'
        type: FuPlugin
      - name: '*node'
        type: MockTree
      - name: '*version'
        type: gchar
      item_type: struct
      name: UpdateContext
      pos:
        line_end: 654
        line_start: 643
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: initialize_tree
        type: gboolean
      - name: attach_and_coldplug
        type: gboolean
      - name: '*firmware_file'
        type: char
      item_type: struct
      name: TestParam
      pos:
        line_end: 833
        line_start: 828
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*bed'
        type: UMockdevTestbed
      - name: '*plugin'
        type: FuPlugin
      - name: '*ctx'
        type: FuContext
      - name: '*udev_client'
        type: GUdevClient
      - name: '*tree'
        type: MockTree
      - name: '*fw_data'
        type: GBytes
      - name: '*fw_stream'
        type: GInputStream
      item_type: struct
      name: ThunderboltTest
      pos:
        line_end: 859
        line_start: 846
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    typedefs:
    - item_type: typedef
      name: (*MockTreePredicate)(const MockTree *node, gpointer data)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - item_type: typedef
      name: FuThunderboltTestUpdateResult
      pos:
        line_end: 641
        line_start: 635
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - item_type: typedef
      name: FuThunderboltTestFlags
      pos:
        line_end: 841
        line_start: 835
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    union: []
- function_names:
  - fu_thunderbolt_plugin_safe_kernel
  - fu_thunderbolt_plugin_device_created
  - fu_thunderbolt_plugin_device_registered
  - fu_thunderbolt_plugin_startup
  - fu_thunderbolt_plugin_composite_prepare
  - fu_thunderbolt_plugin_composite_cleanup
  - fu_thunderbolt_plugin_modify_config
  - fu_thunderbolt_plugin_init
  - fu_thunderbolt_plugin_constructed
  - fu_thunderbolt_plugin_class_init
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuThunderboltPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_THUNDERBOLT_CONTROLLER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.h
      type_or_value: (fu_thunderbolt_controller_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_THUNDERBOLT_RETIMER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.h
      type_or_value: (fu_thunderbolt_retimer_get_type())
    - item_type: preproc_def
      name: FU_THUNDERBOLT_RETIMER_CLEANUP_DELAY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.h
      type_or_value: '5000 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ep963x_firmware_validate
  - fu_ep963x_firmware_parse
  - fu_ep963x_firmware_init
  - fu_ep963x_firmware_class_init
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuEp963xFirmware
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_ep963x_device_write
  - fu_ep963x_device_write_icp
  - fu_ep963x_device_detach
  - fu_ep963x_device_attach
  - fu_ep963x_device_setup
  - fu_ep963x_device_wait_cb
  - fu_ep963x_device_write_firmware
  - fu_ep963x_device_set_progress
  - fu_ep963x_device_init
  - fu_ep963x_device_class_init
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EP963_DEVICE_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuEp963xDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EP963X_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.h
      type_or_value: (fu_ep963x_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EP963_FIRMWARE_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x1f000'
    - item_type: preproc_def
      name: FU_EP963_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x200 '
    - item_type: preproc_def
      name: FU_EP963_TRANSFER_CHUNK_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_EP963_FEATURE_ID1_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_EP963_USB_CONTROL_ID
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_EP963_ICP_ENTER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FU_EP963_ICP_EXIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x82'
    - item_type: preproc_def
      name: FU_EP963_ICP_BANK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x83'
    - item_type: preproc_def
      name: FU_EP963_ICP_ADDRESS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x84'
    - item_type: preproc_def
      name: FU_EP963_ICP_READBLOCK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x85'
    - item_type: preproc_def
      name: FU_EP963_ICP_WRITEBLOCK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x86'
    - item_type: preproc_def
      name: FU_EP963_ICP_MCUID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x87'
    - item_type: preproc_def
      name: FU_EP963_ICP_DONE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x5A'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SMBUS_READ
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_ERASE_SPI
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_RESET_BLOCK_INDEX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_WRITE_BLOCK_DATA
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_PROGRAM_SPI_BLOCK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_PROGRAM_SPI_FINISH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_GET_SPI_CHECKSUM
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_PROGRAM_EP_FLASH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_GET_EP_CHECKSUM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_START_THROW_PAGE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x0B'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_GET_EP_SITE_TYPE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_COMMAND_VERSION
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_COMMAND_STATUS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SUBMCU_ENTER_ICP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SUBMCU_RESET_BLOCK_IDX
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x31'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SUBMCU_WRITE_BLOCK_DATA
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x32'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SUBMCU_PROGRAM_BLOCK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x33'
    - item_type: preproc_def
      name: FU_EP963_OPCODE_SUBMCU_PROGRAM_FINISHED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x34'
    - item_type: preproc_def
      name: FU_EP963_UF_CMD_VERSION
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_EP963_UF_CMD_ENTERISP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_EP963_UF_CMD_PROGRAM
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_EP963_UF_CMD_READ
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_EP963_UF_CMD_MODE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_EP963_USB_STATE_READY
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_EP963_USB_STATE_BUSY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_EP963_USB_STATE_FAIL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_EP963_USB_STATE_UNKNOWN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-common.h
      type_or_value: '0xff'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EP963X_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-device.h
      type_or_value: (fu_ep963x_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ep963x_plugin_init
  - fu_ep963x_plugin_object_constructed
  - fu_ep963x_plugin_constructed
  - fu_ep963x_plugin_class_init
  source_file: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuEp963XPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_linux_lockdown_plugin_rescan
  - fu_linux_lockdown_plugin_changed_cb
  - fu_linux_lockdown_plugin_startup
  - fu_linux_lockdown_plugin_ensure_security_attr_flags
  - fu_linux_lockdown_plugin_add_security_attrs
  - fu_linux_lockdown_plugin_to_string
  - fu_linux_lockdown_plugin_init
  - fu_linux_lockdown_plugin_finalize
  - fu_linux_lockdown_plugin_fix_host_security_attr
  - fu_linux_lockdown_plugin_undo_host_security_attr
  - fu_linux_lockdown_plugin_class_init
  source_file: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*file'
        type: GFile
      - name: '*monitor'
        type: GFileMonitor
      - name: lockdown
        type: FuLinuxLockdown
      item_type: struct
      name: _FuLinuxLockdownPlugin
      pos:
        line_end: 16
        line_start: 11
        source_file: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elanfp_plugin_init
  - fu_elanfp_plugin_constructed
  - fu_elanfp_plugin_class_init
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuElanfpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_elanfp_device_iap_send_command
  - fu_elanfp_device_iap_recv_status
  - fu_elanfp_device_do_xfer
  - fu_elanfp_device_setup
  - fu_elanfp_device_write_payload
  - fu_elanfp_device_write_firmware
  - fu_elanfp_device_init
  - fu_elanfp_device_set_progress
  - fu_elanfp_device_class_init
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELAN_EP_CMD_OUT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: (0x01 | 0x00)
    - item_type: preproc_def
      name: ELAN_EP_CMD_IN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: (0x02 | 0x80)
    - item_type: preproc_def
      name: ELAN_EP_MOC_CMD_IN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: (0x04 | 0x80)
    - item_type: preproc_def
      name: ELAN_EP_IMG_IN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: (0x03 | 0x80)
    - item_type: preproc_def
      name: ELANFP_USB_INTERFACE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CTRL_SEND_TIMEOUT_MS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: BULK_SEND_TIMEOUT_MS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: BULK_RECV_TIMEOUT_MS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: REPORT_ID_FW_VERSION_FEATURE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: REPORT_ID_OFFER_COMMAND
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: REPORT_ID_OFFER_RESPONSE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: REPORT_ID_PAYLOAD_COMMAND
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: REPORT_ID_PAYLOAD_RESPONSE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x22'
    - item_type: preproc_def
      name: REQTYPE_GET_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0xC1'
    - item_type: preproc_def
      name: REQTYPE_COMMAND
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: TAG_SEND_COMMAND
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '0xFA'
    - item_type: preproc_def
      name: FU_ELAN_FP_DEVICE_FLAG_USB_BULK_TRANSFER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
      type_or_value: '"usb-bulk-transfer"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuElanfpDevice
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    - fields:
      - name: '*tag'
        type: gchar
      - name: offer_idx
        type: guint8
      - name: payload_idx
        type: guint8
      item_type: struct
      name: "items[] = {\n\t    {\"A\", FU_ELANTP_FIRMWARE_IDX_CFU_OFFER_A, FU_ELANTP_FIRMWARE_IDX_CFU_PAYLOAD_A},\n\t
        \   {\"B\", FU_ELANTP_FIRMWARE_IDX_CFU_OFFER_B, FU_ELANTP_FIRMWARE_IDX_CFU_PAYLOAD_B},\n\t
        \   {NULL, FU_ELANTP_FIRMWARE_IDX_END, FU_ELANTP_FIRMWARE_IDX_END}}"
      pos:
        line_end: 350
        line_start: 346
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANFP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: (fu_elanfp_firmware_get_type())
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_FIRMWAREVERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_CFU_OFFER_A
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0x72'
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_CFU_OFFER_B
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0x73'
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_CFU_PAYLOAD_A
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0x74'
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_CFU_PAYLOAD_B
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0x75'
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_IDX_END
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.h
      type_or_value: '0xFF'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANFP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-device.h
      type_or_value: (fu_elanfp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elanfp_firmware_export
  - fu_elanfp_firmware_build
  - fu_elanfp_firmware_validate
  - fu_elanfp_firmware_parse
  - fu_elanfp_firmware_write
  - fu_elanfp_firmware_init
  - fu_elanfp_firmware_class_init
  source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: format_version
        type: guint32
      item_type: struct
      name: _FuElanfpFirmware
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bios/fu-bios-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bios_plugin_startup
  - fu_bios_plugin_coldplug
  - fu_bios_plugin_add_security_attrs
  - fu_bios_plugin_init
  - fu_bios_plugin_class_init
  source_file: /src/fwupd/plugins/bios/fu-bios-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuBiosPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/bios/fu-bios-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.h
      type_or_value: fu_logitech_rallysystem_tablehub_device_get_type()
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.h
      type_or_value: (fu_logitech_rallysystem_audio_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_rallysystem_plugin_init
  - fu_logitech_rallysystem_plugin_device_added
  - fu_logitech_rallysystem_plugin_constructed
  - fu_logitech_rallysystem_plugin_class_init
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLogitechRallysystemPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_rallysystem_audio_device_set_version
  - fu_logitech_rallysystem_audio_device_set_serial
  - fu_logitech_rallysystem_audio_device_setup
  - fu_logitech_rallysystem_audio_device_set_progress
  - fu_logitech_rallysystem_audio_device_convert_version
  - fu_logitech_rallysystem_audio_device_init
  - fu_logitech_rallysystem_audio_device_class_init
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TOPOLOGY_DATA_LEN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
      type_or_value: '513 '
    - item_type: preproc_def
      name: SERIAL_NUMBER_REQUEST_DATA_LEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
      type_or_value: '49'
    - item_type: preproc_def
      name: SERIAL_NUMBER_RESPONSE_DATA_LEN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
      type_or_value: '128'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLogitechRallysystemAudioDevice
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_rallysystem_tablehub_device_to_string
  - fu_logitech_rallysystem_tablehub_device_probe
  - fu_logitech_rallysystem_tablehub_device_send
  - fu_logitech_rallysystem_tablehub_device_recv
  - fu_logitech_rallysystem_tablehub_device_write_fw
  - fu_logitech_rallysystem_tablehub_device_progress_cb
  - fu_logitech_rallysystem_tablehub_device_write_firmware
  - fu_logitech_rallysystem_tablehub_device_send_init_cmd_cb
  - fu_logitech_rallysystem_tablehub_device_setup
  - fu_logitech_rallysystem_tablehub_device_set_progress
  - fu_logitech_rallysystem_tablehub_device_init
  - fu_logitech_rallysystem_tablehub_device_class_init
  source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
      type_or_value: '3000  '
    - item_type: preproc_def
      name: FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE_IOCTL_PROGRESS_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
      type_or_value: '90000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: bulk_ep[EP_LAST]
        type: guint
      item_type: struct
      name: _FuLogitechRallysystemTablehubDevice
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CAPE_HID_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.h
      type_or_value: (fu_synaptics_cape_hid_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CAPE_SNGL_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.h
      type_or_value: (fu_synaptics_cape_sngl_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CAPE_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.h
      type_or_value: (fu_synaptics_cape_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuSynapticsCapeFirmwareClass
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cape_hid_firmware_parse
  - fu_synaptics_cape_hid_firmware_write
  - fu_synaptics_cape_hid_firmware_init
  - fu_synaptics_cape_hid_firmware_class_init
  - fu_synaptics_cape_hid_firmware_new
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSynapticsCapeFirmware
      item_type: struct
      name: _FuSynapticsCapeHidFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cape_sngl_firmware_parse
  - fu_synaptics_cape_sngl_firmware_write
  - fu_synaptics_cape_sngl_firmware_init
  - fu_synaptics_cape_sngl_firmware_class_init
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSynapticsCapeFirmware
      item_type: struct
      name: _FuSynapticsCapeSnglFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_CAPE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.h
      type_or_value: (fu_synaptics_cape_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cape_plugin_init
  - fu_synaptics_cape_plugin_constructed
  - fu_synaptics_cape_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsCapePlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_synaptics_cape_firmware_get_vid
  - fu_synaptics_cape_firmware_set_vid
  - fu_synaptics_cape_firmware_get_pid
  - fu_synaptics_cape_firmware_set_pid
  - fu_synaptics_cape_firmware_export
  - fu_synaptics_cape_firmware_build
  - fu_synaptics_cape_firmware_init
  - fu_synaptics_cape_firmware_class_init
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      item_type: struct
      name: FuSynapticsCapeFirmwarePrivate
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_cape_device_set_report
  - fu_synaptics_cape_device_get_report
  - fu_synaptics_cape_device_get_report_intr
  - fu_synaptics_cape_device_rc_set_error
  - fu_synaptics_cape_device_sendcmd_ex
  - fu_synaptics_cape_device_sendcmd
  - fu_synaptics_cape_device_to_string
  - fu_synaptics_cape_device_reset
  - fu_synaptics_cape_device_setup_active_partition
  - fu_synaptics_cape_device_setup_version
  - fu_synaptics_cape_device_setup
  - fu_synaptics_cape_device_prepare_firmware
  - fu_synaptics_cape_device_write_firmware_header
  - fu_synaptics_cape_device_write_firmware_image
  - fu_synaptics_cape_device_write_firmware
  - fu_synaptics_cape_device_set_progress
  - fu_synaptics_cape_device_convert_version
  - fu_synaptics_cape_device_init
  - fu_synaptics_cape_device_class_init
  source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_CMD_WRITE_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '20   '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_CMD_READ_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '30   '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_CMD_RETRY_INTERVAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '10   '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_CMD_RETRY_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '300  '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_CMD_INTR_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_USB_RESET_DELAY_MS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_HDR_WRITE_DELAY_MS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '150  '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_CMD_WRITE_DATAL_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '8 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_CMD_GET_FLAG
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '0x100 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_CMD_IS_REPLY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_FM3_HID_INTR_IN_EP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: FU_SYNAPTICS_CAPE_DEVICE_FLAG_USE_IN_REPORT_INTERRUPT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
      type_or_value: '"use-in-report-interrupt"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: active_partition
        type: FuSynapticsCapeFirmwarePartition
      item_type: struct
      name: _FuSynapticsCapeDevice
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_scribe_device_send
  - fu_logitech_scribe_device_recv
  - fu_logitech_scribe_device_send_upd_cmd
  - fu_logitech_scribe_device_compute_hash_cb
  - fu_logitech_scribe_device_compute_hash
  - fu_logitech_scribe_device_ioctl_buffer_cb
  - fu_logitech_scribe_device_query_data_size
  - fu_logitech_scribe_device_get_xu_control
  - fu_logitech_scribe_device_to_string
  - fu_logitech_scribe_device_probe
  - fu_logitech_scribe_device_send_upd_init_cmd_cb
  - fu_logitech_scribe_device_write_fw
  - fu_logitech_scribe_device_write_firmware
  - fu_logitech_scribe_device_ensure_version
  - fu_logitech_scribe_device_setup
  - fu_logitech_scribe_device_set_progress
  - fu_logitech_scribe_device_convert_version
  - fu_logitech_scribe_device_init
  - fu_logitech_scribe_device_class_init
  source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UPD_PACKET_HEADER_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: (2 * sizeof(guint32))
    - item_type: preproc_def
      name: HASH_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '1500'
    - item_type: preproc_def
      name: MAX_DATA_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '8192 '
    - item_type: preproc_def
      name: PAYLOAD_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: MAX_DATA_SIZE - UPD_PACKET_HEADER_SIZE
    - item_type: preproc_def
      name: UPD_INTERFACE_SUBPROTOCOL_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '101'
    - item_type: preproc_def
      name: BULK_TRANSFER_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: HASH_VALUE_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: LENGTH_OFFSET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: COMMAND_OFFSET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: MAX_RETRIES
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_HANDSHAKE_RETRIES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_WAIT_COUNT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '150'
    - item_type: preproc_def
      name: SESSION_TIMEOUT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_LOGITECH_SCRIBE_CHECKSUM_KIND_MD5
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FU_LOGITECH_SCRIBE_VERSION_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '1024 '
    - item_type: preproc_def
      name: FU_LOGITECH_SCRIBE_PROTOCOL_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_LOGITECH_SCRIBE_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: kDefaultUvcGetLenQueryControlSize
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuV4lDevice
      - name: update_ep[EP_LAST]
        type: guint
      - name: update_iface
        type: guint
      item_type: struct
      name: _FuLogitechScribeDevice
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_scribe_plugin_init
  - fu_logitech_scribe_plugin_constructed
  - fu_logitech_scribe_plugin_class_init
  source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLogitechScribePlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_SCRIBE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.h
      type_or_value: (fu_logitech_scribe_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_gl32xx_device_set_chip_name
  - fu_genesys_gl32xx_device_cmd_get_version
  - fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
  - fu_genesys_gl32xx_device_cmd_reset_usb
  - fu_genesys_gl32xx_device_cmd_write_sr
  - fu_genesys_gl32xx_device_cmd_write_enable
  - fu_genesys_gl32xx_device_cmd_write_disable
  - fu_genesys_gl32xx_device_cmd_clear_wp
  - fu_genesys_gl32xx_device_cmd_chip_erase
  - fu_genesys_gl32xx_device_cmd_wait_wip
  - fu_genesys_gl32xx_device_cmd_read_flash
  - fu_genesys_gl32xx_device_ensure_version
  - fu_genesys_gl32xx_device_check_rom_mode
  - fu_genesys_gl32xx_device_ensure_rom_mode
  - fu_genesys_gl32xx_device_verify_chip_id
  - fu_genesys_gl32xx_device_ensure_enforce_requires
  - fu_genesys_gl32xx_device_ensure_cid
  - fu_genesys_gl32xx_device_get_usb_mode
  - fu_genesys_gl32xx_device_erase
  - fu_genesys_gl32xx_device_to_string
  - fu_genesys_gl32xx_device_detach
  - fu_genesys_gl32xx_device_attach
  - fu_genesys_gl32xx_device_setup
  - fu_genesys_gl32xx_device_dump_bytes
  - fu_genesys_gl32xx_device_dump_firmware
  - fu_genesys_gl32xx_device_read_firmware
  - fu_genesys_gl32xx_device_prepare_firmware
  - fu_genesys_gl32xx_device_write_block
  - fu_genesys_gl32xx_device_write_blocks
  - fu_genesys_gl32xx_device_write_firmware
  - fu_genesys_gl32xx_device_set_progress
  - fu_genesys_gl32xx_device_set_quirk_kv
  - fu_genesys_gl32xx_device_init
  - fu_genesys_gl32xx_device_finalize
  - fu_genesys_gl32xx_device_class_init
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_GENESYS_GL32XX_FW_START_ADDR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_GENESYS_GL32XX_FW_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: FU_GENESYS_GL32XX_CLEAR_WP_SLEEP_MS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
      type_or_value: '800'
    structs:
    - fields:
      - name: parent_instance
        type: FuBlockDevice
      - name: '*chip_name'
        type: gchar
      - name: packetsz
        type: guint32
      - name: customer_id
        type: guint32
      - name: compatible_model
        type: guint16
      item_type: struct
      name: _FuGenesysGl32xxDevice
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_GL32XX_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.h
      type_or_value: (fu_genesys_gl32xx_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_gl32xx_plugin_init
  - fu_genesys_gl32xx_plugin_constructed
  - fu_genesys_gl32xx_plugin_class_init
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuGenesysGl32xxPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GENESYS_GL32XX_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.h
      type_or_value: (fu_genesys_gl32xx_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_genesys_gl32xx_firmware_parse
  - fu_genesys_gl32xx_firmware_init
  - fu_genesys_gl32xx_firmware_class_init
  - fu_genesys_gl32xx_firmware_new
  source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_GENESYS_GL32XX_VERSION_ADDR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
      type_or_value: '0x00D4'
    - item_type: preproc_def
      name: FU_GENESYS_GL32XX_CHECKSUM_MAGIC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
      type_or_value: '0x0055'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuGenesysGl32xxFirmware
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_recovery_plugin_startup
  - fu_uefi_recovery_plugin_coldplug
  - fu_uefi_recovery_plugin_constructed
  - fu_uefi_recovery_plugin_init
  - fu_uefi_recovery_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiRecoveryPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vbe/fu-vbe-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VBE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/vbe/fu-vbe-device.h
      type_or_value: (fu_vbe_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuVbeDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/vbe/fu-vbe-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vbe/fu-vbe-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vbe/fu-vbe-simple-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VBE_SIMPLE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/vbe/fu-vbe-simple-device.h
      type_or_value: (fu_vbe_simple_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vbe_simple_device_to_string
  - fu_vbe_simple_device_parse_devnum
  - fu_vbe_simple_device_probe
  - fu_vbe_simple_device_open
  - fu_vbe_simple_device_close
  - fu_vbe_simple_device_get_cfg_compatible
  - fu_vbe_simple_device_prepare_firmware
  - fu_vbe_simple_device_write_firmware_img
  - fu_vbe_simple_device_write_firmware
  - fu_vbe_simple_device_upload
  - fu_vbe_simple_device_set_progress
  - fu_vbe_simple_device_init
  - fu_vbe_simple_device_constructed
  - fu_vbe_simple_device_finalize
  - fu_vbe_simple_device_class_init
  source_file: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuVbeDevice
      - name: '*storage'
        type: gchar
      - name: '*devname'
        type: gchar
      - name: area_start
        type: guint32
      - name: area_size
        type: guint32
      - name: skip_offset
        type: guint32
      - name: fd
        type: gint
      item_type: struct
      name: _FuVbeSimpleDevice
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    typedefs: []
    union: []
- function_names:
  - fu_vbe_plugin_coldplug_img
  - fu_vbe_plugin_coldplug
  - fu_vbe_plugin_init
  - fu_vbe_plugin_constructed
  - fu_vbe_plugin_class_init
  source_file: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuVbePlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_vbe_device_to_string
  - fu_vbe_device_get_fdt_node
  - fu_vbe_device_get_compatible
  - fu_vbe_device_init
  - fu_vbe_device_probe
  - fu_vbe_device_get_property
  - fu_vbe_device_set_property
  - fu_vbe_device_finalize
  - fu_vbe_device_class_init
  source_file: /src/fwupd/plugins/vbe/fu-vbe-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fdt_root'
        type: FuFdtImage
      - name: '*fdt_node'
        type: FuFdtImage
      - name: '**compatible'
        type: gchar
      item_type: struct
      name: FuVbeDevicePrivate
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/vbe/fu-vbe-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_powerd_plugin_create_suspend_file
  - fu_powerd_plugin_delete_suspend_file
  - fu_powerd_plugin_rescan
  - fu_powerd_plugin_proxy_changed_cb
  - fu_powerd_plugin_startup
  - fu_powerd_plugin_prepare
  - fu_powerd_plugin_cleanup
  - fu_powerd_plugin_init
  - fu_powerd_plugin_finalize
  - fu_powerd_plugin_class_init
  source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*proxy'
        type: GDBusProxy
      item_type: struct
      name: _FuPowerdPlugin
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    typedefs:
    - item_type: typedef
      name: FuPowerdBatteryState
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    - item_type: typedef
      name: FuPowerdExternal
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_ENTER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_EXIT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x82'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_ADDRESS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x84'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_READBLOCK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x85'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_WRITEBLOCK
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x86'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_MCUID
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x87'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_BBINFO
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x88 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_USERINFO
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x89 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_DONE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x5A'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_ERROR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_ICP_EXIT_WDRESET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_ENTER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x91'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_EXIT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x92'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_ADDRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x93'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_READIMG_BLOCK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x94'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_WRITEIMG_BLOCK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x95'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_VERIFY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x96'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_COMPOSITE_VER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x97'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_WRITE_WDFL_SIG
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x98'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_WRITE_WDFL_DATA
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x99'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_VERIFY_WDFL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x9A'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_SERINAL_NUMBER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x9B'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_DONE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x5A'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_CMD_DFU_ERROR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_WDIT_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: "512\t   "
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_WDIT_TAG_ID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '0x4954 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_WDFL_SIG_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '256  '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_WDFL_DATA_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-common.h
      type_or_value: '1328 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wistron_dock_device_to_string
  - fu_wistron_dock_device_control_cb
  - fu_wistron_dock_device_control_write
  - fu_wistron_dock_device_control_read
  - fu_wistron_dock_device_data_write_cb
  - fu_wistron_dock_device_data_write
  - fu_wistron_dock_device_write_wdfl_sig
  - fu_wistron_dock_device_write_wdfl_data
  - fu_wistron_dock_device_set_img_address
  - fu_wistron_dock_device_write_img_data
  - fu_wistron_dock_device_write_blocks
  - fu_wistron_dock_device_prepare_firmware
  - fu_wistron_dock_device_write_firmware
  - fu_wistron_dock_device_ensure_mcuid
  - fu_wistron_dock_device_ensure_bbinfo
  - fu_wistron_dock_device_ensure_userinfo
  - fu_wistron_dock_device_parse_wdit_img
  - fu_wistron_dock_device_ensure_wdit
  - fu_wistron_dock_device_setup
  - fu_wistron_dock_device_detach
  - fu_wistron_dock_device_insert_cb
  - fu_wistron_dock_device_cleanup
  - fu_wistron_dock_device_attach
  - fu_wistron_dock_device_set_progress
  - fu_wistron_dock_device_convert_version
  - fu_wistron_dock_device_init
  - fu_wistron_dock_device_finalize
  - fu_wistron_dock_device_class_init
  source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '512  '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_TRANSFER_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_TRANSFER_RETRY_COUNT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_TRANSFER_RETRY_DELAY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '100 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_USB_CONTROL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_USB_BLOCK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x07 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_IMG_CONTROL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x16 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_DOCK_IMG_DATA
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x17 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_DOCK_WDIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_DOCK_WDFL_SIG
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x21 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_DOCK_WDFL_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x22 '
    - item_type: preproc_def
      name: FU_WISTRON_DOCK_ID_DOCK_SN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
      type_or_value: '0x23 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: component_idx
        type: guint8
      - name: update_phase
        type: guint8
      - name: status_code
        type: guint8
      - name: imgmode
        type: guint8
      - name: '*icp_bbinfo'
        type: gchar
      - name: '*icp_userinfo'
        type: gchar
      - name: device_insert_id
        type: guint
      item_type: struct
      name: _FuWistronDockDevice
      pos:
        line_end: 22
        line_start: 13
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    - fields:
      - name: '*cmd'
        type: guint8
      - name: cmdsz
        type: gsize
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      - name: check_result
        type: gboolean
      item_type: struct
      name: FuWistronDockHelper
      pos:
        line_end: 67
        line_start: 61
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    typedefs: []
    union: []
- function_names:
  - fu_wistron_dock_plugin_init
  - fu_wistron_dock_plugin_constructed
  - fu_wistron_dock_plugin_class_init
  source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWistronDockPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WISTRON_DOCK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.h
      type_or_value: (fu_wistron_dock_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_system76_launch_device_response_cb
  - fu_system76_launch_device_command
  - fu_system76_launch_device_version_cb
  - fu_system76_launch_device_setup
  - fu_system76_launch_device_reset
  - fu_system76_launch_device_security_set
  - fu_system76_launch_device_detach
  - fu_system76_launch_device_set_progress
  - fu_system76_launch_device_init
  - fu_system76_launch_device_class_init
  source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSTEM76_LAUNCH_CMD_VERSION
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SYSTEM76_LAUNCH_CMD_RESET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SYSTEM76_LAUNCH_CMD_SECURITY_SET
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
      type_or_value: '21'
    - item_type: preproc_def
      name: SYSTEM76_LAUNCH_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuSystem76LaunchDevice
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    - fields:
      - name: '*data'
        type: guint8
      - name: len
        type: gsize
      item_type: struct
      name: FuSystem76LaunchDeviceHelper
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    typedefs: []
    union: []
- function_names:
  - fu_system76_launch_plugin_init
  - fu_system76_launch_plugin_constructed
  - fu_system76_launch_plugin_class_init
  source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSystem76LaunchPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYSTEM76_LAUNCH_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.h
      type_or_value: (fu_system76_launch_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PARADE_LSPCON_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.h
      type_or_value: (fu_parade_lspcon_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_parade_lspcon_device_to_string
  - fu_parade_lspcon_device_open
  - fu_parade_lspcon_device_i2c_address_guard_new
  - fu_parade_lspcon_device_i2c_address_guard_free
  - fu_parade_lspcon_device_write_register
  - fu_parade_lspcon_device_read_register
  - fu_parade_lspcon_device_map_page
  - fu_parade_lspcon_device_poll_register
  - fu_parade_lspcon_device_flash_read
  - fu_parade_lspcon_device_flash_transmit_command
  - fu_parade_lspcon_device_flash_enable_write
  - fu_parade_lspcon_device_flash_read_status
  - fu_parade_lspcon_device_flash_wait_ready
  - fu_parade_lspcon_device_prepare
  - fu_parade_lspcon_device_cleanup
  - fu_parade_lspcon_device_flash_write
  - fu_parade_lspcon_device_flash_erase_block
  - fu_parade_lspcon_device_write_firmware
  - fu_parade_lspcon_device_set_dev_id
  - fu_parade_lspcon_device_set_ieee_oui
  - fu_parade_lspcon_device_ensure_dpcd
  - fu_parade_lspcon_device_ensure_active_flash_partition_internal
  - fu_parade_lspcon_device_ensure_active_flash_partition
  - fu_parade_lspcon_device_setup
  - fu_parade_lspcon_device_set_mpu_running
  - fu_parade_lspcon_device_detach
  - fu_parade_lspcon_device_attach
  - fu_parade_lspcon_device_dump_firmware
  - fu_parade_lspcon_device_set_progress
  - fu_parade_lspcon_device_convert_version
  - fu_parade_lspcon_device_init
  - fu_parade_lspcon_device_class_init
  source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPI_CTL_NOREAD
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: SPI_CTL_TRIGGER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: SPI_STATUS_BP_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: SPI_STATUS_SE_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x0C '
    - item_type: preproc_def
      name: SPI_STATUS_CE_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x30 '
    - item_type: preproc_def
      name: WR_PROTECT_DISABLE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FU_PARADE_LSPCON_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuI2cDevice
      - name: kind
        type: FuParadeLspconDeviceKind
      - name: active_partition
        type: guint8
      - name: page_offset
        type: guint8
      item_type: struct
      name: _FuParadeLspconDevice
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    - fields:
      - name: '*device'
        type: FuParadeLspconDevice
      item_type: struct
      name: FuParadeLspconI2cAddressGuard
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    typedefs: []
    union: []
- function_names:
  - fu_parade_lspcon_plugin_init
  - fu_parade_lspcon_plugin_constructed
  - fu_parade_lspcon_plugin_class_init
  source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuParadeLspconPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra/fu-jabra-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra/fu-jabra-device.h
      type_or_value: (fu_jabra_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_device_to_string
  - _fu_usb_device_get_interface_for_class
  - fu_jabra_device_prepare
  - fu_jabra_device_set_quirk_kv
  - fu_jabra_device_init
  - fu_jabra_device_finalize
  - fu_jabra_device_class_init
  source_file: /src/fwupd/plugins/jabra/fu-jabra-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: '*magic'
        type: gchar
      item_type: struct
      name: _FuJabraDevice
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/jabra/fu-jabra-device.c
    typedefs: []
    union: []
- function_names:
  - fu_jabra_plugin_cleanup
  - fu_jabra_plugin_init
  - fu_jabra_plugin_constructed
  - fu_jabra_plugin_class_init
  source_file: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuJabraPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra/fu-jabra-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_DMC_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.h
      type_or_value: (fu_ccgx_dmc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_DMC_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.h
      type_or_value: (fu_ccgx_dmc_firmware_get_type())
    structs:
    - fields:
      - name: start_row
        type: guint16
      - name: num_rows
        type: guint16
      - name: '*data_records'
        type: GPtrArray
      item_type: struct
      name: FuCcgxDmcFirmwareSegmentRecord
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.h
    - fields:
      - name: row_size
        type: guint8
      - name: img_offset
        type: guint32
      - name: img_digest[32]
        type: guint8
      - name: num_img_segments
        type: guint8
      - name: '*seg_records'
        type: GPtrArray
      item_type: struct
      name: FuCcgxDmcFirmwareRecord
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_DMC_DEVX_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.h
      type_or_value: (fu_ccgx_dmc_devx_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_dmc_firmware_record_free
  - fu_ccgx_dmc_firmware_segment_record_free
  - fu_ccgx_dmc_firmware_get_image_records
  - fu_ccgx_dmc_firmware_get_fwct_record
  - fu_ccgx_dmc_firmware_get_custom_meta_record
  - fu_ccgx_dmc_firmware_get_fw_data_size
  - fu_ccgx_dmc_firmware_export
  - fu_ccgx_dmc_firmware_parse_segment
  - fu_ccgx_dmc_firmware_parse_image
  - fu_ccgx_dmc_firmware_validate
  - fu_ccgx_dmc_firmware_parse
  - fu_ccgx_dmc_firmware_write
  - fu_ccgx_dmc_firmware_convert_version
  - fu_ccgx_dmc_firmware_init
  - fu_ccgx_dmc_firmware_finalize
  - fu_ccgx_dmc_firmware_class_init
  - fu_ccgx_dmc_firmware_new
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DMC_FWCT_MAX_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: DMC_HASH_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DMC_CUSTOM_META_LENGTH_FIELD_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: '*image_records'
        type: GPtrArray
      - name: '*fwct_blob'
        type: GBytes
      - name: '*custom_meta_blob'
        type: GBytes
      - name: row_data_offset_start
        type: guint32
      - name: fw_data_size
        type: guint32
      item_type: struct
      name: _FuCcgxDmcFirmware
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_dmc_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_dmc_device_ensure_dock_id
  - fu_ccgx_dmc_device_ensure_status
  - fu_ccgx_dmc_device_send_reset_state_machine
  - fu_ccgx_dmc_device_send_soft_reset
  - fu_ccgx_dmc_device_send_start_upgrade
  - fu_ccgx_dmc_device_send_download_trigger
  - fu_ccgx_dmc_device_send_fwct
  - fu_ccgx_dmc_device_read_intr_req
  - fu_ccgx_dmc_device_send_write_command
  - fu_ccgx_dmc_device_send_row_data
  - fu_ccgx_dmc_device_to_string
  - fu_ccgx_dmc_device_get_image_write_status_cb
  - fu_ccgx_dmc_device_write_firmware_record
  - fu_ccgx_dmc_device_write_firmware_image
  - fu_ccgx_dmc_device_write_firmware
  - fu_ccgx_dmc_device_prepare_firmware
  - fu_ccgx_dmc_device_attach
  - fu_ccgx_dmc_device_ensure_factory_version
  - fu_ccgx_dmc_device_probe
  - fu_ccgx_dmc_device_setup
  - fu_ccgx_dmc_device_set_quirk_kv
  - fu_ccgx_dmc_device_set_progress
  - fu_ccgx_dmc_device_convert_version
  - fu_ccgx_dmc_device_init
  - fu_ccgx_dmc_device_class_init
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DMC_FW_WRITE_STATUS_RETRY_COUNT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DMC_FW_WRITE_STATUS_RETRY_DELAY_MS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: DMC_CONTROL_TRANSFER_DEFAULT_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '5000  '
    - item_type: preproc_def
      name: DMC_BULK_OUT_PIPE_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '2000  '
    - item_type: preproc_def
      name: DMC_GET_REQUEST_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '20000 '
    - item_type: preproc_def
      name: DMC_INTERRUPT_PIPE_ID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '0x82 '
    - item_type: preproc_def
      name: DMC_BULK_PIPE_ID
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: "1\t   "
    - item_type: preproc_def
      name: DMC_DOCK_MAX_DEV_COUNT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_CCGX_DMC_DEVICE_FLAG_HAS_MANUAL_REPLUG
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
      type_or_value: '"has-manual-replug"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: device_status
        type: FuCcgxDmcDeviceStatus
      - name: ep_intr_in
        type: guint8
      - name: ep_bulk_out
        type: guint8
      - name: update_model
        type: FuCcgxDmcUpdateModel
      - name: trigger_code
        type: guint16
      - name: custom_meta_flag
        type: guint8
      item_type: struct
      name: _FuCcgxDmcDevice
      pos:
        line_end: 35
        line_start: 27
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_dmc_devx_device_get_fw_version
  - fu_ccgx_dmc_devx_device_get_device_type
  - fu_ccgx_dmc_devx_device_version_dmc_bfw
  - fu_ccgx_dmc_devx_device_version_dmc_app
  - fu_ccgx_dmc_devx_device_version_hx3
  - fu_ccgx_dmc_devx_device_hexver_to_string
  - fu_ccgx_dmc_devx_device_hx3ver_to_string
  - fu_ccgx_dmc_devx_device_dmcver_to_string
  - fu_ccgx_dmc_devx_device_version_type
  - fu_ccgx_dmc_devx_device_to_string
  - fu_ccgx_dmc_devx_device_set_quirk_kv
  - fu_ccgx_dmc_devx_device_type_to_name
  - fu_ccgx_dmc_devx_device_get_remove_delay
  - fu_ccgx_dmc_devx_device_probe
  - fu_ccgx_dmc_devx_device_convert_version
  - fu_ccgx_dmc_devx_device_init
  - fu_ccgx_dmc_devx_device_finalize
  - fu_ccgx_dmc_devx_device_class_init
  - fu_ccgx_dmc_devx_device_new
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DMC_FW_WRITE_STATUS_RETRY_COUNT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DMC_FW_WRITE_STATUS_RETRY_DELAY_MS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
      type_or_value: '30'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: '*status'
        type: GByteArray
      item_type: struct
      name: _FuCcgxDmcDevxDevice
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_dmc_plugin_init
  - fu_ccgx_dmc_plugin_constructed
  - fu_ccgx_dmc_plugin_class_init
  source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCcgxDmcPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_nvme_cns_func
  - fu_nvme_cns_all_func
  - main
  source_file: /src/fwupd/plugins/nvme/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nvme/fu-nvme-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nvme_device_to_string
  - fu_nvme_device_get_string_safe
  - fu_nvme_device_get_guid_safe
  - fu_nvme_device_ioctl_buffer_cb
  - fu_nvme_device_submit_admin_passthru
  - fu_nvme_device_identify_ctrl
  - fu_nvme_device_fw_commit
  - fu_nvme_device_fw_download
  - fu_nvme_device_parse_cns_maybe_dell
  - fu_nvme_device_parse_cns
  - fu_nvme_device_pci_probe
  - fu_nvme_device_probe
  - fu_nvme_device_setup
  - fu_nvme_device_write_firmware
  - fu_nvme_device_set_quirk_kv
  - fu_nvme_device_set_progress
  - fu_nvme_device_init
  - fu_nvme_device_class_init
  - fu_nvme_device_new_from_blob
  source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_NVME_ID_CTRL_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FU_NVME_COMMIT_ACTION_CA0
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0b000 '
    - item_type: preproc_def
      name: FU_NVME_COMMIT_ACTION_CA1
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0b001 '
    - item_type: preproc_def
      name: FU_NVME_COMMIT_ACTION_CA2
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0b010 '
    - item_type: preproc_def
      name: FU_NVME_COMMIT_ACTION_CA3
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0b011 '
    - item_type: preproc_def
      name: FU_NVME_DEVICE_FLAG_FORCE_ALIGN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '"force-align"'
    - item_type: preproc_def
      name: FU_NVME_DEVICE_FLAG_COMMIT_CA3
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '"commit-ca3"'
    - item_type: preproc_def
      name: FU_NVME_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuPciDevice
      - name: pci_depth
        type: guint
      - name: write_block_size
        type: guint64
      item_type: struct
      name: _FuNvmeDevice
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
    typedefs: []
    union: []
- function_names:
  - fu_nvme_plugin_init
  - fu_nvme_plugin_constructed
  - fu_nvme_plugin_class_init
  source_file: /src/fwupd/plugins/nvme/fu-nvme-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuNvmePlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/nvme/fu-nvme-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nvme/fu-nvme-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nvme/fu-nvme-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NVME_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.h
      type_or_value: (fu_nvme_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nvme_status_to_string
  source_file: /src/fwupd/plugins/nvme/fu-nvme-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_QMI_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.h
      type_or_value: (fu_mm_qmi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_device_port_type_to_string
  - fu_mm_device_port_type_from_string
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FU_MODEM_MANAGER_PLUGIN
  - fu_mm_plugin_load
  - fu_mm_plugin_backend_device_added
  - fu_mm_plugin_constructed
  - fu_plugin_init_vfuncs
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_FASTBOOT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.h
      type_or_value: (fu_mm_fastboot_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_fastboot_device_to_string
  - fu_mm_fastboot_device_set_detach_at
  - fu_mm_fastboot_device_detach
  - fu_mm_fastboot_device_probe
  - fu_mm_fastboot_device_from_json
  - fu_mm_fastboot_device_add_json
  - fu_mm_fastboot_device_set_progress
  - fu_mm_fastboot_device_init
  - fu_mm_fastboot_device_finalize
  - fu_mm_fastboot_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_MM_FASTBOOT_DEVICE_FLAG_DETACH_AT_NO_RESPONSE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
      type_or_value: '"detach-at-fastboot-has-no-response"'
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      - name: '*detach_at'
        type: gchar
      item_type: struct
      name: _FuMmFastbootDevice
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.h
      type_or_value: (fu_mm_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_mbim_device_helper_timeout_cb
  - fu_mm_mbim_device_helper_helper_new
  - fu_mm_mbim_device_helper_free
  - fu_mm_mbim_device_new_cb
  - fu_mm_mbim_device_new_sync
  - fu_mm_mbim_device_open_sync_cb
  - fu_mm_mbim_device_open_sync
  - fu_mm_mbim_device_close_sync_cb
  - fu_mm_mbim_device_close_sync
  - fu_mm_mbim_device_command_cb
  - fu_mm_mbim_device_command_sync
  - fu_mm_mbim_device_ensure_firmware_version
  - fu_mm_mbim_device_detach_to_edl
  - fu_mm_mbim_device_detach
  - fu_mm_mbim_device_get_checksum
  - fu_mm_mbim_device_write_chunk
  - fu_mm_mbim_device_write_chunks
  - fu_mm_mbim_device_write
  - fu_mm_mbim_device_write_firmware
  - fu_mm_mbim_device_probe
  - fu_mm_mbim_device_open_cb
  - fu_mm_mbim_device_open
  - fu_mm_mbim_device_close
  - fu_mm_mbim_device_prepare
  - fu_mm_mbim_device_cleanup
  - fu_mm_mbim_device_set_progress
  - fu_mm_mbim_device_init
  - fu_mm_mbim_device_finalize
  - fu_mm_mbim_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_MM_MBIM_DEVICE_MAX_OPEN_ATTEMPTS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: FU_MM_MBIM_DEVICE_TIMEOUT_MS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
      type_or_value: '1500'
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      - name: '*mbim_device'
        type: MbimDevice
      item_type: struct
      name: _FuMmMbimDevice
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    - fields:
      - name: ret
        type: gboolean
      - name: '*loop'
        type: GMainLoop
      - name: '*cancellable'
        type: GCancellable
      - name: timeout_id
        type: guint
      - name: '*mbim_device'
        type: MbimDevice
      - name: '*mbim_message'
        type: MbimMessage
      - name: '*error'
        type: GError
      item_type: struct
      name: FuMmMbimDeviceHelper
      pos:
        line_end: 32
        line_start: 24
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_mm_device_set_branch_at
  - fu_mm_device_to_string
  - fu_mm_device_get_inhibition_uid
  - fu_mm_device_set_inhibited
  - fu_mm_device_get_inhibited
  - fu_mm_device_set_device_file
  - fu_mm_device_writeln
  - fu_mm_device_set_autosuspend_delay
  - fu_mm_device_add_instance_id
  - fu_mm_device_add_port
  - fu_mm_device_probe_from_omodem
  - fu_mm_device_at_cmd_cb
  - fu_mm_device_at_cmd
  - fu_mm_device_at_cmd_full
  - fu_mm_device_ensure_branch
  - fu_mm_device_ensure_payload_quectel
  - fu_mm_device_ensure_payload
  - fu_mm_device_setup
  - fu_mm_device_set_quirk_kv
  - fu_mm_device_from_json
  - fu_mm_device_add_json
  - fu_mm_device_get_property
  - fu_mm_device_set_property
  - fu_mm_device_init
  - fu_mm_device_finalize
  - fu_mm_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MM_MODEM_PORT_TYPE_LAST
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
      type_or_value: (MM_MODEM_PORT_TYPE_IGNORED + 1)
    - item_type: preproc_def
      name: FU_MM_DEVICE_AT_RETRIES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_MM_DEVICE_AT_DELAY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
      type_or_value: '3000 '
    structs:
    - fields:
      - name: inhibited
        type: gboolean
      - name: '*branch_at'
        type: gchar
      - name: '*inhibition_uid'
        type: gchar
      - name: '*port[MM_MODEM_PORT_TYPE_LAST]'
        type: gchar
      item_type: struct
      name: FuMmDevicePrivate
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    - fields:
      - name: '*cmd'
        type: gchar
      - name: count
        type: gsize
      - name: has_response
        type: gboolean
      - name: '*blob'
        type: GBytes
      item_type: struct
      name: FuMmDeviceAtCmdHelper
      pos:
        line_end: 411
        line_start: 406
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    typedefs: []
    union: []
- function_names:
  - fu_mm_device_func
  - main
  source_file: /src/fwupd/plugins/modem-manager/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_backend_to_string
  - fu_mm_backend_device_inhibit
  - fu_mm_backend_device_uninhibit
  - fu_mm_backend_device_inhibited_notify_cb
  - fu_mm_backend_probe_gtype
  - fu_mm_backend_probe_gtype_fallback
  - fu_mm_backend_device_create_from_omodem
  - fu_mm_backend_ensure_modem_power_inhibit
  - fu_mm_backend_device_add
  - fu_mm_backend_device_added_cb
  - fu_mm_backend_device_removed_cb
  - fu_mm_backend_modem_power_changed_cb
  - fu_mm_backend_setup
  - fu_mm_backend_teardown_manager
  - fu_mm_backend_setup_manager
  - fu_mm_backend_name_owner_changed
  - fu_mm_backend_name_owner_notify_cb
  - fu_mm_backend_coldplug
  - fu_mm_backend_init
  - fu_mm_backend_finalize
  - fu_mm_backend_class_init
  - fu_mm_backend_new
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_MM_BACKEND_MODEM_POWER_SYSFS_PATH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
      type_or_value: '"/sys/class/modem-power"'
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      - name: '*manager'
        type: MMManager
      - name: manager_ready
        type: gboolean
      - name: '*modem_power_monitor'
        type: GFileMonitor
      item_type: struct
      name: _FuMmBackend
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    - fields:
      - name: gtype
        type: GType
      - name: port_type
        type: MMModemPortType
      - name: method
        type: MMModemFirmwareUpdateMethod
      item_type: struct
      name: "map[] = {\n\t    {\n\t\tFU_TYPE_MM_FASTBOOT_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_AT,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_MM_QMI_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_QMI,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC
        | MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT,\n\t    },\n\t    {\n\t\tFU_TYPE_MM_MBIM_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_MBIM,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_MM_QCDM_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_QCDM,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_MM_MHI_QCDM_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_QCDM,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_MM_FIREHOSE_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_AT,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE
        | MM_MODEM_FIRMWARE_UPDATE_METHOD_SAHARA,\n\t    },\n\t    {\n\t\tFU_TYPE_MM_FDL_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_AT,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_CINTERION_FDL,\n\t
        \   },\n\t    {\n\t\tFU_TYPE_MM_DFOTA_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_AT,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_DFOTA,\n\t
        \   },\n\t}"
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
      type_or_value: (fu_mm_device_get_type())
    - item_type: preproc_def
      name: FU_MM_DEVICE_FLAG_USE_BRANCH
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
      type_or_value: '"use-branch"'
    - item_type: preproc_def
      name: MM_MODEM_FIRMWARE_UPDATE_METHOD_DFOTA
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: MM_MODEM_FIRMWARE_UPDATE_METHOD_CINTERION_FDL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
      type_or_value: (1 << 6)
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuMmDeviceClass
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
    typedefs: []
    union: []
- function_names:
  - fu_mm_qcdm_device_cmd
  - fu_mm_qcdm_device_switch_to_edl_cb
  - fu_mm_qcdm_device_detach
  - fu_mm_qcdm_device_probe
  - fu_mm_qcdm_device_prepare
  - fu_mm_qcdm_device_cleanup
  - fu_mm_qcdm_device_set_progress
  - fu_mm_qcdm_device_init
  - fu_mm_qcdm_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_qmi_device_qmi_device_open_abort_ready
  - fu_mm_qmi_device_open_abort
  - fu_mm_qmi_device_qmi_device_allocate_client_ready
  - fu_mm_qmi_device_qmi_device_open_cb
  - fu_mm_qmi_device_qmi_device_open_attempt
  - fu_mm_qmi_device_qmi_device_new_ready
  - fu_mm_qmi_device_open
  - fu_mm_qmi_device_qmi_device_close_ready
  - fu_mm_qmi_device_qmi_device_release_client_ready
  - fu_mm_qmi_device_close
  - fu_mm_qmi_device_load_config_timeout
  - fu_mm_qmi_device_load_config_indication
  - fu_mm_qmi_device_load_config_ready
  - fu_mm_qmi_device_load_config
  - fu_mm_qmi_device_get_checksum
  - fu_mm_qmi_device_write
  - fu_mm_qmi_device_activate_config_timeout
  - fu_mm_qmi_device_activate_config_indication
  - fu_mm_qmi_device_activate_config_ready
  - fu_mm_qmi_device_activate_config
  - fu_mm_qmi_device_set_selected_config_timeout
  - fu_mm_qmi_device_set_selected_config_indication
  - fu_mm_qmi_device_set_selected_config_ready
  - fu_mm_qmi_device_set_selected_config
  - fu_mm_qmi_device_activate
  - fu_mm_qmi_device_attach
  - fu_mm_qmi_device_detach
  - fu_mm_qmi_device_probe
  - fu_mm_qmi_device_file_info_free
  - fu_mm_qmi_device_should_be_active
  - fu_mm_qmi_device_archive_iterate_mcfg_cb
  - fu_mm_qmi_device_write_firmware
  - fu_mm_qmi_device_prepare
  - fu_mm_qmi_device_cleanup
  - fu_mm_qmi_device_set_progress
  - fu_mm_qmi_device_init
  - fu_mm_qmi_device_finalize
  - fu_mm_qmi_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QMI_PDC_MAX_OPEN_ATTEMPTS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: QMI_LOAD_CHUNK_SIZE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
      type_or_value: '0x400'
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      - name: '*qmi_device'
        type: QmiDevice
      - name: '*qmi_client'
        type: QmiClientPdc
      - name: '*active_id'
        type: GArray
      item_type: struct
      name: _FuMmQmiDevice
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*mainloop'
        type: GMainLoop
      - name: '*qmi_device'
        type: QmiDevice
      - name: '*qmi_client'
        type: QmiClientPdc
      - name: '*error'
        type: GError
      - name: open_attempts
        type: guint
      item_type: struct
      name: FuMmQmiDeviceOpenContext
      pos:
        line_end: 30
        line_start: 24
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*mainloop'
        type: GMainLoop
      - name: '*qmi_device'
        type: QmiDevice
      - name: '*qmi_client'
        type: QmiClientPdc
      - name: '*error'
        type: GError
      item_type: struct
      name: FuMmQmiDeviceCloseContext
      pos:
        line_end: 172
        line_start: 167
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*mainloop'
        type: GMainLoop
      - name: '*qmi_client'
        type: QmiClientPdc
      - name: '*error'
        type: GError
      - name: indication_id
        type: gulong
      - name: timeout_id
        type: guint
      - name: '*blob'
        type: GBytes
      - name: '*digest'
        type: GArray
      - name: offset
        type: gsize
      - name: token
        type: guint
      item_type: struct
      name: FuMmQmiDeviceWriteContext
      pos:
        line_end: 252
        line_start: 242
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*mainloop'
        type: GMainLoop
      - name: '*qmi_client'
        type: QmiClientPdc
      - name: '*error'
        type: GError
      - name: indication_id
        type: gulong
      - name: timeout_id
        type: guint
      - name: '*digest'
        type: GArray
      - name: token
        type: guint
      item_type: struct
      name: FuMmQmiDeviceActivateContext
      pos:
        line_end: 478
        line_start: 470
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*filename'
        type: gchar
      - name: '*bytes'
        type: GBytes
      - name: '*digest'
        type: GArray
      - name: active
        type: gboolean
      item_type: struct
      name: FuMmQmiDeviceFileInfo
      pos:
        line_end: 760
        line_start: 755
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    - fields:
      - name: '*self'
        type: FuMmQmiDevice
      - name: '*error'
        type: GError
      - name: '*file_infos'
        type: GPtrArray
      item_type: struct
      name: FuMmQmiDeviceArchiveIterateCtx
      pos:
        line_end: 775
        line_start: 771
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_MBIM_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.h
      type_or_value: (fu_mm_mbim_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_FIREHOSE_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.h
      type_or_value: (fu_mm_firehose_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_dfota_device_probe
  - fu_mm_dfota_device_setup
  - fu_mm_dfota_device_compute_checksum_cb
  - fu_mm_dfota_device_upload_chunk
  - fu_mm_dfota_device_parse_upload_result
  - fu_mm_dfota_device_upload_stream
  - fu_mm_dfota_device_parse_fota_response
  - fu_mm_dfota_device_attach
  - fu_mm_dfota_device_write_firmware
  - fu_mm_dfota_device_prepare
  - fu_mm_dfota_device_cleanup
  - fu_mm_dfota_device_set_progress
  - fu_mm_dfota_device_init
  - fu_mm_dfota_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_MM_DFOTA_DEVICE_FILENAME
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
      type_or_value: '"dfota_update.bin"'
    - item_type: preproc_def
      name: FU_MM_DFOTA_DEVICE_FOTA_READ_TIMEOUT_SECS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
      type_or_value: '90'
    - item_type: preproc_def
      name: FU_MM_DFOTA_DEVICE_FOTA_RESTART_TIMEOUT_SECS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
      type_or_value: '15'
    - item_type: preproc_def
      name: FU_MM_DFOTA_DEVICE_TIMEOUT_SECS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
      type_or_value: '5'
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      item_type: struct
      name: _FuMmDfotaDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_QCDM_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.h
      type_or_value: (fu_mm_qcdm_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuMmDeviceClass
      item_type: struct
      name: _FuMmQcdmDeviceClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_DFOTA_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.h
      type_or_value: (fu_mm_dfota_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_MHI_QCDM_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.h
      type_or_value: (fu_mm_mhi_qcdm_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_mhi_qcdm_device_detach
  - fu_mm_mhi_qcdm_device_search_path_locker_new
  - fu_mm_mhi_qcdm_device_prepare
  - fu_mm_mhi_qcdm_device_cleanup
  - fu_mm_mhi_qcdm_device_copy_firehose_prog
  - fu_mm_mhi_qcdm_device_write_firmware
  - fu_mm_mhi_qcdm_device_set_quirk_kv
  - fu_mm_mhi_qcdm_device_set_progress
  - fu_mm_mhi_qcdm_device_init
  - fu_mm_mhi_qcdm_device_finalize
  - fu_mm_mhi_qcdm_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuMmQcdmDevice
      - name: '*search_path_locker'
        type: FuKernelSearchPathLocker
      - name: '*firehose_prog_file'
        type: gchar
      item_type: struct
      name: _FuMmMhiQcdmDevice
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_FDL_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.h
      type_or_value: (fu_mm_fdl_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_firehose_device_detach
  - fu_mm_firehose_device_probe
  - fu_mm_firehose_device_prepare
  - fu_mm_firehose_device_cleanup
  - fu_mm_firehose_device_set_progress
  - fu_mm_firehose_device_init
  - fu_mm_firehose_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      item_type: struct
      name: _FuMmFirehoseDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-firehose-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mm_fdl_device_detach
  - fu_mm_fdl_device_wait_ready_cb
  - fu_mm_fdl_device_write_chunk
  - fu_mm_fdl_device_read_response
  - fu_mm_fdl_device_write_helper_free
  - fu_mm_fdl_device_read_chunk_cb
  - fu_mm_fdl_device_write_chunk_cb
  - fu_mm_fdl_device_write_firmware
  - fu_mm_fdl_device_probe
  - fu_mm_fdl_device_set_io_flags
  - fu_mm_fdl_device_open
  - fu_mm_fdl_device_prepare
  - fu_mm_fdl_device_cleanup
  - fu_mm_fdl_device_set_progress
  - fu_mm_fdl_device_init
  - fu_mm_fdl_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CINTERION_FDL_DEFAULT_BAUDRATE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
      type_or_value: B115200
    - item_type: preproc_def
      name: FU_CINTERION_FDL_MAX_READ_RETRIES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_CINTERION_FDL_MAX_WRITE_RETRIES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_CINTERION_FDL_SIZE_BYTES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuMmDevice
      item_type: struct
      name: _FuMmFdlDevice
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    - fields:
      - name: '*size_bytes'
        type: GBytes
      - name: '*chunk_bytes'
        type: GBytes
      item_type: struct
      name: FuMmFdlDeviceWriteHelper
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    typedefs: []
    union: []
- function_names:
  - fu_uf2_firmware_parse_chunk
  - fu_uf2_firmware_parse
  - fu_uf2_firmware_write_chunk
  - fu_uf2_firmware_write
  - fu_uf2_firmware_init
  - fu_uf2_firmware_class_init
  - fu_uf2_firmware_new
  source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_NONE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_NOFLASH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_IS_CONTAINER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_HAS_FAMILY
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_HAS_MD5
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: FU_UF2_FIRMWARE_BLOCK_FLAG_HAS_EXTENSION_TAG
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: FU_U2F_FIRMWARE_TAG_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x9fc7bc '
    - item_type: preproc_def
      name: FU_U2F_FIRMWARE_TAG_DESCRIPTION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x650d9d '
    - item_type: preproc_def
      name: FU_U2F_FIRMWARE_TAG_PAGE_SZ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0x0be9f7 '
    - item_type: preproc_def
      name: FU_U2F_FIRMWARE_TAG_SHA1
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0xb46db0 '
    - item_type: preproc_def
      name: FU_U2F_FIRMWARE_TAG_DEVICE_ID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
      type_or_value: '0xc8a729 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuUf2Firmware
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UF2_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uf2/fu-uf2-firmware.h
      type_or_value: (fu_uf2_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uf2_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/uf2/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uf2/fu-uf2-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uf2_plugin_init
  - fu_uf2_plugin_constructed
  - fu_uf2_plugin_class_init
  source_file: /src/fwupd/plugins/uf2/fu-uf2-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUf2Plugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/uf2/fu-uf2-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uf2/fu-uf2-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UF2_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uf2/fu-uf2-device.h
      type_or_value: (fu_uf2_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uf2_device_prepare_firmware
  - fu_uf2_device_probe_current_fw
  - fu_uf2_device_get_full_path
  - fu_uf2_device_write_firmware
  - fu_uf2_device_dump_firmware
  - fu_uf2_device_read_firmware
  - fu_uf2_device_volume_mount
  - fu_uf2_device_check_volume_mounted_cb
  - fu_uf2_device_open
  - fu_uf2_device_close
  - fu_uf2_device_setup
  - fu_uf2_device_usb_probe
  - fu_uf2_device_probe
  - fu_uf2_device_replace
  - fu_uf2_device_set_progress
  - fu_uf2_device_to_string
  - fu_uf2_device_vid_notify_cb
  - fu_uf2_device_pid_notify_cb
  - fu_uf2_device_init
  - fu_uf2_device_finalize
  - fu_uf2_device_class_init
  source_file: /src/fwupd/plugins/uf2/fu-uf2-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UF2_DEVICE_FLAG_HAS_RUNTIME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/uf2/fu-uf2-device.c
      type_or_value: '"has-runtime"'
    structs:
    - fields:
      - name: parent_instance
        type: FuBlockPartition
      - name: family_id
        type: guint64
      - name: '*volume'
        type: FuVolume
      item_type: struct
      name: _FuUf2Device
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/uf2/fu-uf2-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EBITDO_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.h
      type_or_value: (fu_ebitdo_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ebitdo_firmware_parse
  - fu_ebitdo_firmware_write
  - fu_ebitdo_firmware_convert_version
  - fu_ebitdo_firmware_init
  - fu_ebitdo_firmware_class_init
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuEbitdoFirmware
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_ebitdo_device_send
  - fu_ebitdo_device_receive
  - fu_ebitdo_device_convert_version
  - fu_ebitdo_device_validate
  - fu_ebitdo_device_open
  - fu_ebitdo_device_setup
  - fu_ebitdo_device_detach
  - fu_ebitdo_device_write_firmware
  - fu_ebitdo_device_attach
  - fu_ebitdo_device_probe
  - fu_ebitdo_device_set_progress
  - fu_ebitdo_device_init
  - fu_ebitdo_device_class_init
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EBITDO_USB_TIMEOUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_EBITDO_USB_BOOTLOADER_EP_IN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: FU_EBITDO_USB_BOOTLOADER_EP_OUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_EBITDO_USB_RUNTIME_EP_IN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_EBITDO_USB_RUNTIME_EP_OUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_EBITDO_USB_EP_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
      type_or_value: '64 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: serial[9]
        type: guint32
      item_type: struct
      name: _FuEbitdoDevice
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EBITDO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.h
      type_or_value: (fu_ebitdo_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ebitdo_plugin_init
  - fu_ebitdo_plugin_constructed
  - fu_ebitdo_plugin_class_init
  source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuEbitdoPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_pci_mei_plugin_to_string
  - fu_pci_mei_plugin_detect_family
  - fu_pci_mei_plugin_parse_fwvers
  - fu_pci_mei_plugin_backend_device_added
  - fu_pci_mei_plugin_add_attrs_csme11_manufacturing_mode
  - fu_pci_mei_plugin_add_attrs_csme18_manufacturing_mode
  - fu_pci_mei_plugin_add_attrs_csme11_override_strap
  - fu_pci_mei_plugin_add_attrs_csme18_override_strap
  - fu_pci_mei_plugin_add_attrs_csme11_bootguard_enabled
  - fu_pci_mei_plugin_add_attrs_csme18_bootguard_enabled
  - fu_pci_mei_plugin_add_attrs_csme11_bootguard_verified
  - fu_pci_mei_plugin_add_attrs_csme11_bootguard_acm
  - fu_pci_mei_plugin_add_attrs_csme18_bootguard_acm
  - fu_pci_mei_plugin_add_attrs_csme11_bootguard_policy
  - fu_pci_mei_plugin_add_attrs_csme11_bootguard_otp
  - fu_pci_mei_plugin_add_attrs_csme18_bootguard_otp
  - fu_pci_mei_plugin_add_attrs_mei_version
  - fu_pci_mei_plugin_add_security_attrs
  - fu_pci_mei_plugin_init
  - fu_pci_mei_plugin_constructed
  - fu_pci_mei_plugin_finalize
  - fu_pci_mei_plugin_class_init
  source_file: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*pci_device'
        type: FuDevice
      - name: hfsts_buf[7][4]
        type: guint8
      - name: family
        type: FuMeiFamily
      - name: vers
        type: FuMeiVersion
      - name: issue
        type: FuMeiIssue
      item_type: struct
      name: _FuPciMeiPlugin
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_mei_common_cmp_version
  - fu_mei_common_is_csme_vulnerable
  - fu_mei_common_is_txe_vulnerable
  - fu_mei_common_is_sps_vulnerable
  source_file: /src/fwupd/plugins/pci-mei/fu-mei-common.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: major_eq
        type: guint8
      - name: minor_eq
        type: guint8
      - name: hotfix_ge
        type: guint8
      item_type: struct
      name: "verdata[] = {{11, 8, 92},\n\t\t       {11, 12, 92},\n\t\t       {11,
        22, 92},\n\t\t       {12, 0, 90},\n\t\t       {13, 0, 60},\n\t\t       {13,
        30, 30},\n\t\t       {13, 50, 20},\n\t\t       {14, 1, 65},\n\t\t       {14,
        5, 45},\n\t\t       {15, 0, 40},\n\t\t       {15, 40, 20},\n\t\t       {0,
        0, 0}}"
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    - fields:
      - name: major_eq
        type: guint8
      - name: minor_eq
        type: guint8
      - name: hotfix_ge
        type: guint8
      item_type: struct
      name: verdata[] = {{3, 1, 92}, {4, 0, 45}, {0, 0, 0}}
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/fwupd/plugins/pci-mei/fu-mei-common.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pci-mei/fu-pci-mei-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pci-mei/fu-mei-common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: platform
        type: guint8
      - name: major
        type: guint8
      - name: minor
        type: guint8
      - name: hotfix
        type: guint8
      - name: buildno
        type: guint16
      item_type: struct
      name: FuMeiVersion
      pos:
        line_end: 16
        line_start: 10
        source_file: /src/fwupd/plugins/pci-mei/fu-mei-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALGOLTEK_DEVICE_USB_TIMEOUT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '3000 '
    - item_type: preproc_def
      name: AG_ISP_ADDR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: AG_ISP_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: AG_FIRMWARE_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: AG_UPDATE_STATUS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '0x860C'
    - item_type: preproc_def
      name: AG_UPDATE_PASS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: AG_UPDATE_FAIL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: AG_IDENTIFICATION_128K_ADDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-common.h
      type_or_value: '31'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ALGOLTEK_USB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.h
      type_or_value: (fu_algoltek_usb_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ALGOLTEK_USB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.h
      type_or_value: (fu_algoltek_usb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usb_firmware_validate
  - fu_algoltek_usb_firmware_parse
  - fu_algoltek_usb_firmware_write
  - fu_algoltek_usb_firmware_init
  - fu_algoltek_usb_firmware_class_init
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuAlgoltekUsbFirmware
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usb_plugin_init
  - fu_algoltek_usb_plugin_constructed
  - fu_algoltek_usb_plugin_class_init
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAlgoltekUsbPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usb_device_ctrl_transfer
  - fu_algoltek_usb_device_rdr
  - fu_algoltek_usb_device_rdv
  - fu_algoltek_usb_device_en
  - fu_algoltek_usb_device_rst
  - fu_algoltek_usb_device_wrr
  - fu_algoltek_usb_device_isp
  - fu_algoltek_usb_device_bot
  - fu_algoltek_usb_device_ers
  - fu_algoltek_usb_device_status_check_cb
  - fu_algoltek_usb_device_wrf
  - fu_algoltek_usb_device_setup
  - fu_algoltek_usb_device_write_firmware
  - fu_algoltek_usb_device_set_progress
  - fu_algoltek_usb_device_init
  - fu_algoltek_usb_device_class_init
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ALGOLTEK_USB_DEVICE_FLAG_ERS_SKIP_FIRST_SECTOR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
      type_or_value: '"ers-skip-first-sector"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuAlgoltekUsbDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_msr_plugin_to_string
  - fu_msr_plugin_startup
  - fu_msr_plugin_backend_device_added
  - fu_msr_plugin_device_registered
  - fu_msr_plugin_add_security_attr_dci_enabled
  - fu_msr_plugin_add_security_attr_intel_gds
  - fu_msr_plugin_add_security_attr_intel_tme_enabled
  - fu_msr_plugin_add_security_attr_dci_locked
  - fu_msr_plugin_safe_kernel_for_sme
  - fu_msr_plugin_kernel_enabled_sme
  - fu_msr_plugin_add_security_attr_amd_sme_enabled
  - fu_msr_plugin_add_security_attr_amd_hwcr
  - fu_msr_plugin_add_security_attrs
  - fu_msr_plugin_modify_config
  - fu_msr_plugin_init
  - fu_msr_plugin_constructed
  - fu_msr_plugin_class_init
  source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCI_MSR_IA32_DEBUG_INTERFACE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0xc80'
    - item_type: preproc_def
      name: PCI_MSR_IA32_TME_ACTIVATION
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0x982'
    - item_type: preproc_def
      name: PCI_MSR_IA32_BIOS_SIGN_ID
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0x8b'
    - item_type: preproc_def
      name: PCI_MSR_IA32_ARCH_CAPABILITIES
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0x10a'
    - item_type: preproc_def
      name: PCI_MSR_IA32_MCU_OPT_CTRL
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: PCI_MSR_AMD64_SYSCFG
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0xC0010010'
    - item_type: preproc_def
      name: PCI_MSR_AMD64_SEV
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0xC0010131'
    - item_type: preproc_def
      name: PCI_MSR_AMD64_HWCFG
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
      type_or_value: '0xc0010015'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: ia32_debug_supported
        type: gboolean
      - name: ia32_tme_supported
        type: gboolean
      - name: ia32_arch_capabilities_supported
        type: gboolean
      - name: ia32_mcu_opt_ctrl_supported
        type: gboolean
      - name: ia32_debug
        type: FuMsrIa32Debug
      - name: ia32_tme_activation
        type: FuMsrIa32TmeActivation
      - name: ia32_arch_capabilities
        type: FuMsrIa32ArchCapabilities
      - name: ia32_mcu_opt_ctrl
        type: FuMsrIa32McuOptCtrl
      - name: amd64_syscfg_supported
        type: gboolean
      - name: amd64_sev_supported
        type: gboolean
      - name: amd64_hwcfg_supported
        type: gboolean
      - name: amd64_syscfg
        type: FuMsrAMD64Syscfg
      - name: amd64_sev
        type: FuMsrAMD64Sev
      - name: amd64_hwcfg
        type: FuMsrAMD64HwCR
      item_type: struct
      name: _FuMsrPlugin
      pos:
        line_end: 103
        line_start: 87
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    typedefs: []
    union:
    - fields:
      - name: data
        type: guint32
      - name: fields
        type: "struct {\n\t\tguint32 enabled : 1;\n\t\tguint32 rsrvd : 29;\n\t\tguint32
          locked : 1;\n\t\tguint32 debug_occurred : 1;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrIa32Debug
      pos:
        line_end: 20
        line_start: 12
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint64
      - name: fields
        type: "struct {\n\t\tguint64 rsrvd : 25;\n\t\tguint64 gds_ctrl : 1;\n\t\tguint64
          gds_no : 1;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrIa32ArchCapabilities
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint64
      - name: fields
        type: "struct {\n\t\tguint64 rngds_mitg_dis : 1;\n\t\tguint64 rtm_allow :
          1;\n\t\tguint64 rtm_locked : 1;\n\t\tguint64 fb_clear_dis : 1;\n\t\tguint64
          gds_mitg_dis : 1;\n\t\tguint64 gds_mitg_lock : 1;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrIa32McuOptCtrl
      pos:
        line_end: 41
        line_start: 31
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint64
      - name: fields
        type: "struct {\n\t\tguint32 lock_ro : 1;\n\t\tguint32 enable : 1;\n\t\tguint32
          key_select : 1;\n\t\tguint32 save_key_for_standby : 1;\n\t\tguint32 policy_encryption_algo
          : 4;\n\t\tguint32 reserved1 : 23;\n\t\tguint32 bypass_enable : 1;\n\t\tguint32
          mk_tme_keyid_bits : 4;\n\t\tguint32 reserved2 : 12;\n\t\tguint32 mk_tme_crypto_algs
          : 16;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrIa32TmeActivation
      pos:
        line_end: 57
        line_start: 43
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint32
      - name: fields
        type: "struct {\n\t\tguint32 unknown0 : 23; /* 0 -> 22 inc */\n\t\tguint32
          sme_is_enabled : 1;\n\t\tguint32 unknown1 : 8;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrAMD64Syscfg
      pos:
        line_end: 66
        line_start: 59
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint32
      - name: fields
        type: "struct {\n\t\tguint32 sev_is_enabled : 1;\n\t\tguint32 unknown0 : 31;\n\t}
          __attribute__((packed))"
      item_type: union
      name: FuMsrAMD64Sev
      pos:
        line_end: 74
        line_start: 68
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
    - fields:
      - name: data
        type: guint64
      - name: fields
        type: "struct {\n\t\tguint64 smm_locked : 1;\n\t\tguint64 unknown0 : 30;\n\t\tguint64
          smm_base_lock : 1;\n\t\tguint64 unknown1 : 1;\n\t\tguint64 smm_pg_cfg_lock
          : 1;\n\t} __attribute__((packed))"
      item_type: union
      name: FuMsrAMD64HwCR
      pos:
        line_end: 85
        line_start: 76
        source_file: /src/fwupd/plugins/msr/fu-msr-plugin.c
- function_names: []
  source_file: /src/fwupd/plugins/msr/fu-msr-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_mok_nx_disabled_func
  - fu_uefi_mok_nx_invalid_func
  - fu_uefi_mok_nx_valid_func
  - main
  source_file: /src/fwupd/plugins/uefi-mok/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_mok_plugin_get_filename
  - fu_uefi_mok_plugin_startup
  - fu_uefi_mok_plugin_add_security_attrs
  - fu_uefi_mok_plugin_init
  - fu_uefi_mok_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiMokPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_mok_attr_new
  source_file: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_GPU_PSP_FIRMWARE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.h
      type_or_value: (fu_amd_gpu_psp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_amd_gpu_psp_firmware_export
  - fu_amd_gpu_psp_firmware_validate
  - fu_amd_gpu_psp_firmware_parse_l2
  - fu_amd_gpu_psp_firmware_parse_l1
  - fu_amd_gpu_psp_firmware_parse
  - fu_amd_gpu_psp_firmware_init
  - fu_amd_gpu_psp_firmware_class_init
  - fu_amd_gpu_psp_firmware_new
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: dir_location
        type: guint32
      item_type: struct
      name: _FuAmdGpuPspFirmware
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_amd_gpu_device_to_string
  - fu_amd_gpu_device_set_device_file
  - fu_amd_gpu_device_probe
  - fu_amd_gpu_device_set_marketing_name
  - fu_amd_gpu_device_ioctl_buffer_cb
  - fu_amd_gpu_device_ioctl_drm_info
  - fu_amd_gpu_device_parse_version_string
  - fu_amd_gpu_device_setup
  - fu_amd_gpu_device_convert_version
  - fu_amd_gpu_device_prepare_firmware
  - fu_amd_gpu_device_wait_for_completion_cb
  - fu_amd_gpu_device_write_firmware
  - fu_amd_gpu_device_set_progress
  - fu_amd_gpu_device_init
  - fu_amd_gpu_device_finalize
  - fu_amd_gpu_device_class_init
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PSPVBFLASH_MAX_POLL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
      type_or_value: '1500'
    - item_type: preproc_def
      name: PSPVBFLASH_NOT_STARTED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: PSPVBFLASH_IN_PROGRESS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PSPVBFLASH_SUCCESS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: PART_NUM_STR_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
      type_or_value: '10'
    structs:
    - fields:
      - name: parent_instance
        type: FuOpromDevice
      - name: '*vbios_pn'
        type: gchar
      - name: drm_major
        type: guint32
      - name: drm_minor
        type: guint32
      item_type: struct
      name: _FuAmdGpuDevice
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMDGPU_DEVICE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.h
      type_or_value: (fu_amd_gpu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_amd_gpu_atom_firmware_export
  - fu_amd_gpu_atom_firmware_validate
  - fu_amd_gpu_atom_firmware_get_vbios_pn
  - fu_amd_gpu_atom_firmware_parse_vbios_version
  - fu_amd_gpu_atom_firmware_parse_vbios_date
  - fu_amd_gpu_atom_firmware_parse_vbios_pn
  - fu_amd_gpu_atom_firmware_parse_config_filename
  - fu_amd_gpu_atom_firmware_parse
  - fu_amd_gpu_atom_firmware_init
  - fu_amd_gpu_atom_firmware_finalize
  - fu_amd_gpu_atom_firmware_class_init
  - fu_amd_gpu_atom_firmware_new
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIOS_VERSION_PREFIX
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
      type_or_value: '"ATOMBIOSBK-AMD VER"'
    - item_type: preproc_def
      name: BIOS_STRING_LENGTH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
      type_or_value: '43'
    - item_type: preproc_def
      name: STRLEN_NORMAL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
      type_or_value: '32'
    - item_type: preproc_def
      name: STRLEN_LONG
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuOpromFirmware
      - name: '*part_number'
        type: gchar
      - name: '*asic'
        type: gchar
      - name: '*pci_type'
        type: gchar
      - name: '*memory_type'
        type: gchar
      - name: '*bios_date'
        type: gchar
      - name: '*model_name'
        type: gchar
      - name: '*config_filename'
        type: gchar
      item_type: struct
      name: _FuAmdGpuAtomFirmware
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_amd_gpu_plugin_init
  - fu_amd_gpu_plugin_constructed
  - fu_amd_gpu_plugin_class_init
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAmdGpuPlugin
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_GPU_ATOM_FIRMWARE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.h
      type_or_value: (fu_amd_gpu_atom_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ata/fu-ata-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ATA_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ata/fu-ata-device.h
      type_or_value: (fu_ata_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ata/fu-ata-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ata_device_get_transfer_mode
  - fu_ata_device_get_transfer_blocks
  - fu_ata_device_get_string
  - fu_ata_device_to_string
  - fu_ata_device_pad_string_for_id
  - fu_ata_device_get_guid_safe
  - fu_ata_device_parse_id_maybe_dell
  - fu_ata_device_parse_vendor_name
  - fu_ata_device_parse_id
  - fu_ata_device_probe
  - fu_ata_device_tf_to_pack_id
  - fu_ata_device_ioctl_buf_cb
  - fu_ata_device_ioctl_cdb_cb
  - fu_ata_device_ioctl_sense_cb
  - fu_ata_device_command
  - fu_ata_device_setup
  - fu_ata_device_activate
  - fu_ata_device_fw_download
  - fu_ata_device_write_firmware
  - fu_ata_device_set_quirk_kv
  - fu_ata_device_set_progress
  - fu_ata_device_init
  - fu_ata_device_class_init
  - fu_ata_device_new_from_blob
  source_file: /src/fwupd/plugins/ata/fu-ata-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ATA_IDENTIFY_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '512 '
    - item_type: preproc_def
      name: FU_ATA_BLOCK_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '512 '
    - item_type: preproc_def
      name: ATA_USING_LBA
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: ATA_STAT_DRQ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: ATA_STAT_ERR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ATA_OP_IDENTIFY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0xec'
    - item_type: preproc_def
      name: ATA_OP_FLUSH_CACHE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0xe7'
    - item_type: preproc_def
      name: ATA_OP_DOWNLOAD_MICROCODE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x92'
    - item_type: preproc_def
      name: ATA_OP_STANDBY_IMMEDIATE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0xe0'
    - item_type: preproc_def
      name: ATA_SUBCMD_MICROCODE_OBSOLETE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATA_SUBCMD_MICROCODE_DOWNLOAD_CHUNKS_ACTIVATE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ATA_SUBCMD_MICROCODE_DOWNLOAD_CHUNK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: ATA_SUBCMD_MICROCODE_DOWNLOAD_CHUNKS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: ATA_SUBCMD_MICROCODE_ACTIVATE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: SG_CHECK_CONDITION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SG_DRIVER_SENSE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: SG_ATA_12
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '0xa1'
    - item_type: preproc_def
      name: SG_ATA_12_LEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SG_ATA_PROTO_NON_DATA
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (3 << 1)
    - item_type: preproc_def
      name: SG_ATA_PROTO_PIO_IN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (4 << 1)
    - item_type: preproc_def
      name: SG_ATA_PROTO_PIO_OUT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: (5 << 1)
    - item_type: preproc_def
      name: FU_ATA_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: dev
        type: guint8
      - name: command
        type: guint8
      - name: error
        type: guint8
      - name: status
        type: guint8
      - name: feat
        type: guint8
      - name: nsect
        type: guint8
      - name: lbal
        type: guint8
      - name: lbam
        type: guint8
      - name: lbah
        type: guint8
      item_type: struct
      name: ata_tf
      pos:
        line_end: 26
        line_start: 16
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: pci_depth
        type: guint
      - name: usb_depth
        type: guint
      - name: transfer_blocks
        type: guint16
      - name: transfer_mode
        type: guint8
      - name: oui
        type: guint32
      item_type: struct
      name: _FuAtaDevice
      pos:
        line_end: 76
        line_start: 69
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
    - fields:
      - name: '*prefix'
        type: gchar
      - name: vid
        type: guint16
      - name: '*name'
        type: gchar
      item_type: struct
      name: "map_name[] = {/* vendor matches */\n\t\t\t{\"ADATA*\", 0x1cc1, \"ADATA\"},\n\t\t\t{\"APACER*\",
        0x0000, \"Apacer\"}, /* not in pci.ids */\n\t\t\t{\"APPLE*\", 0x106b, \"Apple\"},\n\t\t\t{\"CORSAIR*\",
        0x1987, \"Corsair\"}, /* identifies as Phison */\n\t\t\t{\"CRUCIAL*\", 0xc0a9,
        \"Crucial\"},\n\t\t\t{\"FUJITSU*\", 0x10cf, \"Fujitsu\"},\n\t\t\t{\"GIGABYTE*\",
        0x1458, \"Gigabyte\"},\n\t\t\t{\"HGST*\", 0x101c, \"Western Digital\"},\n\t\t\t{\"HITACHI*\",
        0x101c, \"Western Digital\"}, /* was acquired by WD */\n\t\t\t{\"HITACHI*\",
        0x1054, \"Hitachi\"},\n\t\t\t{\"HP SSD*\", 0x103c, \"HP\"},\n\t\t\t{\"INTEL*\",
        0x8086, \"Intel\"},\n\t\t\t{\"KINGSPEC*\", 0x0000, \"KingSpec\"}, /* not in
        pci.ids */\n\t\t\t{\"KINGSTON*\", 0x2646, \"Kingston\"},\n\t\t\t{\"LITEON*\",
        0x14a4, \"LITE-ON\"},\n\t\t\t{\"MAXTOR*\", 0x115f, \"Maxtor\"},\n\t\t\t{\"MICRON*\",
        0x1344, \"Micron\"},\n\t\t\t{\"OCZ*\", 0x1179, \"Toshiba\"},\n\t\t\t{\"PNY*\",
        0x196e, \"PNY\"},\n\t\t\t{\"QEMU*\", 0x1b36, \"QEMU\"}, /* identifies as Red
        Hat! */\n\t\t\t{\"SAMSUNG*\", 0x144d, \"Samsung\"},\n\t\t\t{\"SANDISK*\",
        0x15b7, \"SanDisk\"},\n\t\t\t{\"SEAGATE*\", 0x1bb1, \"Seagate\"},\n\t\t\t{\n\t\t\t
        \   \"SK HYNIX*\",\n\t\t\t    0x1c5c,\n\t\t\t    \"SK hynix\",\n\t\t\t},\n\t\t\t{\"SUPERMICRO*\",
        0x15d9, \"SuperMicro\"},\n\t\t\t{\"TOSHIBA*\", 0x1179, \"Toshiba\"},\n\t\t\t{\"WDC*\",
        0x101c, \"Western Digital\"},\n\t\t\t{NULL, 0x0000, NULL}}"
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
    - fields:
      - name: '*prefix'
        type: gchar
      - name: vid
        type: guint16
      - name: '*name'
        type: gchar
      item_type: struct
      name: "map_fuzzy[] = {/* fuzzy name matches -- also see legacy list at:\n\t\t\t
        \ * https://github.com/linuxhw/hw-probe/blob/master/hw-probe.pl#L647 */\n\t\t\t
        {\"001-*\", 0x1bb1, \"Seagate\"},\n\t\t\t {\"726060*\", 0x101c, \"Western
        Digital\"},\n\t\t\t {\"CT*\", 0xc0a9, \"Crucial\"},\n\t\t\t {\"DT0*\", 0x1179,
        \"Toshiba\"},\n\t\t\t {\"EK0*\", 0x1590, \"HPE\"},\n\t\t\t {\"EZEX*\", 0x101c,
        \"Western Digital\"},\n\t\t\t {\"GB0*\", 0x1590, \"HPE\"},\n\t\t\t {\"GOODRAM*\",
        0x1987, \"Phison\"},\n\t\t\t {\"H??54*\", 0x101c, \"Western Digital\"},\n\t\t\t
        {\"H??72?0*\", 0x101c, \"Western Digital\"},\n\t\t\t {\"HDWG*\", 0x1179, \"Toshiba\"},\n\t\t\t
        {\"M?0??CA*\", 0x1179, \"Toshiba\"}, /* enterprise */\n\t\t\t {\"M4-CT*\",
        0xc0a9, \"Crucial\"},\n\t\t\t {\n\t\t\t     \"MA*\",\n\t\t\t     0x10cf,\n\t\t\t
        \    \"Fujitsu\",\n\t\t\t },\n\t\t\t {\n\t\t\t     \"MB*\",\n\t\t\t     0x10cf,\n\t\t\t
        \    \"Fujitsu\",\n\t\t\t },\n\t\t\t {\"MK0*\", 0x1590, \"HPE\"},\n\t\t\t
        {\"MTFDDAK*\", 0x1344, \"Micron\"},\n\t\t\t {\n\t\t\t     \"NIM*\",\n\t\t\t
        \    0x0000,\n\t\t\t     \"Nimbus\",\n\t\t\t }, /* no PCI ID */\n\t\t\t {\n\t\t\t
        \    \"SATADOM*\",\n\t\t\t     0x0000,\n\t\t\t     \"Innodisk\",\n\t\t\t },
        /* no PCI ID */\n\t\t\t {\"SSD 860*\", 0x144d, \"Samsung\"},\n\t\t\t {\"SSDPR*\",
        0x1987, \"Phison\"},\n\t\t\t {\"SSDSC?K*\", 0x8086, \"Intel\"},\n\t\t\t {\n\t\t\t
        \    \"ST*\",\n\t\t\t     0x1bb1,\n\t\t\t     \"Seagate\",\n\t\t\t },\n\t\t\t
        {\"TEAM*\", 0x0000, \"Team Group\"}, /* not in pci.ids */\n\t\t\t {\"TS*\",
        0x8564, \"Transcend\"},\n\t\t\t {\"VK0*\", 0x1590, \"HPE\"},\n\t\t\t {\"WD*\",
        0x101c, \"Western Digital\"},\n\t\t\t {NULL, 0x0000, NULL}}"
      pos:
        line_end: 217
        line_start: 213
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
    - fields:
      - name: '*prefix'
        type: gchar
      - name: vid
        type: guint16
      - name: '*name'
        type: gchar
      item_type: struct
      name: "map_version[] = {/* fuzzy version matches */\n\t\t\t   {\"CS2111*\",
        0x196e, \"PNY\"},\n\t\t\t   {\"S?FM*\", 0x1987, \"Phison\"},\n\t\t\t   {NULL,
        0x0000, NULL}}"
      pos:
        line_end: 271
        line_start: 267
        source_file: /src/fwupd/plugins/ata/fu-ata-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ata_plugin_init
  - fu_ata_plugin_constructed
  - fu_ata_plugin_class_init
  source_file: /src/fwupd/plugins/ata/fu-ata-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAtaPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ata/fu-ata-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_ata_id_func
  - fu_ata_oui_func
  - main
  source_file: /src/fwupd/plugins/ata/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USI_DOCK_CHILD_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.h
      type_or_value: (fu_usi_dock_child_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usi_dock_child_device_get_chip_idx
  - fu_usi_dock_child_device_set_chip_idx
  - fu_usi_dock_child_device_to_string
  - fu_usi_dock_child_device_prepare_firmware
  - fu_usi_dock_child_device_write_firmware
  - fu_usi_dock_child_device_init
  - fu_usi_dock_child_device_class_init
  - fu_usi_dock_child_device_new
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: chip_idx
        type: FuUsiDockFirmwareIdx
      item_type: struct
      name: _FuUsiDockChildDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USI_DOCK_MCU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.h
      type_or_value: (fu_usi_dock_mcu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usi_dock_dmc_device_parent_notify_cb
  - fu_usi_dock_dmc_device_init
  - fu_usi_dock_dmc_device_class_init
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuUsiDockDmcDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c
    typedefs: []
    union: []
- function_names:
  - fu_usi_dock_mcu_device_tx
  - fu_usi_dock_mcu_device_rx
  - fu_usi_dock_mcu_device_txrx
  - fu_usi_dock_mcu_device_get_status
  - fu_usi_dock_mcu_device_enumerate_children
  - fu_usi_dock_mcu_device_setup
  - fu_usi_dock_mcu_device_write_chunk
  - fu_usi_dock_mcu_device_write_page
  - fu_usi_dock_mcu_device_write_pages
  - fu_usi_dock_mcu_device_wait_for_spi_ready_cb
  - fu_usi_dock_mcu_device_wait_for_spi_initial_ready_cb
  - fu_usi_dock_mcu_device_wait_for_checksum_cb
  - fu_usi_dock_mcu_device_write_firmware_with_idx
  - fu_usi_dock_mcu_device_write_firmware
  - fu_usi_dock_mcu_device_reload
  - fu_usi_dock_mcu_device_attach
  - fu_usi_dock_mcu_device_insert_cb
  - fu_usi_dock_mcu_device_internal_flags_notify_cb
  - fu_usi_dock_mcu_device_cleanup
  - fu_usi_dock_mcu_device_replace
  - fu_usi_dock_mcu_device_set_progress
  - fu_usi_dock_mcu_device_init
  - fu_usi_dock_mcu_device_class_init
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_USI_DOCK_MCU_DEVICE_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: USB_HID_REPORT_ID1
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: 1u
    - item_type: preproc_def
      name: USB_HID_REPORT_ID2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: 2u
    - item_type: preproc_def
      name: DP_VERSION_FROM_MCU
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: NIC_VERSION_FROM_MCU
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '0x2  '
    - item_type: preproc_def
      name: W25Q16DV_PAGE_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_FLAG_VERFMT_HP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"verfmt-hp"'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_FLAG_SET_CHIP_TYPE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"set-chip-type"'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_FLAG_WAITING_FOR_UNPLUG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"waiting-for-unplug"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuUsiDockMcuDevice
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    - fields:
      - name: '*name'
        type: gchar
      - name: chip_idx
        type: guint8
      - name: offset
        type: gsize
      item_type: struct
      name: "components[] = {\n\t    {\"DMC\", FU_USI_DOCK_FIRMWARE_IDX_DMC_PD, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_DMC},\n\t
        \   {\"PD\", FU_USI_DOCK_FIRMWARE_IDX_DP, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_PD},\n\t
        \   {\"DP5x\", FU_USI_DOCK_FIRMWARE_IDX_NONE, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_DP5X},\n\t
        \   {\"DP6x\", FU_USI_DOCK_FIRMWARE_IDX_NONE, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_DP6X},\n\t
        \   {\"TBT4\", FU_USI_DOCK_FIRMWARE_IDX_TBT4, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_TBT4},\n\t
        \   {\"USB3\", FU_USI_DOCK_FIRMWARE_IDX_USB3, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_USB3},\n\t
        \   {\"USB2\", FU_USI_DOCK_FIRMWARE_IDX_USB2, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_USB2},\n\t
        \   {\"AUDIO\", FU_USI_DOCK_FIRMWARE_IDX_AUDIO, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_AUDIO},\n\t
        \   {\"I255\", FU_USI_DOCK_FIRMWARE_IDX_I225, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_I255},\n\t
        \   {\"MCU\", FU_USI_DOCK_FIRMWARE_IDX_MCU, FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_MCU},\n\t
        \   {\"bcdVersion\",\n\t     FU_USI_DOCK_FIRMWARE_IDX_NONE,\n\t     FU_STRUCT_USI_DOCK_ISP_VERSION_OFFSET_BCDVERSION},\n\t
        \   {NULL, 0, 0}}"
      pos:
        line_end: 160
        line_start: 156
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_USI_DOCK_DMC_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.h
      type_or_value: (fu_usi_dock_dmc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usi_dock_plugin_find_tbt_device
  - fu_usi_dock_plugin_find_mcu_device
  - fu_usi_dock_plugin_ensure_equivalent_id
  - fu_usi_dock_plugin_device_added
  - fu_usi_dock_plugin_device_registered
  - fu_usi_dock_plugin_init
  - fu_usi_dock_plugin_constructed
  - fu_usi_dock_plugin_finalize
  - fu_usi_dock_plugin_class_init
  source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USI_DOCK_TBT_INSTANCE_ID
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
      type_or_value: '"THUNDERBOLT\\VEN_0108&DEV_2031"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*device_tbt'
        type: FuDevice
      item_type: struct
      name: _FuUsiDockPlugin
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_TAP_TOUCH_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.h
      type_or_value: (fu_logitech_tap_touch_firmware_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_MAX_FW_FILE_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.h
      type_or_value: (256 * 1024)
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_MIN_FW_FILE_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.h
      type_or_value: '0x6600'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_TAP_HDMI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.h
      type_or_value: (fu_logitech_tap_hdmi_device_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_HDMI_DEVICE_FLAG_SENSOR_NEEDS_REBOOT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.h
      type_or_value: '"sensor-needs-reboot"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_tap_touch_device_get_feature_cb
  - fu_logitech_tap_touch_device_hid_transfer
  - fu_logitech_tap_touch_device_enable_tde
  - fu_logitech_tap_touch_device_disable_tde
  - fu_logitech_tap_touch_device_write_enable
  - fu_logitech_tap_touch_device_check_busy_cb
  - fu_logitech_tap_touch_device_get_crc
  - fu_logitech_tap_touch_device_get_mcu_mode
  - fu_logitech_tap_touch_device_check_ic_name
  - fu_logitech_tap_touch_device_ensure_version
  - fu_logitech_tap_touch_device_check_protocol
  - fu_logitech_tap_touch_device_setup
  - fu_logitech_tap_touch_device_detach
  - fu_logitech_tap_touch_device_attach
  - fu_logitech_tap_touch_device_probe
  - fu_logitech_tap_touch_device_write_blocks
  - fu_logitech_tap_touch_device_write_chunks_cb
  - fu_logitech_tap_touch_device_write_firmware
  - fu_logitech_tap_touch_device_set_progress
  - fu_logitech_tap_touch_device_convert_version
  - fu_logitech_tap_touch_device_init
  - fu_logitech_tap_touch_device_class_init
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_IOCTL_TIMEOUT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_HID_SET_DATA_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_HID_GET_DATA_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_HID_RESPONSE_OFFSET
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_HID_REPORT_ID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_AP_MODE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x5A '
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_BL_MODE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x55 '
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_MAX_GET_RETRY_COUNT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_MAX_BUSY_CHECK_RETRY_COUNT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_MAX_FW_WRITE_RETRIES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_SYSTEM_READY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x50 '
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_DEVICE_INFO_BUS_TYPE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x03'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLogitechTapTouchDevice
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    - fields:
      - name: '*firmware'
        type: FuFirmware
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuLogitechTapTouchWriteHelper
      pos:
        line_end: 702
        line_start: 699
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_tap_hdmi_device_ioctl_buffer_cb
  - fu_logitech_tap_hdmi_device_query_data_size
  - fu_logitech_tap_hdmi_device_get_xu_control
  - fu_logitech_tap_hdmi_device_set_xu_control
  - fu_logitech_tap_hdmi_device_ait_initiate_update
  - fu_logitech_tap_hdmi_device_ait_finalize_update
  - fu_logitech_tap_hdmi_device_write_fw
  - fu_logitech_tap_hdmi_device_write_firmware
  - fu_logitech_tap_hdmi_device_ensure_version
  - fu_logitech_tap_hdmi_device_setup
  - fu_logitech_tap_hdmi_device_probe
  - fu_logitech_tap_hdmi_device_set_progress
  - fu_logitech_tap_hdmi_device_init
  - fu_logitech_tap_hdmi_device_class_init
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_HDMI_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: XU_INPUT_DATA_LEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: kDefaultUvcGetLenQueryControlSize
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuV4lDevice
      item_type: struct
      name: _FuLogitechTapHdmiDevice
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_tap_plugin_composite_cleanup
  - fu_logitech_tap_plugin_init
  - fu_logitech_tap_plugin_constructed
  - fu_logitech_tap_plugin_device_registered
  - fu_logitech_tap_plugin_finalize
  - fu_logitech_tap_plugin_class_init
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*hdmi_device'
        type: FuDevice
      - name: '*sensor_device'
        type: FuDevice
      - name: '*touch_device'
        type: FuDevice
      item_type: struct
      name: _FuLogitechTapPlugin
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_tap_touch_firmware_get_ap_checksum
  - fu_logitech_tap_touch_firmware_get_df_checksum
  - fu_logitech_tap_touch_firmware_export
  - fu_logitech_tap_touch_firmware_validate
  - fu_logitech_tap_touch_firmware_calculate_ap_crc_cb
  - fu_logitech_tap_touch_firmware_calculate_basic_cb
  - fu_logitech_tap_touch_firmware_parse
  - fu_logitech_tap_touch_firmware_convert_version
  - fu_logitech_tap_touch_firmware_init
  - fu_logitech_tap_touch_firmware_class_init
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TAP_TOUCH_MAPPING_INFO_ADDR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
      type_or_value: '0x2020'
    - item_type: preproc_def
      name: TAP_TOUCH_AP_START
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: TAP_TOUCH_DF_START
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
      type_or_value: '0xF000'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: mapping_version
        type: guint32
      - name: fw_ic_name
        type: guint16
      - name: protocol_version
        type: guint32
      - name: ap_checksum
        type: guint16
      - name: df_checksum
        type: guint16
      item_type: struct
      name: _FuLogitechTapTouchFirmware
      pos:
        line_end: 18
        line_start: 11
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_TAP_SENSOR_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.h
      type_or_value: (fu_logitech_tap_sensor_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_IC_NAME
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-common.h
      type_or_value: '0x2511'
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_TOUCH_SUPPORTED_PROTOCOL_VERSION
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-common.h
      type_or_value: '0x03'
    structs: []
    typedefs: []
    union: []
- function_names:
  - HIDIOCGINPUT
  - fu_logitech_tap_sensor_device_get_feature
  - fu_logitech_tap_sensor_device_enable_tde
  - fu_logitech_tap_sensor_device_disable_tde
  - fu_logitech_tap_sensor_device_reboot_device
  - fu_logitech_tap_sensor_device_set_version
  - fu_logitech_tap_sensor_device_set_serial
  - fu_logitech_tap_sensor_device_setup
  - fu_logitech_tap_sensor_device_set_progress
  - fu_logitech_tap_sensor_device_convert_version
  - fu_logitech_tap_sensor_device_init
  - fu_logitech_tap_sensor_device_class_init
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_TAP_SENSOR_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
      type_or_value: '50000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLogitechTapSensorDevice
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_TAP_TOUCH_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.h
      type_or_value: (fu_logitech_tap_touch_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_STAGE1_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.h
      type_or_value: (fu_bcm57xx_stage1_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_dict_image_export
  - fu_bcm57xx_dict_image_parse
  - fu_bcm57xx_dict_image_write
  - fu_bcm57xx_dict_image_build
  - fu_bcm57xx_dict_image_ensure_id
  - fu_bcm57xx_dict_image_set_target
  - fu_bcm57xx_dict_image_get_target
  - fu_bcm57xx_dict_image_set_kind
  - fu_bcm57xx_dict_image_get_kind
  - fu_bcm57xx_dict_image_init
  - fu_bcm57xx_dict_image_class_init
  - fu_bcm57xx_dict_image_new
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: target
        type: guint8
      - name: kind
        type: guint8
      item_type: struct
      name: _FuBcm57xxDictImage
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    - fields:
      - name: target
        type: guint8
      - name: kind
        type: guint8
      - name: '*id'
        type: gchar
      item_type: struct
      name: "ids[] = {{0x00, 0x00, \"pxe\"},\n\t\t   {0x0D, 0x00, \"ape\"},\n\t\t
        \  {0x09, 0x00, \"iscsi1\"},\n\t\t   {0x05, 0x00, \"iscsi2\"},\n\t\t   {0x0b,
        0x00, \"iscsi3\"},\n\t\t   {0x00, 0x01, \"cfg1000\"},\n\t\t   {0x04, 0x01,
        \"vpd2\"},\n\t\t   {0xff, 0xff, NULL}}"
      pos:
        line_end: 105
        line_start: 101
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_stage2_image_parse
  - fu_bcm57xx_stage2_image_write
  - fu_bcm57xx_stage2_image_init
  - fu_bcm57xx_stage2_image_class_init
  - fu_bcm57xx_stage2_image_new
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuBcm57xxStage2Image
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_STAGE2_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.h
      type_or_value: (fu_bcm57xx_stage2_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_stage1_image_parse
  - fu_bcm57xx_stage1_image_write
  - fu_bcm57xx_stage1_image_convert_version
  - fu_bcm57xx_stage1_image_init
  - fu_bcm57xx_stage1_image_class_init
  - fu_bcm57xx_stage1_image_new
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuBcm57xxStage1Image
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_create_verbuf
  - fu_bcm57xx_common_veritem_func
  - fu_bcm57xx_firmware_talos_func
  - fu_bcm57xx_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/bcm57xx/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_DICT_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.h
      type_or_value: (fu_bcm57xx_dict_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - BARRIER
  - BARRIER
  - fu_bcm57xx_recovery_device_bar_read
  - fu_bcm57xx_recovery_device_bar_write
  - fu_bcm57xx_recovery_device_nvram_disable
  - fu_bcm57xx_recovery_device_nvram_enable
  - fu_bcm57xx_recovery_device_nvram_enable_write
  - fu_bcm57xx_recovery_device_nvram_acquire_lock
  - fu_bcm57xx_recovery_device_nvram_release_lock
  - fu_bcm57xx_recovery_device_nvram_wait_done
  - fu_bcm57xx_recovery_device_nvram_clear_done
  - fu_bcm57xx_recovery_device_nvram_read
  - fu_bcm57xx_recovery_device_nvram_write
  - fu_bcm57xx_recovery_device_detach
  - fu_bcm57xx_recovery_device_attach
  - fu_bcm57xx_recovery_device_activate
  - fu_bcm57xx_recovery_device_dump_firmware
  - fu_bcm57xx_recovery_device_prepare_firmware
  - fu_bcm57xx_recovery_device_write_firmware
  - fu_bcm57xx_recovery_device_setup
  - fu_bcm57xx_recovery_device_open
  - fu_bcm57xx_recovery_device_close
  - fu_bcm57xx_recovery_device_set_progress
  - fu_bcm57xx_recovery_device_convert_version
  - fu_bcm57xx_recovery_device_init
  - fu_bcm57xx_recovery_device_probe
  - fu_bcm57xx_recovery_device_class_init
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REG_DEVICE_PCI_VENDOR_DEVICE_ID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x6434'
    - item_type: preproc_def
      name: REG_NVM_SOFTWARE_ARBITRATION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x7020'
    - item_type: preproc_def
      name: REG_NVM_ACCESS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x7024'
    - item_type: preproc_def
      name: REG_NVM_COMMAND
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x7000'
    - item_type: preproc_def
      name: REG_NVM_ADDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x700c'
    - item_type: preproc_def
      name: REG_NVM_READ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x7010'
    - item_type: preproc_def
      name: REG_NVM_WRITE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x7008'
    - item_type: preproc_def
      name: REG_APE_MODE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_BCM57XX_BAR_DEVICE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_BCM57XX_BAR_APE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FU_BCM57XX_BAR_MAX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuBcm57xxMmap
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: bar[FU_BCM57XX_BAR_MAX]
        type: FuBcm57xxMmap
      item_type: struct
      name: _FuBcm57xxRecoveryDevice
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    typedefs: []
    union:
    - fields:
      - name: r32
        type: guint32
      - name: bits
        type: "struct {\n\t\tguint32 reserved_0_0 : 1;\n\t\tguint32 Reset : 1;\n\t\tguint32
          reserved_2_2 : 1;\n\t\tguint32 Done : 1;\n\t\tguint32 Doit : 1;\n\t\tguint32
          Wr : 1;\n\t\tguint32 Erase : 1;\n\t\tguint32 First : 1;\n\t\tguint32 Last
          : 1;\n\t\tguint32 reserved_15_9 : 7;\n\t\tguint32 WriteEnableCommand : 1;\n\t\tguint32
          WriteDisableCommand : 1;\n\t\tguint32 reserved_31_18 : 14;\n\t} __attribute__((packed))"
      item_type: union
      name: BcmRegNVMCommand
      pos:
        line_end: 70
        line_start: 53
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    - fields:
      - name: r32
        type: guint32
      - name: bits
        type: "struct {\n\t\tguint32 ReqSet0 : 1;\n\t\tguint32 ReqSet1 : 1;\n\t\tguint32
          ReqSet2 : 1;\n\t\tguint32 ReqSet3 : 1;\n\t\tguint32 ReqClr0 : 1;\n\t\tguint32
          ReqClr1 : 1;\n\t\tguint32 ReqClr2 : 1;\n\t\tguint32 ReqClr3 : 1;\n\t\tguint32
          ArbWon0 : 1;\n\t\tguint32 ArbWon1 : 1;\n\t\tguint32 ArbWon2 : 1;\n\t\tguint32
          ArbWon3 : 1;\n\t\tguint32 Req0 : 1;\n\t\tguint32 Req1 : 1;\n\t\tguint32
          Req2 : 1;\n\t\tguint32 Req3 : 1;\n\t\tguint32 reserved_31_16 : 16;\n\t}
          __attribute__((packed))"
      item_type: union
      name: BcmRegNVMSoftwareArbitration
      pos:
        line_end: 93
        line_start: 72
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    - fields:
      - name: r32
        type: guint32
      - name: bits
        type: "struct {\n\t\tguint32 Enable : 1;\n\t\tguint32 WriteEnable : 1;\n\t\tguint32
          reserved_31_2 : 30;\n\t} __attribute__((packed))"
      item_type: union
      name: BcmRegNVMAccess
      pos:
        line_end: 102
        line_start: 95
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
    - fields:
      - name: r32
        type: guint32
      - name: bits
        type: "struct {\n\t\tguint32 Reset : 1;\n\t\tguint32 Halt : 1;\n\t\tguint32
          FastBoot : 1;\n\t\tguint32 HostDiag : 1;\n\t\tguint32 reserved_4_4 : 1;\n\t\tguint32
          Event1 : 1;\n\t\tguint32 Event2 : 1;\n\t\tguint32 GRCint : 1;\n\t\tguint32
          reserved_8_8 : 1;\n\t\tguint32 SwapATBdword : 1;\n\t\tguint32 reserved_10_10
          : 1;\n\t\tguint32 SwapARBdword : 1;\n\t\tguint32 reserved_13_12 : 2;\n\t\tguint32
          Channel0Enable : 1;\n\t\tguint32 Channel2Enable : 1;\n\t\tguint32 reserved_17_16
          : 2;\n\t\tguint32 MemoryECC : 1;\n\t\tguint32 ICodePIPRdDisable : 1;\n\t\tguint32
          reserved_29_20 : 10;\n\t\tguint32 Channel1Enable : 1;\n\t\tguint32 Channel3Enable
          : 1;\n\t} __attribute__((packed))"
      item_type: union
      name: BcmRegAPEMode
      pos:
        line_end: 129
        line_start: 104
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.c
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.h
      type_or_value: (fu_bcm57xx_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.h
      type_or_value: (fu_bcm57xx_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_firmware_export
  - fu_bcm57xx_firmware_parse_header
  - fu_bcm57xx_firmware_parse_info
  - fu_bcm57xx_firmware_parse_stage1
  - fu_bcm57xx_firmware_parse_stage2
  - fu_bcm57xx_firmware_parse_dict
  - fu_bcm57xx_firmware_validate
  - fu_bcm57xx_firmware_parse
  - _g_bytes_new_sized
  - fu_bcm57xx_firmware_build
  - fu_bcm57xx_firmware_write
  - fu_bcm57xx_firmware_get_vendor
  - fu_bcm57xx_firmware_get_model
  - fu_bcm57xx_firmware_is_backup
  - fu_bcm57xx_firmware_init
  - fu_bcm57xx_firmware_class_init
  - fu_bcm57xx_firmware_new
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BCM_STAGE1_HEADER_MAGIC_BROADCOM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
      type_or_value: '0x0E000E03'
    - item_type: preproc_def
      name: BCM_STAGE1_HEADER_MAGIC_MEKLORT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
      type_or_value: '0x3C1D0800'
    - item_type: preproc_def
      name: BCM_APE_HEADER_MAGIC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
      type_or_value: '0x1A4D4342'
    - item_type: preproc_def
      name: BCM_CODE_DIRECTORY_ADDR_APE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
      type_or_value: '0x07'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: vendor
        type: guint16
      - name: model
        type: guint16
      - name: is_backup
        type: gboolean
      - name: phys_addr
        type: guint32
      - name: source_size
        type: gsize
      - name: source_padchar
        type: guint8
      item_type: struct
      name: _FuBcm57xxFirmware
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_device_to_string
  - fu_bcm57xx_device_probe
  - fu_bcm57xx_device_ioctl_buffer_cb
  - fu_bcm57xx_device_submit_ifreq
  - fu_bcm57xx_device_nvram_write
  - fu_bcm57xx_device_nvram_read
  - fu_bcm57xx_device_nvram_check
  - fu_bcm57xx_device_dump_firmware
  - fu_bcm57xx_device_read_firmware
  - fu_bcm57xx_device_prepare_firmware
  - fu_bcm57xx_device_write_chunks
  - fu_bcm57xx_device_write_firmware
  - fu_bcm57xx_device_attach
  - fu_bcm57xx_device_setup
  - fu_bcm57xx_device_open
  - fu_bcm57xx_device_set_progress
  - fu_bcm57xx_device_convert_version
  - fu_bcm57xx_device_get_property
  - fu_bcm57xx_device_set_property
  - fu_bcm57xx_device_init
  - fu_bcm57xx_device_finalize
  - fu_bcm57xx_device_class_init
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_BCM57XX_BLOCK_SZ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
      type_or_value: '0x4000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuPciDevice
      - name: '*ethtool_iface'
        type: gchar
      item_type: struct
      name: _FuBcm57xxDevice
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BCM57XX_RECOVERY_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-recovery-device.h
      type_or_value: (fu_bcm57xx_recovery_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_verify_crc
  - fu_bcm57xx_verify_magic
  - fu_bcm57xx_veritem_free
  - fu_bcm57xx_veritem_new
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*prefix'
        type: gchar
      - name: '*branch'
        type: gchar
      - name: verfmt
        type: FwupdVersionFormat
      item_type: struct
      name: "data[] = {{\"5719-v\", BCM_FW_BRANCH_UNKNOWN, FWUPD_VERSION_FORMAT_PAIR},\n\t\t
        \   {\"stage1-\", BCM_FW_BRANCH_OSS_FIRMWARE, FWUPD_VERSION_FORMAT_TRIPLET},\n\t\t
        \   {NULL, NULL, 0}}"
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bcm57xx_plugin_backend_device_added
  - fu_bcm57xx_plugin_init
  - fu_bcm57xx_plugin_object_constructed
  - fu_bcm57xx_plugin_constructed
  - fu_bcm57xx_plugin_class_init
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuBcm57XxPlugin
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BCM_VENDOR_BROADCOM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x14E4'
    - item_type: preproc_def
      name: BCM_FW_BRANCH_UNKNOWN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: BCM_FW_BRANCH_OSS_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '"oss-firmware"'
    - item_type: preproc_def
      name: BCM_FIRMWARE_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x40000 '
    - item_type: preproc_def
      name: BCM_PHYS_ADDR_DEFAULT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x08003800'
    - item_type: preproc_def
      name: BCM_NVRAM_MAGIC
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x669955AA'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_BASE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BCM_NVRAM_DIRECTORY_BASE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO_BASE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x74'
    - item_type: preproc_def
      name: BCM_NVRAM_VPD_BASE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO2_BASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: BCM_NVRAM_STAGE1_BASE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x28c'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_MAGIC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_PHYS_ADDR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_SIZE_WRDS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_CRC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: BCM_NVRAM_HEADER_SZ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO_MAC_ADDR0
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO_VENDOR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x2E'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO_DEVICE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x2C'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO_SZ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x8C'
    - item_type: preproc_def
      name: BCM_NVRAM_DIRECTORY_ADDR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BCM_NVRAM_DIRECTORY_SIZE_WRDS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BCM_NVRAM_DIRECTORY_OFFSET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BCM_NVRAM_DIRECTORY_SZ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: BCM_NVRAM_VPD_SZ
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: BCM_NVRAM_INFO2_SZ
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x8c'
    - item_type: preproc_def
      name: BCM_NVRAM_STAGE1_VERADDR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BCM_NVRAM_STAGE1_VERSION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
      type_or_value: '0x0C'
    structs:
    - fields:
      - name: '*branch'
        type: gchar
      - name: '*version'
        type: gchar
      - name: verfmt
        type: FwupdVersionFormat
      item_type: struct
      name: Bcm57xxVeritem
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_KRIA_IMAGE_FIRMWARE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.h
      type_or_value: (fu_amd_kria_image_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_KRIA_PERSISTENT_FIRMWARE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.h
      type_or_value: (fu_amd_kria_persistent_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_KRIA_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.h
      type_or_value: (fu_amd_kria_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuI2cDeviceClass
      item_type: struct
      name: _FuAmdKriaDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_KRIA_SOM_EEPROM
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.h
      type_or_value: (fu_amd_kria_som_eeprom_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_amd_kria_plugin_init
  - fu_amd_kria_plugin_process_image
  - fu_amd_kria_plugin_process_persistent
  - fu_amd_kria_plugin_device_registered
  - fu_amd_kria_plugin_to_string
  - fu_amd_kria_plugin_startup
  - fu_amd_kria_plugin_constructed
  - fu_amd_kria_plugin_finalize
  - fu_amd_kria_plugin_class_init
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*version_a'
        type: gchar
      - name: '*version_b'
        type: gchar
      - name: '*active'
        type: gchar
      item_type: struct
      name: _FuAmdKriaPlugin
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_amd_kria_image_firmware_parse
  - fu_amd_kria_image_firmware_init
  - fu_amd_kria_image_firmware_class_init
  - fu_amd_kria_image_firmware_new
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERSION_OFFSET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
      type_or_value: '0x70'
    - item_type: preproc_def
      name: VERSION_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
      type_or_value: '0x24'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuAmdKriaImageFirmware
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_amd_kria_device_to_string
  - fu_amd_kria_device_prepare
  - fu_amd_kria_device_cleanup
  - fu_amd_kria_device_write_firmware
  - fu_amd_kria_device_set_quirk_kv
  - fu_amd_kria_device_probe
  - fu_amd_kria_device_setup
  - fu_amd_kria_device_constructed
  - fu_amd_kria_device_init
  - fu_amd_kria_device_finalize
  - fu_amd_kria_device_class_init
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*esp'
        type: FuVolume
      - name: '*esp_locker'
        type: FuDeviceLocker
      - name: '*eeprom_address'
        type: gchar
      item_type: struct
      name: FuAmdKriaDevicePrivate
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    typedefs: []
    union: []
- function_names:
  - LENGTH
  - TYPE_CODE
  - fu_amd_kria_som_eeprom_parse
  - fu_amd_kria_som_eeprom_get_manufacturer
  - fu_amd_kria_som_eeprom_get_product_name
  - fu_amd_kria_som_eeprom_get_serial_number
  - fu_amd_kria_som_eeprom_export
  - fu_amd_kria_som_eeprom_init
  - fu_amd_kria_som_eeprom_finalize
  - fu_amd_kria_som_eeprom_class_init
  - fu_amd_kria_som_eeprom_new
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: '*manufacturer'
        type: gchar
      - name: '*product_name'
        type: gchar
      - name: '*serial_number'
        type: gchar
      item_type: struct
      name: _FuAmdKriaSomEeprom
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    typedefs: []
    union: []
- function_names:
  - fu_amd_kria_persistent_firmware_parse
  - fu_amd_kria_persistent_firmware_booted_image_a
  - fu_amd_kria_persistent_firmware_init
  - fu_amd_kria_persistent_firmware_export
  - fu_amd_kria_persistent_firmware_class_init
  - fu_amd_kria_persistent_firmware_new
  source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: last_booted
        type: FuAmdKriaBootImageId
      item_type: struct
      name: _FuAmdKriaPersistentFirmware
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_linux_sleep_plugin_add_security_attrs
  - fu_linux_sleep_plugin_init
  - fu_linux_sleep_plugin_class_init
  source_file: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLinuxSleepPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NORDIC_HID_FIRMWARE_MCUBOOT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.h
      type_or_value: (fu_nordic_hid_firmware_mcuboot_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nordic_hid_firmware_mcuboot_write
  - fu_nordic_hid_firmware_mcuboot_validate
  - fu_nordic_hid_firmware_mcuboot_parse
  - fu_nordic_hid_firmware_mcuboot_init
  - fu_nordic_hid_firmware_mcuboot_class_init
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMAGE_MAGIC
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
      type_or_value: '0x96f3b83d'
    - item_type: preproc_def
      name: IMAGE_TLV_INFO_MAGIC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
      type_or_value: '0x6907'
    - item_type: preproc_def
      name: IMAGE_TLV_PROT_INFO_MAGIC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
      type_or_value: '0x6908'
    structs:
    - fields:
      - name: parent_instance
        type: FuNordicHidFirmwareClass
      item_type: struct
      name: _FuNordicHidFirmwareMcuboot
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_nordic_hid_firmware_export
  - fu_nordic_hid_firmware_get_checksum
  - fu_nordic_hid_firmware_parse
  - fu_nordic_hid_firmware_init
  - fu_nordic_hid_firmware_class_init
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: crc32
        type: guint32
      item_type: struct
      name: FuNordicHidFirmwarePrivate
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_nordic_hid_plugin_init
  - fu_nordic_hid_plugin_constructed
  - fu_nordic_hid_plugin_class_init
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuNordicHidPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NORDIC_HID_CFG_CHANNEL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.h
      type_or_value: (fu_nordic_hid_cfg_channel_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nordic_hid_firmware_b0_write
  - fu_nordic_hid_firmware_b0_read_fwinfo
  - fu_nordic_hid_firmware_b0_parse
  - fu_nordic_hid_firmware_b0_init
  - fu_nordic_hid_firmware_b0_class_init
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UPDATE_IMAGE_MAGIC_COMMON
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
      type_or_value: '0x281ee6de'
    - item_type: preproc_def
      name: UPDATE_IMAGE_MAGIC_FWINFO
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
      type_or_value: '0x8fcebb4c'
    - item_type: preproc_def
      name: UPDATE_IMAGE_MAGIC_NRF52
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
      type_or_value: '0x00003402'
    - item_type: preproc_def
      name: UPDATE_IMAGE_MAGIC_NRF53
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
      type_or_value: '0x00003502'
    structs:
    - fields:
      - name: parent_instance
        type: FuNordicHidFirmwareClass
      item_type: struct
      name: _FuNordicHidFirmwareB0
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NORDIC_HID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.h
      type_or_value: (fu_nordic_hid_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuNordicHidFirmwareClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NORDIC_HID_ARCHIVE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.h
      type_or_value: (fu_nordic_hid_archive_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nordic_hid_cfg_channel_module_option_free
  - fu_nordic_hid_cfg_channel_module_free
  - fu_nordic_hid_cfg_channel_get_udev_device
  - fu_nordic_hid_cfg_channel_send
  - fu_nordic_hid_cfg_channel_receive
  - fu_nordic_hid_cfg_channel_receive_cb
  - fu_nordic_hid_cfg_channel_get_event_id
  - fu_nordic_hid_cfg_channel_cmd_send_by_id
  - fu_nordic_hid_cfg_channel_cmd_send
  - fu_nordic_hid_cfg_channel_cmd_receive
  - fu_nordic_hid_cfg_channel_is_cached_peer_connected
  - fu_nordic_hid_cfg_channel_check_children_update_pending_cb
  - fu_nordic_hid_cfg_channel_add_peer
  - fu_nordic_hid_cfg_channel_remove_peer
  - fu_nordic_hid_cfg_channel_remove_disconnected_peers
  - fu_nordic_hid_cfg_channel_index_peers_cmd
  - fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
  - fu_nordic_hid_cfg_channel_read_peers_cache_cmd
  - fu_nordic_hid_cfg_channel_update_peers
  - fu_nordic_hid_cfg_channel_setup_peers
  - fu_nordic_hid_cfg_channel_poll_peers
  - fu_nordic_hid_cfg_channel_get_board_name_cb
  - fu_nordic_hid_cfg_channel_get_bl_name
  - fu_nordic_hid_cfg_channel_get_devinfo
  - fu_nordic_hid_cfg_channel_get_hwid
  - fu_nordic_hid_cfg_channel_load_module_opts
  - fu_nordic_hid_cfg_channel_load_module_info
  - fu_nordic_hid_cfg_channel_get_modinfo
  - fu_nordic_hid_cfg_channel_dfu_fwinfo
  - fu_nordic_hid_cfg_channel_dfu_reboot
  - fu_nordic_hid_cfg_channel_dfu_sync_cb
  - fu_nordic_hid_cfg_channel_dfu_sync
  - fu_nordic_hid_cfg_channel_dfu_start
  - fu_nordic_hid_cfg_channel_generate_ids
  - fu_nordic_hid_cfg_channel_direct_discovery
  - fu_nordic_hid_cfg_channel_setup
  - fu_nordic_hid_cfg_channel_set_progress
  - fu_nordic_hid_cfg_channel_module_to_string
  - fu_nordic_hid_cfg_channel_to_string
  - fu_nordic_hid_cfg_channel_write_firmware_chunk
  - fu_nordic_hid_cfg_channel_write_firmware_blob
  - fu_nordic_hid_cfg_channel_write_firmware
  - fu_nordic_hid_cfg_channel_set_quirk_kv
  - fu_nordic_hid_cfg_channel_finalize
  - fu_nordic_hid_cfg_channel_class_init
  - fu_nordic_hid_cfg_channel_init
  - fu_nordic_hid_cfg_channel_new
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HID_REPORT_ID
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '6'
    - item_type: preproc_def
      name: REPORT_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '30'
    - item_type: preproc_def
      name: REPORT_DATA_MAX_LEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: (REPORT_SIZE - 5)
    - item_type: preproc_def
      name: HWID_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PEERS_CACHE_LEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '16'
    - item_type: preproc_def
      name: END_OF_TRANSFER_CHAR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: INVALID_PEER_ID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: SELF_PEER_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_NORDIC_HID_CFG_CHANNEL_RETRIES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_NORDIC_HID_CFG_CHANNEL_RETRY_DELAY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '50   '
    - item_type: preproc_def
      name: FU_NORDIC_HID_CFG_CHANNEL_DFU_RETRY_DELAY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '500  '
    - item_type: preproc_def
      name: FU_NORDIC_HID_CFG_CHANNEL_PEERS_POLL_INTERVAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
      type_or_value: '2000 '
    structs:
    - fields:
      - name: report_id
        type: guint8
      - name: recipient
        type: guint8
      - name: event_id
        type: guint8
      - name: status
        type: guint8
      - name: data_len
        type: guint8
      - name: data[REPORT_DATA_MAX_LEN]
        type: guint8
      item_type: struct
      name: FuNordicCfgChannelMsg
      pos:
        line_end: 58
        line_start: 51
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - fields:
      - name: idx
        type: guint8
      - name: '*name'
        type: gchar
      item_type: struct
      name: FuNordicCfgChannelModuleOption
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - fields:
      - name: idx
        type: guint8
      - name: '*name'
        type: gchar
      - name: '*options'
        type: GPtrArray
      item_type: struct
      name: FuNordicCfgChannelModule
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - fields:
      - name: status
        type: guint8
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuNordicCfgChannelRcvHelper
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - fields:
      - name: dfu_state
        type: guint8
      - name: img_length
        type: guint32
      - name: img_csum
        type: guint32
      - name: offset
        type: guint32
      - name: sync_buffer_size
        type: guint16
      item_type: struct
      name: FuNordicCfgChannelDfuInfo
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: dfu_support
        type: gboolean
      - name: peers_cache_support
        type: gboolean
      - name: peers_cache[PEERS_CACHE_LEN]
        type: guint8
      - name: '*board_name'
        type: gchar
      - name: '*bl_name'
        type: gchar
      - name: '*generation'
        type: gchar
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      - name: flash_area_id
        type: guint8
      - name: flashed_image_len
        type: guint32
      - name: peer_id
        type: guint8
      - name: '*parent_udev'
        type: FuUdevDevice
      - name: '*modules'
        type: GPtrArray
      item_type: struct
      name: _FuNordicHidCfgChannel
      pos:
        line_end: 103
        line_start: 88
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    typedefs:
    - item_type: typedef
      name: FuNordicCfgStatus
      pos:
        line_end: 42
        line_start: 26
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    - item_type: typedef
      name: FuNordicCfgSyncState
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NORDIC_HID_FIRMWARE_B0
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.h
      type_or_value: (fu_nordic_hid_firmware_b0_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nordic_hid_archive_parse_file_get_bootloader_name
  - fu_nordic_hid_archive_parse_file_image_create
  - fu_nordic_hid_archive_parse_file_get_board_name
  - fu_nordic_hid_archive_parse_file_get_flash_area_id_v1
  - fu_nordic_hid_archive_parse_file_get_flash_area_id
  - fu_nordic_hid_archive_parse
  - fu_nordic_hid_archive_init
  - fu_nordic_hid_archive_class_init
  source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_VERSION_FORMAT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_VERSION_FORMAT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
      type_or_value: '1'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuNordicHidArchive
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_vmm9_device_to_string
  - fu_synaptics_vmm9_device_command_cb
  - fu_synaptics_vmm9_device_command
  - fu_synaptics_vmm9_device_setup
  - fu_synaptics_vmm9_device_open
  - fu_synaptics_vmm9_device_close
  - fu_synaptics_vmm9_device_prepare_firmware
  - fu_synaptics_vmm9_device_write_blocks
  - fu_synaptics_vmm9_device_erase
  - fu_synaptics_vmm9_device_read_firmware
  - fu_synaptics_vmm9_device_write_firmware
  - fu_synaptics_vmm9_device_set_progress
  - fu_synaptics_vmm9_device_convert_version
  - fu_synaptics_vmm9_device_init
  - fu_synaptics_vmm9_device_class_init
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_DEVICE_FLAG_MANUAL_RESTART_REQUIRED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '"manual-restart-required"'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_DEVICE_REPORT_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '62'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_DEVICE_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_CTRL_BUSY_MASK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_BUSY_POLL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '10 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_CHIP_SERIAL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x20200D3C '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_RC_TRIGGER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020A024 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_MCU_BOOTLOADER_STS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020A030 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_MCU_FW_VERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020A038 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_FIRMWARE_BUILD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020A084 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_RC_COMMAND
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020B000'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_RC_OFFSET
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020B004'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_RC_LENGTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020B008'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_RC_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x2020B010 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_FIRMWARE_NAME
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x90000230 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_MEM_OFFSET_BOARD_ID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
      type_or_value: '0x9000014E '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: board_id
        type: guint8
      - name: customer_id
        type: guint8
      - name: active_bank
        type: guint8
      item_type: struct
      name: _FuSynapticsVmm9Device
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    - fields:
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuSynapticsVmm9DeviceCommandHelper
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    typedefs:
    - item_type: typedef
      name: FuSynapticsVmm9DeviceCommandFlags
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_VMM9_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.h
      type_or_value: (fu_synaptics_vmm9_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_vmm9_plugin_init
  - fu_synaptics_vmm9_plugin_constructed
  - fu_synaptics_vmm9_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsVmm9Plugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_VMM9_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.h
      type_or_value: (fu_synaptics_vmm9_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_vmm9_firmware_export
  - fu_synaptics_vmm9_firmware_validate
  - fu_synaptics_vmm9_firmware_parse
  - fu_synaptics_vmm9_firmware_get_board_id
  - fu_synaptics_vmm9_firmware_get_customer_id
  - fu_synaptics_vmm9_firmware_init
  - fu_synaptics_vmm9_firmware_class_init
  - fu_synaptics_vmm9_firmware_new
  source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_FIRMWARE_OFFSET_CUSTOMER_ID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
      type_or_value: '0x0000620E'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_FIRMWARE_OFFSET_BOARD_ID
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
      type_or_value: '0x0000620F'
    - item_type: preproc_def
      name: FU_SYNAPTICS_VMM9_FIRMWARE_OFFSET_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
      type_or_value: '0x00015000'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: board_id
        type: guint8
      - name: customer_id
        type: guint8
      item_type: struct
      name: _FuSynapticsVmm9Firmware
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_FIREHOSE_SAHARA_IMPL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.h
      type_or_value: (fu_qc_firehose_sahara_impl_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: "*(*read)(FuQcFirehoseSaharaImpl *self,\n\t\t\t    guint timeout_ms,\n\t\t\t
          \   GError **error)"
        type: GByteArray
      - name: "(*write)(FuQcFirehoseSaharaImpl *self,\n\t\t\t  const guint8 *buf,\n\t\t\t
          \ gsize bufsz,\n\t\t\t  guint timeout_ms,\n\t\t\t  GError **error)"
        type: gboolean
      item_type: struct
      name: _FuQcFirehoseSaharaImplInterface
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.h
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_impl_default_init
  - fu_qc_firehose_impl_read
  - fu_qc_firehose_impl_write
  - fu_qc_firehose_impl_has_function
  - fu_qc_firehose_impl_add_function
  - fu_qc_firehose_impl_read_xml_init_log
  - fu_qc_firehose_impl_read_xml_init_cb
  - fu_qc_firehose_impl_read_xml_nop_log
  - fu_qc_firehose_impl_read_xml_nop_cb
  - fu_qc_firehose_impl_read_xml_cb
  - fu_qc_firehose_impl_read_xml
  - fu_qc_firehose_impl_write_xml_xb
  - fu_qc_firehose_impl_write_xml
  - fu_qc_firehose_impl_send_configure
  - fu_qc_firehose_impl_configure
  - fu_qc_firehose_impl_erase
  - fu_qc_firehose_impl_write_blocks
  - fu_qc_firehose_impl_convert_to_image_id
  - fu_qc_firehose_impl_program
  - fu_qc_firehose_impl_apply_patch
  - fu_qc_firehose_impl_set_bootable
  - fu_qc_firehose_impl_reset
  - fu_qc_firehose_impl_erase_targets
  - fu_qc_firehose_impl_program_targets
  - fu_qc_firehose_impl_patch_targets
  - fu_qc_firehose_impl_find_bootable
  - fu_qc_firehose_impl_send_nop
  - fu_qc_firehose_impl_setup
  - fu_qc_firehose_impl_write_firmware
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*firmware'
        type: FuFirmware
      - name: no_zlp
        type: gboolean
      - name: rawmode
        type: gboolean
      - name: max_payload_size
        type: guint64
      - name: read_func
        type: FuQcFirehoseImplReadFunc
      item_type: struct
      name: FuQcFirehoseImplHelper
      pos:
        line_end: 186
        line_start: 180
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    typedefs:
    - item_type: typedef
      name: "(*FuQcFirehoseImplReadFunc)(FuQcFirehoseImpl *self,\n\t\t\t\t\t     XbNode
        *xn,\n\t\t\t\t\t     gboolean *done,\n\t\t\t\t\t     GError **error)"
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    union: []
- function_names:
  - fu_qc_firehose_retry_cb
  - fu_qc_firehose_retry_true_func
  - fu_qc_firehose_retry_done_func
  - fu_qc_firehose_retry_error_cb
  - fu_qc_firehose_retry_timeout_func
  - fu_qc_firehose_retry_invalid_func
  - main
  source_file: /src/fwupd/plugins/qc-firehose/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cnt
        type: guint
      - name: cnt_done
        type: guint
      - name: error_code
        type: FwupdError
      item_type: struct
      name: FooHelper
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_plugin_init
  - fu_qc_firehose_plugin_constructed
  - fu_qc_firehose_plugin_class_init
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuQcFirehosePlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_raw_device_to_string
  - fu_qc_firehose_raw_device_impl_has_function
  - fu_qc_firehose_raw_device_impl_add_function
  - fu_qc_firehose_raw_device_impl_write_firmware
  - fu_qc_firehose_raw_device_attach
  - fu_qc_firehose_raw_device_probe
  - fu_qc_firehose_raw_device_setup
  - fu_qc_firehose_raw_device_set_progress
  - fu_qc_firehose_raw_device_impl_read
  - fu_qc_firehose_raw_device_impl_write
  - fu_qc_firehose_raw_device_impl_iface_init
  - fu_qc_firehose_raw_device_init
  - fu_qc_firehose_raw_device_class_init
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_FIREHOSE_RAW_DEVICE_RAW_BUFFER_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
      type_or_value: (4 * 1024)
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: supported_functions
        type: FuQcFirehoseFunctions
      item_type: struct
      name: _FuQcFirehoseRawDevice
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_FIREHOSE_IMPL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.h
      type_or_value: (fu_qc_firehose_impl_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: "*(*read)(FuQcFirehoseImpl *self,\n\t\t\t    guint timeout_ms,\n\t\t\t
          \   GError **error)"
        type: GByteArray
      - name: "(*write)(FuQcFirehoseImpl *self,\n\t\t\t  const guint8 *buf,\n\t\t\t
          \ gsize bufsz,\n\t\t\t  guint timeout_ms,\n\t\t\t  GError **error)"
        type: gboolean
      - name: (*has_function)(FuQcFirehoseImpl *self, FuQcFirehoseFunctions func)
        type: gboolean
      - name: (*add_function)(FuQcFirehoseImpl *self, FuQcFirehoseFunctions func)
        type: void
      item_type: struct
      name: _FuQcFirehoseImplInterface
      pos:
        line_end: 28
        line_start: 15
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.h
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_impl_retry
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_FIREHOSE_USB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.h
      type_or_value: (fu_qc_firehose_usb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_usb_device_to_string
  - fu_qc_firehose_usb_device_impl_has_function
  - fu_qc_firehose_usb_device_impl_add_function
  - fu_qc_firehose_usb_device_read
  - fu_qc_firehose_usb_device_write
  - fu_qc_firehose_usb_device_parse_eps
  - fu_qc_firehose_usb_device_probe
  - fu_qc_firehose_usb_device_attach
  - fu_qc_firehose_usb_device_impl_write_firmware
  - fu_qc_firehose_usb_device_replace
  - fu_qc_firehose_usb_device_set_progress
  - fu_qc_firehose_usb_device_sahara_impl_read
  - fu_qc_firehose_usb_device_impl_read
  - fu_qc_firehose_usb_device_sahara_impl_write
  - fu_qc_firehose_usb_device_impl_write
  - fu_qc_firehose_usb_device_impl_iface_init
  - fu_qc_firehose_usb_device_sahara_impl_iface_init
  - fu_qc_firehose_usb_device_init
  - fu_qc_firehose_usb_device_class_init
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_FIREHOSE_USB_DEVICE_NO_ZLP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
      type_or_value: '"no-zlp"'
    - item_type: preproc_def
      name: FU_QC_FIREHOSE_USB_DEVICE_RAW_BUFFER_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
      type_or_value: (4 * 1024)
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: ep_in
        type: guint8
      - name: ep_out
        type: guint8
      - name: maxpktsize_in
        type: gsize
      - name: maxpktsize_out
        type: gsize
      - name: supported_functions
        type: FuQcFirehoseFunctions
      item_type: struct
      name: _FuQcFirehoseUsbDevice
      pos:
        line_end: 26
        line_start: 19
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    typedefs: []
    union: []
- function_names:
  - fu_qc_firehose_sahara_impl_default_init
  - fu_qc_firehose_sahara_impl_read
  - fu_qc_firehose_sahara_impl_write
  - fu_qc_firehose_sahara_impl_hello
  - fu_qc_firehose_sahara_impl_read32
  - fu_qc_firehose_sahara_impl_read64
  - fu_qc_firehose_sahara_impl_eoi
  - fu_qc_firehose_sahara_impl_done
  - fu_qc_firehose_sahara_impl_write_firmware
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_FIREHOSE_SAHARA_IMPL_TIMEOUT_MS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-sahara-impl.c
      type_or_value: '500'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_FIREHOSE_RAW_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.h
      type_or_value: (fu_qc_firehose_raw_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*FuQcFirehoseImplRetryFunc)(FuQcFirehoseImpl *self,\n\t\t\t\t\t      gboolean
        *done,\n\t\t\t\t\t      guint timeout_ms,\n\t\t\t\t\t      gpointer user_data,\n\t\t\t\t\t
        \     GError **error)"
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl-common.h
    union: []
- function_names:
  - fu_algoltek_usbcr_plugin_init
  - fu_algoltek_usbcr_plugin_constructed
  - fu_algoltek_usbcr_plugin_class_init
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAlgoltekUsbcrPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usbcr_firmware_export
  - fu_algoltek_usbcr_firmware_parse
  - fu_algoltek_usbcr_firmware_get_boot_ver
  - fu_algoltek_usbcr_firmware_convert_version
  - fu_algoltek_usbcr_firmware_init
  - fu_algoltek_usbcr_firmware_class_init
  - fu_algoltek_usbcr_firmware_new
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: boot_ver
        type: guint16
      item_type: struct
      name: _FuAlgoltekUsbcrFirmware
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_AG_USBCR_MAX_CDB_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_AG_USBCR_MAX_BUFFER_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '512'
    - item_type: preproc_def
      name: FU_AG_USBCR_SENSE_BUFFER_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '18'
    - item_type: preproc_def
      name: FU_AG_USBCR_IOCTL_TIMEOUT_MS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '20000'
    - item_type: preproc_def
      name: FU_AG_USBCR_RD_WR_RAM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x84'
    - item_type: preproc_def
      name: FU_AG_USBCR_RD_WR_XDATA
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_AG_SPIFLASH_VALID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FU_AG_SPECIFY_SPI_CMD_SIG_1
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_AG_SPECIFY_SPI_CMD_SIG_2
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x8F'
    - item_type: preproc_def
      name: FU_AG_SPECIFY_EEPROM_TYPE_TAG
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0xA5'
    - item_type: preproc_def
      name: FU_AG_BLOCK_MODE_DISEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_AG_BLOCK_MODE_EN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-common.h
      type_or_value: '0x01'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usbcr_device_cmd_get_ver
  - fu_algoltek_usbcr_device_write_reg
  - fu_algoltek_usbcr_device_read_reg
  - fu_algoltek_usbcr_device_send_spi_cmd
  - fu_algoltek_usbcr_device_do_write_spi
  - fu_algoltek_usbcr_device_do_read_spi
  - fu_algoltek_usbcr_device_verify_reg_cb
  - fu_algoltek_usbcr_device_check_status_cb
  - fu_algoltek_usbcr_device_command_wren
  - fu_algoltek_usbcr_device_command_wrsr
  - fu_algoltek_usbcr_device_command_rdsr
  - fu_algoltek_usbcr_device_spi_flash_block_mode_cb
  - fu_algoltek_usbcr_device_set_clear_soft_reset_flag
  - fu_algoltek_usbcr_device_reset_chip
  - fu_algoltek_usbcr_device_ensure_version
  - fu_algoltek_usbcr_device_probe
  - fu_algoltek_usbcr_device_setup
  - fu_algoltek_usbcr_device_prepare_firmware
  - fu_algoltek_usbcr_device_write_chunk
  - fu_algoltek_usbcr_device_write_chunks
  - fu_algoltek_usbcr_device_verify_chunks
  - fu_algoltek_usbcr_device_write_firmware
  - fu_algoltek_usbcr_device_set_progress
  - fu_algoltek_usbcr_device_convert_version
  - fu_algoltek_usbcr_device_init
  - fu_algoltek_usbcr_device_class_init
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ALGOLTEK_USBCR_VENDOR_ID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
      type_or_value: '0x58f'
    structs:
    - fields:
      - name: parent_instance
        type: FuBlockDevice
      item_type: struct
      name: _FuAlgoltekUsbcrDevice
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    - fields:
      - name: reg
        type: guint16
      - name: val
        type: guint8
      item_type: struct
      name: FuAgUsbcrRegSetup
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALGOLTEK_USBCR_VENDOR_ID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.h
      type_or_value: '0x58f'
    - item_type: preproc_def
      name: FU_TYPE_ALGOLTEK_USBCR_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.h
      type_or_value: (fu_algoltek_usbcr_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ALGOLTEK_USBCR_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.h
      type_or_value: (fu_algoltek_usbcr_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cros_ec_plugin_init
  - fu_cros_ec_plugin_constructed
  - fu_cros_ec_plugin_class_init
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCrosEcPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_cros_ec_firmware_pick_sections
  - fu_cros_ec_firmware_get_needed_sections
  - fu_cros_ec_firmware_ensure_version
  - fu_cros_ec_firmware_init
  - fu_cros_ec_firmware_finalize
  - fu_cros_ec_firmware_class_init
  - fu_cros_ec_firmware_new
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXSECTIONS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuFmapFirmware
      - name: '*sections'
        type: GPtrArray
      item_type: struct
      name: _FuCrosEcFirmware
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CROS_EC_USB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: (fu_cros_ec_usb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cros_ec_usb_device_get_configuration
  - fu_cros_ec_usb_device_find_interface
  - fu_cros_ec_usb_device_probe
  - fu_cros_ec_usb_device_do_xfer
  - fu_cros_ec_usb_device_flush
  - fu_cros_ec_usb_device_recovery
  - fu_cros_ec_usb_device_ext_cmd
  - fu_cros_ec_usb_device_start_request_cb
  - fu_cros_ec_usb_device_setup
  - fu_cros_ec_usb_device_reload
  - fu_cros_ec_usb_device_transfer_block_cb
  - fu_cros_ec_usb_device_transfer_section
  - fu_cros_ec_usb_device_send_done
  - fu_cros_ec_usb_device_send_subcommand
  - fu_cros_ec_usb_device_reset_to_ro
  - fu_cros_ec_usb_device_jump_to_rw
  - fu_cros_ec_usb_device_stay_in_ro
  - fu_cros_ec_usb_device_write_firmware
  - fu_cros_ec_usb_device_prepare_firmware
  - fu_cros_ec_usb_device_attach
  - fu_cros_ec_usb_device_detach
  - fu_cros_ec_usb_device_replace
  - fu_cros_ec_usb_device_cleanup
  - fu_cros_ec_usb_device_init
  - fu_cros_ec_usb_device_to_string
  - fu_cros_ec_usb_device_set_progress
  - fu_cros_ec_usb_device_finalize
  - fu_cros_ec_usb_device_class_init
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CROS_EC_USB_SUBCLASS_GOOGLE_UPDATE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '0x53'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_PROTOCOL_GOOGLE_UPDATE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: FU_CROS_EC_SETUP_RETRY_CNT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_CROS_EC_MAX_BLOCK_XFER_RETRIES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_CROS_EC_FLUSH_TIMEOUT_MS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_CROS_EC_BULK_SEND_TIMEOUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '2000 '
    - item_type: preproc_def
      name: FU_CROS_EC_BULK_RECV_TIMEOUT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_REMOVE_DELAY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '20000'
    - item_type: preproc_def
      name: FU_CROS_EC_REQUEST_UPDATE_DONE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '0xB007AB1E'
    - item_type: preproc_def
      name: FU_CROS_EC_REQUEST_UPDATE_EXTRA_CMD
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '0xB007AB1F'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_RO_WRITTEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '"ro-written"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_RW_WRITTEN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '"rw-written"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_REBOOTING_TO_RO
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '"rebooting-to-ro"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_SPECIAL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '"special"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: iface_idx
        type: guint8
      - name: ep_num
        type: guint8
      - name: chunk_len
        type: guint16
      - name: '*raw_version'
        type: gchar
      - name: maximum_pdu_size
        type: guint32
      - name: flash_protection
        type: guint32
      - name: writeable_offset
        type: guint32
      - name: protocol_version
        type: guint16
      - name: configuration[FU_STRUCT_CROS_EC_FIRST_RESPONSE_PDU_SIZE_VERSION]
        type: gchar
      - name: in_bootloader
        type: gboolean
      item_type: struct
      name: _FuCrosEcUsbDevice
      pos:
        line_end: 40
        line_start: 28
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    - fields:
      - name: '*block'
        type: FuChunk
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuCrosEcUsbBlockHelper
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*boardname'
        type: gchar
      - name: '*triplet'
        type: gchar
      - name: '*sha1'
        type: gchar
      - name: dirty
        type: gboolean
      item_type: struct
      name: FuCrosEcVersion
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CROS_EC_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.h
      type_or_value: (fu_cros_ec_firmware_get_type())
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: offset
        type: guint32
      - name: size
        type: gsize
      - name: ustatus
        type: FuCrosEcFirmwareUpgradeStatus
      - name: raw_version[FU_FMAP_FIRMWARE_STRLEN]
        type: gchar
      - name: version
        type: FuCrosEcVersion
      - name: rollback
        type: gint32
      - name: key_version
        type: guint32
      - name: image_idx
        type: guint64
      item_type: struct
      name: FuCrosEcFirmwareSection
      pos:
        line_end: 26
        line_start: 16
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_cros_ec_version_free
  - fu_cros_ec_version_parse
  source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_logitech_hidpp_bootloader_to_string
  - fu_logitech_hidpp_bootloader_request_new
  - fu_logitech_hidpp_bootloader_parse_requests
  - fu_logitech_hidpp_bootloader_get_addr_lo
  - fu_logitech_hidpp_bootloader_get_addr_hi
  - fu_logitech_hidpp_bootloader_get_blocksize
  - fu_logitech_hidpp_bootloader_attach
  - fu_logitech_hidpp_bootloader_set_bl_version
  - fu_logitech_hidpp_bootloader_setup
  - fu_logitech_hidpp_bootloader_request
  - fu_logitech_hidpp_bootloader_replace
  - fu_logitech_hidpp_bootloader_init
  - fu_logitech_hidpp_bootloader_class_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_EP1
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_EP3
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
      type_or_value: '0x83'
    structs:
    - fields:
      - name: flash_addr_lo
        type: guint16
      - name: flash_addr_hi
        type: guint16
      - name: flash_blocksize
        type: guint16
      item_type: struct
      name: FuLogitechHidppBootloaderPrivate
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIDPP_RUNTIME_UNIFYING
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.h
      type_or_value: (fu_logitech_hidpp_runtime_unifying_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIDPP_RUNTIME_BOLT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.h
      type_or_value: (fu_logitech_hidpp_runtime_bolt_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HIDPP_REPORT_NOTIFICATION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BOLT_REGISTER_HIDPP_REPORTING
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BOLT_REGISTER_CONNECTION_STATE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BOLT_REGISTER_DEVICE_ACTIVITY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xB3'
    - item_type: preproc_def
      name: BOLT_REGISTER_PAIRING_INFORMATION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xB5'
    - item_type: preproc_def
      name: BOLT_REGISTER_PERFORM_DEVICE_DISCOVERY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: BOLT_REGISTER_PERFORM_DEVICE_PAIRING
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xC1'
    - item_type: preproc_def
      name: BOLT_REGISTER_RESET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xF2'
    - item_type: preproc_def
      name: BOLT_REGISTER_RECEIVER_FW_INFORMATION
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xF4'
    - item_type: preproc_def
      name: BOLT_REGISTER_DFU_CONTROL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xF5'
    - item_type: preproc_def
      name: BOLT_REGISTER_UNIQUE_IDENTIFIER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.h
      type_or_value: '0xFB'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIDPP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: (fu_logitech_hidpp_device_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_FLAG_FORCE_RECEIVER_ID
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"force-receiver-id"'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_FLAG_BLE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"ble"'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_FLAG_REBIND_ATTACH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"rebind-attach"'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_FLAG_NO_REQUEST_REQUIRED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"no-request-required"'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_FLAG_ADD_RADIO
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"add-radio"'
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuLogitechHidppDeviceClass
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_bootloader_texas_erase_all
  - fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
  - fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
  - fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
  - fu_logitech_hidpp_bootloader_texas_write_firmware
  - fu_logitech_hidpp_bootloader_texas_setup
  - fu_logitech_hidpp_bootloader_texas_class_init
  - fu_logitech_hidpp_bootloader_texas_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuLogitechHidppBootloader
      item_type: struct
      name: _FuLogitechHidppBootloaderTexas
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_logitech_hidpp_runtime_unifying_detach
  - fu_logitech_hidpp_runtime_unifying_setup_internal
  - fu_logitech_hidpp_runtime_unifying_setup
  - fu_logitech_hidpp_runtime_unifying_set_progress
  - fu_logitech_hidpp_runtime_unifying_class_init
  - fu_logitech_hidpp_runtime_unifying_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuLogitechHidppRuntime
      item_type: struct
      name: _FuLogitechHidppRuntimeUnifying
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_HIDPP_MSG_SW_ID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.h
      type_or_value: '0x07'
    structs:
    - fields:
      - name: report_id
        type: guint8
      - name: device_id
        type: guint8
      - name: sub_id
        type: guint8
      - name: function_id
        type: guint8
      - name: data[47]
        type: guint8
      - name: flags
        type: guint32
      - name: hidpp_version
        type: guint8
      item_type: struct
      name: FuLogitechHidppHidppMsg
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.h
    typedefs:
    - item_type: typedef
      name: FuLogitechHidppHidppMsgFlags
      pos:
        line_end: 19
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_HIDPP_BOOTLOADER_TEXAS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.h
      type_or_value: (fu_logitech_hidpp_bootloader_texas_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_HIDPP_BOOTLOADER_NORDIC
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.h
      type_or_value: (fu_logitech_hidpp_bootloader_nordic_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_common
  - main
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_HIDPP_RADIO
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.h
      type_or_value: (fu_logitech_hidpp_radio_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_logitech_hidpp_runtime_get_version_bl_major
  - fu_logitech_hidpp_runtime_enable_notifications
  - fu_logitech_hidpp_runtime_probe
  - fu_logitech_hidpp_runtime_vid_pid_notify_cb
  - fu_logitech_hidpp_runtime_class_init
  - fu_logitech_hidpp_runtime_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: version_bl_major
        type: guint8
      item_type: struct
      name: FuLogitechHidppRuntimePrivate
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_rdfu_firmware_get_model_id
  - fu_logitech_rdfu_firmware_get_magic
  - fu_logitech_rdfu_firmware_get_blocks
  - fu_logitech_rdfu_firmware_block_add
  - fu_logitech_rdfu_firmware_entry_add
  - fu_logitech_rdfu_firmware_compare_payload
  - fu_logitech_rdfu_firmware_parse
  - fu_logitech_rdfu_firmware_export
  - fu_logitech_rdfu_firmware_finalize
  - fu_logitech_rdfu_firmware_init
  - fu_logitech_rdfu_firmware_class_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_RDFU_FIRMWARE_VERSION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FU_LOGITECH_RDFU_MAGIC_ASCII_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
      type_or_value: '22 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*payload_name'
        type: gchar
      - name: '*model_id'
        type: gchar
      - name: '*magic'
        type: GByteArray
      - name: '*blocks'
        type: GPtrArray
      item_type: struct
      name: _FuLogitechRdfuFirmware
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_HIDPP_BOOTLOADER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
      type_or_value: (fu_logitech_hidpp_bootloader_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_BOOTLOADER_FLAG_IS_SIGNED
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
      type_or_value: '"is-signed"'
    structs:
    - fields:
      - name: parent_class
        type: FuHidDeviceClass
      item_type: struct
      name: _FuLogitechHidppBootloaderClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
    - fields:
      - name: cmd
        type: guint8
      - name: addr
        type: guint16
      - name: len
        type: guint8
      - name: data[28]
        type: guint8
      item_type: struct
      name: FuLogitechHidppBootloaderRequest
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_buffer_read_uint8
  - fu_logitech_hidpp_buffer_read_uint16
  - fu_logitech_hidpp_format_version
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
  - fu_logitech_hidpp_bootloader_nordic_get_fw_version
  - fu_logitech_hidpp_bootloader_nordic_setup
  - fu_logitech_hidpp_bootloader_nordic_write_signature
  - fu_logitech_hidpp_bootloader_nordic_write
  - fu_logitech_hidpp_bootloader_nordic_erase
  - fu_logitech_hidpp_bootloader_nordic_write_firmware
  - fu_logitech_hidpp_bootloader_nordic_class_init
  - fu_logitech_hidpp_bootloader_nordic_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuLogitechHidppBootloader
      item_type: struct
      name: _FuLogitechHidppBootloaderNordic
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_msg_new
  - fu_logitech_hidpp_msg_get_payload_length
  - fu_logitech_hidpp_msg_fcn_id_to_string
  - fu_logitech_hidpp_msg_is_reply
  - fu_logitech_hidpp_msg_is_error
  - fu_logitech_hidpp_msg_copy
  - fu_logitech_hidpp_msg_is_hidpp10_compat
  - fu_logitech_hidpp_msg_verify_swid
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp-msg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_msg_to_string
  - fu_logitech_hidpp_send
  - fu_logitech_hidpp_receive
  - fu_logitech_hidpp_transfer
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-hidpp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_VID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0x046d'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_RUNTIME
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xC52B'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_BOOTLOADER_NORDIC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xAAAA'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_BOOTLOADER_NORDIC_PICO
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xAAAE'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_BOOTLOADER_TEXAS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xAAAC'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_BOOTLOADER_TEXAS_PICO
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xAAAD'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_PID_BOOTLOADER_BOLT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xAB07'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_TIMEOUT_MS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: FU_HIDPP_DEVICE_POLLING_INTERVAL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: FU_HIDPP_RECEIVER_RUNTIME_POLLING_INTERVAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_HIDPP_VERSION_BLE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xFE'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_RDFU_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.h
      type_or_value: (fu_logitech_rdfu_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuLogitechRdfuFirmwareClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_radio_to_string
  - fu_logitech_hidpp_radio_attach
  - fu_logitech_hidpp_radio_detach
  - fu_logitech_hidpp_radio_write_firmware
  - fu_logitech_hidpp_radio_set_progress
  - fu_logitech_hidpp_radio_init
  - fu_logitech_hidpp_radio_class_init
  - fu_logitech_hidpp_radio_new
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: entity
        type: guint8
      item_type: struct
      name: _FuLogitechHidppRadio
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-radio.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_runtime_bolt_detach
  - fu_logitech_hidpp_runtime_bolt_to_string
  - fu_logitech_hidpp_runtime_bolt_find_paired_device
  - fu_logitech_hidpp_runtime_bolt_query_device_name
  - fu_logitech_hidpp_runtime_bolt_update_paired_device
  - fu_logitech_hidpp_runtime_bolt_poll_peripherals
  - fu_logitech_hidpp_runtime_bolt_process_notification
  - fu_logitech_hidpp_runtime_bolt_find_newest_msg
  - fu_logitech_hidpp_runtime_bolt_poll
  - fu_logitech_hidpp_runtime_bolt_setup_internal
  - fu_logitech_hidpp_runtime_bolt_setup
  - fu_logitech_hidpp_runtime_bolt_class_init
  - fu_logitech_hidpp_runtime_bolt_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuLogitechHidppRuntime
      - name: pairing_slots
        type: guint8
      item_type: struct
      name: _FuLogitechHidppRuntimeBolt
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIDPP_RUNTIME
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.h
      type_or_value: (fu_logitech_hidpp_runtime_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuHidrawDeviceClass
      item_type: struct
      name: _FuLogitechHidppRuntimeClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_plugin_init
  - fu_logitech_hidpp_plugin_constructed
  - fu_logitech_hidpp_plugin_class_init
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLogitechHidppPlugin
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_logitech_hidpp_device_set_device_idx
  - fu_logitech_hidpp_device_get_hidpp_pid
  - fu_logitech_hidpp_device_set_hidpp_pid
  - fu_logitech_hidpp_device_set_model_id
  - fu_logitech_hidpp_device_get_icon
  - fu_logitech_hidpp_device_get_summary
  - fu_logitech_hidpp_device_ping
  - fu_logitech_hidpp_device_poll
  - fu_logitech_hidpp_device_map_to_string
  - fu_logitech_hidpp_device_to_string
  - fu_logitech_hidpp_device_feature_get_idx
  - fu_logitech_hidpp_device_create_radio_child
  - fu_logitech_hidpp_device_fetch_firmware_info
  - fu_logitech_hidpp_device_fetch_model_id
  - fu_logitech_hidpp_device_fetch_battery_level
  - fu_logitech_hidpp_device_transfer_msg
  - fu_logitech_hidpp_device_rdfu_get_capabilities
  - fu_logitech_hidpp_device_rdfu_start_dfu
  - fu_logitech_hidpp_device_rdfu_set_state
  - fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
  - fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
  - fu_logitech_hidpp_device_rdfu_status_pkt_ack
  - fu_logitech_hidpp_device_rdfu_check_status
  - fu_logitech_hidpp_device_rdfu_get_dfu_status
  - fu_logitech_hidpp_device_rdfu_apply_dfu
  - fu_logitech_hidpp_device_rdfu_transfer_pkt
  - fu_logitech_hidpp_device_rdfu_transfer_data
  - fu_logitech_hidpp_device_feature_search
  - fu_logitech_hidpp_device_probe
  - fu_logitech_hidpp_device_vid_pid_notify_cb
  - fu_logitech_hidpp_device_setup
  - fu_logitech_hidpp_device_detach
  - fu_logitech_hidpp_device_check_status
  - fu_logitech_hidpp_device_write_firmware_pkt
  - fu_logitech_hidpp_device_write_firmware_dfu
  - fu_logitech_hidpp_device_write_firmware_rdfu
  - fu_logitech_hidpp_device_write_firmware
  - fu_logitech_hidpp_device_reprobe_cb
  - fu_logitech_hidpp_device_attach
  - fu_logitech_hidpp_device_attach_cached
  - fu_logitech_hidpp_device_set_quirk_kv
  - fu_logitech_hidpp_device_set_progress
  - fu_logitech_hidpp_device_finalize
  - fu_logitech_hidpp_device_cleanup
  - fu_logitech_hidpp_device_class_init
  - fu_logitech_hidpp_device_init
  - fu_logitech_hidpp_device_new
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_DATA_PKT_LONG
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_RDFU_MAX_RETRIES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
      type_or_value: '10'
    structs:
    - fields:
      - name: cached_fw_entity
        type: guint8
      - name: device_idx
        type: guint8
      - name: hidpp_pid
        type: guint16
      - name: hidpp_version
        type: guint8
      - name: '*model_id'
        type: gchar
      - name: '*feature_index'
        type: GPtrArray
      - name: rdfu_state
        type: FuLogitechHidppRdfuState
      - name: rdfu_capabilities
        type: guint8
      - name: rdfu_block
        type: guint16
      - name: rdfu_pkt
        type: guint32
      - name: rdfu_wait
        type: guint32
      item_type: struct
      name: FuLogitechHidppDevicePrivate
      pos:
        line_end: 34
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    - fields:
      - name: idx
        type: guint8
      - name: feature
        type: guint16
      item_type: struct
      name: FuLogitechHidppHidppMap
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    typedefs:
    - item_type: typedef
      name: FuLogitechHidppDeviceKind
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_pk_plugin_init
  - fu_uefi_pk_plugin_constructed
  - fu_uefi_pk_plugin_device_created
  - fu_uefi_pk_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiPkPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_PK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.h
      type_or_value: (fu_uefi_pk_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_pk_device_to_string
  - fu_uefi_pk_device_check
  - fu_uefi_pk_device_get_key_id
  - fu_uefi_pk_device_set_key_id
  - fu_uefi_pk_device_parse_certificate
  - fu_uefi_pk_device_probe
  - fu_uefi_pk_device_add_security_attrs
  - fu_uefi_pk_device_convert_version
  - fu_uefi_pk_device_init
  - fu_uefi_pk_device_finalize
  - fu_uefi_pk_device_class_init
  source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UEFI_PK_DEVICE_DEFAULT_REQUIRED_FREE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
      type_or_value: '(8 * 1024) '
    - item_type: preproc_def
      name: FU_UEFI_PK_CHECKSUM_AMI_TEST_KEY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
      type_or_value: '"a773113bafaf5129aa83fd0912e95da4fa555f91"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiDevice
      - name: has_pk_test_key
        type: gboolean
      - name: '*key_id'
        type: gchar
      item_type: struct
      name: _FuUefiPkDevice
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_export
  - fu_acpi_phat_record_parse
  - fu_acpi_phat_set_oem_id
  - fu_acpi_phat_validate
  - fu_acpi_phat_parse
  - fu_acpi_phat_write
  - fu_acpi_phat_build
  - fu_acpi_phat_to_report_string_cb
  - fu_acpi_phat_to_report_string
  - fu_acpi_phat_init
  - fu_acpi_phat_finalize
  - fu_acpi_phat_class_init
  - fu_acpi_phat_new
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*oem_id'
        type: gchar
      item_type: struct
      name: _FuAcpiPhat
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_version_record_parse
  - fu_acpi_phat_version_record_write
  - fu_acpi_phat_version_record_init
  - fu_acpi_phat_version_record_class_init
  - fu_acpi_phat_version_record_new
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuAcpiPhatVersionRecord
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_PHAT_VERSION_ELEMENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.h
      type_or_value: (fu_acpi_phat_version_element_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_plugin_coldplug
  - fu_acpi_phat_plugin_init
  - fu_acpi_phat_plugin_constructed
  - fu_acpi_phat_plugin_class_init
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAcpiPhatPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_parse_func
  - main
  source_file: /src/fwupd/plugins/acpi-phat/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_PHAT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.h
      type_or_value: (fu_acpi_phat_get_type())
    - item_type: preproc_def
      name: FU_ACPI_PHAT_RECORD_TYPE_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: FU_ACPI_PHAT_RECORD_TYPE_HEALTH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: FU_ACPI_PHAT_REVISION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.h
      type_or_value: '0x01'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_version_element_export
  - fu_acpi_phat_version_element_parse
  - fu_acpi_phat_version_element_write
  - fu_acpi_phat_version_element_set_guid
  - fu_acpi_phat_version_element_set_producer_id
  - fu_acpi_phat_version_element_build
  - fu_acpi_phat_version_element_init
  - fu_acpi_phat_version_element_finalize
  - fu_acpi_phat_version_element_class_init
  - fu_acpi_phat_version_element_new
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*guid'
        type: gchar
      - name: '*producer_id'
        type: gchar
      item_type: struct
      name: _FuAcpiPhatVersionElement
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_PHAT_HEALTH_RECORD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.h
      type_or_value: (fu_acpi_phat_health_record_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_PHAT_VERSION_RECORD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.h
      type_or_value: (fu_acpi_phat_version_record_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_phat_health_record_export
  - fu_acpi_phat_health_record_parse
  - fu_acpi_phat_health_record_write
  - fu_acpi_phat_health_record_set_guid
  - fu_acpi_phat_health_record_set_device_path
  - fu_acpi_phat_health_record_build
  - fu_acpi_phat_health_record_init
  - fu_acpi_phat_health_record_finalize
  - fu_acpi_phat_health_record_class_init
  - fu_acpi_phat_health_record_new
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: am_healthy
        type: guint8
      - name: '*guid'
        type: gchar
      - name: '*device_path'
        type: gchar
      item_type: struct
      name: _FuAcpiPhatHealthRecord
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pci_bcr_plugin_to_string
  - fu_pci_bcr_plugin_set_updatable
  - fu_pci_bcr_plugin_device_registered
  - fu_pci_bcr_plugin_add_security_attr_bioswe
  - fu_pci_bcr_plugin_add_security_attr_ble
  - fu_pci_bcr_plugin_add_security_attr_smm_bwp
  - fu_pci_bcr_plugin_backend_device_added
  - fu_pci_bcr_plugin_add_security_attrs
  - fu_pci_bcr_plugin_init
  - fu_pci_bcr_plugin_constructed
  - fu_pci_bcr_plugin_class_init
  source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BCR_WPD
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: BCR_BLE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: BCR_SMM_BWP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
      type_or_value: (1 << 5)
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: has_device
        type: gboolean
      - name: bcr_addr
        type: guint8
      - name: bcr
        type: guint8
      item_type: struct
      name: _FuPciBcrPlugin
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rts54hub_device_to_string
  - fu_rts54hub_device_set_quirk_kv
  - fu_rts54hub_device_i2c_config
  - fu_rts54hub_device_i2c_write
  - fu_rts54hub_device_i2c_read
  - fu_rts54hub_device_highclockmode
  - fu_rts54hub_device_reset_flash
  - fu_rts54hub_device_write_flash
  - fu_rts54hub_device_read_flash
  - fu_rts54hub_device_flash_authentication
  - fu_rts54hub_device_erase_flash
  - fu_rts54hub_device_vendor_cmd
  - fu_rts54hub_device_ensure_status
  - fu_rts54hub_device_setup
  - fu_rts54hub_device_close
  - fu_rts54hub_device_write_firmware
  - fu_rts54hub_device_prepare_firmware
  - fu_rts54hub_device_set_progress
  - fu_rts54hub_device_init
  - fu_rts54hub_device_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_TIMEOUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '1000  '
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_TIMEOUT_RW
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '1000  '
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_TIMEOUT_ERASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '5000  '
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_TIMEOUT_AUTH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_BLOCK_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_STATUS_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '24'
    - item_type: preproc_def
      name: FU_RTS54HUB_I2C_CONFIG_REQUEST
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '0xF6'
    - item_type: preproc_def
      name: FU_RTS54HUB_I2C_WRITE_REQUEST
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '0xC6'
    - item_type: preproc_def
      name: FU_RTS54HUB_I2C_READ_REQUEST
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '0xD6'
    - item_type: preproc_def
      name: FU_RTS54HUB_DEVICE_INHIBIT_ID_NOT_SUPPORTED
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
      type_or_value: '"not-supported"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: fw_auth
        type: gboolean
      - name: dual_bank
        type: gboolean
      - name: running_on_flash
        type: gboolean
      - name: vendor_cmd
        type: guint8
      - name: block_sz
        type: guint64
      item_type: struct
      name: _FuRts54HubDevice
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    typedefs:
    - item_type: typedef
      name: FuRts54HubVendorCmd
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    union: []
- function_names:
  - fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
  - fu_rts54hub_rtd21xx_foreground_detach_raw
  - fu_rts54hub_rtd21xx_foreground_detach_cb
  - fu_rts54hub_rtd21xx_foreground_detach
  - fu_rts54hub_rtd21xx_foreground_attach
  - fu_rts54hub_rtd21xx_foreground_exit
  - fu_rts54hub_rtd21xx_foreground_setup
  - fu_rts54hub_rtd21xx_foreground_reload
  - fu_rts54hub_rtd21xx_foreground_write_firmware
  - fu_rts54hub_rtd21xx_foreground_init
  - fu_rts54hub_rtd21xx_foreground_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISP_DATA_BLOCKSIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
      type_or_value: '256'
    - item_type: preproc_def
      name: ISP_PACKET_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
      type_or_value: '257'
    structs:
    - fields:
      - name: parent_instance
        type: FuRts54hubRtd21xxDevice
      item_type: struct
      name: _FuRts54hubRtd21xxForeground
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    typedefs:
    - item_type: typedef
      name: IspCmd
      pos:
        line_end: 33
        line_start: 24
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    union: []
- function_names:
  - fu_rts54hub_rtd21xx_background_ensure_version_unlocked
  - fu_rts54hub_rtd21xx_background_detach_raw
  - fu_rts54hub_rtd21xx_background_detach_cb
  - fu_rts54hub_rtd21xx_background_detach
  - fu_rts54hub_rtd21xx_background_attach
  - fu_rts54hub_rtd21xx_background_setup
  - fu_rts54hub_rtd21xx_background_reload
  - fu_rts54hub_rtd21xx_background_write_firmware
  - fu_rts54hub_rtd21xx_background_init
  - fu_rts54hub_rtd21xx_background_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISP_DATA_BLOCKSIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ISP_PACKET_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
      type_or_value: '257'
    - item_type: preproc_def
      name: FU_RTS54HUB_RTD21XX_BACKGROUND_DETACH_RETRY_COUNT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_RTS54HUB_RTD21XX_BACKGROUND_DETACH_RETRY_DELAY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
      type_or_value: '300 '
    structs:
    - fields:
      - name: parent_instance
        type: FuRts54hubRtd21xxDevice
      item_type: struct
      name: _FuRts54hubRtd21xxBackground
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    typedefs:
    - item_type: typedef
      name: IspCmd
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RTS54HUB_RTD21XX_BACKGROUND
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.h
      type_or_value: (fu_rts54hub_rtd21xx_background_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rts54hub_plugin_init
  - fu_rts54hub_plugin_object_constructed
  - fu_rts54hub_plugin_constructed
  - fu_rts54hub_plugin_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuRts54HubPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RTS54HUB_RTD21XX_FOREGROUND
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.h
      type_or_value: (fu_rts54hub_rtd21xx_foreground_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RTS54HUB_RTD21XX_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: (fu_rts54hub_rtd21xx_device_get_type())
    - item_type: preproc_def
      name: I2C_DELAY_AFTER_SEND
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: UC_ISP_TARGET_ADDR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x3A'
    - item_type: preproc_def
      name: UC_FOREGROUND_STATUS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x31'
    - item_type: preproc_def
      name: UC_FOREGROUND_OPCODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x33'
    - item_type: preproc_def
      name: UC_FOREGROUND_ISP_DATA_OPCODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x34'
    - item_type: preproc_def
      name: UC_BACKGROUND_OPCODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x31'
    - item_type: preproc_def
      name: UC_BACKGROUND_ISP_DATA_OPCODE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
      type_or_value: '0x32'
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuRts54hubRtd21xxDeviceClass
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
    typedefs:
    - item_type: typedef
      name: IspStatus
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.h
    union: []
- function_names:
  - GET_PRIVATE
  - fu_rts54hub_rtd21xx_device_to_string
  - fu_rts54hub_rtd21xx_device_get_parent
  - fu_rts54hub_rtd21xx_device_set_quirk_kv
  - fu_rts54hub_rtd21xx_device_i2c_write
  - fu_rts54hub_rtd21xx_device_i2c_read
  - fu_rts54hub_rtd21xx_device_read_status_raw
  - fu_rts54hub_rtd21xx_device_read_status_cb
  - fu_rts54hub_rtd21xx_device_read_status
  - fu_rts54hub_rtd21xx_device_init
  - fu_rts54hub_rtd21xx_device_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: target_addr
        type: guint8
      - name: i2c_speed
        type: guint8
      - name: register_addr_len
        type: guint8
      item_type: struct
      name: FuRts54hubRtd21xxDevicePrivate
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    typedefs:
    - item_type: typedef
      name: VendorCmd
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RTS54HUB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.h
      type_or_value: (fu_rts54hub_device_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuRts54HubI2cSpeed
      pos:
        line_end: 22
        line_start: 12
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_hid_set_report_cb
  - fu_dell_dock_hid_set_report
  - fu_dell_dock_hid_get_report_cb
  - fu_dell_dock_hid_get_report
  - fu_dell_dock_hid_get_hub_version
  - fu_dell_dock_hid_raise_mcu_clock
  - fu_dell_dock_hid_erase_bank
  - fu_dell_dock_hid_write_flash
  - fu_dell_dock_hid_verify_update
  - fu_dell_dock_hid_i2c_write
  - fu_dell_dock_hid_i2c_read
  - fu_dell_dock_hid_tbt_wake
  - fu_dell_dock_hid_tbt_map_error
  - fu_dell_dock_hid_tbt_write
  - fu_dell_dock_hid_tbt_authenticate
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HIDI2C_MAX_REGISTER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '4'
    - item_type: preproc_def
      name: HID_MAX_RETRIES
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TBT_MAX_RETRIES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HIDI2C_TRANSACTION_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '300'
    - item_type: preproc_def
      name: HUB_CMD_READ_DATA
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: HUB_CMD_WRITE_DATA
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: HUB_EXT_READ_STATUS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: HUB_EXT_MCUMODIFYCLOCK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: HUB_EXT_I2C_WRITE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xC6'
    - item_type: preproc_def
      name: HUB_EXT_WRITEFLASH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xC8'
    - item_type: preproc_def
      name: HUB_EXT_I2C_READ
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xD6'
    - item_type: preproc_def
      name: HUB_EXT_VERIFYUPDATE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xD9'
    - item_type: preproc_def
      name: HUB_EXT_ERASEBANK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xE8'
    - item_type: preproc_def
      name: HUB_EXT_WRITE_TBT_FLASH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: TBT_COMMAND_WAKEUP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: TBT_COMMAND_AUTHENTICATE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: TBT_COMMAND_AUTHENTICATE_STATUS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
      type_or_value: '0xFFFFFFFE'
    structs:
    - fields:
      - name: cmd
        type: guint8
      - name: ext
        type: guint8
      - name: bufferlen
        type: guint16
      - name: parameters
        type: FuHIDI2CParameters
      - name: extended_cmdarea[53]
        type: guint8
      - name: data[192]
        type: guint8
      item_type: struct
      name: FuHIDCmdBuffer
      pos:
        line_end: 59
        line_start: 43
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    - fields:
      - name: cmd
        type: guint8
      - name: ext
        type: guint8
      - name: i2ctargetaddr
        type: guint8
      - name: i2cspeed
        type: guint8
      - name: bufferlen
        type: guint8
      - name: extended_cmdarea[55]
        type: guint8
      - name: data[192]
        type: guint8
      item_type: struct
      name: FuTbtCmdBuffer
      pos:
        line_end: 73
        line_start: 61
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_plugin_create_node
  - fu_dell_dock_plugin_probe
  - fu_dell_dock_plugin_get_ec
  - fu_dell_dock_plugin_backend_device_added
  - fu_dell_dock_plugin_separate_activation
  - fu_dell_dock_plugin_device_registered
  - fu_dell_dock_plugin_backend_device_removed
  - fu_dell_dock_plugin_composite_prepare
  - fu_dell_dock_plugin_composite_cleanup
  - fu_dell_dock_plugin_init
  - fu_dell_dock_plugin_constructed
  - fu_dell_dock_plugin_class_init
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuDellDockPlugin
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_DOCK_HUB
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.h
      type_or_value: (fu_dell_dock_hub_get_type())
    - item_type: preproc_def
      name: FU_DELL_DOCK_HUB_FLAG_HAS_BRIDGE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.h
      type_or_value: '"has-bridge"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_DOCK_TBT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.h
      type_or_value: (fu_dell_dock_tbt_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_mst_get_bank_attribs
  - fu_dell_dock_mst_read_register
  - fu_dell_dock_mst_write_register
  - fu_dell_dock_mst_query_active_bank
  - fu_dell_dock_mst_disable_remote_control
  - fu_dell_dock_mst_enable_remote_control
  - fu_dell_dock_mst_trigger_rc_command
  - fu_dell_dock_mst_rc_command
  - fu_dell_dock_mst_get_module_type
  - fu_dell_dock_mst_check_offset
  - fu_dell_dock_mst_d19_check_fw
  - fu_dell_dock_mst_get_crc
  - fu_dell_dock_mst_checksum_bank
  - fu_dell_dock_mst_erase_panamera_bank
  - fu_dell_dock_mst_erase_cayenne
  - fu_dell_dock_mst_write_flash_bank
  - fu_dell_dock_mst_stop_esm
  - fu_dell_dock_mst_invalidate_bank
  - fu_dell_dock_mst_write_bank
  - fu_dell_dock_mst_set_local_progress
  - fu_dell_dock_mst_write_panamera
  - fu_dell_dock_mst_write_cayenne
  - fu_dell_dock_mst_write_fw
  - fu_dell_dock_mst_set_quirk_kv
  - fu_dell_dock_mst_setup
  - fu_dell_dock_mst_probe
  - fu_dell_dock_mst_open
  - fu_dell_dock_mst_close
  - fu_dell_dock_mst_set_progress
  - fu_dell_dock_mst_init
  - fu_dell_dock_mst_class_init
  - fu_dell_dock_mst_new
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_MST_ADDRESS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x72'
    - item_type: preproc_def
      name: PANAMERA_MST_RC_TRIGGER_ADDR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x2000fc'
    - item_type: preproc_def
      name: PANAMERA_MST_CORE_MCU_BOOTLOADER_STS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20010c'
    - item_type: preproc_def
      name: PANAMERA_MST_RC_COMMAND_ADDR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200110'
    - item_type: preproc_def
      name: PANAMERA_MST_RC_OFFSET_ADDR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200114'
    - item_type: preproc_def
      name: PANAMERA_MST_RC_LENGTH_ADDR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200118'
    - item_type: preproc_def
      name: PANAMERA_MST_RC_DATA_ADDR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200120'
    - item_type: preproc_def
      name: PANAMERA_MST_CORE_MCU_FW_VERSION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200160'
    - item_type: preproc_def
      name: PANAMERA_MST_REG_QUAD_DISABLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200fc0'
    - item_type: preproc_def
      name: PANAMERA_MST_REG_HDCP22_DISABLE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x200f90'
    - item_type: preproc_def
      name: CAYENNE_MST_RC_TRIGGER_ADDR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x2020021C'
    - item_type: preproc_def
      name: CAYENNE_MST_CORE_MCU_BOOTLOADER_STS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x2020022C'
    - item_type: preproc_def
      name: CAYENNE_MST_RC_COMMAND_ADDR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20200280'
    - item_type: preproc_def
      name: CAYENNE_MST_RC_OFFSET_ADDR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20200284'
    - item_type: preproc_def
      name: CAYENNE_MST_RC_LENGTH_ADDR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20200288'
    - item_type: preproc_def
      name: CAYENNE_MST_RC_DATA_ADDR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20200290'
    - item_type: preproc_def
      name: MST_CMD_ENABLE_REMOTE_CONTROL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MST_CMD_DISABLE_REMOTE_CONTROL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MST_CMD_CHECKSUM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x11'
    - item_type: preproc_def
      name: MST_CMD_ERASE_FLASH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x14'
    - item_type: preproc_def
      name: MST_CMD_WRITE_FLASH
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MST_CMD_READ_FLASH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: MST_CMD_WRITE_MEMORY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x21'
    - item_type: preproc_def
      name: MST_CMD_READ_MEMORY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x31'
    - item_type: preproc_def
      name: MST_CMD_CRC16_CHECKSUM
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x17'
    - item_type: preproc_def
      name: MST_CMD_ACTIVATE_FW
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_4K
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_32K
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_64K
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: EEPROM_TAG_OFFSET
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x1fff0'
    - item_type: preproc_def
      name: EEPROM_BANK_OFFSET
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: EEPROM_ESM_OFFSET
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: MST_BOARDID_OFFSET
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x10e'
    - item_type: preproc_def
      name: MST_CHIPID_OFFSET
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x1500'
    - item_type: preproc_def
      name: MST_TRIGGER_WRITE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0xf2'
    - item_type: preproc_def
      name: MST_TRIGGER_REBOOT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0xf5'
    - item_type: preproc_def
      name: EXPECTED_CHIPID
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x5331'
    - item_type: preproc_def
      name: MST_BLOB_VERSION_OFFSET
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x06F0'
    structs:
    - fields:
      - name: start
        type: guint
      - name: length
        type: guint
      - name: checksum_cmd
        type: guint
      item_type: struct
      name: MSTBankAttributes
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: unlock_target
        type: guint8
      - name: blob_major_offset
        type: guint64
      - name: blob_minor_offset
        type: guint64
      - name: blob_build_offset
        type: guint64
      - name: mst_rc_trigger_addr
        type: guint32
      - name: mst_rc_command_addr
        type: guint32
      - name: mst_rc_data_addr
        type: guint32
      - name: mst_core_mcu_bootloader_addr
        type: guint32
      - name: dock_type
        type: guint8
      - name: mst_type
        type: MSTType
      item_type: struct
      name: _FuDellDockMst
      pos:
        line_end: 142
        line_start: 130
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    typedefs:
    - item_type: typedef
      name: MSTType
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    - item_type: typedef
      name: MSTBank
      pos:
        line_end: 92
        line_start: 87
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_DOCK_MST
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.h
      type_or_value: (fu_dell_dock_mst_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HIDI2C_MAX_READ
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.h
      type_or_value: '192'
    - item_type: preproc_def
      name: HIDI2C_MAX_WRITE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.h
      type_or_value: '128'
    structs:
    - fields:
      - name: i2ctargetaddr
        type: guint8
      - name: regaddrlen
        type: guint8
      - name: i2cspeed
        type: guint8
      item_type: struct
      name: FuHIDI2CParameters
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.h
    typedefs:
    - item_type: typedef
      name: BridgedI2CSpeed
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELL_DOCK_DOCK1_INSTANCE_ID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"USB\\VID_413C&PID_B06E&hub&status"'
    - item_type: preproc_def
      name: DELL_DOCK_DOCK2_INSTANCE_ID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"USB\\VID_413C&PID_B06E&hub&salomon_mlk_status"'
    - item_type: preproc_def
      name: DELL_DOCK_EC_INSTANCE_ID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"USB\\VID_413C&PID_B06E&hub&embedded"'
    - item_type: preproc_def
      name: DELL_DOCK_TBT_INSTANCE_ID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"TBT-00d4b070"'
    - item_type: preproc_def
      name: DELL_DOCK_USB4_INSTANCE_ID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"TBT-00d4b071"'
    - item_type: preproc_def
      name: DELL_DOCK_VM5331_INSTANCE_ID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"MST-panamera-vmm5331-259"'
    - item_type: preproc_def
      name: GR_USB_VID
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x8087'
    - item_type: preproc_def
      name: GR_USB_PID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x0B40'
    - item_type: preproc_def
      name: DELL_DOCK_ATOMIC_STATUS_INSTANCE_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"USB\\VID_413C&PID_B06E&hub&atomic_status"'
    - item_type: preproc_def
      name: DELL_DOCK_ATOMIC_EC_INSTANCE_ID
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"USB\\VID_413C&PID_B06E&hub&atomic_embedded"'
    - item_type: preproc_def
      name: DELL_DOCK_VMM6210_INSTANCE_ID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '"MST-cayenne-vmm6210-257"'
    - item_type: preproc_def
      name: ATOMIC_HUB2_PID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x548A'
    - item_type: preproc_def
      name: ATOMIC_HUB1_PID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x541A'
    - item_type: preproc_def
      name: DELL_VID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x413C'
    - item_type: preproc_def
      name: DOCK_BASE_TYPE_UNKNOWN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: DOCK_BASE_TYPE_SALOMON
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DOCK_BASE_TYPE_ATOMIC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.h
      type_or_value: '0x05'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_DOCK_STATUS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.h
      type_or_value: (fu_dell_dock_status_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_hub_add_instance
  - fu_dell_dock_hub_probe
  - fu_dell_dock_hub_write_fw
  - fu_dell_dock_hub_setup
  - fu_dell_dock_hub_set_quirk_kv
  - fu_dell_dock_hub_set_progress
  - fu_dell_dock_hub_init
  - fu_dell_dock_hub_class_init
  - fu_dell_dock_hub_new
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: unlock_target
        type: guint8
      - name: blob_major_offset
        type: guint64
      - name: blob_minor_offset
        type: guint64
      item_type: struct
      name: _FuDellDockHub
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_set_power
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_ec_test_valid_byte
  - fu_dell_dock_ec_set_board
  - fu_dell_dock_ec_module_is_usb4
  - fu_dell_dock_ec_get_dock_type
  - fu_dell_dock_ec_get_module_type
  - fu_dell_dock_ec_needs_tbt
  - fu_dell_dock_ec_tbt_passive
  - fu_dell_dock_ec_devicetype_to_str
  - fu_dell_dock_ec_read
  - fu_dell_dock_ec_write
  - fu_dell_dock_ec_is_valid_dock
  - fu_dell_dock_ec_get_dock_info
  - fu_dell_dock_ec_get_dock_data
  - fu_dell_dock_ec_to_string
  - fu_dell_dock_ec_modify_lock
  - fu_dell_dock_ec_reset
  - fu_dell_dock_ec_activate
  - fu_dell_dock_ec_reboot_dock
  - fu_dell_dock_ec_get_status
  - fu_dell_dock_ec_get_tbt_version
  - fu_dell_dock_ec_get_mst_version
  - fu_dell_dock_ec_get_status_version
  - fu_dell_dock_ec_commit_package
  - fu_dell_dock_ec_write_fw
  - fu_dell_dock_ec_set_quirk_kv
  - fu_dell_dock_ec_query
  - fu_dell_dock_ec_setup
  - fu_dell_dock_ec_open
  - fu_dell_dock_ec_close
  - fu_dell_dock_ec_finalize
  - fu_dell_dock_ec_set_progress
  - fu_dell_dock_ec_init
  - fu_dell_dock_ec_class_init
  - fu_dell_dock_ec_new
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_EC_ADDRESS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0xec'
    - item_type: preproc_def
      name: EC_CMD_SET_DOCK_PKG
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EC_CMD_GET_DOCK_INFO
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EC_CMD_GET_DOCK_DATA
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: EC_CMD_GET_DOCK_TYPE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: EC_CMD_MODIFY_LOCK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: EC_CMD_RESET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: EC_CMD_PASSIVE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: EC_GET_FW_UPDATE_STATUS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: EXPECTED_DOCK_INFO_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0xb7'
    - item_type: preproc_def
      name: TBT_MODE_MASK
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PASSIVE_RESET_MASK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PASSIVE_REBOOT_MASK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PASSIVE_TBT_MASK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
      type_or_value: '0x04'
    structs:
    - fields:
      - name: total_devices
        type: guint8
      - name: first_index
        type: guint8
      - name: last_index
        type: guint8
      item_type: struct
      name: FuDellDockDockInfoHeader
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - fields:
      - name: location
        type: guint8
      - name: device_type
        type: guint8
      - name: sub_type
        type: guint8
      - name: arg
        type: guint8
      - name: instance
        type: guint8
      item_type: struct
      name: FuDellDockEcAddrMap
      pos:
        line_end: 82
        line_start: 76
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - fields:
      - name: ec_addr_map
        type: FuDellDockEcAddrMap
      - name: version
        type: "union {\n\t\tguint32 version_32;\n\t\tguint8 version_8[4];\n\t}"
      item_type: struct
      name: FuDellDockEcQueryEntry
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - fields:
      - name: dock_configuration
        type: guint8
      - name: dock_type
        type: guint8
      - name: power_supply_wattage
        type: guint16
      - name: module_type
        type: guint16
      - name: board_id
        type: guint16
      - name: port0_dock_status
        type: guint16
      - name: port1_dock_status
        type: guint16
      - name: dock_firmware_pkg_ver
        type: guint32
      - name: module_serial
        type: guint64
      - name: original_module_serial
        type: guint64
      - name: service_tag[7]
        type: gchar
      - name: marketing_name[64]
        type: gchar
      item_type: struct
      name: FuDellDockDockDataStructure
      pos:
        line_end: 116
        line_start: 103
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - fields:
      - name: ec_version
        type: guint32
      - name: mst_version
        type: guint32
      - name: hub1_version
        type: guint32
      - name: hub2_version
        type: guint32
      - name: tbt_version
        type: guint32
      - name: pkg_version
        type: guint32
      item_type: struct
      name: FuDellDockDockPackageFWVersion
      pos:
        line_end: 125
        line_start: 118
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: '*data'
        type: FuDellDockDockDataStructure
      - name: '*raw_versions'
        type: FuDellDockDockPackageFWVersion
      - name: base_type
        type: guint8
      - name: '*ec_version'
        type: gchar
      - name: '*mst_version'
        type: gchar
      - name: '*tbt_version'
        type: gchar
      - name: unlock_target
        type: guint8
      - name: board_min
        type: guint8
      - name: '*ec_minimum_version'
        type: gchar
      - name: blob_version_offset
        type: guint64
      - name: passive_flow
        type: guint8
      - name: dock_unlock_status
        type: guint32
      item_type: struct
      name: _FuDellDockEc
      pos:
        line_end: 141
        line_start: 127
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    typedefs:
    - item_type: typedef
      name: FuDellDockECFWUpdateStatus
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - item_type: typedef
      name: FuDellDockLocationEnum
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - item_type: typedef
      name: FuDellDockDeviceTypeEnum
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - item_type: typedef
      name: FuDellDockHubSubTypeEnum
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    - item_type: typedef
      name: FuDellDockDockModule
      pos:
        line_end: 101
        line_start: 92
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    union: []
- function_names:
  - fu_dell_dock_tbt_write_fw
  - fu_dell_dock_tbt_set_quirk_kv
  - fu_dell_dock_tbt_setup
  - fu_dell_dock_tbt_probe
  - fu_dell_dock_tbt_open
  - fu_dell_dock_tbt_close
  - fu_dell_dock_tbt_finalize
  - fu_dell_dock_tbt_init
  - fu_dell_dock_tbt_class_init
  - fu_dell_dock_tbt_new
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_TBT_ADDRESS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
      type_or_value: '0xa2'
    - item_type: preproc_def
      name: PID_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: INTEL_PID
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
      type_or_value: '0x15ef'
    - item_type: preproc_def
      name: MIN_NVM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
      type_or_value: '"36.01"'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: unlock_target
        type: guint8
      - name: blob_major_offset
        type: guint64
      - name: blob_minor_offset
        type: guint64
      - name: '*hub_minimum_version'
        type: gchar
      item_type: struct
      name: _FuDellDockTbt
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_DOCK_EC
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.h
      type_or_value: (fu_dell_dock_ec_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_dock_status_ver_string
  - fu_dell_dock_status_setup
  - fu_dell_dock_status_write
  - fu_dell_dock_status_probe
  - fu_dell_dock_status_open
  - fu_dell_dock_status_close
  - fu_dell_dock_status_set_quirk_kv
  - fu_dell_dock_status_set_progress
  - fu_dell_dock_status_init
  - fu_dell_dock_status_class_init
  - fu_dell_dock_status_new
  source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: blob_version_offset
        type: guint64
      - name: dock_type
        type: guint8
      - name: dock_usb4_present
        type: gboolean
      item_type: struct
      name: _FuDellDockStatus
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KINETIC_DP_PUMA_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.h
      type_or_value: (fu_kinetic_dp_puma_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_kinetic_dp_secure_firmware_export
  - fu_kinetic_dp_secure_firmware_parse_chip_id
  - fu_kinetic_dp_secure_firmware_get_esm_payload_size
  - fu_kinetic_dp_secure_firmware_get_arm_app_code_size
  - fu_kinetic_dp_secure_firmware_get_app_init_data_size
  - fu_kinetic_dp_secure_firmware_get_cmdb_block_size
  - fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
  - fu_kinetic_dp_secure_firmware_parse_app_fw
  - fu_kinetic_dp_secure_firmware_parse
  - fu_kinetic_dp_secure_firmware_init
  - fu_kinetic_dp_secure_firmware_class_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEADER_LEN_ISP_DRV_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
      type_or_value: '4'
    - item_type: preproc_def
      name: APP_ID_STR_LEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
      type_or_value: '4'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuKineticDpSecureFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    - fields:
      - name: chip_id
        type: FuKineticDpChip
      - name: isp_drv_size
        type: guint32
      - name: esm_payload_size
        type: guint32
      - name: arm_app_code_size
        type: guint32
      - name: app_init_data_size
        type: guint16
      - name: cmdb_block_size
        type: guint16
      - name: esm_xip_enabled
        type: gboolean
      item_type: struct
      name: FuKineticDpSecureFirmwarePrivate
      pos:
        line_end: 25
        line_start: 17
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    - fields:
      - name: chip_id
        type: FuKineticDpChip
      - name: offset
        type: guint32
      - name: '*app_id'
        type: gchar
      - name: esm_xip_enabled
        type: gboolean
      item_type: struct
      name: "map[] = {\n\t    {FU_KINETIC_DP_CHIP_JAGUAR_5000, 0x0FFFE4UL, \"JAGR\",
        FALSE},  /* 1024KB */\n\t    {FU_KINETIC_DP_CHIP_JAGUAR_5000, 0x0A7036UL,
        \"JAGR\", FALSE},  /* 670KB ANZU */\n\t    {FU_KINETIC_DP_CHIP_JAGUAR_5000,
        0x0FFFE4UL, \"JAGX\", TRUE},\t  /* 1024KB (640KB) */\n\t    {FU_KINETIC_DP_CHIP_JAGUAR_5000,
        0x0E7036UL, \"JAGX\", TRUE},\t  /* 670KB ANZU (640KB) */\n\t    {FU_KINETIC_DP_CHIP_MUSTANG_5200,
        0x0FFFE4UL, \"MSTG\", FALSE}, /* 1024KB */\n\t    {FU_KINETIC_DP_CHIP_MUSTANG_5200,
        0x0A7036UL, \"MSTG\", FALSE}, /* 670KB ANZU */\n\t    {FU_KINETIC_DP_CHIP_MUSTANG_5200,
        0x0FFFE4UL, \"MSTX\", TRUE},  /* 1024KB (640KB) */\n\t    {FU_KINETIC_DP_CHIP_MUSTANG_5200,
        0x0E7036UL, \"MSTX\", TRUE},  /* 670KB ANZU (640KB) */\n\t}"
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KINETIC_DP_SECURE_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (fu_kinetic_dp_secure_device_get_type())
    - item_type: preproc_def
      name: STD_FW_PAYLOAD_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (1024 * 1024)
    - item_type: preproc_def
      name: CUSTOMER_PROJ_ID_OFFSET
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(STD_FW_PAYLOAD_SIZE - FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_SIZE
        + 15) '
    - item_type: preproc_def
      name: CUSTOMER_FW_VER_OFFSET
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(STD_FW_PAYLOAD_SIZE - FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_SIZE
        + 16) '
    - item_type: preproc_def
      name: CUSTOMER_FW_VER_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FW_CERTIFICATE_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (1 * 1024)
    - item_type: preproc_def
      name: FW_RSA_SIGNATURE_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '256'
    - item_type: preproc_def
      name: FW_RSA_SIGNATURE_BLOCK_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (1 * 1024)
    - item_type: preproc_def
      name: ESM_PAYLOAD_BLOCK_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (256 * 1024)
    - item_type: preproc_def
      name: APP_CODE_NORMAL_BLOCK_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (384 * 1024)
    - item_type: preproc_def
      name: APP_CODE_EXTEND_BLOCK_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (640 * 1024)
    - item_type: preproc_def
      name: APP_INIT_DATA_BLOCK_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (24 * 1024)
    - item_type: preproc_def
      name: CMDB_BLOCK_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (4 * 1024)
    - item_type: preproc_def
      name: SPI_ESM_CERTIFICATE_START
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SPI_APP_CERTIFICATE_START
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_ESM_CERTIFICATE_START + FW_CERTIFICATE_SIZE) '
    - item_type: preproc_def
      name: SPI_ESM_RSA_SIGNATURE_START
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_APP_CERTIFICATE_START + FW_CERTIFICATE_SIZE) '
    - item_type: preproc_def
      name: SPI_APP_RSA_SIGNATURE_START
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_ESM_RSA_SIGNATURE_START + FW_RSA_SIGNATURE_BLOCK_SIZE) '
    - item_type: preproc_def
      name: SPI_ESM_PAYLOAD_START
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: "(SPI_APP_RSA_SIGNATURE_START + FW_RSA_SIGNATURE_BLOCK_SIZE)\t
        \      "
    - item_type: preproc_def
      name: SPI_APP_PAYLOAD_START
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_ESM_PAYLOAD_START + ESM_PAYLOAD_BLOCK_SIZE) '
    - item_type: preproc_def
      name: SPI_APP_NORMAL_INIT_DATA_START
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_APP_PAYLOAD_START + APP_CODE_NORMAL_BLOCK_SIZE) '
    - item_type: preproc_def
      name: SPI_APP_EXTEND_INIT_DATA_START
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: '(SPI_APP_PAYLOAD_START + APP_CODE_EXTEND_BLOCK_SIZE) '
    - item_type: preproc_def
      name: SPI_CMDB_BLOCK_START
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: 0xFE000UL
    - item_type: preproc_def
      name: SPI_APP_ID_DATA_START
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.h
      type_or_value: (STD_FW_PAYLOAD_SIZE - FU_STRUCT_KINETIC_DP_JAGUAR_FOOTER_SIZE)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KINETIC_DP_SECURE_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.h
      type_or_value: (fu_kinetic_dp_secure_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_kinetic_dp_plugin_create_device
  - fu_kinetic_dp_plugin_backend_device_added
  - fu_kinetic_dp_plugin_init
  - fu_kinetic_dp_plugin_constructed
  - fu_kinetic_dp_plugin_class_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuKineticDpPlugin
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    - fields:
      - name: chip_id
        type: FuKineticDpChip
      - name: fw_state
        type: FuKineticDpFwState
      - name: '*id_str'
        type: gchar
      item_type: struct
      name: "map[] = {{FU_KINETIC_DP_CHIP_JAGUAR_5000, FU_KINETIC_DP_FW_STATE_IROM,
        \"5010IR\"},\n\t\t   {FU_KINETIC_DP_CHIP_JAGUAR_5000, FU_KINETIC_DP_FW_STATE_APP,
        \"KT50X0\"},\n\t\t   {FU_KINETIC_DP_CHIP_MUSTANG_5200, FU_KINETIC_DP_FW_STATE_IROM,
        \"5210IR\"},\n\t\t   {FU_KINETIC_DP_CHIP_MUSTANG_5200, FU_KINETIC_DP_FW_STATE_APP,
        \"KT52X0\"},\n\t\t   {FU_KINETIC_DP_CHIP_MUSTANG_5200, FU_KINETIC_DP_FW_STATE_APP,
        \"KT5200\"},\n\t\t   {FU_KINETIC_DP_CHIP_PUMA_2900, FU_KINETIC_DP_FW_STATE_IROM,
        \"PUMA\"},\n\t\t   {FU_KINETIC_DP_CHIP_PUMA_2900, FU_KINETIC_DP_FW_STATE_APP,
        \"MC290\"},\n\t\t   {FU_KINETIC_DP_CHIP_PUMA_2900, FU_KINETIC_DP_FW_STATE_APP,
        \"MC2910\"}}"
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KINETIC_DP_PUMA_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.h
      type_or_value: (fu_kinetic_dp_puma_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_KINETIC_DP_DEVICE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: (fu_kinetic_dp_device_get_type())
    - item_type: preproc_def
      name: MCA_OUI_BYTE_0
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: MCA_OUI_BYTE_1
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: MCA_OUI_BYTE_2
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0xAD'
    - item_type: preproc_def
      name: DPCD_ADDR_IEEE_OUI
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00300'
    - item_type: preproc_def
      name: DPCD_SIZE_IEEE_OUI
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_DEV_ID_STR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00503'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_FW_SUB
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00508'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_HW_REV
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00509'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_FW_MAJ_REV
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x0050A'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_FW_MIN_REV
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x0050B'
    - item_type: preproc_def
      name: DPCD_ADDR_CUSTOMER_ID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x00515'
    - item_type: preproc_def
      name: DPCD_ADDR_CUSTOMER_BOARD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x0050F'
    - item_type: preproc_def
      name: DPCD_ADDR_BRANCH_FW_REV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '0x0050C'
    - item_type: preproc_def
      name: FU_KINETIC_DP_DEVICE_TIMEOUT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
      type_or_value: '1000'
    structs:
    - fields:
      - name: parent_class
        type: FuDpauxDeviceClass
      item_type: struct
      name: _FuKineticDpDeviceClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_kinetic_dp_device_to_string
  - fu_kinetic_dp_device_set_fw_state
  - fu_kinetic_dp_device_get_fw_state
  - fu_kinetic_dp_device_set_chip_id
  - fu_kinetic_dp_device_chip_id_to_family
  - fu_kinetic_dp_device_get_name_for_chip_id
  - fu_kinetic_dp_device_dpcd_read_oui
  - fu_kinetic_dp_device_dpcd_write_oui
  - fu_kinetic_dp_device_ensure_customer
  - fu_kinetic_dp_device_setup
  - fu_kinetic_dp_device_class_init
  - fu_kinetic_dp_device_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: family
        type: FuKineticDpFamily
      - name: chip_id
        type: FuKineticDpChip
      - name: fw_state
        type: FuKineticDpFwState
      - name: customer_id
        type: guint8
      - name: customer_board
        type: guint8
      item_type: struct
      name: FuKineticDpDevicePrivate
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-device.c
    typedefs: []
    union: []
- function_names:
  - fu_kinetic_dp_puma_device_to_string
  - fu_kinetic_dp_puma_device_wait_dpcd_cmd_status_cb
  - fu_kinetic_dp_puma_device_wait_dpcd_sink_mode_cb
  - fu_kinetic_dp_puma_device_enter_code_loading_mode
  - fu_kinetic_dp_puma_device_send_chunk
  - fu_kinetic_dp_puma_device_send_payload
  - fu_kinetic_dp_puma_device_wait_drv_ready
  - fu_kinetic_dp_puma_device_send_isp_drv
  - fu_kinetic_dp_puma_device_enable_fw_update_mode
  - fu_kinetic_dp_puma_device_setup
  - fu_kinetic_dp_puma_device_prepare
  - fu_kinetic_dp_puma_device_cleanup
  - fu_kinetic_dp_puma_device_write_firmware
  - fu_kinetic_dp_puma_device_set_progress
  - fu_kinetic_dp_puma_device_init
  - fu_kinetic_dp_puma_device_class_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PUMA_DPCD_SINK_MODE_REG
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '0x0050D'
    - item_type: preproc_def
      name: PUMA_DPCD_CMD_STATUS_REG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '0x0050E'
    - item_type: preproc_def
      name: PUMA_DPCD_DATA_ADDR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: 0x80000ul
    - item_type: preproc_def
      name: PUMA_DPCD_DATA_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '0x8000ul '
    - item_type: preproc_def
      name: PUMA_DPCD_DATA_ADDR_END
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: (PUMA_DPCD_DATA_ADDR + PUMA_DPCD_DATA_SIZE - 1)
    - item_type: preproc_def
      name: PUMA_CHUNK_PROCESS_MAX_WAIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FLASH_ERASE_TIME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: POLL_INTERVAL_MS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
      type_or_value: '20 '
    structs:
    - fields:
      - name: parent_instance
        type: FuKineticDpDevice
      - name: read_flash_prog_time
        type: guint16
      - name: flash_id
        type: guint16
      - name: flash_size
        type: guint16
      item_type: struct
      name: _FuKineticDpPumaDevice
      pos:
        line_end: 28
        line_start: 23
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_kinetic_dp_puma_firmware_export
  - fu_kinetic_dp_puma_firmware_parse_chip_id
  - fu_kinetic_dp_puma_firmware_parse_app_fw
  - fu_kinetic_dp_puma_firmware_parse
  - fu_kinetic_dp_puma_firmware_init
  - fu_kinetic_dp_puma_firmware_class_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HEADER_LEN_ISP_DRV_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '4'
    - item_type: preproc_def
      name: APP_ID_STR_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_HEADER_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_HASH_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '32'
    - item_type: preproc_def
      name: PUMA_STS_FW_PAYLOAD_SIZE
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: "((512 * 1024) + FU_KINETIC_DP_PUMA_REQUEST_FW_HEADER_SIZE +
        \                               \\\n\t (FU_KINETIC_DP_PUMA_REQUEST_FW_HASH_SIZE
        * 2))"
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_STD_VER_START_ADDR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '(PUMA_STS_FW_PAYLOAD_SIZE - 52) '
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_CMDB_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '128'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_CMDB_SIG_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_CMDB_START_ADDR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '0x7FE52'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_CMDB_STD_VER_ADDR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '0x7FE56'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_CMDB_REV_ADDR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '0x7FE58'
    - item_type: preproc_def
      name: FU_KINETIC_DP_PUMA_REQUEST_FW_CMDB_REV_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
      type_or_value: '3'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuKineticDpPumaFirmware
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    - fields:
      - name: chip_id
        type: FuKineticDpChip
      - name: cmdb_version
        type: guint16
      - name: cmdb_revision
        type: guint32
      item_type: struct
      name: FuKineticDpPumaFirmwarePrivate
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    - fields:
      - name: chip_id
        type: FuKineticDpChip
      - name: offset
        type: guint32
      - name: '*app_id'
        type: gchar
      item_type: struct
      name: "map[] = {\n\t    {FU_KINETIC_DP_CHIP_PUMA_2900, 0x080042UL, \"PUMA\"}
        /* Puma 512KB */\n\t}"
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_kinetic_dp_secure_device_to_string
  - fu_kinetic_dp_secure_device_read_param_reg
  - fu_kinetic_dp_secure_device_write_kt_prop_cmd
  - fu_kinetic_dp_secure_device_clear_kt_prop_cmd
  - fu_kinetic_dp_secure_device_send_kt_prop_cmd_cb
  - fu_kinetic_dp_secure_device_send_kt_prop_cmd
  - fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
  - fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
  - fu_kinetic_dp_secure_device_write_mca_oui
  - fu_kinetic_dp_secure_device_enter_code_loading_mode
  - fu_kinetic_dp_secure_device_crc16
  - fu_kinetic_dp_secure_device_send_chunk
  - fu_kinetic_dp_secure_device_send_payload
  - fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared_cb
  - fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
  - fu_kinetic_dp_secure_device_execute_isp_drv
  - fu_kinetic_dp_secure_device_send_isp_drv
  - fu_kinetic_dp_secure_device_enable_fw_update_mode
  - fu_kinetic_dp_secure_device_send_app_fw
  - fu_kinetic_dp_secure_device_install_fw_images_cb
  - fu_kinetic_dp_secure_device_install_fw_images
  - fu_kinetic_dp_secure_device_get_flash_bank_idx
  - fu_kinetic_dp_secure_device_convert_version
  - fu_kinetic_dp_secure_device_setup
  - fu_kinetic_dp_secure_device_prepare
  - fu_kinetic_dp_secure_device_cleanup
  - fu_kinetic_dp_secure_device_write_firmware
  - fu_kinetic_dp_secure_device_set_progress
  - fu_kinetic_dp_secure_device_init
  - fu_kinetic_dp_secure_device_class_init
  source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DPCD_ADDR_CMD_STATUS_REG
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x0050D'
    - item_type: preproc_def
      name: DPCD_ADDR_PARAM_REG
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x0050E'
    - item_type: preproc_def
      name: DPCD_ADDR_ISP_REPLY_LEN_REG
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x00513'
    - item_type: preproc_def
      name: DPCD_SIZE_ISP_REPLY_LEN_REG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DPCD_ADDR_ISP_REPLY_DATA_REG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x00514 '
    - item_type: preproc_def
      name: DPCD_SIZE_ISP_REPLY_DATA_REG
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: "12\t     "
    - item_type: preproc_def
      name: DPCD_ADDR_KT_AUX_WIN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: 0x80000ul
    - item_type: preproc_def
      name: DPCD_SIZE_KT_AUX_WIN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x8000ul '
    - item_type: preproc_def
      name: DPCD_ADDR_KT_AUX_WIN_END
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: (DPCD_ADDR_KT_AUX_WIN + DPCD_SIZE_KT_AUX_WIN - 1)
    - item_type: preproc_def
      name: DPCD_KT_CONFIRMATION_BIT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: DPCD_KT_COMMAND_MASK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '0x7F'
    - item_type: preproc_def
      name: INSTALL_IMAGE_POLL_INTERVAL_MS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
      type_or_value: '50'
    structs:
    - fields:
      - name: parent_instance
        type: FuKineticDpDevice
      - name: read_flash_prog_time
        type: guint16
      - name: flash_id
        type: guint16
      - name: flash_size
        type: guint16
      - name: isp_secure_auth_mode
        type: gboolean
      - name: flash_bank
        type: FuKineticDpBank
      item_type: struct
      name: _FuKineticDpSecureDevice
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_goodixtp_firmware_get_version
  - fu_goodixtp_firmware_set_version
  - fu_goodixtp_firmware_init
  - fu_goodixtp_firmware_class_init
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: version
        type: guint32
      item_type: struct
      name: FuGoodixtpFirmwarePrivate
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_GTX8_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.h
      type_or_value: (fu_goodixtp_gtx8_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_gtx8_device_read_pkg
  - fu_goodixtp_gtx8_device_hid_read
  - fu_goodixtp_gtx8_device_hid_write
  - fu_goodixtp_gtx8_device_send_cmd
  - fu_goodixtp_gtx8_device_ensure_version
  - fu_goodixtp_gtx8_device_disable_report
  - fu_goodixtp_gtx8_device_wait_bl_cb
  - fu_goodixtp_gtx8_device_update_prepare
  - fu_goodixtp_gtx8_device_soft_reset_ic
  - fu_goodixtp_gtx8_device_wait_flash_cb
  - fu_goodixtp_gtx8_device_load_sub_firmware_cb
  - fu_goodixtp_gtx8_device_update_process
  - fu_goodixtp_gtx8_device_setup
  - fu_goodixtp_gtx8_device_prepare_firmware
  - fu_goodixtp_gtx8_device_write_image
  - fu_goodixtp_gtx8_device_write_images
  - fu_goodixtp_gtx8_device_write_firmware
  - fu_goodixtp_gtx8_device_init
  - fu_goodixtp_gtx8_device_class_init
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_ADDR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
      type_or_value: '0x60CC'
    - item_type: preproc_def
      name: BL_STATE_ADDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
      type_or_value: '0x5095'
    - item_type: preproc_def
      name: FLASH_RESULT_ADDR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
      type_or_value: '0x5096'
    - item_type: preproc_def
      name: FLASH_BUFFER_ADDR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
      type_or_value: '0xC000'
    structs:
    - fields:
      - name: parent_instance
        type: FuGoodixtpHidDevice
      item_type: struct
      name: _FuGoodixtpGtx8Device
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '65'
    - item_type: preproc_def
      name: REPORT_ID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: I2C_DIRECT_RW
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: I2C_READ_FLAG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: I2C_WRITE_FLAG
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RAM_BUFFER_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CFG_MAX_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-common.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_brlb_device_read_pkg
  - fu_goodixtp_brlb_device_hid_read
  - fu_goodixtp_brlb_device_hid_write
  - fu_goodixtp_brlb_device_send_cmd
  - fu_goodixtp_brlb_device_ensure_version
  - fu_goodixtp_brlb_device_wait_mini_cb
  - fu_goodixtp_brlb_device_wait_erase_cb
  - fu_goodixtp_brlb_device_update_prepare
  - fu_goodixtp_brlb_device_wait_flash_cb
  - fu_goodixtp_brlb_device_load_sub_firmware_cb
  - fu_goodixtp_brlb_device_update_process
  - fu_goodixtp_brlb_device_update_finish
  - fu_goodixtp_brlb_device_setup
  - fu_goodixtp_brlb_device_prepare_firmware
  - fu_goodixtp_brlb_device_write_image
  - fu_goodixtp_brlb_device_write_images
  - fu_goodixtp_brlb_device_write_firmware
  - fu_goodixtp_brlb_device_init
  - fu_goodixtp_brlb_device_class_init
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuGoodixtpHidDevice
      item_type: struct
      name: _FuGoodixtpBrlbDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_HID_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.h
      type_or_value: (fu_goodixtp_hid_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuHidrawDeviceClass
      item_type: struct
      name: _FuGoodixtpHidDeviceClass
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_GTX8_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.h
      type_or_value: (fu_goodixtp_gtx8_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_plugin_init
  - fu_goodixtp_plugin_constructed
  - fu_goodixtp_plugin_ic_type_from_pid
  - fu_goodixtp_plugin_backend_device_added
  - fu_goodixtp_plugin_class_init
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuGoodixtpPlugin
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.h
      type_or_value: (fu_goodixtp_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuGoodixtpFirmwareClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_BRLB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.h
      type_or_value: (fu_goodixtp_brlb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_brlb_firmware_parse
  - fu_goodixtp_brlb_firmware_init
  - fu_goodixtp_brlb_firmware_class_init
  - fu_goodixtp_brlb_firmware_new
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FW_HEADER_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
      type_or_value: '512'
    structs:
    - fields:
      - name: parent_instance
        type: FuGoodixtpFirmware
      item_type: struct
      name: _FuGoodixtpBrlbFirmware
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_gtx8_firmware_parse
  - fu_goodixtp_gtx8_firmware_init
  - fu_goodixtp_gtx8_firmware_class_init
  - fu_goodixtp_gtx8_firmware_new
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GTX8_FW_DATA_OFFSET
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
      type_or_value: '256'
    structs:
    - fields:
      - name: parent_instance
        type: FuGoodixtpFirmware
      item_type: struct
      name: _FuGoodixtpGtx8Firmware
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_goodixtp_hid_device_set_patch_pid
  - fu_goodixtp_hid_device_set_patch_vid
  - fu_goodixtp_hid_device_set_sensor_id
  - fu_goodixtp_hid_device_set_config_ver
  - fu_goodixtp_hid_device_get_sensor_id
  - fu_goodixtp_hid_device_to_string
  - fu_goodixtp_hid_device_get_report
  - fu_goodixtp_hid_device_set_report
  - fu_goodixtp_hid_device_set_progress
  - fu_goodixtp_hid_device_convert_version
  - fu_goodixtp_hid_device_init
  - fu_goodixtp_hid_device_finalize
  - fu_goodixtp_hid_device_class_init
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*patch_pid'
        type: gchar
      - name: '*patch_vid'
        type: gchar
      - name: sensor_id
        type: guint8
      - name: cfg_ver
        type: guint8
      item_type: struct
      name: FuGoodixtpHidDevicePrivate
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_BRLB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.h
      type_or_value: (fu_goodixtp_brlb_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_thinklmi_plugin_startup
  - fu_lenovo_thinklmi_plugin_cpu_registered
  - fu_lenovo_thinklmi_plugin_uefi_capsule_registered
  - fu_lenovo_thinklmi_plugin_device_registered
  - fu_lenovo_thinklmi_plugin_add_security_attrs
  - fu_lenovo_thinklmi_plugin_init
  - fu_lenovo_thinklmi_plugin_class_init
  source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIOS_SETTING_SLEEP_MODE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
      type_or_value: '"com.thinklmi.SleepState"'
    - item_type: preproc_def
      name: BIOS_SETTING_BOOT_ORDER_LOCK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
      type_or_value: '"com.thinklmi.BootOrderLock"'
    - item_type: preproc_def
      name: BIOS_SETTING_SECURE_ROLLBACK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
      type_or_value: '"com.thinklmi.SecureRollBackPrevention"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLenovoThinklmiPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-lenovo-thinklmi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_plugin_device_added_cb
  - fu_test_fatal_handler_cb
  - fu_test_self_init
  - fu_test_probe_fake_esrt
  - fu_plugin_lenovo_thinklmi_bootorder_locked
  - fu_plugin_lenovo_thinklmi_bootorder_unlocked
  - fu_plugin_lenovo_thinklmi_reboot_pending
  - fu_test_self_free
  - main
  source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: '*plugin_uefi_capsule'
        type: FuPlugin
      - name: '*plugin_lenovo_thinklmi'
        type: FuPlugin
      item_type: struct
      name: FuTest
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    typedefs: []
    union: []
- function_names:
  - fu_igsc_oprom_firmware_export
  - fu_igsc_oprom_firmware_get_major_version
  - fu_igsc_oprom_firmware_has_allowlist
  - fu_igsc_oprom_firmware_match_device
  - fu_igsc_oprom_firmware_parse_extension
  - fu_igsc_oprom_firmware_parse
  - fu_igsc_oprom_firmware_init
  - fu_igsc_oprom_firmware_finalize
  - fu_igsc_oprom_firmware_class_init
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuOpromFirmware
      - name: major_version
        type: guint16
      - name: '*device_infos'
        type: GPtrArray
      item_type: struct
      name: _FuIgscOpromFirmware
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_igsc_aux_device_to_string
  - fu_igsc_aux_device_probe
  - fu_igsc_aux_device_setup
  - fu_igsc_aux_device_prepare_firmware
  - fu_igsc_aux_device_write_firmware
  - fu_igsc_aux_device_prepare
  - fu_igsc_aux_device_cleanup
  - fu_igsc_aux_device_init
  - fu_igsc_aux_device_class_init
  - fu_igsc_aux_device_new
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: oem_version
        type: guint32
      - name: major_version
        type: guint16
      - name: major_vcn
        type: guint16
      item_type: struct
      name: _FuIgscAuxDevice
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    typedefs: []
    union: []
- function_names:
  - fu_igsc_oprom_device_to_string
  - fu_igsc_oprom_device_probe
  - fu_igsc_oprom_device_setup
  - fu_igsc_oprom_device_prepare_firmware
  - fu_igsc_oprom_device_write_firmware
  - fu_igsc_oprom_device_prepare
  - fu_igsc_oprom_device_cleanup
  - fu_igsc_oprom_device_init
  - fu_igsc_oprom_device_class_init
  - fu_igsc_oprom_device_new
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: payload_type
        type: FuIgscFwuHeciPayloadType
      - name: partition_version
        type: FuIgscFwuHeciPartitionVersion
      - name: major_version
        type: guint16
      item_type: struct
      name: _FuIgscOpromDevice
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_OPROM_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.h
      type_or_value: (fu_igsc_oprom_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_AUX_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.h
      type_or_value: (fu_igsc_aux_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HECI1_CSE_FS_FWUPDATE_STATE_IDLE_BIT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: HECI1_CSE_FS_INITSTATE_COMPLETED_BIT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: HECI1_CSE_GS1_PHASE_FWUPDATE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '7'
    - item_type: preproc_def
      name: HECI1_CSE_FS_FWUPD_PHASE_SHIFT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '28'
    - item_type: preproc_def
      name: HECI1_CSE_FS_FWUPD_PHASE_MASK
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '0xF'
    - item_type: preproc_def
      name: HECI1_CSE_FS_FWUPD_PERCENT_SHIFT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HECI1_CSE_FS_FWUPD_PERCENT_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: HECI1_CSE_FS_MODE_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: HECI1_CSE_FS_CP_MODE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
      type_or_value: '0x3'
    structs:
    - fields:
      - name: command_id
        type: guint8
      - name: is_response
        type: guint8
      - name: reserved
        type: guint8
      - name: reserved2[2]
        type: guint8
      item_type: struct
      name: gsc_fwu_heci_header
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: status
        type: guint32
      - name: reserved
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_response
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: partition
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_version_req
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      - name: partition
        type: guint32
      - name: version_length
        type: guint32
      - name: version[]
        type: guint8
      item_type: struct
      name: gsc_fwu_heci_version_resp
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: reserved[2]
        type: guint32
      item_type: struct
      name: gsc_fw_data_heci_version_req
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      - name: format_version
        type: guint32
      - name: oem_version_nvm
        type: guint32
      - name: oem_version_fitb
        type: guint32
      - name: major_version
        type: guint16
      - name: major_vcn
        type: guint16
      - name: oem_version_fitb_valid
        type: guint32
      - name: flags
        type: guint32
      - name: reserved[7]
        type: guint32
      item_type: struct
      name: gsc_fw_data_heci_version_resp
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: reserved[2]
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_get_config_message_req
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      - name: format_version
        type: guint32
      - name: hw_step
        type: guint32
      - name: hw_sku
        type: guint32
      - name: oprom_code_devid_enforcement
        type: guint32
      - name: flags
        type: guint32
      - name: reserved[7]
        type: guint32
      - name: debug_config
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_get_config_message_resp
      pos:
        line_end: 76
        line_start: 67
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: reserved[2]
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_get_subsystem_ids_message_req
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      - name: ssvid
        type: guint16
      - name: ssdid
        type: guint16
      - name: reserved[2]
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_get_subsystem_ids_message_resp
      pos:
        line_end: 88
        line_start: 83
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: force_update
        type: guint32
      - name: reserved
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_start_flags
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: update_img_length
        type: guint32
      - name: payload_type
        type: guint32
      - name: flags
        type: struct gsc_fwu_heci_start_flags
      - name: reserved[8]
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_start_req
      pos:
        line_end: 101
        line_start: 95
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      item_type: struct
      name: gsc_fwu_heci_start_resp
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: data_length
        type: guint32
      - name: reserved
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_data_req
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      item_type: struct
      name: gsc_fwu_heci_data_resp
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: reserved
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_end_req
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: response
        type: struct gsc_fwu_heci_response
      item_type: struct
      name: gsc_fwu_heci_end_resp
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    - fields:
      - name: header
        type: struct gsc_fwu_heci_header
      - name: reserved
        type: guint32
      item_type: struct
      name: gsc_fwu_heci_no_update_req
      pos:
        line_end: 129
        line_start: 126
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-heci.h
    typedefs: []
    union: []
- function_names:
  - fu_igsc_device_to_string
  - fu_igsc_device_get_oprom_code_devid_enforcement
  - fu_igsc_device_get_ssvid
  - fu_igsc_device_get_ssdid
  - fu_igsc_device_heci_validate_response_header
  - fu_igsc_device_command
  - fu_igsc_device_get_version_raw
  - fu_igsc_device_get_aux_version
  - fu_igsc_device_get_subsystem_ids
  - fu_igsc_device_get_config
  - fu_igsc_device_setup
  - fu_igsc_device_get_fw_status
  - fu_igsc_device_probe
  - fu_igsc_device_prepare_firmware
  - fu_igsc_device_update_end
  - fu_igsc_device_update_data
  - fu_igsc_device_update_start
  - fu_igsc_device_no_update
  - fu_igsc_device_write_chunks
  - fu_igsc_device_wait_for_reset
  - fu_igsc_device_reconnect_cb
  - fu_igsc_device_write_blob
  - fu_igsc_device_write_firmware
  - fu_igsc_device_set_pci_power_policy
  - fu_igsc_device_prepare
  - fu_igsc_device_cleanup
  - fu_igsc_device_set_progress
  - fu_igsc_device_init
  - fu_igsc_device_finalize
  - fu_igsc_device_class_init
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_FLAG_HAS_AUX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '"has-aux"'
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_FLAG_HAS_OPROM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '"has-oprom"'
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_POWER_WRITE_TIMEOUT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: "1500\t  "
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_MEI_WRITE_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '60000  '
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_MEI_READ_TIMEOUT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '480000 '
    - item_type: preproc_def
      name: GSC_FWU_STATUS_SUCCESS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_SIZE_ERROR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x5'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_UPDATE_OPROM_INVALID_STRUCTURE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x1035'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_UPDATE_OPROM_SECTION_NOT_EXIST
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x1032'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_INVALID_COMMAND
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x8D'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_INVALID_PARAMS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x85'
    - item_type: preproc_def
      name: GSC_FWU_STATUS_FAILURE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x9E'
    - item_type: preproc_def
      name: GSC_FWU_GET_CONFIG_FORMAT_VERSION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GSC_IFWI_TAG_SOC2_SKU_BIT
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GSC_IFWI_TAG_SOC3_SKU_BIT
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: GSC_IFWI_TAG_SOC1_SKU_BIT
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: GSC_DG2_SKUID_SOC1
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GSC_DG2_SKUID_SOC2
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GSC_DG2_SKUID_SOC3
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuHeciDevice
      - name: '*project'
        type: gchar
      - name: hw_sku
        type: guint32
      - name: subsystem_vendor
        type: guint16
      - name: subsystem_model
        type: guint16
      - name: oprom_code_devid_enforcement
        type: gboolean
      - name: svn_executing
        type: guint8
      - name: svn_min_allowed
        type: guint8
      item_type: struct
      name: _FuIgscDevice
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_DEVICE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.h
      type_or_value: (fu_igsc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_igsc_aux_firmware_export
  - fu_igsc_aux_firmware_match_device
  - fu_igsc_aux_firmware_get_oem_version
  - fu_igsc_aux_firmware_get_major_version
  - fu_igsc_aux_firmware_get_major_vcn
  - fu_igsc_aux_firmware_parse_version
  - fu_igsc_aux_firmware_parse_extension
  - fu_igsc_aux_firmware_parse
  - fu_igsc_aux_firmware_write
  - fu_igsc_aux_firmware_build
  - fu_igsc_aux_firmware_init
  - fu_igsc_aux_firmware_finalize
  - fu_igsc_aux_firmware_class_init
  - fu_igsc_aux_firmware_new
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuIfwiFptFirmware
      - name: oem_version
        type: guint32
      - name: major_version
        type: guint16
      - name: major_vcn
        type: guint16
      - name: '*device_infos'
        type: GPtrArray
      - name: has_manifest_ext
        type: gboolean
      item_type: struct
      name: _FuIgscAuxFirmware
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_igsc_plugin_init
  - fu_igsc_plugin_constructed
  - fu_igsc_plugin_class_init
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIgscPlugin
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_CODE_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.h
      type_or_value: (fu_igsc_code_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_OPROM_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.h
      type_or_value: (fu_igsc_oprom_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_igsc_code_firmware_export
  - fu_igsc_code_firmware_get_hw_sku
  - fu_igsc_code_firmware_parse_imgi
  - fu_igsc_code_firmware_parse
  - fu_igsc_code_firmware_init
  - fu_igsc_code_firmware_class_init
  - fu_igsc_code_firmware_new
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GSC_FWU_IUP_NUM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FU_IGSC_FIRMWARE_MAX_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
      type_or_value: '(8 * 1024 * 1024) '
    structs:
    - fields:
      - name: parent_instance
        type: FuIfwiFptFirmware
      - name: hw_sku
        type: guint32
      item_type: struct
      name: _FuIgscCodeFirmware
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IGSC_AUX_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.h
      type_or_value: (fu_igsc_aux_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HUGHSKI_COLORHUG_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.h
      type_or_value: (fu_hughski_colorhug_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hughski_colorhug_plugin_init
  - fu_hughski_colorhug_plugin_constructed
  - fu_hughski_colorhug_plugin_class_init
  source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHughskiColorhugPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_hughski_colorhug_device_msg
  - fu_hughski_colorhug_device_detach
  - fu_hughski_colorhug_device_attach
  - fu_hughski_colorhug_device_set_flash_success
  - fu_hughski_colorhug_device_reload
  - fu_hughski_colorhug_device_erase
  - fu_hughski_colorhug_device_get_version
  - fu_hughski_colorhug_device_probe
  - fu_hughski_colorhug_device_setup
  - fu_hughski_colorhug_device_calculate_checksum
  - fu_hughski_colorhug_device_write_blocks
  - fu_hughski_colorhug_device_verify_blocks
  - fu_hughski_colorhug_device_write_firmware
  - fu_hughski_colorhug_device_set_progress
  - fu_hughski_colorhug_device_init
  - fu_hughski_colorhug_device_class_init
  source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_HUGHSKI_COLORHUG_DEVICE_FLAG_HALFSIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '"halfsize"'
    - item_type: preproc_def
      name: CH_CMD_GET_FIRMWARE_VERSION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: CH_CMD_RESET
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x24'
    - item_type: preproc_def
      name: CH_CMD_READ_FLASH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: CH_CMD_WRITE_FLASH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x26'
    - item_type: preproc_def
      name: CH_CMD_BOOT_FLASH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x27'
    - item_type: preproc_def
      name: CH_CMD_SET_FLASH_SUCCESS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x28'
    - item_type: preproc_def
      name: CH_CMD_ERASE_FLASH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x29'
    - item_type: preproc_def
      name: CH_USB_HID_EP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CH_USB_HID_EP_IN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: (CH_USB_HID_EP | 0x80)
    - item_type: preproc_def
      name: CH_USB_HID_EP_OUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: (CH_USB_HID_EP | 0x00)
    - item_type: preproc_def
      name: CH_USB_HID_EP_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: CH_USB_CONFIG
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CH_USB_INTERFACE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: CH_EEPROM_ADDR_RUNCODE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: CH_EEPROM_ADDR_RUNCODE_ALS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: CH_DEVICE_USB_TIMEOUT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '5000  '
    - item_type: preproc_def
      name: CH_FLASH_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
      type_or_value: '0x020 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: start_addr
        type: guint16
      item_type: struct
      name: _FuHughskiColorhugDevice
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_UEFI
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.h
      type_or_value: (fu_acpi_uefi_get_type())
    - item_type: preproc_def
      name: FU_EFI_INSYDE_GUID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.h
      type_or_value: '"9d4bf935-a674-4710-ba02-bf0aa1758c7b"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_get_esp_app_path
  - fu_uefi_get_built_app_path
  - fu_uefi_get_framebuffer_size
  - fu_uefi_get_esp_path_for_os
  - fu_uefi_read_file_as_uint64
  - fu_uefi_esp_target_verify
  - fu_uefi_esp_target_exists
  - fu_uefi_esp_target_copy
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_cod_device_get_results_for_idx
  - fu_uefi_cod_device_get_variable_idx
  - fu_uefi_cod_device_get_results
  - fu_uefi_cod_device_get_indexed_filename
  - fu_uefi_cod_device_get_filename
  - fu_uefi_cod_device_write_firmware
  - fu_uefi_cod_device_report_metadata_pre
  - fu_uefi_cod_device_init
  - fu_uefi_cod_device_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VARIABLE_IDX_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
      type_or_value: '11 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiCapsuleDevice
      item_type: struct
      name: _FuUefiCodDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_uefi_capsule_device_set_esp
  - fu_uefi_capsule_device_to_string
  - fu_uefi_capsule_device_report_metadata_pre
  - fu_uefi_capsule_device_report_metadata_post
  - fu_uefi_capsule_device_get_kind
  - fu_uefi_capsule_device_get_version
  - fu_uefi_capsule_device_get_version_lowest
  - fu_uefi_capsule_device_get_version_error
  - fu_uefi_capsule_device_get_hardware_instance
  - fu_uefi_capsule_device_get_status
  - fu_uefi_capsule_device_set_status
  - fu_uefi_capsule_device_set_require_esp_free_space
  - fu_uefi_capsule_device_get_capsule_flags
  - fu_uefi_capsule_device_get_guid
  - fu_uefi_capsule_device_build_varname
  - fu_uefi_capsule_device_load_update_info
  - fu_uefi_capsule_device_clear_status
  - fu_uefi_capsule_device_build_dp_buf
  - fu_uefi_capsule_device_fixup_firmware
  - fu_uefi_capsule_device_write_update_info
  - fu_uefi_capsule_device_check_asset
  - fu_uefi_capsule_device_prepare
  - fu_uefi_capsule_device_cleanup
  - fu_uefi_capsule_device_probe
  - fu_uefi_capsule_device_capture_efi_debugging
  - fu_uefi_capsule_device_perhaps_enable_debugging
  - fu_uefi_capsule_device_get_results
  - fu_uefi_capsule_device_get_esp
  - fu_uefi_capsule_device_prepare_firmware
  - fu_uefi_capsule_device_set_property
  - fu_uefi_capsule_device_set_progress
  - fu_uefi_capsule_device_init
  - fu_uefi_capsule_device_finalize
  - fu_uefi_capsule_device_convert_version
  - fu_uefi_capsule_device_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EFI_FMP_CAPSULE_GUID
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
      type_or_value: '"6dcbd5ed-e82d-4c44-bda1-7194199ad92a"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_EXTRA_SIZE_REQUIRED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
      type_or_value: '(1024 * 1024) '
    structs:
    - fields:
      - name: '*esp'
        type: FuVolume
      - name: '*esp_locker'
        type: FuDeviceLocker
      - name: '*fw_class'
        type: gchar
      - name: kind
        type: FuUefiCapsuleDeviceKind
      - name: capsule_flags
        type: guint32
      - name: fw_version
        type: guint32
      - name: fw_version_lowest
        type: guint32
      - name: last_attempt_status
        type: FuUefiCapsuleDeviceStatus
      - name: last_attempt_version
        type: guint32
      - name: fmp_hardware_instance
        type: guint64
      - name: missing_header
        type: gboolean
      - name: automounted_esp
        type: gboolean
      - name: require_esp_free_space
        type: gsize
      item_type: struct
      name: FuUefiCapsuleDevicePrivate
      pos:
        line_end: 29
        line_start: 15
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BITMAP_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.h
      type_or_value: (fu_bitmap_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_CAPSULE_BACKEND
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.h
      type_or_value: (fu_uefi_capsule_backend_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuBackendClass
      item_type: struct
      name: _FuUefiCapsuleBackendClass
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EFI_CAPSULE_HEADER_FLAGS_PERSIST_ACROSS_RESET
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: EFI_CAPSULE_HEADER_FLAGS_POPULATE_SYSTEM_TABLE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.h
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: EFI_CAPSULE_HEADER_FLAGS_INITIATE_RESET
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.h
      type_or_value: 0x0000000000000004ULL
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_bootmgr_add_to_boot_order
  - fu_uefi_bootmgr_parse_name
  - fu_uefi_bootmgr_verify_fwupd
  - fu_uefi_bootmgr_setup_bootnext_with_loadopt
  - fu_uefi_bootmgr_shim_is_safe
  - fu_uefi_bootmgr_bootnext
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_capsule_plugin_to_string
  - fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
  - fu_uefi_capsule_plugin_fwupd_efi_add_sbom
  - fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
  - fu_uefi_capsule_plugin_fwupd_efi_parse
  - fu_uefi_capsule_plugin_fwupd_efi_changed_cb
  - fu_uefi_capsule_plugin_fwupd_efi_probe
  - fu_uefi_capsule_plugin_clear_results
  - fu_uefi_capsule_plugin_efivars_attrs_to_string
  - fu_uefi_capsule_plugin_add_security_attrs_secureboot
  - fu_uefi_capsule_plugin_add_security_attrs_bootservices
  - fu_uefi_capsule_plugin_add_security_attrs
  - fu_uefi_capsule_plugin_get_splash_data
  - fu_uefi_capsule_plugin_write_splash_data
  - fu_uefi_capsule_plugin_update_splash
  - fu_uefi_capsule_plugin_write_firmware
  - fu_uefi_capsule_plugin_load_config
  - fu_uefi_capsule_plugin_validate_esp
  - fu_uefi_capsule_plugin_register_proxy_device
  - fu_uefi_capsule_plugin_device_registered
  - fu_uefi_capsule_plugin_uefi_type_to_string
  - fu_uefi_capsule_plugin_get_name_for_type
  - fu_uefi_capsule_plugin_coldplug_device
  - fu_uefi_capsule_plugin_test_secure_boot
  - fu_uefi_capsule_plugin_parse_acpi_uefi
  - fu_uefi_capsule_plugin_ensure_screen_size_config
  - fu_uefi_capsule_plugin_ensure_screen_size_drm
  - fu_uefi_capsule_plugin_startup
  - fu_uefi_capsule_plugin_unlock
  - fu_uefi_capsule_plugin_update_state_notify_cb
  - fu_uefi_capsule_plugin_check_cod_support
  - fu_uefi_capsule_plugin_bootloader_supports_fwupd
  - fu_uefi_capsule_plugin_coldplug
  - fu_uefi_capsule_plugin_cleanup_esp
  - fu_uefi_capsule_plugin_cleanup_bootnext
  - fu_uefi_capsule_plugin_reboot_cleanup
  - fu_uefi_capsule_plugin_modify_config
  - fu_uefi_capsule_plugin_backend_device_added
  - fu_uefi_capsule_plugin_init
  - fu_uefi_capsule_plugin_constructed
  - fu_uefi_capsule_plugin_finalize
  - fu_uefi_capsule_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*bgrt'
        type: FuUefiBgrt
      - name: '*acpi_uefi'
        type: FuFirmware
      - name: '*esp'
        type: FuVolume
      - name: '*backend'
        type: FuBackend
      - name: screen_width
        type: guint32
      - name: screen_height
        type: guint32
      - name: '*fwupd_efi_file'
        type: GFile
      - name: '*fwupd_efi_monitor'
        type: GFileMonitor
      item_type: struct
      name: _FuUefiCapsulePlugin
      pos:
        line_end: 34
        line_start: 24
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    - fields:
      - name: width
        type: guint32
      - name: height
        type: guint32
      item_type: struct
      name: "sizes[] = {{640, 480}, /* matching the sizes in po/make-images */\n\t\t
        \    {800, 600},\n\t\t     {1024, 768},\n\t\t     {1920, 1080},\n\t\t     {3840,
        2160},\n\t\t     {5120, 2880},\n\t\t     {5688, 3200},\n\t\t     {7680, 4320},\n\t\t
        \    {0, 0}}"
      pos:
        line_end: 479
        line_start: 476
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_update_esp_valid_func
  - fu_uefi_update_esp_invalid_func
  - fu_uefi_update_esp_no_backup_func
  - fu_uefi_bgrt_func
  - fu_uefi_framebuffer_func
  - fu_uefi_bitmap_func
  - fu_uefi_cod_device_build_efi_result
  - fu_uefi_cod_device_func
  - fu_uefi_plugin_fake_esp_new
  - fu_uefi_plugin_no_coalesce_func
  - fu_uefi_plugin_no_flashes_func
  - fu_uefi_plugin_esp_file_exists
  - fu_uefi_plugin_esp_rmtree
  - fu_uefi_plugin_nvram_func
  - fu_uefi_plugin_cod_func
  - fu_uefi_plugin_grub_func
  - fu_uefi_update_info_xml_func
  - fu_uefi_update_info_func
  - main
  source_file: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EFI_OS_DIR
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
      type_or_value: '"systemd"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_uefi_export
  - fu_acpi_uefi_parse_insyde
  - fu_acpi_uefi_parse
  - fu_acpi_uefi_init
  - fu_acpi_uefi_finalize
  - fu_acpi_uefi_class_init
  - fu_acpi_uefi_new
  - fu_acpi_uefi_cod_functional
  - fu_acpi_uefi_cod_indexed_filename
  source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INSYDE_QUIRK_COD_WORKING
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: parent_instance
        type: FuAcpiTable
      - name: insyde_cod_status
        type: guint32
      - name: is_insyde
        type: gboolean
      - name: '*guid'
        type: gchar
      item_type: struct
      name: _FuAcpiUefi
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_CAPSULE_DEVICE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: (fu_uefi_capsule_device_get_type())
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_NO_UX_CAPSULE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"no-ux-capsule"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_USE_SHIM_UNIQUE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"use-shim-unique"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_USE_LEGACY_BOOTMGR_DESC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"use-legacy-bootmgr-desc"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_SUPPORTS_BOOT_ORDER_LOCK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"supports-boot-order-lock"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_USE_SHIM_FOR_SB
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"use-shim-for-sb"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_NO_RT_SET_VARIABLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"no-rt-set-variable"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_NO_CAPSULE_HEADER_FIXUP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"no-capsule-header-fixup"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_ENABLE_DEBUGGING
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"enable-debugging"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_COD_INDEXED_FILENAME
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"cod-indexed-filename"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_MODIFY_BOOTORDER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"modify-bootorder"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_COD_DELL_RECOVERY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"cod-dell-recovery"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_NO_ESP_BACKUP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"no-esp-backup"'
    - item_type: preproc_def
      name: FU_UEFI_CAPSULE_DEVICE_FLAG_USE_FWUPD_EFI
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
      type_or_value: '"use-fwupd-efi"'
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuUefiCapsuleDeviceClass
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_CAPSULE_BACKEND_FREEBSD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.h
      type_or_value: (fu_uefi_capsule_backend_freebsd_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_UPDATE_INFO
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.h
      type_or_value: (fu_uefi_update_info_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_bgrt_setup
  - fu_uefi_bgrt_get_supported
  - fu_uefi_bgrt_get_xoffset
  - fu_uefi_bgrt_get_yoffset
  - fu_uefi_bgrt_get_width
  - fu_uefi_bgrt_get_height
  - fu_uefi_bgrt_class_init
  - fu_uefi_bgrt_init
  - fu_uefi_bgrt_new
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: xoffset
        type: guint32
      - name: yoffset
        type: guint32
      - name: width
        type: guint32
      - name: height
        type: guint32
      item_type: struct
      name: _FuUefiBgrt
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_CAPSULE_PLUGIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.h
      type_or_value: (fu_uefi_capsule_plugin_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_capsule_backend_linux_read
  - fu_uefi_capsule_backend_linux_device_new
  - fu_uefi_capsule_backend_linux_check_efivarfs
  - fu_uefi_capsule_backend_linux_coldplug
  - fu_uefi_capsule_backend_linux_check_smbios_enabled
  - fu_uefi_capsule_backend_linux_setup
  - fu_uefi_capsule_backend_linux_init
  - fu_uefi_capsule_backend_linux_class_init
  - fu_uefi_capsule_backend_new
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiCapsuleBackend
      - name: use_rt_set_variable
        type: gboolean
      item_type: struct
      name: _FuUefiCapsuleBackendLinux
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_BGRT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.h
      type_or_value: (fu_uefi_bgrt_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuUefiBootmgrFlags
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.h
    union: []
- function_names:
  - fu_uefi_grub_device_mkconfig
  - fu_uefi_grub_device_write_firmware
  - fu_uefi_grub_device_report_metadata_pre
  - fu_uefi_grub_device_prepare
  - fu_uefi_grub_device_init
  - fu_uefi_grub_device_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiCapsuleDevice
      item_type: struct
      name: _FuUefiGrubDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_uefi_capsule_backend_set_device_gtype
  - fu_uefi_capsule_backend_get_device_gtype
  - fu_uefi_capsule_backend_to_string
  - fu_uefi_capsule_backend_device_new_from_dev
  - fu_uefi_capsule_backend_init
  - fu_uefi_capsule_backend_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: device_gtype
        type: GType
      item_type: struct
      name: FuUefiCapsuleBackendPrivate
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_update_info_export
  - fu_uefi_update_info_set_guid
  - fu_uefi_update_info_set_capsule_fn
  - fu_uefi_update_info_set_capsule_flags
  - fu_uefi_update_info_set_hw_inst
  - fu_uefi_update_info_set_status
  - fu_uefi_update_info_build
  - fu_uefi_update_info_write
  - fu_uefi_update_info_parse
  - fu_uefi_update_info_get_guid
  - fu_uefi_update_info_get_capsule_fn
  - fu_uefi_update_info_get_capsule_flags
  - fu_uefi_update_info_get_hw_inst
  - fu_uefi_update_info_get_status
  - fu_uefi_update_info_finalize
  - fu_uefi_update_info_class_init
  - fu_uefi_update_info_init
  - fu_uefi_update_info_new
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EFIDP_MEDIA_TYPE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EFIDP_MEDIA_FILE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
      type_or_value: '0x4'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*guid'
        type: gchar
      - name: '*capsule_fn'
        type: gchar
      - name: capsule_flags
        type: guint32
      - name: hw_inst
        type: guint64
      - name: status
        type: FuUefiUpdateInfoStatus
      item_type: struct
      name: _FuUefiUpdateInfo
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    typedefs: []
    union: []
- function_names:
  - fu_bitmap_image_export
  - fu_bitmap_image_parse
  - fu_bitmap_image_get_width
  - fu_bitmap_image_get_height
  - fu_bitmap_image_class_init
  - fu_bitmap_image_init
  - fu_bitmap_image_new
  source_file: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: width
        type: guint32
      - name: height
        type: guint32
      item_type: struct
      name: _FuBitmapImage
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_GRUB_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.h
      type_or_value: (fu_uefi_grub_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_CAPSULE_BACKEND_LINUX
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.h
      type_or_value: (fu_uefi_capsule_backend_linux_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_COD_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.h
      type_or_value: (fu_uefi_cod_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_capsule_backend_device_new
  - fu_uefi_capsule_backend_freebsd_setup
  - fu_uefi_capsule_backend_freebsd_coldplug
  - fu_uefi_capsule_backend_freebsd_set_device_gtype
  - fu_uefi_capsule_backend_freebsd_init
  - fu_uefi_capsule_backend_freebsd_class_init
  - fu_uefi_capsule_backend_new
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiCapsuleBackend
      item_type: struct
      name: _FuUefiCapsuleBackendFreebsd
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_NVRAM_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.h
      type_or_value: (fu_uefi_nvram_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_nvram_device_get_results
  - fu_uefi_nvram_device_write_firmware
  - fu_uefi_nvram_device_report_metadata_pre
  - fu_uefi_nvram_device_prepare
  - fu_uefi_nvram_device_init
  - fu_uefi_nvram_device_class_init
  source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiCapsuleDevice
      item_type: struct
      name: _FuUefiNvramDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    typedefs: []
    union: []
- function_names:
  - fu_iommu_plugin_to_string
  - fu_iommu_plugin_backend_device_added
  - fu_iommu_plugin_add_security_attrs
  - fu_iommu_plugin_init
  - fu_iommu_plugin_constructed
  - fu_iommu_plugin_fix_host_security_attr
  - fu_iommu_plugin_undo_host_security_attr
  - fu_iommu_plugin_class_init
  source_file: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: has_iommu
        type: gboolean
      item_type: struct
      name: _FuIommuPlugin
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/iommu/fu-iommu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell/fu-dell-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_plugin_get_system_id
  - fu_dell_plugin_supported
  - fu_dell_plugin_device_registered
  - fu_dell_plugin_startup
  - fu_dell_plugin_add_security_attrs
  - fu_dell_plugin_init
  - fu_dell_plugin_constructed
  - fu_dell_plugin_class_init
  source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DACI_FLASH_INTERFACE_CLASS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
      type_or_value: '7'
    - item_type: preproc_def
      name: DACI_FLASH_INTERFACE_SELECT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BIOS_SETTING_BIOS_DOWNGRADE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
      type_or_value: '"com.dell-wmi-sysman.AllowBiosDowngrade"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuDellPlugin
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
    - fields:
      - name: type
        type: guint8
      - name: length
        type: guint8
      - name: handle
        type: guint16
      - name: cmd_address
        type: guint16
      - name: cmd_code
        type: guint8
      - name: supported_cmds
        type: guint32
      - name: '*tokens'
        type: guint8
      item_type: struct
      name: da_structure
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/fwupd/plugins/dell/fu-dell-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_realtek_mst_plugin_init
  - fu_realtek_mst_plugin_constructed
  - fu_realtek_mst_plugin_class_init
  source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuRealtekMstPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REALTEK_MST_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.h
      type_or_value: (fu_realtek_mst_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_realtek_mst_device_to_string
  - fu_realtek_mst_device_write_register
  - fu_realtek_mst_device_write_register_multi
  - fu_realtek_mst_device_read_register
  - fu_realtek_mst_device_set_indirect_address
  - fu_realtek_mst_device_read_register_indirect
  - fu_realtek_mst_device_write_register_indirect
  - fu_realtek_mst_device_poll_register
  - fu_realtek_mst_device_set_gpio88
  - fu_realtek_mst_device_setup
  - fu_realtek_mst_device_flash_iface_read
  - fu_realtek_mst_device_flash_iface_erase_sector
  - fu_realtek_mst_device_flash_iface_erase_block
  - fu_realtek_mst_device_flash_iface_write
  - fu_realtek_mst_device_detach
  - fu_realtek_mst_device_write_firmware
  - fu_realtek_mst_device_read_firmware
  - fu_realtek_mst_device_dump_firmware
  - fu_realtek_mst_device_attach
  - fu_realtek_mst_device_set_progress
  - fu_realtek_mst_device_init
  - fu_realtek_mst_device_class_init
  source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_ADDR_DEBUG
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x35'
    - item_type: preproc_def
      name: I2C_ADDR_ISP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x4a'
    - item_type: preproc_def
      name: CMD_ERASE_BUSY
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CMD_OPCODE_ERASE_SECTOR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CMD_OPCODE_ERASE_BLOCK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0xD8'
    - item_type: preproc_def
      name: CMD_OPCODE_READ
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CMD_OPCODE_WRITE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MCU_MODE_ISP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: MCU_MODE_WRITE_BUSY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: MCU_MODE_WRITE_BUF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: REG_GPIO88_CONFIG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x104F'
    - item_type: preproc_def
      name: REG_GPIO88_VALUE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0xFE3F'
    - item_type: preproc_def
      name: FLASH_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: FLASH_SECTOR_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: FLASH_BLOCK_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: FLASH_USER1_ADDR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: FLASH_FLAG1_ADDR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0xfe304'
    - item_type: preproc_def
      name: FLASH_USER2_ADDR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: FLASH_FLAG2_ADDR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0xff304'
    - item_type: preproc_def
      name: FLASH_USER_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '0x70000'
    - item_type: preproc_def
      name: FU_REALTEK_MST_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuI2cDevice
      - name: active_bank
        type: FuRealtekMstDeviceFlashBank
      - name: mode
        type: FuRealtekMstDeviceDualBankMode
      item_type: struct
      name: _FuRealtekMstDevice
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mediatek_scaler_firmware_parse
  - fu_mediatek_scaler_firmware_init
  - fu_mediatek_scaler_firmware_class_init
  - fu_mediatek_scaler_firmware_new
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTK_FW_OFFSET_VERSION
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
      type_or_value: '0x7118'
    - item_type: preproc_def
      name: MTK_FW_OFFSET_TIMESTAMP_DATE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
      type_or_value: '0x7200'
    - item_type: preproc_def
      name: MTK_FW_OFFSET_TIMESTAMP_TIME
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
      type_or_value: '0x720c'
    - item_type: preproc_def
      name: MTK_FW_TIMESTAMP_DATE_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
      type_or_value: '11'
    - item_type: preproc_def
      name: MTK_FW_TIMESTAMP_TIME_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
      type_or_value: '8'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      item_type: struct
      name: _FuMediatekScalerFirmware
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MEDIATEK_SCALER_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.h
      type_or_value: (fu_mediatek_scaler_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MEDIATEK_SCALER_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.h
      type_or_value: (fu_mediatek_scaler_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mediatek_scaler_device_ddc_write
  - fu_mediatek_scaler_device_ddc_read
  - fu_mediatek_scaler_device_set_ddc_priority
  - fu_mediatek_scaler_device_display_is_connected
  - fu_mediatek_scaler_device_display_is_connected_cb
  - fu_mediatek_scaler_device_get_hardware_version
  - fu_mediatek_scaler_device_ensure_firmware_version
  - fu_mediatek_scaler_device_open
  - fu_mediatek_scaler_device_close
  - fu_mediatek_scaler_device_verify_controller_type
  - fu_mediatek_scaler_device_setup
  - fu_mediatek_scaler_device_set_recv_info
  - fu_mediatek_scaler_device_get_data_ack_size
  - fu_mediatek_scaler_device_prepare_update_cb
  - fu_mediatek_scaler_device_prepare_update
  - fu_mediatek_scaler_device_set_data
  - fu_mediatek_scaler_device_get_staged_data
  - fu_mediatek_scaler_device_check_sent_info
  - fu_mediatek_scaler_device_run_isp
  - fu_mediatek_scaler_device_commit_firmware
  - fu_mediatek_scaler_device_set_isp_reboot
  - fu_mediatek_scaler_device_get_isp_status
  - fu_mediatek_scaler_device_is_update_success_cb
  - fu_mediatek_scaler_device_verify
  - fu_mediatek_scaler_device_chunk_data_is_blank
  - fu_mediatek_scaler_device_set_data_fast_forward
  - fu_mediatek_scaler_device_write_chunk
  - fu_mediatek_scaler_device_write_firmware_impl
  - fu_mediatek_scaler_device_write_firmware
  - fu_mediatek_scaler_device_prepare_firmware
  - fu_mediatek_scaler_device_convert_version
  - fu_mediatek_scaler_device_set_progress
  - fu_mediatek_scaler_device_init
  - fu_mediatek_scaler_device_class_init
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DDC_DATA_LEN_DFT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: DDC_DATA_FRAGEMENT_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '0x0B   '
    - item_type: preproc_def
      name: DDC_DATA_PAGE_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: DDC_RW_MAX_RETRY_CNT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_SUPPORTED_CONTROLLER_TYPE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '0x00005605'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_DDC_MSG_DELAY_MS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_CHUNK_SENT_DELAY_MS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_DEVICE_POLL_INTERVAL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_DEVICE_PRESENT_RETRY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_MEDIATEK_SCALER_FW_SIZE_MAX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: FWUPD_MEDIATEK_SCALER_FLAG_BANK2_ONLY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
      type_or_value: '"bank2-only"'
    structs:
    - fields:
      - name: '*chk'
        type: FuChunk
      - name: sent_sz
        type: guint32
      item_type: struct
      name: FuMediatekScalerWriteChunkHelper
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    - fields:
      - name: parent_instance
        type: FuDrmDevice
      - name: randval_cnt
        type: guint8
      item_type: struct
      name: _FuMediatekScalerDevice
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    typedefs: []
    union: []
- function_names:
  - fu_mediatek_scaler_version_to_string
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mediatek_scaler_plugin_init
  - fu_mediatek_scaler_plugin_constructed
  - fu_mediatek_scaler_plugin_class_init
  source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuMediatekScalerPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_usb4_plugin_init
  - fu_intel_usb4_plugin_constructed
  - fu_intel_usb4_plugin_device_registered
  - fu_intel_usb4_plugin_class_init
  source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelUsb4Plugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_USB4_DEVICE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.h
      type_or_value: (fu_intel_usb4_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - NVM_OFFSET_TO_METADATA
  - NVM_LENGTH_TO_METADATA
  - fu_intel_usb4_device_get_mmio
  - fu_intel_usb4_device_set_mmio
  - fu_intel_usb4_device_mbox_data_read
  - fu_intel_usb4_device_mbox_data_write
  - fu_intel_usb4_device_operation
  - fu_intel_usb4_device_nvm_read
  - fu_intel_usb4_device_nvm_write
  - fu_intel_usb4_device_activate
  - fu_intel_usb4_device_prepare_firmware
  - fu_intel_usb4_device_write_firmware
  - fu_intel_usb4_device_setup
  - fu_intel_usb4_device_to_string
  - fu_intel_usb4_device_set_progress
  - fu_intel_usb4_device_init
  - fu_intel_usb4_device_class_init
  source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GR_USB_INTERFACE_NUMBER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: GR_USB_BLOCK_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: USB_REQ_TYPE_GET_MMIO
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '0xc0 '
    - item_type: preproc_def
      name: USB_REQ_TYPE_SET_MMIO
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: REQ_HUB_GET_MMIO
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: REQ_HUB_SET_MMIO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '65'
    - item_type: preproc_def
      name: MBOX_ACCESS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: MBOX_REG_METADATA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MBOX_REG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '17 '
    - item_type: preproc_def
      name: MBOX_ERROR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: MBOX_OPVALID
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: MBOX_TIMEOUT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: NVM_READ_LENGTH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '0x224'
    - item_type: preproc_def
      name: FU_INTEL_USB4_DEVICE_REMOVE_DELAY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
      type_or_value: '60000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: blocksz
        type: guint
      - name: intf_nr
        type: guint8
      - name: nvm_vendor_id
        type: guint16
      - name: nvm_model_id
        type: guint16
      - name: nvm_device_id
        type: guint16
      item_type: struct
      name: _FuIntelUsb4Device
      pos:
        line_end: 66
        line_start: 57
        source_file: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_hpi_device_to_string
  - fu_ccgx_hpi_device_i2c_reset_cb
  - fu_ccgx_hpi_device_check_i2c_status
  - fu_ccgx_hpi_device_get_i2c_config
  - fu_ccgx_hpi_device_set_i2c_config
  - fu_ccgx_hpi_device_wait_for_notify
  - fu_ccgx_hpi_device_i2c_read
  - fu_ccgx_hpi_device_i2c_write
  - fu_ccgx_hpi_device_i2c_write_no_resp
  - fu_ccgx_hpi_device_reg_read_cb
  - fu_ccgx_hpi_device_reg_read
  - fu_ccgx_hpi_device_reg_write_cb
  - fu_ccgx_hpi_device_reg_write
  - fu_ccgx_hpi_device_reg_write_no_resp
  - fu_ccgx_hpi_device_clear_intr
  - fu_ccgx_hpi_device_reg_addr_gen
  - fu_ccgx_hpi_device_read_event_reg
  - fu_ccgx_hpi_device_app_read_intr_reg
  - fu_ccgx_hpi_device_wait_for_event
  - fu_ccgx_hpi_device_get_event
  - fu_ccgx_hpi_device_clear_all_events
  - fu_ccgx_hpi_device_validate_fw_cb
  - fu_ccgx_hpi_device_validate_fw
  - fu_ccgx_hpi_device_enter_flash_mode_cb
  - fu_ccgx_hpi_device_enter_flash_mode
  - fu_ccgx_hpi_device_leave_flash_mode_cb
  - fu_ccgx_hpi_device_leave_flash_mode
  - fu_ccgx_hpi_device_write_flash_cb
  - fu_ccgx_hpi_device_write_flash
  - fu_ccgx_hpi_device_read_flash_cb
  - fu_ccgx_hpi_device_read_flash
  - fu_ccgx_hpi_device_detach
  - fu_ccgx_hpi_device_attach
  - fu_ccgx_hpi_device_prepare_firmware
  - fu_ccgx_hpi_device_get_metadata_offset
  - fu_ccgx_hpi_device_load_metadata
  - fu_ccgx_hpi_device_save_metadata
  - fu_ccgx_hpi_device_write_firmware
  - fu_ccgx_hpi_device_ensure_silicon_id
  - fu_ccgx_hpi_device_convert_version
  - fu_ccgx_hpi_device_setup
  - fu_ccgx_hpi_device_set_quirk_kv
  - fu_ccgx_hpi_device_close
  - fu_ccgx_hpi_device_set_progress
  - fu_ccgx_hpi_device_init
  - fu_ccgx_hpi_device_class_init
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CCGX_HPI_DEVICE_FLAG_IS_IN_RESTART
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '"device-is-in-restart"'
    - item_type: preproc_def
      name: HPI_CMD_REG_READ_WRITE_DELAY_MS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: HPI_CMD_ENTER_FLASH_MODE_DELAY_MS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '20'
    - item_type: preproc_def
      name: HPI_CMD_SETUP_EVENT_WAIT_TIME_MS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '200'
    - item_type: preproc_def
      name: HPI_CMD_SETUP_EVENT_CLEAR_TIME_MS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '150'
    - item_type: preproc_def
      name: HPI_CMD_COMMAND_RESPONSE_TIME_MS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '500'
    - item_type: preproc_def
      name: HPI_CMD_COMMAND_CLEAR_EVENT_TIME_MS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: HPI_CMD_RESET_COMPLETE_DELAY_MS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '150'
    - item_type: preproc_def
      name: HPI_CMD_RETRY_DELAY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '30 '
    - item_type: preproc_def
      name: HPI_CMD_RESET_RETRY_CNT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: HPI_CMD_ENTER_LEAVE_FLASH_MODE_RETRY_CNT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: HPI_CMD_FLASH_WRITE_RETRY_CNT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: HPI_CMD_FLASH_READ_RETRY_CNT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: HPI_CMD_VALIDATE_FW_RETRY_CNT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
      type_or_value: '3'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: inf_num
        type: guint8
      - name: scb_index
        type: guint8
      - name: silicon_id
        type: guint16
      - name: fw_app_type
        type: guint16
      - name: hpi_addrsz
        type: guint8
      - name: num_ports
        type: guint8
      - name: fw_mode
        type: FuCcgxFwMode
      - name: fw_image_type
        type: FuCcgxImageType
      - name: target_address
        type: guint8
      - name: ep_bulk_in
        type: guint8
      - name: ep_bulk_out
        type: guint8
      - name: ep_intr_in
        type: guint8
      - name: flash_row_size
        type: guint32
      - name: flash_size
        type: guint32
      item_type: struct
      name: _FuCcgxHpiDevice
      pos:
        line_end: 33
        line_start: 17
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    - fields:
      - name: mode
        type: guint8
      - name: addr
        type: guint16
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuCcgxHpiDeviceRetryHelper
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    - fields:
      - name: addr
        type: guint16
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuCcgxHpiFlashWriteRetryHelper
      pos:
        line_end: 88
        line_start: 84
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    - fields:
      - name: addr
        type: guint16
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      item_type: struct
      name: FuCcgxHpiFlashReadRetryHelper
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_PURE_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.h
      type_or_value: (fu_ccgx_pure_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/ccgx/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_HID_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.h
      type_or_value: (fu_ccgx_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_HPI_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.h
      type_or_value: (fu_ccgx_hpi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_version_to_string
  - fu_ccgx_fw_mode_get_alternate
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_firmware_get_records
  - fu_ccgx_firmware_get_app_type
  - fu_ccgx_firmware_get_silicon_id
  - fu_ccgx_firmware_get_fw_mode
  - fu_ccgx_firmware_export
  - fu_ccgx_firmware_record_free
  - fu_ccgx_firmware_add_record
  - fu_ccgx_firmware_parse_md_block
  - fu_ccgx_firmware_tokenize_cb
  - fu_ccgx_firmware_parse
  - fu_ccgx_firmware_write_record
  - fu_ccgx_firmware_write
  - fu_ccgx_firmware_build
  - fu_ccgx_firmware_convert_version
  - fu_ccgx_firmware_init
  - fu_ccgx_firmware_finalize
  - fu_ccgx_firmware_class_init
  - fu_ccgx_firmware_new
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CCGX_APP_VERSION_OFFSET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
      type_or_value: '228 '
    - item_type: preproc_def
      name: FU_CCGX_FIRMWARE_TOKENS_MAX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
      type_or_value: '100000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: '*records'
        type: GPtrArray
      - name: app_type
        type: guint16
      - name: silicon_id
        type: guint16
      - name: fw_mode
        type: FuCcgxFwMode
      item_type: struct
      name: _FuCcgxFirmware
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    - fields:
      - name: '*self'
        type: FuCcgxFirmware
      - name: flags
        type: FuFirmwareParseFlags
      item_type: struct
      name: FuCcgxFirmwareTokenHelper
      pos:
        line_end: 284
        line_start: 281
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_pure_hid_device_command
  - fu_ccgx_pure_hid_device_enter_flashing_mode
  - fu_ccgx_pure_hid_device_magic_unlock
  - fu_ccgx_pure_hid_device_ensure_fw_info
  - fu_ccgx_pure_hid_device_setup
  - fu_ccgx_pure_hid_device_prepare_firmware
  - fu_ccgx_pure_hid_device_write_row
  - fu_ccgx_pure_hid_device_write_firmware
  - fu_ccgx_pure_hid_device_set_progress
  - fu_ccgx_pure_hid_device_init
  - fu_ccgx_pure_hid_device_to_string
  - fu_ccgx_pure_hid_device_set_quirk_kv
  - fu_ccgx_pure_hid_device_convert_version
  - fu_ccgx_pure_hid_device_class_init
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ROW_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: VIDPID_BLOCK_ID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
      type_or_value: '6'
    - item_type: preproc_def
      name: FU_CCGX_PURE_HID_DEVICE_TIMEOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: operating_mode
        type: FuCcgxPureHidFwMode
      - name: silicon_id
        type: guint32
      - name: flash_row_size
        type: gsize
      item_type: struct
      name: _FuCcgxPureHidDevice
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_hid_device_enable_hpi_mode_cb
  - fu_ccgx_hid_device_detach
  - fu_ccgx_hid_device_setup
  - fu_ccgx_hid_device_set_progress
  - fu_ccgx_hid_device_init
  - fu_ccgx_hid_device_class_init
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CCGX_HID_DEVICE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_CCGX_HID_DEVICE_RETRY_DELAY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
      type_or_value: '30   '
    - item_type: preproc_def
      name: FU_CCGX_HID_DEVICE_RETRY_CNT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
      type_or_value: '5'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuCcgxHidDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CCGX_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.h
      type_or_value: (fu_ccgx_firmware_get_type())
    structs:
    - fields:
      - name: array_id
        type: guint8
      - name: row_number
        type: guint16
      - name: '*data'
        type: GBytes
      item_type: struct
      name: FuCcgxFirmwareRecord
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.h
    typedefs: []
    union: []
- function_names:
  - fu_ccgx_plugin_init
  - fu_ccgx_plugin_constructed
  - fu_ccgx_plugin_class_init
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCcgxPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_READ_WRITE_DELAY_MS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: CY_SCB_INDEX_POS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '15'
    - item_type: preproc_def
      name: CY_I2C_WRITE_COMMAND_POS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CY_I2C_WRITE_COMMAND_LEN_POS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CY_I2C_GET_STATUS_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CY_I2C_MODE_WRITE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CY_I2C_MODE_READ
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CY_I2C_ERROR_BIT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CY_I2C_ARBITRATION_ERROR_BIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CY_I2C_NAK_ERROR_BIT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CY_I2C_BUS_ERROR_BIT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CY_I2C_STOP_BIT_ERROR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CY_I2C_BUS_BUSY_ERROR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CY_I2C_ENABLE_PRECISE_TIMING
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CY_I2C_EVENT_NOTIFICATION_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PD_I2C_TARGET_ADDRESS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_CCGX_HPI_WAIT_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_CCGX_HPI_FREQ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '400000'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_BRIDGE_MODE_CMD_SIG
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x42'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_GET_SILICON_ID_CMD_SIG
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x53'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_INTR_REG_CLEAR_RQT
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_JUMP_TO_BOOT_CMD_SIG
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x4A'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_JUMP_TO_ALT_FW_CMD_SIG
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x41'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_DEVICE_RESET_CMD_SIG
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x52'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_RESET_DEVICE_CMD
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_ENTER_FLASHING_MODE_CMD_SIG
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_FLASH_READ_WRITE_CMD_SIG
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x46'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_FLASH_ROW_READ_CMD
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_FLASH_ROW_WRITE_CMD
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_FLASH_READ_WRITE_ROW_LSB
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_REG_FLASH_READ_WRITE_ROW_MSB
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_CCGX_PD_RESP_U_VDM_TYPE
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HPI_GET_SILICON_ID_CMD_SIG
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x53'
    - item_type: preproc_def
      name: HPI_REG_INTR_REG_CLEAR_RQT
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HPI_JUMP_TO_BOOT_CMD_SIG
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x4A'
    - item_type: preproc_def
      name: HPI_DEVICE_RESET_CMD_SIG
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x52'
    - item_type: preproc_def
      name: HPI_REG_RESET_DEVICE_CMD
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HPI_ENTER_FLASHING_MODE_CMD_SIG
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: HPI_FLASH_READ_WRITE_CMD_SIG
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x46'
    - item_type: preproc_def
      name: HPI_REG_FLASH_ROW_READ_CMD
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HPI_REG_FLASH_ROW_WRITE_CMD
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HPI_REG_FLASH_READ_WRITE_ROW_LSB
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HPI_REG_FLASH_READ_WRITE_ROW_MSB
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: HPI_PORT_DISABLE_CMD
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: HPI_DEVICE_VERSION_SIZE_HPIV1
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HPI_DEVICE_VERSION_SIZE_HPIV2
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '24'
    - item_type: preproc_def
      name: HPI_META_DATA_OFFSET_ROW_128
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '64'
    - item_type: preproc_def
      name: HPI_META_DATA_OFFSET_ROW_256
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: (64 + 128)
    - item_type: preproc_def
      name: PD_I2C_USB_EP_BULK_OUT
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PD_I2C_USB_EP_BULK_IN
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x82'
    - item_type: preproc_def
      name: PD_I2C_USB_EP_INTR_IN
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x83'
    - item_type: preproc_def
      name: PD_I2CM_USB_EP_BULK_OUT
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PD_I2CM_USB_EP_BULK_IN
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x83'
    - item_type: preproc_def
      name: PD_I2CM_USB_EP_INTR_IN
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
      type_or_value: '0x84'
    structs:
    - fields:
      - name: frequency
        type: guint32
      - name: target_address
        type: guint8
      - name: is_msb_first
        type: guint8
      - name: is_initiator
        type: guint8
      - name: s_ignore
        type: guint8
      - name: is_clock_stretch
        type: guint8
      - name: is_loop_back
        type: guint8
      - name: reserved[6]
        type: guint8
      item_type: struct
      name: CyI2CConfig
      pos:
        line_end: 118
        line_start: 108
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - fields:
      - name: event_code
        type: guint16
      - name: event_length
        type: guint16
      - name: event_data[128]
        type: guint8
      item_type: struct
      name: HPIEvent
      pos:
        line_end: 188
        line_start: 184
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    typedefs:
    - item_type: typedef
      name: CyVendorCommand
      pos:
        line_end: 106
        line_start: 35
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: CyI2CDataConfigBits
      pos:
        line_end: 124
        line_start: 120
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: HPIDevReg
      pos:
        line_end: 175
        line_start: 126
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: HPIRegSection
      pos:
        line_end: 182
        line_start: 177
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: HPIRegPart
      pos:
        line_end: 196
        line_start: 190
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: CyPDReg
      pos:
        line_end: 230
        line_start: 198
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    - item_type: typedef
      name: HPIResp
      pos:
        line_end: 319
        line_start: 272
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    union: []
- function_names:
  - fu_uefi_db_device_probe
  - fu_uefi_db_device_write_firmware
  - fu_uefi_db_device_add_security_attrs
  - fu_uefi_db_device_set_progress
  - fu_uefi_db_device_init
  - fu_uefi_db_device_class_init
  source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UEFI_DB_DEVICE_DEFAULT_REQUIRED_FREE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
      type_or_value: '(16 * 1024) '
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiDevice
      item_type: struct
      name: _FuUefiDbDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_DB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-device.h
      type_or_value: (fu_uefi_db_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_db_plugin_init
  - fu_uefi_db_plugin_constructed
  - fu_uefi_db_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiDbPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_kek_plugin_init
  - fu_uefi_kek_plugin_constructed
  - fu_uefi_kek_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiKekPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_KEK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.h
      type_or_value: (fu_uefi_kek_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_kek_device_probe
  - fu_uefi_kek_device_write_firmware
  - fu_uefi_kek_device_set_progress
  - fu_uefi_kek_device_init
  - fu_uefi_kek_device_class_init
  source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_UEFI_KEK_DEVICE_DEFAULT_REQUIRED_FREE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
      type_or_value: '(4 * 1024) '
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiDevice
      item_type: struct
      name: _FuUefiKekDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    typedefs: []
    union: []
- function_names:
  - fu_elan_kbd_debug_device_detach
  - fu_elan_kbd_debug_device_set_progress
  - fu_elan_kbd_debug_device_init
  - fu_elan_kbd_debug_device_class_init
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuElanKbdDebugDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c
    typedefs: []
    union: []
- function_names:
  - fu_elan_kbd_runtime_detach
  - fu_elan_kbd_runtime_set_progress
  - fu_elan_kbd_runtime_init
  - fu_elan_kbd_runtime_class_init
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuElanKbdRuntime
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELAN_KBD_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.h
      type_or_value: (fu_elan_kbd_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elan_kbd_device_to_string
  - fu_elan_kbd_device_status_check
  - fu_elan_kbd_device_cmd
  - fu_elan_kbd_device_read_data
  - fu_elan_kbd_device_write_data
  - fu_elan_kbd_device_attach
  - fu_elan_kbd_device_ensure_ver_spec
  - fu_elan_kbd_device_ensure_ver_fw
  - fu_elan_kbd_device_ensure_dev_status
  - fu_elan_kbd_device_ensure_boot_cond1
  - fu_elan_kbd_device_abort
  - fu_elan_kbd_device_setup
  - fu_elan_kbd_device_cmd_read_rom_finished
  - fu_elan_kbd_device_cmd_read_rom
  - fu_elan_kbd_device_cmd_read_option_finished
  - fu_elan_kbd_device_cmd_read_option
  - fu_elan_kbd_device_dump_firmware
  - fu_elan_kbd_device_read_firmware
  - fu_elan_kbd_device_cmd_get_auth_lock
  - fu_elan_kbd_device_cmd_set_auth_lock
  - fu_elan_kbd_device_cmd_unlock
  - fu_elan_kbd_device_cmd_entry_iap
  - fu_elan_kbd_device_cmd_finished_iap
  - fu_elan_kbd_device_cmd_write_rom_finished
  - fu_elan_kbd_device_cmd_write_rom
  - fu_elan_kbd_device_write_firmware
  - fu_elan_kbd_device_set_progress
  - fu_elan_kbd_device_init
  - fu_elan_kbd_device_class_init
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_EP_CMD_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_EP_DATA_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: ver_spec
        type: guint16
      - name: status
        type: FuElanKbdDevStatus
      - name: bootcond1
        type: FuElanKbdBootCond1
      item_type: struct
      name: _FuElanKbdDevice
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELAN_KBD_RUNTIME
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.h
      type_or_value: (fu_elan_kbd_runtime_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elan_kbd_firmware_validate
  - fu_elan_kbd_firmware_parse
  - fu_elan_kbd_firmware_write
  - fu_elan_kbd_firmware_init
  - fu_elan_kbd_firmware_class_init
  - fu_elan_kbd_firmware_new
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuElanKbdFirmware
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELAN_KBD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.h
      type_or_value: (fu_elan_kbd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_ADDR_BOOT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_ADDR_APP
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_ADDR_OPTION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_SIZE_ROM
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_SIZE_BOOT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: (FU_ELAN_KBD_DEVICE_ADDR_APP - FU_ELAN_KBD_DEVICE_ADDR_BOOT)
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_SIZE_APP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: (FU_ELAN_KBD_DEVICE_SIZE_ROM - FU_ELAN_KBD_DEVICE_ADDR_APP)
    - item_type: preproc_def
      name: FU_ELAN_KBD_DEVICE_SIZE_OPTION
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-common.h
      type_or_value: '0x100'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELAN_KBD_DEBUG_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.h
      type_or_value: (fu_elan_kbd_debug_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_elan_kbd_plugin_init
  - fu_elan_kbd_plugin_constructed
  - fu_elan_kbd_plugin_class_init
  source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuElanKbdPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_generate_checksum
  - fu_synaptics_rmi_function_parse
  - fu_synaptics_rmi_device_writeln
  - fu_synaptics_rmi_verify_sha256_signature
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_FUNCTION_QUERY_OFFSET
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RMI_FUNCTION_COMMAND_OFFSET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RMI_FUNCTION_CONTROL_OFFSET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RMI_FUNCTION_DATA_OFFSET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RMI_FUNCTION_INTERRUPT_SOURCES_OFFSET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RMI_FUNCTION_NUMBER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RMI_FUNCTION_VERSION_MASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '0x60'
    - item_type: preproc_def
      name: RMI_FUNCTION_INTERRUPT_SOURCES_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
      type_or_value: '0x7'
    structs: []
    typedefs:
    - item_type: typedef
      name: gnutls_data_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    union: []
- function_names:
  - fu_synaptics_rmi_v5_device_detach
  - fu_synaptics_rmi_v5_device_erase_all
  - fu_synaptics_rmi_v5_device_write_block
  - fu_synaptics_rmi_v5_device_secure_check
  - fu_synaptics_rmi_v5_device_write_firmware
  - fu_synaptics_rmi_v5_device_setup
  - fu_synaptics_rmi_v5_device_query_status
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_F34_WRITE_FW_BLOCK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: RMI_F34_ERASE_ALL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: RMI_F34_WRITE_LOCKDOWN_BLOCK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: RMI_F34_WRITE_CONFIG_BLOCK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: RMI_F34_WRITE_SIGNATURE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: RMI_F34_ENABLE_FLASH_PROG
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: RMI_F34_BLOCK_SIZE_OFFSET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RMI_F34_FW_BLOCKS_OFFSET
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RMI_F34_CONFIG_BLOCKS_OFFSET
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: RMI_F34_ERASE_WAIT_MS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
      type_or_value: '(5 * 1000) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_hid_device_read
  - fu_synaptics_rmi_hid_device_read_packet_register
  - fu_synaptics_rmi_hid_device_write
  - fu_synaptics_rmi_hid_device_wait_for_attr
  - fu_synaptics_rmi_hid_device_set_mode
  - fu_synaptics_rmi_hid_device_open
  - fu_synaptics_rmi_hid_device_close
  - fu_synaptics_rmi_hid_device_rebind_driver
  - fu_synaptics_rmi_hid_device_detach
  - fu_synaptics_rmi_hid_device_attach
  - fu_synaptics_rmi_hid_device_set_page
  - fu_synaptics_rmi_hid_device_disable_sleep
  - fu_synaptics_rmi_hid_device_query_status
  - fu_synaptics_rmi_hid_device_set_progress
  - fu_synaptics_rmi_hid_device_init
  - fu_synaptics_rmi_hid_device_class_init
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_WRITE_REPORT_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0x9 '
    - item_type: preproc_def
      name: RMI_READ_ADDR_REPORT_ID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0xa '
    - item_type: preproc_def
      name: RMI_READ_DATA_REPORT_ID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0xb '
    - item_type: preproc_def
      name: RMI_ATTN_REPORT_ID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0xc '
    - item_type: preproc_def
      name: RMI_SET_RMI_MODE_REPORT_ID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0xf '
    - item_type: preproc_def
      name: RMI_DEVICE_DEFAULT_TIMEOUT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: HID_RMI4_REPORT_ID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HID_RMI4_READ_INPUT_COUNT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HID_RMI4_READ_INPUT_DATA
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HID_RMI4_READ_OUTPUT_ADDR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HID_RMI4_READ_OUTPUT_COUNT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: HID_RMI4_WRITE_OUTPUT_COUNT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HID_RMI4_WRITE_OUTPUT_ADDR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HID_RMI4_WRITE_OUTPUT_DATA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: HID_RMI4_FEATURE_MODE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HID_RMI4_ATTN_INTERRUPT_SOURCES
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HID_RMI4_ATTN_DATA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RMI_F01_CRTL0_NOSLEEP_BIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: RMI_F01_CTRL0_SLEEP_MODE_MASK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: RMI_SLEEP_MODE_NORMAL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: RMI_SLEEP_MODE_SENSOR_SLEEP
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_SYNAPTICS_RMI_HID_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuSynapticsRmiDevice
      item_type: struct
      name: _FuSynapticsRmiHidDevice
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    typedefs:
    - item_type: typedef
      name: FuSynapticsRmiHidMode
      pos:
        line_end: 287
        line_start: 283
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    union: []
- function_names:
  - fu_synaptics_rmi_firmware_add_image
  - fu_synaptics_rmi_firmware_add_image_v10
  - fu_synaptics_rmi_firmware_export
  - fu_synaptics_rmi_firmware_parse_v10
  - fu_synaptics_rmi_firmware_parse_v0x
  - fu_synaptics_rmi_firmware_parse
  - fu_synaptics_rmi_firmware_get_sig_size
  - fu_synaptics_rmi_firmware_write_v0x
  - fu_synaptics_rmi_firmware_write_v10
  - fu_synaptics_rmi_firmware_build
  - fu_synaptics_rmi_firmware_write
  - fu_synaptics_rmi_firmware_init
  - fu_synaptics_rmi_firmware_finalize
  - fu_synaptics_rmi_firmware_class_init
  - fu_synaptics_rmi_firmware_new
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_IMG_FW_OFFSET
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: RMI_IMG_V10_CNTR_ADDR_OFFSET
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: RMI_IMG_MAX_CONTAINERS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: kind
        type: RmiFirmwareKind
      - name: checksum
        type: guint32
      - name: io
        type: guint8
      - name: bootloader_version
        type: guint8
      - name: build_id
        type: guint32
      - name: package_id
        type: guint32
      - name: product_info
        type: guint16
      - name: '*product_id'
        type: gchar
      - name: sig_size
        type: guint32
      item_type: struct
      name: _FuSynapticsRmiFirmware
      pos:
        line_end: 34
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    typedefs:
    - item_type: typedef
      name: RmiFirmwareKind
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_RMI_HID_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.h
      type_or_value: (fu_synaptics_rmi_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_ps2_device_read_ack
  - fu_synaptics_rmi_ps2_device_read_byte
  - fu_synaptics_rmi_ps2_device_write_byte
  - fu_synaptics_rmi_ps2_device_set_resolution_sequence
  - fu_synaptics_rmi_ps2_device_status_request
  - fu_synaptics_rmi_ps2_device_sample_rate
  - fu_synaptics_rmi_ps2_device_detect_synaptics_styk
  - fu_synaptics_rmi_ps2_device_query_build_id
  - fu_synaptics_rmi_ps2_device_query_product_sub_id
  - fu_synaptics_rmi_ps2_device_enter_iep_mode
  - fu_synaptics_rmi_ps2_device_write_rmi_register
  - fu_synaptics_rmi_ps2_device_read_rmi_register
  - fu_synaptics_rmi_ps2_device_read_rmi_packet_register
  - fu_synaptics_rmi_ps2_device_query_status
  - fu_synaptics_rmi_ps2_device_set_page
  - fu_synaptics_rmi_ps2_device_read
  - fu_synaptics_rmi_ps2_device_read_packet_register
  - fu_synaptics_rmi_ps2_device_write
  - fu_synaptics_rmi_ps2_device_write_bus_select
  - fu_synaptics_rmi_ps2_device_probe
  - fu_synaptics_rmi_ps2_device_open
  - fu_synaptics_rmi_ps2_device_detach
  - fu_synaptics_rmi_ps2_device_setup
  - fu_synaptics_rmi_ps2_device_attach
  - fu_synaptics_rmi_ps2_device_init
  - fu_synaptics_rmi_ps2_device_wait_for_attr
  - fu_synaptics_rmi_ps2_device_class_init
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_RMI_DEVICE_BIND_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
      type_or_value: '1000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuSynapticsRmiDevice
      item_type: struct
      name: _FuSynapticsRmiPs2Device
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_RMI_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.h
      type_or_value: (fu_synaptics_rmi_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_firmware_0x_func
  - fu_synaptics_rmi_firmware_10_func
  - main
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_RMI_PS2_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.h
      type_or_value: (fu_synaptics_rmi_ps2_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_plugin_init
  - fu_synaptics_rmi_plugin_constructed
  - fu_synaptics_rmi_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsRmiPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_PRODUCT_ID_LENGTH
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.h
      type_or_value: '10'
    - item_type: preproc_def
      name: RMI_DEVICE_PDT_ENTRY_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.h
      type_or_value: '6'
    structs:
    - fields:
      - name: query_base
        type: guint16
      - name: command_base
        type: guint16
      - name: control_base
        type: guint16
      - name: data_base
        type: guint16
      - name: interrupt_source_count
        type: guint8
      - name: function_number
        type: guint8
      - name: function_version
        type: guint8
      - name: interrupt_reg_num
        type: guint8
      - name: interrupt_mask
        type: guint8
      item_type: struct
      name: FuSynapticsRmiFunction
      pos:
        line_end: 25
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.h
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_v7_device_detach
  - fu_synaptics_rmi_v7_device_erase_partition
  - fu_synaptics_rmi_v7_device_erase_all
  - fu_synaptics_rmi_v7_device_write_blocks
  - fu_synaptics_rmi_v7_device_write_partition_signature
  - fu_synaptics_rmi_v7_device_write_partition
  - fu_synaptics_rmi_v7_device_get_pubkey
  - fu_synaptics_rmi_v7_device_secure_check
  - fu_synaptics_rmi_v7_device_write_firmware
  - fu_synaptics_rmi_v7_device_read_flash_config
  - fu_synaptics_rmi_v7_device_setup
  - fu_synaptics_rmi_v7_device_query_status
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_F34_ERASE_WAIT_MS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
      type_or_value: '10000 '
    structs: []
    typedefs:
    - item_type: typedef
      name: RmiFlashCommand
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_RMI_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: (fu_synaptics_rmi_device_get_type())
    - item_type: preproc_def
      name: RMI_F34_HAS_NEW_REG_MAP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: RMI_F34_HAS_CONFIG_ID
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: RMI_F34_BLOCK_DATA_OFFSET
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RMI_F34_BLOCK_DATA_V1_OFFSET
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RMI_F34_ENABLE_WAIT_MS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '300 '
    - item_type: preproc_def
      name: RMI_F34_IDLE_WAIT_MS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '500 '
    - item_type: preproc_def
      name: RMI_DEVICE_PAGE_SELECT_REGISTER
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: RMI_DEVICE_BUS_SELECT_REGISTER
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '0xfe'
    - item_type: preproc_def
      name: RMI_KEY_SIZE_2K
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '0x100'
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      - name: (*setup)(FuSynapticsRmiDevice *self, GError **error)
        type: gboolean
      - name: (*query_status)(FuSynapticsRmiDevice *self, GError **error)
        type: gboolean
      - name: "(*write)(FuSynapticsRmiDevice *self,\n\t\t\t  guint16 addr,\n\t\t\t
          \ GByteArray *req,\n\t\t\t  FuSynapticsRmiDeviceFlags flags,\n\t\t\t  GError
          **error)"
        type: gboolean
      - name: '*(*read)(FuSynapticsRmiDevice *self, guint16 addr, gsize req_sz, GError
          **error)'
        type: GByteArray
      - name: "*(*read_packet_register)(FuSynapticsRmiDevice *self,\n\t\t\t\t\t    guint16
          addr,\n\t\t\t\t\t    gsize req_sz,\n\t\t\t\t\t    GError **error)"
        type: GByteArray
      - name: "(*wait_for_attr)(FuSynapticsRmiDevice *self,\n\t\t\t\t  guint8 source_mask,\n\t\t\t\t
          \ guint timeout_ms,\n\t\t\t\t  GError **error)"
        type: gboolean
      - name: (*set_page)(FuSynapticsRmiDevice *self, guint8 page, GError **error)
        type: gboolean
      - name: (*disable_sleep)(FuSynapticsRmiDevice *self, GError **error)
        type: gboolean
      - name: (*write_bus_select)(FuSynapticsRmiDevice *self, guint8 bus, GError **error)
        type: gboolean
      - name: (*query_build_id)(FuSynapticsRmiDevice *self, guint32 *build_id, GError
          **error)
        type: gboolean
      - name: "(*query_product_sub_id)(FuSynapticsRmiDevice *self,\n\t\t\t\t\t guint8
          *product_sub_id,\n\t\t\t\t\t GError **error)"
        type: gboolean
      - name: (*enter_iep_mode)(FuSynapticsRmiDevice *self, GError **error)
        type: gboolean
      item_type: struct
      name: _FuSynapticsRmiDeviceClass
      pos:
        line_end: 51
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
    - fields:
      - name: block_count_cfg
        type: guint16
      - name: block_count_fw
        type: guint16
      - name: block_size
        type: guint16
      - name: config_length
        type: guint16
      - name: payload_length
        type: guint16
      - name: build_id
        type: guint32
      - name: bootloader_id[2]
        type: guint8
      - name: status_addr
        type: guint8
      - name: has_pubkey
        type: gboolean
      item_type: struct
      name: FuSynapticsRmiFlash
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
    typedefs:
    - item_type: typedef
      name: FuSynapticsRmiDeviceFlags
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
    - item_type: typedef
      name: RmiDeviceWaitForIdleFlags
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_synaptics_rmi_device_get_flash
  - fu_synaptics_rmi_device_flash_to_string
  - fu_synaptics_rmi_device_to_string
  - fu_synaptics_rmi_device_get_function
  - fu_synaptics_rmi_device_read
  - fu_synaptics_rmi_device_read_packet_register
  - fu_synaptics_rmi_device_write
  - fu_synaptics_rmi_device_set_page
  - fu_synaptics_rmi_device_set_iepmode
  - fu_synaptics_rmi_device_write_bus_select
  - fu_synaptics_rmi_device_reset
  - fu_synaptics_rmi_device_scan_pdt
  - fu_synaptics_rmi_device_set_sig_size
  - fu_synaptics_rmi_device_get_sig_size
  - fu_synaptics_rmi_device_set_max_page
  - fu_synaptics_rmi_device_set_product_id
  - fu_synaptics_rmi_device_query_status
  - fu_synaptics_rmi_device_query_build_id
  - fu_synaptics_rmi_device_query_product_sub_id
  - fu_synaptics_rmi_device_setup
  - fu_synaptics_rmi_device_prepare_firmware
  - fu_synaptics_rmi_device_poll
  - fu_synaptics_rmi_device_poll_wait
  - fu_synaptics_rmi_device_wait_for_attr
  - fu_synaptics_rmi_device_enter_iep_mode
  - fu_synaptics_rmi_device_wait_for_idle
  - fu_synaptics_rmi_device_disable_sleep
  - fu_synaptics_rmi_device_write_bootloader_id
  - fu_synaptics_rmi_device_disable_irqs
  - fu_synaptics_rmi_device_write_firmware
  - fu_synaptics_rmi_device_init
  - fu_synaptics_rmi_device_finalize
  - fu_synaptics_rmi_device_class_init
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_DEVICE_PAGE_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: RMI_DEVICE_PAGE_SCAN_START
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x00e9'
    - item_type: preproc_def
      name: RMI_DEVICE_PAGE_SCAN_END
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: RMI_DEVICE_F01_BASIC_QUERY_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '11'
    - item_type: preproc_def
      name: RMI_DEVICE_F01_LTS_RESERVED_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '19'
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY1_HAS_LTS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY1_HAS_SENSOR_ID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY1_HAS_PROPS_2
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY42_DS4_QUERIES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY43_01_PACKAGE_ID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: RMI_DEVICE_F01_QRY43_01_BUILD_ID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: RMI_F34_COMMAND_MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: RMI_F34_STATUS_MASK
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: RMI_F34_STATUS_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RMI_F34_ENABLED_MASK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: RMI_F34_COMMAND_V1_MASK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: RMI_F34_STATUS_V1_MASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: RMI_F34_ENABLED_V1_MASK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: RMI_F01_CMD_DEVICE_RESET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RMI_F01_DEFAULT_RESET_DELAY_MS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '100'
    structs:
    - fields:
      - name: flash
        type: FuSynapticsRmiFlash
      - name: '*functions'
        type: GPtrArray
      - name: '*f01'
        type: FuSynapticsRmiFunction
      - name: '*f34'
        type: FuSynapticsRmiFunction
      - name: current_page
        type: guint8
      - name: sig_size
        type: guint16
      - name: max_page
        type: guint8
      - name: in_iep_mode
        type: gboolean
      item_type: struct
      name: FuSynapticsRmiDevicePrivate
      pos:
        line_end: 54
        line_start: 45
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_rmi_v6_device_setup
  source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMI_F34_CONFIG_BLOCKS_OFFSET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v6-device.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_tpm_eventlog_sort_cb
  - fu_tpm_eventlog_process
  - main
  source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_LOG_DOMAIN
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog.c
      type_or_value: '"FuTpmEventlog"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuTpmEventlogParserFlags
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.h
    union: []
- function_names:
  - fu_tpm_device_1_2_func
  - fu_tpm_device_2_0_func
  - fu_tpm_eventlog_parse_v1_func
  - fu_tpm_eventlog_parse_v2_func
  - fu_tpm_empty_pcr_func
  - main
  source_file: /src/fwupd/plugins/tpm/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_tpm_eventlog_parser_item_free
  - fu_tpm_eventlog_item_to_string
  - fu_tpm_eventlog_parser_parse_blob_v2
  - fu_tpm_eventlog_parser_new
  source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V1_IDX_PCR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V1_IDX_TYPE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V1_IDX_DIGEST
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V1_IDX_EVENT_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '0x1c'
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V1_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FU_TPM_EVENTLOG_V2_HDR_SIGNATURE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-parser.c
      type_or_value: '"Spec ID Event03"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _g_string_isxdigit
  - fu_tpm_v1_device_parse_line
  - fu_tpm_v1_device_probe
  - fu_tpm_v1_device_init
  - fu_tpm_v1_device_class_init
  - fu_tpm_v1_device_new
  source_file: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuTpmDevice
      item_type: struct
      name: _FuTpmV1Device
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/tpm/fu-tpm-v1-device.c
    typedefs: []
    union: []
- function_names:
  - fu_tpm_plugin_to_string
  - fu_tpm_plugin_set_bios_pcr0s
  - fu_tpm_plugin_device_registered
  - fu_tpm_plugin_device_added
  - fu_tpm_plugin_add_security_attr_version
  - fu_tpm_plugin_add_security_attr_eventlog
  - fu_tpm_plugin_add_security_attr_empty
  - fu_tpm_plugin_add_security_attrs
  - fu_tpm_plugin_eventlog_report_metadata
  - fu_tpm_plugin_coldplug_eventlog
  - fu_tpm_plugin_coldplug
  - fu_tpm_plugin_startup
  - fu_tpm_plugin_init
  - fu_tpm_plugin_constructed
  - fu_tpm_plugin_finalize
  - fu_tpm_plugin_class_init
  source_file: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*tpm_device'
        type: FuTpmDevice
      - name: '*bios_device'
        type: FuDevice
      - name: '*ev_items'
        type: GPtrArray
      item_type: struct
      name: _FuTpmPlugin
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_tpm_device_set_family
  - fu_tpm_device_get_family
  - fu_tpm_device_add_checksum
  - fu_tpm_device_get_checksums
  - fu_tpm_device_to_string
  - fu_tpm_device_item_free
  - fu_tpm_device_finalize
  - fu_tpm_device_init
  - fu_tpm_device_class_init
  source_file: /src/fwupd/plugins/tpm/fu-tpm-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: idx
        type: guint
      - name: '*checksum'
        type: gchar
      item_type: struct
      name: FuTpmDevicePcrItem
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/tpm/fu-tpm-device.c
    - fields:
      - name: '*family'
        type: gchar
      - name: '*items'
        type: GPtrArray
      item_type: struct
      name: FuTpmDevicePrivate
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/tpm/fu-tpm-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pcr
        type: guint8
      - name: kind
        type: FuTpmEventlogItemKind
      - name: '*checksum_sha1'
        type: GBytes
      - name: '*checksum_sha256'
        type: GBytes
      - name: '*checksum_sha384'
        type: GBytes
      - name: '*blob'
        type: GBytes
      item_type: struct
      name: FuTpmEventlogItem
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/tpm/fu-tpm-device.h
      type_or_value: (fu_tpm_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuTpmDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/tpm/fu-tpm-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-v2-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_V2_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/tpm/fu-tpm-v2-device.h
      type_or_value: (fu_tpm_v2_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_tpm_v2_device_probe
  - fu_tpm_v2_device_get_uint32
  - fu_tpm_v2_device_get_string
  - fu_tpm_v2_device_convert_manufacturer
  - fu_tpm_v2_device_setup_pcrs
  - fu_tpm_v2_device_ensure_commands
  - fu_tpm_v2_device_setup
  - fu_tpm_v2_device_upgrade_data
  - fu_tpm_v2_device_write_firmware
  - fu_tpm_v2_device_dump_firmware
  - fu_tpm_v2_device_open
  - fu_tpm_v2_device_close
  - fu_tpm_v2_device_convert_version
  - fu_tpm_v2_device_init
  - fu_tpm_v2_device_class_init
  - fu_tpm_v2_device_new
  source_file: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuTpmDevice
      - name: '*esys_context'
        type: ESYS_CONTEXT
      item_type: struct
      name: _FuTpmV2Device
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    typedefs: []
    union: []
- function_names:
  - fu_tpm_eventlog_pcr_to_string
  - fu_tpm_eventlog_hash_get_size
  - fu_tpm_eventlog_blobstr
  - fu_tpm_eventlog_calc_checksums
  source_file: /src/fwupd/plugins/tpm/fu-tpm-eventlog-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/tpm/fu-tpm-v1-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_V1_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/tpm/fu-tpm-v1-device.h
      type_or_value: (fu_tpm_v1_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mtd_plugin_startup
  - fu_mtd_plugin_init
  - fu_mtd_plugin_constructed
  - fu_mtd_plugin_class_init
  source_file: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuMtdPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/mtd/fu-mtd-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_mtd_device_to_string
  - fu_mtd_device_read_firmware
  - fu_mtd_device_metadata_load
  - fu_mtd_device_setup
  - fu_mtd_device_open
  - fu_mtd_device_probe
  - fu_mtd_device_erase
  - fu_mtd_device_write
  - fu_mtd_device_verify
  - fu_mtd_device_write_verify
  - fu_mtd_device_dump_firmware
  - fu_mtd_device_write_firmware
  - fu_mtd_device_set_quirk_kv
  - fu_mtd_device_init
  - fu_mtd_device_class_init
  source_file: /src/fwupd/plugins/mtd/fu-mtd-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_MTD_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: erasesize
        type: guint64
      - name: metadata_offset
        type: guint64
      - name: metadata_size
        type: guint64
      item_type: struct
      name: _FuMtdDevice
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MTD_IFD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.h
      type_or_value: (fu_mtd_ifd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mtd_ifd_device_add_security_attr_desc
  - fu_mtd_ifd_device_add_security_attrs
  - fu_mtd_ifd_device_region_to_name
  - fu_mtd_ifd_device_probe
  - fu_mtd_ifd_device_init
  - fu_mtd_ifd_device_class_init
  - fu_mtd_ifd_device_new
  source_file: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: '*img'
        type: FuIfdImage
      item_type: struct
      name: _FuMtdIfdDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_test_mtd_device_func
  - main
  source_file: /src/fwupd/plugins/mtd/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mtd/fu-mtd-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/mtd/fu-mtd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MTD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.h
      type_or_value: (fu_mtd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cpu_plugin_coldplug
  - fu_cpu_plugin_init
  - fu_cpu_plugin_constructed
  - fu_cpu_plugin_class_init
  source_file: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCpuPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_cpu_helper_cet_segfault_sigaction
  - main
  source_file: /src/fwupd/plugins/cpu/fu-cpu-helper-cet.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cpu/fu-cpu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CPU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cpu/fu-cpu-device.h
      type_or_value: (fu_cpu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cpu/fu-cpu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cpu/fu-cpu-helper-cet-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cpu_device_has_flag
  - fu_cpu_device_to_string
  - fu_cpu_device_convert_vendor
  - fu_cpu_device_init
  - fu_cpu_device_add_instance_ids
  - fu_cpu_device_probe_manufacturer_id
  - fu_cpu_device_probe_model
  - fu_cpu_device_probe_extended_features
  - fu_cpu_device_probe
  - fu_cpu_device_set_quirk_kv
  - fu_cpu_device_add_security_attrs_cet_enabled
  - fu_cpu_device_add_security_attrs_cet_active
  - fu_cpu_device_add_security_attrs_intel_tme
  - fu_cpu_device_add_security_attrs_smap
  - fu_cpu_device_add_x86_64_security_attrs
  - fu_cpu_device_add_security_attrs
  - fu_cpu_device_convert_version
  - fu_cpu_device_class_init
  - fu_cpu_device_new
  source_file: /src/fwupd/plugins/cpu/fu-cpu-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: flags
        type: FuCpuDeviceFlag
      item_type: struct
      name: _FuCpuDevice
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/plugins/cpu/fu-cpu-device.c
    typedefs:
    - item_type: typedef
      name: FuCpuDeviceFlag
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/plugins/cpu/fu-cpu-device.c
    union: []
- function_names:
  - fu_steelseries_fizz_gen2_request
  - fu_steelseries_fizz_gen2_response
  - fu_steelseries_fizz_gen2_get_version
  - fu_steelseries_fizz_gen2_get_battery_level
  - fu_steelseries_fizz_gen2_get_fs_id
  - fu_steelseries_fizz_gen2_get_file_id
  - fu_steelseries_fizz_gen2_get_paired_status
  - fu_steelseries_fizz_gen2_get_connection_status
  - fu_steelseries_fizz_gen2_get_serial
  - fu_steelseries_fizz_gen2_is_updatable
  - fu_steelseries_fizz_gen2_probe
  - fu_steelseries_fizz_gen2_impl_iface_init
  - fu_steelseries_fizz_gen2_set_quirk_kv
  - fu_steelseries_fizz_gen2_class_init
  - fu_steelseries_fizz_gen2_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_GEN2_FILESYSTEM_RECEIVER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
      type_or_value: 0x01U
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_GEN2_FILESYSTEM_HEADSET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
      type_or_value: 0x01U
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_GEN2_APP_ID
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
      type_or_value: 0x01U
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_GEN2_NOT_PAIRED
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
      type_or_value: 0x00;
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_GEN2_PAIRED
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
      type_or_value: 0x01;
    structs:
    - fields:
      - name: parent_instance
        type: FuSteelseriesDevice
      item_type: struct
      name: _FuSteelseriesFizzGen2
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_fizz_gen1_request
  - fu_steelseries_fizz_gen1_response
  - fu_steelseries_fizz_gen1_get_version
  - fu_steelseries_fizz_gen1_get_fs_id
  - fu_steelseries_fizz_gen1_get_file_id
  - fu_steelseries_fizz_gen1_get_paired_status
  - fu_steelseries_fizz_gen1_get_connection_status
  - fu_steelseries_fizz_gen1_get_battery_level
  - fu_steelseries_fizz_gen1_setup
  - fu_steelseries_fizz_gen1_impl_iface_init
  - fu_steelseries_fizz_gen1_class_init
  - fu_steelseries_fizz_gen1_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSteelseriesDevice
      item_type: struct
      name: _FuSteelseriesFizzGen1
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ_GEN2
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.h
      type_or_value: (fu_steelseries_fizz_gen2_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_sonic_wireless_status
  - fu_steelseries_sonic_ensure_battery_state
  - fu_steelseries_sonic_read_from_ram_chunk
  - fu_steelseries_sonic_read_from_ram
  - fu_steelseries_sonic_read_from_flash_chunk
  - fu_steelseries_sonic_read_from_flash
  - fu_steelseries_sonic_write_to_ram_chunk
  - fu_steelseries_sonic_write_to_ram
  - fu_steelseries_sonic_write_to_flash_chunk
  - fu_steelseries_sonic_write_to_flash
  - fu_steelseries_sonic_erase
  - fu_steelseries_sonic_restart
  - fu_steelseries_sonic_wait_for_connect_cb
  - fu_steelseries_sonic_wait_for_connect
  - fu_steelseries_sonic_attach
  - fu_steelseries_sonic_prepare
  - fu_steelseries_sonic_write_chip
  - fu_steelseries_sonic_read_chip
  - fu_steelseries_sonic_verify_chip
  - fu_steelseries_sonic_read_firmware
  - fu_steelseries_sonic_write_firmware
  - fu_steelseries_sonic_parse_firmware
  - fu_steelseries_sonic_prepare_firmware
  - fu_steelseries_sonic_set_progress
  - fu_steelseries_sonic_class_init
  - fu_steelseries_sonic_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_BUFFER_FLASH_TRANSFER_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
      type_or_value: '128'
    structs:
    - fields:
      - name: parent_instance
        type: FuSteelseriesDevice
      item_type: struct
      name: _FuSteelseriesSonic
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_fizz_tunnel_ping
  - fu_steelseries_fizz_tunnel_wait_for_reconnect_cb
  - fu_steelseries_fizz_tunnel_wait_for_reconnect
  - fu_steelseries_fizz_tunnel_detach
  - fu_steelseries_fizz_tunnel_attach
  - fu_steelseries_fizz_tunnel_probe
  - fu_steelseries_fizz_tunnel_setup
  - fu_steelseries_fizz_tunnel_poll
  - fu_steelseries_fizz_tunnel_write_firmware
  - fu_steelseries_fizz_tunnel_read_firmware
  - fu_steelseries_fizz_tunnel_set_progress
  - fu_steelseries_fizz_tunnel_convert_version
  - fu_steelseries_fizz_tunnel_class_init
  - fu_steelseries_fizz_tunnel_init
  - fu_steelseries_fizz_tunnel_new
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_TUNNEL_POLL_INTERVAL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
      type_or_value: '20000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuSteelseriesFizzTunnel
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_fizz_command_error_to_error
  - fu_steelseries_fizz_request
  - fu_steelseries_fizz_response
  - fu_steelseries_fizz_request_response
  - fu_steelseries_fizz_write_fs
  - fu_steelseries_fizz_erase_fs
  - fu_steelseries_fizz_reset
  - fu_steelseries_fizz_get_crc32_fs
  - fu_steelseries_fizz_read_fs
  - fu_steelseries_fizz_get_paired_status
  - fu_steelseries_fizz_get_connection_status
  - fu_steelseries_fizz_ensure_children
  - fu_steelseries_fizz_detach
  - fu_steelseries_fizz_attach
  - fu_steelseries_fizz_setup
  - fu_steelseries_fizz_write_firmware_fs
  - fu_steelseries_fizz_write_firmware
  - fu_steelseries_fizz_read_firmware_fs
  - fu_steelseries_fizz_read_firmware
  - fu_steelseries_fizz_set_progress
  - fu_steelseries_fizz_class_init
  - fu_steelseries_fizz_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_BUFFER_TRANSFER_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
      type_or_value: '52'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuSteelseriesFizz
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.h
      type_or_value: (fu_steelseries_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_GAMEPAD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.h
      type_or_value: (fu_steelseries_gamepad_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_MOUSE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.h
      type_or_value: (fu_steelseries_mouse_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_fizz_impl_default_init
  - fu_steelseries_fizz_impl_request
  - fu_steelseries_fizz_impl_response
  - fu_steelseries_fizz_impl_get_version
  - fu_steelseries_fizz_impl_get_battery_level
  - fu_steelseries_fizz_impl_get_fs_id
  - fu_steelseries_fizz_impl_get_file_id
  - fu_steelseries_fizz_impl_get_paired_status
  - fu_steelseries_fizz_impl_get_connection_status
  - fu_steelseries_fizz_impl_is_updatable
  - fu_steelseries_fizz_impl_get_serial
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_SONIC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.h
      type_or_value: (fu_steelseries_sonic_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ_TUNNEL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.h
      type_or_value: (fu_steelseries_fizz_tunnel_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_firmware_parse
  - fu_steelseries_firmware_export
  - fu_steelseries_firmware_init
  - fu_steelseries_firmware_class_init
  - fu_steelseries_firmware_new
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: checksum
        type: guint32
      item_type: struct
      name: _FuSteelseriesFirmware
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_plugin_init
  - fu_steelseries_plugin_constructed
  - fu_steelseries_plugin_find_device_by_serial
  - fu_steelseries_plugin_device_added_all
  - fu_steelseries_plugin_device_added
  - fu_steelseries_plugin_class_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSteelseriesPlugin
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ_HID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.h
      type_or_value: (fu_steelseries_fizz_hid_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: (fu_steelseries_device_get_type())
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_CMD_TUNNEL_BIT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: 1 << 6
    - item_type: preproc_def
      name: FU_STEELSERIES_BUFFER_CONTROL_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_STEELSERIES_TRANSACTION_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: '7000'
    - item_type: preproc_def
      name: FU_STEELSERIES_DEVICE_FLAG_IS_RECEIVER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: '"is-receiver"'
    - item_type: preproc_def
      name: FU_STEELSERIES_DEVICE_FLAG_DETACH_BOOTLOADER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
      type_or_value: '"detach-bootloader"'
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuSteelseriesDeviceClass
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.h
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_fizz_hid_command_cb
  - fu_steelseries_fizz_hid_command
  - fu_steelseries_fizz_hid_ensure_version
  - fu_steelseries_fizz_hid_detach
  - fu_steelseries_fizz_hid_setup
  - fu_steelseries_fizz_hid_class_init
  - fu_steelseries_fizz_hid_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_BUFFER_REPORT_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
      type_or_value: 64 + 1
    - item_type: preproc_def
      name: FU_STEELSERIES_HID_MAX_RETRIES
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
      type_or_value: '20'
    - item_type: preproc_def
      name: FU_STEELSERIES_HID_CB_TIMEOUT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
      type_or_value: '300 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      item_type: struct
      name: _FuSteelseriesFizzHid
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    - fields:
      - name: '*buf_in'
        type: GByteArray
      - name: '*buf_out'
        type: GByteArray
      item_type: struct
      name: FuSteelseriesFizzHidCommandHelper
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.h
      type_or_value: (fu_steelseries_fizz_get_type())
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_BATTERY_LEVEL_CHARGING_BIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.h
      type_or_value: 0x80U
    - item_type: preproc_def
      name: FU_STEELSERIES_FIZZ_BATTERY_LEVEL_STATUS_BITS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.h
      type_or_value: 0x7fU
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_mouse_setup
  - fu_steelseries_mouse_init
  - fu_steelseries_mouse_class_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_STEELSERIES_TRANSACTION_TIMEOUT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
      type_or_value: '1000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuSteelseriesMouse
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_steelseries_device_set_iface_idx_offset
  - fu_steelseries_device_request
  - fu_steelseries_device_response
  - fu_steelseries_device_probe
  - fu_steelseries_device_to_string
  - fu_steelseries_device_init
  - fu_steelseries_device_class_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: iface_idx_offset
        type: gint
      - name: iface_idx
        type: guint8
      - name: ep
        type: guint8
      - name: ep_in_size
        type: gsize
      item_type: struct
      name: FuSteelseriesDevicePrivate
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ_GEN1
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen1.h
      type_or_value: (fu_steelseries_fizz_gen1_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_steelseries_gamepad_cmd_erase
  - fu_steelseries_gamepad_setup
  - fu_steelseries_gamepad_attach
  - fu_steelseries_gamepad_detach
  - fu_steelseries_gamepad_write_firmware_chunk
  - fu_steelseries_gamepad_write_firmware_chunks
  - fu_steelseries_gamepad_write_checksum
  - fu_steelseries_gamepad_write_firmware
  - fu_steelseries_gamepad_set_progress
  - fu_steelseries_gamepad_convert_version
  - fu_steelseries_gamepad_class_init
  - fu_steelseries_gamepad_init
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSteelseriesDevice
      item_type: struct
      name: _FuSteelseriesGamepad
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STEELSERIES_FIZZ_IMPL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.h
      type_or_value: (fu_steelseries_fizz_impl_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: (*request)(FuSteelseriesFizzImpl *self, const GByteArray *buf, GError
          **error)
        type: gboolean
      - name: '*(*response)(FuSteelseriesFizzImpl *self, GError **error)'
        type: GByteArray
      - name: '*(*get_version)(FuSteelseriesFizzImpl *self, gboolean tunnel, GError
          **error)'
        type: gchar
      - name: "(*get_battery_level)(FuSteelseriesFizzImpl *self,\n\t\t\t\t      gboolean
          tunnel,\n\t\t\t\t      guint8 *level,\n\t\t\t\t      GError **error)"
        type: gboolean
      - name: (*get_fs_id)(FuSteelseriesFizzImpl *self, gboolean is_receiver)
        type: guint8
      - name: (*get_file_id)(FuSteelseriesFizzImpl *self, gboolean is_receiver)
        type: guint8
      - name: (*get_paired_status)(FuSteelseriesFizzImpl *self, guint8 *status, GError
          **error)
        type: gboolean
      - name: "(*get_connection_status)(FuSteelseriesFizzImpl *self,\n\t\t\t\t\t  FuSteelseriesFizzConnectionStatus
          *status,\n\t\t\t\t\t  GError **error)"
        type: gboolean
      - name: (*is_updatable)(FuSteelseriesFizzImpl *self, FuDevice *device, GError
          **error)
        type: gboolean
      - name: '*(*get_serial)(FuSteelseriesFizzImpl *self, gboolean tunnel, GError
          **error)'
        type: gchar
      item_type: struct
      name: _FuSteelseriesFizzImplInterface
      pos:
        line_end: 36
        line_start: 19
        source_file: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-impl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_TARGET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.h
      type_or_value: (fu_dfu_target_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      - name: (*setup)(FuDfuTarget *self, GError **error)
        type: gboolean
      - name: (*attach)(FuDfuTarget *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: (*detach)(FuDfuTarget *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: (*mass_erase)(FuDfuTarget *self, FuProgress *progress, GError **error)
        type: gboolean
      - name: "*(*upload_element)(FuDfuTarget *self,\n\t\t\t\t   guint32 address,\n\t\t\t\t
          \  gsize expected_size,\n\t\t\t\t   gsize maximum_size,\n\t\t\t\t   FuProgress
          *progress,\n\t\t\t\t   GError **error)"
        type: FuChunk
      - name: "(*download_element)(FuDfuTarget *self,\n\t\t\t\t     FuChunk *chk,\n\t\t\t\t
          \    FuProgress *progress,\n\t\t\t\t     FuDfuTargetTransferFlags flags,\n\t\t\t\t
          \    GError **error)"
        type: gboolean
      item_type: struct
      name: _FuDfuTargetClass
      pos:
        line_end: 53
        line_start: 36
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.h
    typedefs:
    - item_type: typedef
      name: FuDfuTargetTransferFlags
      pos:
        line_end: 34
        line_start: 26
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dfu_plugin_init
  - fu_dfu_plugin_constructed
  - fu_dfu_plugin_class_init
  source_file: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuDfuPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_dfu_target_stm_attach
  - fu_dfu_target_stm_mass_erase
  - fu_dfu_target_stm_set_address
  - fu_dfu_target_stm_upload_element
  - fu_dfu_target_stm_erase_address
  - fu_dfu_target_stm_download_element1
  - fu_dfu_target_stm_download_element2
  - fu_dfu_target_stm_download_element3
  - fu_dfu_target_stm_download_element
  - fu_dfu_target_stm_init
  - fu_dfu_target_stm_class_init
  - fu_dfu_target_stm_new
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DFU_STM_CMD_GET_COMMAND
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_STM_CMD_SET_ADDRESS_POINTER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
      type_or_value: '0x21'
    - item_type: preproc_def
      name: DFU_STM_CMD_ERASE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: DFU_STM_CMD_READ_UNPROTECT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
      type_or_value: '0x92'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_DEVICE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/dfu/fu-dfu-device.h
      type_or_value: (fu_dfu_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuDfuDeviceClass
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/dfu/fu-dfu-device.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dfu_target_init
  - fu_dfu_target_finalize
  - fu_dfu_target_to_string
  - fu_dfu_target_get_sector_for_addr
  - fu_dfu_target_parse_sector
  - fu_dfu_target_parse_sectors
  - fu_dfu_target_new
  - fu_dfu_target_get_sectors
  - fu_dfu_target_get_sector_default
  - fu_dfu_target_status_to_error_msg
  - fu_dfu_target_manifest_wait
  - fu_dfu_target_check_status
  - fu_dfu_target_use_alt_setting
  - fu_dfu_target_setup
  - fu_dfu_target_download_chunk
  - fu_dfu_target_upload_chunk
  - fu_dfu_target_set_alt_idx
  - fu_dfu_target_set_alt_setting
  - fu_dfu_target_attach
  - fu_dfu_target_upload_element_dfu
  - fu_dfu_target_upload_element
  - fu_dfu_target_get_size_of_zone
  - fu_dfu_target_upload
  - _g_bytes_compare_verbose
  - fu_dfu_target_download_element_dfu
  - fu_dfu_target_download_element
  - fu_dfu_target_download
  - fu_dfu_target_get_alt_setting
  - fu_dfu_target_class_init
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DFU_TARGET_MANIFEST_MAX_POLLING_TRIES
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.c
      type_or_value: '200'
    structs:
    - fields:
      - name: done_setup
        type: gboolean
      - name: alt_setting
        type: guint8
      - name: alt_idx
        type: guint8
      - name: '*sectors'
        type: GPtrArray
      item_type: struct
      name: FuDfuTargetPrivate
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dfu_target_avr_mass_erase
  - fu_dfu_target_avr_attach
  - fu_dfu_target_avr_select_memory_unit
  - fu_dfu_target_avr_select_memory_page
  - fu_dfu_target_avr32_select_memory_page
  - fu_dfu_target_avr_read_memory
  - fu_dfu_target_avr_read_command
  - fu_dfu_target_avr32_get_chip_signature
  - fu_dfu_target_avr_get_chip_signature_for_addr
  - fu_dfu_target_avr_get_chip_signature
  - fu_dfu_target_avr_setup
  - fu_dfu_target_avr_download_element_chunks
  - fu_dfu_target_avr_download_element
  - fu_dfu_target_avr_upload_element_chunk
  - fu_dfu_target_avr_upload_element_chunks
  - fu_dfu_target_avr_upload_element
  - fu_dfu_target_avr_init
  - fu_dfu_target_avr_class_init
  - fu_dfu_target_avr_new
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QUIRKS_DFU_AVR_ALT_NAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '"DfuAltName"'
    - item_type: preproc_def
      name: DFU_AVR_CMD_PROG_START
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DFU_AVR_CMD_DISPLAY_DATA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: DFU_AVR_CMD_WRITE_COMMAND
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DFU_AVR_CMD_READ_COMMAND
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: DFU_AVR_CMD_CHANGE_BASE_ADDR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: DFU_AVR32_GROUP_SELECT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: DFU_AVR32_CMD_SELECT_MEMORY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_PAGE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_FLASH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_EEPROM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_SECURITY
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_CONFIGURATION
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_BOOTLOADER
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_SIGNATURE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: DFU_AVR32_MEMORY_UNIT_USER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: DFU_AVR32_GROUP_DOWNLOAD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: DFU_AVR32_CMD_PROGRAM_START
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_GROUP_UPLOAD
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: DFU_AVR32_CMD_READ_MEMORY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_CMD_BLANK_CHECK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DFU_AVR32_GROUP_EXEC
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: DFU_AVR32_CMD_ERASE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_ERASE_EVERYTHING
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: DFU_AVR32_CMD_START_APPLI
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: DFU_AVR32_START_APPLI_RESET
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_START_APPLI_NO_RESET
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATMEL_64KB_PAGE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: ATMEL_MAX_TRANSFER_SIZE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: ATMEL_AVR_CONTROL_BLOCK_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ATMEL_AVR32_CONTROL_BLOCK_SIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '64'
    - item_type: preproc_def
      name: ATMEL_MANUFACTURER_CODE1
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x58'
    - item_type: preproc_def
      name: ATMEL_MANUFACTURER_CODE2
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x1e'
    structs:
    - fields:
      - name: device_id
        type: guint32
      item_type: struct
      name: FuDfuTargetAvrPrivate
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    - fields:
      - name: page
        type: guint8
      - name: addr
        type: guint
      item_type: struct
      name: "signature_locations[] = {{0x01, 0x30},\n\t\t\t\t   {0x01, 0x31},\n\t\t\t\t
        \  {0x01, 0x60},\n\t\t\t\t   {0x01, 0x61},\n\t\t\t\t   {0xff, 0xff}}"
      pos:
        line_end: 443
        line_start: 440
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_TARGET_AVR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.h
      type_or_value: (fu_dfu_target_avr_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDfuTargetClass
      item_type: struct
      name: _FuDfuTargetAvrClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_CAN_DOWNLOAD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"can-download"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_CAN_UPLOAD
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"can-upload"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_MANIFEST_TOL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"manifest-tol"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_WILL_DETACH
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"will-detach"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_CAN_ACCELERATE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"can-accelerate"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_ATTACH_UPLOAD_DOWNLOAD
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"attach-upload-download"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_FORCE_DFU_MODE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"force-dfu-mode"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_IGNORE_POLLTIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"ignore-polltimeout"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_IGNORE_RUNTIME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"ignore-runtime"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_IGNORE_UPLOAD
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"ignore-upload"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_NO_DFU_RUNTIME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"no-dfu-runtime"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_NO_GET_STATUS_UPLOAD
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"no-get-status-upload"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_NO_PID_CHANGE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"no-pid-change"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_USE_ANY_INTERFACE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"use-any-interface"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_USE_ATMEL_AVR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"use-atmel-avr"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_USE_PROTOCOL_ZERO
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"use-protocol-zero"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_LEGACY_PROTOCOL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"legacy-protocol"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_DETACH_FOR_ATTACH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"detach-for-attach"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_ABSENT_SECTOR_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"absent-sector-size"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_MANIFEST_POLL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"manifest-poll"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_NO_BUS_RESET_ATTACH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"no-bus-reset-attach"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_GD32
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"gd32"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_ALLOW_ZERO_POLLTIMEOUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"allow-zero-polltimeout"'
    - item_type: preproc_def
      name: FU_DFU_DEVICE_FLAG_INDEX_FORCE_DETACH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dfu/fu-dfu-common.h
      type_or_value: '"index-force-detach"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dfu_device_to_string
  - fu_dfu_device_get_transfer_size
  - fu_dfu_device_get_version
  - fu_dfu_device_get_download_timeout
  - fu_dfu_device_set_download_timeout
  - fu_dfu_device_parse_iface_data
  - fu_dfu_device_guess_state_from_iface
  - fu_dfu_device_add_targets
  - fu_dfu_device_get_timeout
  - fu_dfu_device_get_state
  - fu_dfu_device_get_status
  - fu_dfu_device_get_target_by_alt_setting
  - fu_dfu_device_get_chip_id
  - fu_dfu_device_set_chip_id
  - fu_dfu_device_set_state
  - fu_dfu_device_set_status
  - fu_dfu_device_ensure_interface
  - fu_dfu_device_refresh_and_clear
  - fu_dfu_device_refresh
  - fu_dfu_device_request_detach
  - fu_dfu_device_reload
  - fu_dfu_device_detach
  - fu_dfu_device_abort
  - fu_dfu_device_clear_status
  - fu_dfu_device_get_interface
  - fu_dfu_device_open
  - fu_dfu_device_close
  - fu_dfu_device_probe
  - fu_dfu_device_reset
  - fu_dfu_device_attach
  - fu_dfu_device_upload
  - fu_dfu_device_id_compatible
  - fu_dfu_device_calculate_chunks_size
  - fu_dfu_device_download
  - fu_dfu_device_error_fixup
  - fu_dfu_device_dump_firmware
  - fu_dfu_device_prepare_firmware
  - fu_dfu_device_write_firmware
  - fu_dfu_device_set_quirk_kv
  - fu_dfu_device_set_progress
  - fu_dfu_device_dispose
  - fu_dfu_device_finalize
  - fu_dfu_device_class_init
  - fu_dfu_device_init
  source_file: /src/fwupd/plugins/dfu/fu-dfu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QUIRKS_DFU_FORCE_VERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dfu/fu-dfu-device.c
      type_or_value: '"DfuForceVersion"'
    - item_type: preproc_def
      name: DFU_DEVICE_DNLOAD_TIMEOUT_DEFAULT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dfu/fu-dfu-device.c
      type_or_value: '5 '
    structs:
    - fields:
      - name: state
        type: FuDfuState
      - name: status
        type: FuDfuStatus
      - name: '*targets'
        type: GPtrArray
      - name: done_upload_or_download
        type: gboolean
      - name: claimed_interface
        type: gboolean
      - name: '*chip_id'
        type: gchar
      - name: version
        type: guint16
      - name: force_version
        type: guint16
      - name: force_transfer_size
        type: guint16
      - name: runtime_pid
        type: guint16
      - name: runtime_vid
        type: guint16
      - name: runtime_release
        type: guint16
      - name: transfer_size
        type: guint16
      - name: iface_number
        type: guint8
      - name: dnload_timeout
        type: guint
      - name: timeout_ms
        type: guint
      item_type: struct
      name: FuDfuDevicePrivate
      pos:
        line_end: 66
        line_start: 49
        source_file: /src/fwupd/plugins/dfu/fu-dfu-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_TARGET_STM
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.h
      type_or_value: (fu_dfu_target_stm_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDfuTargetClass
      item_type: struct
      name: _FuDfuTargetStmClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-stm.h
    typedefs: []
    union: []
- function_names:
  - fu_dfu_utils_bytes_join_array
  source_file: /src/fwupd/plugins/dfu/fu-dfu-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dfu/fu-dfu-sector.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DFU_SECTOR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/dfu/fu-dfu-sector.h
      type_or_value: (fu_dfu_sector_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      item_type: struct
      name: _FuDfuSectorClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/dfu/fu-dfu-sector.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_dfu_sector_class_init
  - fu_dfu_sector_init
  - fu_dfu_sector_new
  - fu_dfu_sector_get_address
  - fu_dfu_sector_get_size
  - fu_dfu_sector_get_zone
  - fu_dfu_sector_get_id
  - fu_dfu_sector_has_cap
  - fu_dfu_sector_to_string
  source_file: /src/fwupd/plugins/dfu/fu-dfu-sector.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: address
        type: guint32
      - name: size
        type: guint32
      - name: size_left
        type: guint32
      - name: zone
        type: guint16
      - name: number
        type: guint16
      - name: cap
        type: FuDfuSectorCap
      item_type: struct
      name: FuDfuSectorPrivate
      pos:
        line_end: 32
        line_start: 25
        source_file: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    typedefs: []
    union: []
- function_names:
  - fu_test_compare_lines
  - fu_dfu_target_sectors_to_string
  - fu_dfu_target_dfuse_func
  - main
  source_file: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pxi_wireless_device_to_string
  - fu_pxi_wireless_device_get_parent
  - fu_pxi_wireless_device_prepare_firmware
  - fu_pxi_wireless_device_get_cmd_response
  - fu_pxi_wireless_device_check_crc
  - fu_pxi_wireless_device_fw_object_create
  - fu_pxi_wireless_device_write_payload
  - fu_pxi_wireless_device_write_chunk
  - fu_pxi_wireless_device_fw_ota_preceding
  - fu_pxi_wireless_device_fw_ota_init_new
  - fu_pxi_wireless_device_fw_ota_ini_new_check
  - fu_pxi_wireless_device_fw_upgrade
  - fu_pxi_wireless_device_reset
  - fu_pxi_wireless_device_write_firmware
  - fu_pxi_wireless_device_set_progress
  - fu_pxi_wireless_device_init
  - fu_pxi_wireless_device_class_init
  - fu_pxi_wireless_device_new
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PXI_WIRELESS_DEV_DELAY_MS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_PXI_WIRELESS_DEV_PAYLOAD_DELAY_MS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
      type_or_value: '15'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: fwstate
        type: struct ota_fw_state
      - name: sn
        type: guint8
      - name: model
        type: struct ota_fw_dev_model
      item_type: struct
      name: _FuPxiWirelessDevice
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PXI_WIRELESS_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-wireless-device.h
      type_or_value: (fu_pxi_wireless_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PXI_BLE_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.h
      type_or_value: (fu_pxi_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pxi_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/pixart-rf/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PXI_RECEIVER_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.h
      type_or_value: (fu_pxi_receiver_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pxi_ble_device_get_raw_info
  - fu_pxi_ble_device_to_string
  - fu_pxi_ble_device_prepare_firmware
  - fu_pxi_ble_device_set_feature_cb
  - fu_pxi_ble_device_set_feature
  - fu_pxi_ble_device_get_feature
  - fu_pxi_ble_device_search_hid_feature_report_id
  - fu_pxi_ble_device_search_hid_input_report_id
  - fu_pxi_ble_device_check_support_report_id
  - fu_pxi_ble_device_fw_ota_check_retransmit
  - fu_pxi_ble_device_check_support_resume
  - fu_pxi_ble_device_wait_notify
  - fu_pxi_ble_device_fw_object_create
  - fu_pxi_ble_device_write_payload
  - fu_pxi_ble_device_write_chunk
  - fu_pxi_ble_device_reset
  - fu_pxi_ble_device_fw_ota_init
  - fu_pxi_ble_device_fw_ota_init_new
  - fu_pxi_ble_device_fw_upgrade
  - fu_pxi_ble_device_write_firmware
  - fu_pxi_ble_device_fw_get_info
  - fu_pxi_ble_device_get_model_info
  - fu_pxi_ble_device_setup_guid
  - fu_pxi_ble_device_setup
  - fu_pxi_ble_device_set_progress
  - fu_pxi_ble_device_init
  - fu_pxi_ble_device_finalize
  - fu_pxi_ble_device_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_INPUT_REPORT_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_RETRANSMIT_REPORT_ID
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_FEATURE_REPORT_ID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_REPORT_USAGE_PAGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: 0xff02u
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_RETRANSMIT_USAGE_PAGE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: 0xff01u
    - item_type: preproc_def
      name: PXI_HID_DEV_OTA_NOTIFY_USAGE_PAGE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: 0xff00u
    - item_type: preproc_def
      name: ERR_COMMAND_SUCCESS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PXI_DEVICE_OBJECT_SIZE_MAX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_OTA_BUF_SZ
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '512  '
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_NOTIFY_RET_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '4    '
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_FW_INFO_RET_LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '8    '
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_NOTIFY_TIMEOUT_MS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_SET_REPORT_RETRIES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
      type_or_value: '30'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: fwstate
        type: struct ota_fw_state
      - name: retransmit_id
        type: guint8
      - name: feature_report_id
        type: guint8
      - name: input_report_id
        type: guint8
      - name: '*model_name'
        type: gchar
      item_type: struct
      name: _FuPxiBleDevice
      pos:
        line_end: 45
        line_start: 38
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-ble-device.c
    typedefs: []
    union: []
- function_names:
  - fu_pxi_receiver_device_to_string
  - fu_pxi_receiver_device_prepare_firmware
  - fu_pxi_receiver_device_fw_ota_init_new
  - fu_pxi_receiver_device_fw_ota_ini_new_check
  - fu_pxi_receiver_device_get_cmd_response
  - fu_pxi_receiver_device_check_crc
  - fu_pxi_receiver_device_fw_object_create
  - fu_pxi_receiver_device_write_payload
  - fu_pxi_receiver_device_write_chunk
  - fu_pxi_receiver_device_fw_upgrade
  - fu_pxi_receiver_device_reset
  - fu_pxi_receiver_device_write_firmware
  - fu_pxi_receiver_device_get_peripheral_info
  - fu_pxi_receiver_device_get_peripheral_num
  - fu_pxi_receiver_device_add_peripherals
  - fu_pxi_receiver_device_setup_guid
  - fu_pxi_receiver_device_check_peripherals
  - fu_pxi_receiver_device_setup
  - fu_pxi_receiver_device_probe
  - fu_pxi_receiver_device_set_progress
  - fu_pxi_receiver_device_init
  - fu_pxi_receiver_device_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: fwstate
        type: struct ota_fw_state
      - name: sn
        type: guint8
      item_type: struct
      name: _FuPxiReceiverDevice
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-receiver-device.c
    typedefs: []
    union: []
- function_names:
  - fu_pxi_plugin_init
  - fu_pxi_plugin_object_constructed
  - fu_pxi_plugin_constructed
  - fu_pxi_plugin_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuPxiPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_pxi_ota_fw_state_to_string
  - fu_pxi_ota_fw_state_parse
  - fu_pxi_composite_receiver_cmd
  - fu_pxi_hpac_version_info_parse
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PXI_DEVICE_FLAG_IS_HPAC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '"is-hpac"'
    - item_type: preproc_def
      name: PXI_HID_WIRELESS_DEV_OTA_REPORT_ID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_RF_CMD_CODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: 0x65u
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_RF_CMD_HID_SN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PXI_BLE_DEVICE_RF_CMD_HID_SN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PXI_WIRELESS_DEVICE_TARGET_RECEIVER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_PXI_RECEIVER_DEVICE_OTA_BUF_SZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: FU_PXI_DEVICE_MODEL_NAME_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: FU_PXI_DEVICE_OBJECT_SIZE_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FU_PXI_WIRELESS_DEVICE_RETRY_MAXIMUM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_PXI_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
      type_or_value: '5000 '
    structs:
    - fields:
      - name: status
        type: guint8
      - name: name[FU_PXI_DEVICE_MODEL_NAME_LEN]
        type: guint8
      - name: type
        type: guint8
      - name: target
        type: guint8
      - name: version[5]
        type: guint8
      - name: checksum
        type: guint16
      item_type: struct
      name: ota_fw_dev_model
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
    - fields:
      - name: status
        type: guint8
      - name: version[5]
        type: guint8
      - name: checksum
        type: guint16
      item_type: struct
      name: ota_fw_info
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
    - fields:
      - name: status
        type: guint8
      - name: new_flow
        type: guint8
      - name: offset
        type: guint16
      - name: checksum
        type: guint16
      - name: max_object_size
        type: guint32
      - name: mtu_size
        type: guint16
      - name: prn_threshold
        type: guint16
      - name: spec_check_result
        type: guint8
      item_type: struct
      name: ota_fw_state
      pos:
        line_end: 55
        line_start: 46
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PXI_DEVICE_MODEL_NAME_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: FU_TYPE_PXI_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.h
      type_or_value: (fu_pxi_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pxi_firmware_get_model_name
  - fu_pxi_firmware_export
  - fu_pxi_firmware_validate
  - fu_pxi_firmware_parse
  - fu_pxi_firmware_build
  - fu_pxi_firmware_write
  - fu_pxi_firmware_init
  - fu_pxi_firmware_finalize
  - fu_pxi_firmware_class_init
  - fu_pxi_firmware_new
  - fu_pxi_firmware_is_hpac
  source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIXART_RF_FW_HEADER_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
      type_or_value: '32 '
    - item_type: preproc_def
      name: PIXART_RF_FW_HEADER_TAG_OFFSET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
      type_or_value: '24'
    - item_type: preproc_def
      name: PIXART_RF_FW_HEADER_HPAC_POS_FROM_END
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
      type_or_value: '821'
    - item_type: preproc_def
      name: PIXART_RF_FW_HEADER_HPAC_VERSION_POS_FROM_END
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
      type_or_value: '823'
    - item_type: preproc_def
      name: PIXART_RF_FW_HEADER_MAGIC
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
      type_or_value: '0x55AA55AA55AA55AA'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*model_name'
        type: gchar
      - name: is_hpac
        type: gboolean
      item_type: struct
      name: _FuPxiFirmware
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pxi-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_mst_plugin_write_firmware
  - fu_synaptics_mst_plugin_init
  - fu_synaptics_mst_plugin_constructed
  - fu_synaptics_mst_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsMstPlugin
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_MST_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.h
      type_or_value: (fu_synaptics_mst_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_mst_firmware_get_board_id
  - fu_synaptics_mst_firmware_set_family
  - fu_synaptics_mst_firmware_export
  - fu_synaptics_mst_firmware_detect_family
  - fu_synaptics_mst_firmware_parse
  - fu_synaptics_mst_firmware_write
  - fu_synaptics_mst_firmware_build
  - fu_synaptics_mst_firmware_init
  - fu_synaptics_mst_firmware_class_init
  - fu_synaptics_mst_firmware_new
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDR_CUSTOMER_ID_CARRERA
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x620E'
    - item_type: preproc_def
      name: ADDR_CUSTOMER_ID_CAYENNE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x20E'
    - item_type: preproc_def
      name: ADDR_CUSTOMER_ID_TESLA
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x10E'
    - item_type: preproc_def
      name: ADDR_CONFIG_CARRERA
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x6200'
    - item_type: preproc_def
      name: ADDR_CONFIG_CAYENNE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: ADDR_CONFIG_TESLA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x100'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: board_id
        type: guint16
      - name: family
        type: FuSynapticsMstFamily
      item_type: struct
      name: _FuSynapticsMstFirmware
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_test_plugin_device_added_cb
  - fu_test_add_fake_devices_from_dir
  - fu_plugin_synaptics_mst_none_func
  - fu_plugin_synaptics_mst_tb16_func
  - fu_synaptics_mst_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYNAPTICS_FLASH_MODE_DELAY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: SYNAPTICS_IEEE_OUI
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.h
      type_or_value: '0x90CC24'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_MST_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.h
      type_or_value: (fu_synaptics_mst_device_get_type())
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_DEVICE_FLAG_IS_SOMEWHAT_EMULATED
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.h
      type_or_value: '"is-somewhat-emulated"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIT
  - fu_synaptics_mst_device_finalize
  - fu_synaptics_mst_device_udev_device_notify_cb
  - fu_synaptics_mst_device_init
  - fu_synaptics_mst_device_to_string
  - fu_synaptics_mst_device_rc_to_error
  - fu_synaptics_mst_device_rc_send_command_and_wait_cb
  - fu_synaptics_mst_device_rc_send_command_and_wait
  - fu_synaptics_mst_device_rc_set_command
  - fu_synaptics_mst_device_rc_get_command
  - fu_synaptics_mst_device_disable_rc
  - fu_synaptics_mst_device_enable_rc
  - fu_synaptics_mst_device_rc_special_get_command
  - fu_synaptics_mst_device_get_flash_checksum
  - fu_synaptics_mst_device_set_flash_sector_erase
  - fu_synaptics_mst_device_helper_free
  - fu_synaptics_mst_device_helper_new
  - fu_synaptics_mst_device_update_esm_cb
  - fu_synaptics_mst_device_update_esm
  - fu_synaptics_mst_device_update_tesla_leaf_firmware_cb
  - fu_synaptics_mst_device_update_tesla_leaf_firmware
  - fu_synaptics_mst_device_get_active_bank_panamera
  - fu_synaptics_mst_device_update_panamera_firmware_cb
  - fu_synaptics_mst_device_update_panamera_set_new_valid_cb
  - fu_synaptics_mst_device_update_panamera_set_old_invalid_cb
  - fu_synaptics_mst_device_update_panamera_firmware
  - fu_synaptics_mst_device_panamera_prepare_write
  - fu_synaptics_mst_device_update_firmware_cb
  - fu_synaptics_mst_device_update_firmware
  - fu_synaptics_mst_device_restart
  - fu_synaptics_mst_device_prepare_firmware
  - fu_synaptics_mst_device_attach
  - fu_synaptics_mst_device_write_firmware
  - fu_synaptics_mst_device_ensure_board_id
  - fu_synaptics_mst_device_setup
  - fu_synaptics_mst_device_set_quirk_kv
  - fu_synaptics_mst_device_set_progress
  - fu_synaptics_mst_device_class_init
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_ID_CTRL_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: SYNAPTICS_UPDATE_ENUMERATE_TRIES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_4K
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_32K
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_64K
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: EEPROM_TAG_OFFSET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x1FFF0'
    - item_type: preproc_def
      name: EEPROM_BANK_OFFSET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: EEPROM_ESM_OFFSET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: ESM_CODE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: PAYLOAD_SIZE_512K
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: PAYLOAD_SIZE_64K
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_RETRY_COUNTS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: BLOCK_UNIT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: BANKTAG_0
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BANKTAG_1
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: REG_ESM_DISABLE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x2000fc'
    - item_type: preproc_def
      name: REG_QUAD_DISABLE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x200fc0'
    - item_type: preproc_def
      name: REG_HDCP22_DISABLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x200f90'
    - item_type: preproc_def
      name: FLASH_SETTLE_TIME
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_DEVICE_READ_TIMEOUT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '2000 '
    - item_type: preproc_def
      name: CARRERA_FIRMWARE_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x7F000 '
    - item_type: preproc_def
      name: CAYENNE_FIRMWARE_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x50000 '
    - item_type: preproc_def
      name: PANAMERA_FIRMWARE_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x1A000 '
    - item_type: preproc_def
      name: UNIT_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ADDR_MEMORY_CUSTOMER_ID_CAYENNE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000024E'
    - item_type: preproc_def
      name: ADDR_MEMORY_BOARD_ID_CAYENNE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000024F'
    - item_type: preproc_def
      name: ADDR_MEMORY_CUSTOMER_ID_SPYDER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000020E'
    - item_type: preproc_def
      name: ADDR_MEMORY_BOARD_ID_SPYDER
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000020F'
    - item_type: preproc_def
      name: ADDR_MEMORY_CUSTOMER_ID_CARRERA
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000014E'
    - item_type: preproc_def
      name: ADDR_MEMORY_BOARD_ID_CARRERA
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x9000014F'
    - item_type: preproc_def
      name: ADDR_MEMORY_CUSTOMER_ID
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x170E'
    - item_type: preproc_def
      name: ADDR_MEMORY_BOARD_ID
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x170F'
    - item_type: preproc_def
      name: REG_CHIP_ID
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x507'
    - item_type: preproc_def
      name: REG_FIRMWARE_VERSION
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '0x50A'
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_DEVICE_FLAG_IGNORE_BOARD_ID
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '"ignore-board-id"'
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_DEVICE_FLAG_MANUAL_RESTART_REQUIRED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
      type_or_value: '"manual-restart-required"'
    structs:
    - fields:
      - name: parent_instance
        type: FuDpauxDevice
      - name: '*device_kind'
        type: gchar
      - name: write_block_size
        type: guint64
      - name: family
        type: FuSynapticsMstFamily
      - name: active_bank
        type: guint8
      - name: board_id
        type: guint16
      - name: chip_id
        type: guint16
      item_type: struct
      name: _FuSynapticsMstDevice
      pos:
        line_end: 73
        line_start: 65
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    - fields:
      - name: rc
        type: FuSynapticsMstUpdcRc
      - name: rc_cmd
        type: FuSynapticsMstUpdcCmd
      item_type: struct
      name: FuSynapticsMstUpdcRcHelper
      pos:
        line_end: 179
        line_start: 176
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    - fields:
      - name: '*fw'
        type: GBytes
      - name: '*chunks'
        type: FuChunkArray
      - name: '*progress'
        type: FuProgress
      - name: bank_to_update
        type: guint8
      - name: checksum
        type: guint32
      item_type: struct
      name: FuSynapticsMstDeviceHelper
      pos:
        line_end: 582
        line_start: 576
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_mst_family_from_chip_id
  - fu_synaptics_mst_calculate_crc8
  - fu_synaptics_mst_calculate_crc16
  source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_qsi_dock_plugin_init
  - fu_qsi_dock_plugin_constructed
  - fu_qsi_dock_plugin_class_init
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuQsiDockPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_qsi_dock_child_device_set_chip_idx
  - fu_qsi_dock_child_device_to_string
  - fu_qsi_dock_child_device_prepare_firmware
  - fu_qsi_dock_child_device_write_firmware
  - fu_qsi_dock_child_device_init
  - fu_qsi_dock_child_device_class_init
  - fu_qsi_dock_child_device_new
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: chip_idx
        type: guint8
      item_type: struct
      name: _FuQsiDockChildDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    typedefs: []
    union: []
- function_names:
  - fu_qsi_dock_mcu_device_tx
  - fu_qsi_dock_mcu_device_rx
  - fu_qsi_dock_mcu_device_txrx
  - fu_qsi_dock_mcu_device_get_status
  - fu_qsi_dock_mcu_device_enumerate_children
  - fu_qsi_dock_mcu_device_setup
  - fu_qsi_dock_mcu_device_checksum
  - fu_qsi_dock_mcu_device_write_chunk
  - fu_qsi_dock_mcu_device_write_chunks
  - fu_qsi_dock_mcu_device_wait_for_spi_initial_ready_cb
  - fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb
  - fu_qsi_dock_mcu_device_write_firmware_with_idx
  - fu_qsi_dock_mcu_device_write_firmware
  - fu_qsi_dock_mcu_device_attach
  - fu_qsi_dock_mcu_device_set_progress
  - fu_qsi_dock_mcu_device_init
  - fu_qsi_dock_mcu_device_class_init
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QSI_DOCK_MCU_DEVICE_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
      type_or_value: '90000 '
    - item_type: preproc_def
      name: FU_QSI_DOCK_TX_ISP_LENGTH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
      type_or_value: '61'
    - item_type: preproc_def
      name: FU_QSI_DOCK_TX_ISP_LENGTH_MCU
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
      type_or_value: '60'
    - item_type: preproc_def
      name: FU_QSI_DOCK_EXTERN_FLASH_PAGE_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
      type_or_value: '256'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuQsiDockMcuDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    - fields:
      - name: '*name'
        type: gchar
      - name: chip_idx
        type: guint8
      - name: offset
        type: gsize
      item_type: struct
      name: "components[] = {\n\t    {\"MCU\", FU_QSI_DOCK_FIRMWARE_IDX_MCU, G_STRUCT_OFFSET(FuQsiDockIspVersionInMcu,
        MCU)},\n\t    {\"bcdVersion\",\n\t     FU_QSI_DOCK_FIRMWARE_IDX_NONE,\n\t
        \    G_STRUCT_OFFSET(FuQsiDockIspVersionInMcu, bcdVersion)},\n\t    {NULL,
        0, 0}}"
      pos:
        line_end: 116
        line_start: 112
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QSI_DOCK_CHILD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.h
      type_or_value: (fu_qsi_dock_child_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QSI_DOCK_MCU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.h
      type_or_value: (fu_qsi_dock_mcu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QSI_DOCK_REPORT_ID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_NONE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_DMC_PD
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_DP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_TBT4
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_USB3
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_USB2
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_AUDIO
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_I225
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FU_QSI_DOCK_FIRMWARE_IDX_MCU
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
      type_or_value: '0x80'
    structs:
    - fields:
      - name: DMC[5]
        type: guint8
      - name: PD[5]
        type: guint8
      - name: DP5x[5]
        type: guint8
      - name: DP6x[5]
        type: guint8
      - name: TBT4[5]
        type: guint8
      - name: USB3[5]
        type: guint8
      - name: USB2[5]
        type: guint8
      - name: AUDIO[5]
        type: guint8
      - name: I255[5]
        type: guint8
      - name: MCU[2]
        type: guint8
      - name: bcdVersion[2]
        type: guint8
      item_type: struct
      name: FuQsiDockIspVersionInMcu
      pos:
        line_end: 35
        line_start: 23
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
    typedefs:
    - item_type: typedef
      name: FuQsiDockCmd
      pos:
        line_end: 49
        line_start: 37
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
    - item_type: typedef
      name: FuQsiDockCmd2_0x51
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
    - item_type: typedef
      name: FuQsiDockCmd2_0x61
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-common.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_SBAT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.h
      type_or_value: (fu_uefi_sbat_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_sbat_device_probe
  - fu_uefi_sbat_device_prepare_firmware
  - fu_uefi_sbat_device_write_firmware
  - fu_uefi_sbat_device_set_progress
  - fu_uefi_sbat_device_init
  - fu_uefi_sbat_device_class_init
  - fu_uefi_sbat_device_new
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuUefiSbatDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_sbat_firmware_parse
  - fu_uefi_sbat_firmware_check_compatible
  - fu_uefi_sbat_firmware_init
  - fu_uefi_sbat_firmware_class_init
  - fu_uefi_sbat_firmware_new
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuCsvFirmware
      item_type: struct
      name: _FuUefiSbatFirmware
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_uefi_sbat_plugin_init
  - fu_uefi_sbat_plugin_startup
  - fu_uefi_sbat_plugin_coldplug
  - fu_uefi_sbat_plugin_reboot_cleanup
  - fu_uefi_sbat_plugin_constructed
  - fu_uefi_sbat_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiSbatPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_SBAT_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-firmware.h
      type_or_value: (fu_uefi_sbat_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ti_tps6598x_byte_array_is_nonzero
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ti_tps6598x_plugin_init
  - fu_ti_tps6598x_plugin_constructed
  - fu_ti_tps6598x_plugin_class_init
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuTiTps6598xPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TI_TPS6598X_PD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.h
      type_or_value: (fu_ti_tps6598x_pd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ti_tps6598x_pd_device_probe
  - fu_ti_tps6598x_pd_device_ensure_version
  - fu_ti_tps6598x_pd_device_ensure_tx_identity
  - fu_ti_tps6598x_pd_device_setup
  - fu_ti_tps6598x_pd_device_report_metadata_pre
  - fu_ti_tps6598x_pd_device_attach
  - fu_ti_tps6598x_pd_device_write_firmware
  - fu_ti_tps6598x_pd_device_set_progress
  - fu_ti_tps6598x_pd_device_init
  - fu_ti_tps6598x_pd_device_class_init
  - fu_ti_tps6598x_pd_device_new
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: target
        type: guint8
      item_type: struct
      name: _FuTiTps6598xPdDevice
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ti_tps6598x_firmware_validate
  - fu_ti_tps6598x_firmware_parse
  - fu_ti_tps6598x_firmware_write
  - fu_ti_tps6598x_firmware_init
  - fu_ti_tps6598x_firmware_class_init
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TI_TPS6598X_FIRMWARE_PUBKEY_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
      type_or_value: '0x180 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuTiTps6598xFirmware
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TI_TPS6598X_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.h
      type_or_value: (fu_ti_tps6598x_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_TBT_VID
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_TBT_DID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_PROTO_VER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_MODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_TYPE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_UID
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x05 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_OUID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_CMD1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_DATA1
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x09 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_VERSION
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x0F '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_CMD2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_DATA2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x11 '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_CMD3
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x1E '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_DATA3
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x1F '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_OTP_CONFIG
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x2D '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_BUILD_IDENTIFIER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x2E '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_DEVICE_INFO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x2F '
    - item_type: preproc_def
      name: TI_TPS6598X_REGISTER_TX_IDENTITY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '0x47 '
    - item_type: preproc_def
      name: FU_TI_TPS6598X_PD_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-common.h
      type_or_value: '2 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TI_TPS6598X_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.h
      type_or_value: (fu_ti_tps6598x_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ti_tps6598x_device_to_string
  - fu_ti_tps6598x_device_usbep_read_raw
  - fu_ti_tps6598x_device_usbep_read
  - fu_ti_tps6598x_device_usbep_write
  - fu_ti_tps6598x_device_read_data
  - fu_ti_tps6598x_device_write_data
  - fu_ti_tps6598x_device_write_4cc
  - fu_ti_tps6598x_device_reset_hard
  - fu_ti_tps6598x_device_wait_for_command_cb
  - fu_ti_tps6598x_device_wait_for_command
  - fu_ti_tps6598x_device_target_reboot
  - fu_ti_tps6598x_device_maybe_reboot
  - fu_ti_tps6598x_device_sfwi
  - fu_ti_tps6598x_device_sfwd
  - fu_ti_tps6598x_device_sfws
  - fu_ti_tps6598x_device_read_target_register
  - fu_ti_tps6598x_device_ensure_version
  - fu_ti_tps6598x_device_ensure_mode
  - fu_ti_tps6598x_device_ensure_uid
  - fu_ti_tps6598x_device_ensure_ouid
  - fu_ti_tps6598x_device_setup
  - fu_ti_tps6598x_device_report_metadata_pre
  - fu_ti_tps6598x_device_write_chunks
  - fu_ti_tps6598x_device_write_sfws_chunks
  - fu_ti_tps6598x_device_attach
  - fu_ti_tps6598x_device_write_firmware
  - fu_ti_tps6598x_device_set_progress
  - fu_ti_tps6598x_device_init
  - fu_ti_tps6598x_device_finalize
  - fu_ti_tps6598x_device_class_init
  source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TI_TPS6598X_DEVICE_USB_TIMEOUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
      type_or_value: '2000 '
    - item_type: preproc_def
      name: TI_TPS6598X_USB_REQUEST_WRITE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
      type_or_value: '0xFD'
    - item_type: preproc_def
      name: TI_TPS6598X_USB_REQUEST_READ
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: TI_TPS6598X_USB_BUFFER_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
      type_or_value: '8 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: '*uid'
        type: gchar
      - name: '*ouid'
        type: gchar
      item_type: struct
      name: _FuTiTps6598xDevice
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID2_SIPO_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.h
      type_or_value: (fu_legion_hid2_sipo_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_sipo_device_probe
  - fu_legion_hid2_sipo_device_write_firmware
  - fu_legion_hid2_sipo_device_convert_version
  - fu_legion_hid2_sipo_device_init
  - fu_legion_hid2_sipo_device_class_init
  - fu_legion_hid2_sipo_device_new
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuLegionHid2SipoDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_bl_device_probe
  - fu_legion_hid2_bl_device_write_firmware
  - fu_legion_hid2_bl_device_convert_version
  - fu_legion_hid2_bl_device_init
  - fu_legion_hid2_bl_device_class_init
  - fu_legion_hid2_bl_device_new
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuLegionHid2BlDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_plugin_init
  - fu_legion_hid2_plugin_constructed
  - fu_legion_hid2_plugin_class_init
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLegionHid2Plugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID2_IAP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.h
      type_or_value: (fu_legion_hid2_iap_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_firmware_export
  - fu_legion_hid2_firmware_get_version
  - fu_legion_hid2_firmware_parse
  - fu_legion_hid2_firmware_init
  - fu_legion_hid2_firmware_class_init
  - fu_legion_hid2_firmware_new
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERSION_OFFSET
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
      type_or_value: '0x1e0'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: version
        type: guint32
      item_type: struct
      name: _FuLegionHid2Firmware
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID2_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.h
      type_or_value: (fu_legion_hid2_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID2_BL_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.h
      type_or_value: (fu_legion_hid2_bl_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID2_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.h
      type_or_value: (fu_legion_hid2_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_device_transfer
  - fu_legion_hid2_device_convert_version
  - fu_legion_hid2_device_ensure_version
  - fu_legion_hid2_device_setup_touchpad_direct
  - fu_legion_hid2_device_setup_touchpad
  - fu_legion_hid2_device_setup_version
  - fu_legion_hid2_device_validate_descriptor
  - fu_legion_hid2_device_setup
  - fu_legion_hid2_device_prepare_firmware
  - fu_legion_hid2_device_detach
  - fu_legion_hid2_device_init
  - fu_legion_hid2_device_class_init
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LEGION_HID2_DEVICE_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
      type_or_value: '200 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLegionHid2Device
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid2_iap_device_transfer
  - fu_legion_hid2_iap_device_tlv
  - fu_legion_hid2_iap_device_attach
  - fu_legion_hid2_iap_device_prepare_firmware
  - fu_legion_hid2_iap_device_unlock_flash
  - fu_legion_hid2_iap_device_verify_signature
  - fu_legion_hid2_iap_device_verify_code
  - fu_legion_hid2_iap_device_write_data_chunks
  - fu_legion_hid2_iap_device_wait_for_complete_cb
  - fu_legion_hid2_iap_device_write_data
  - fu_legion_hid2_iap_device_write_sig
  - fu_legion_hid2_iap_device_write_firmware
  - fu_legion_hid2_iap_device_set_progress
  - fu_legion_hid2_iap_device_init
  - fu_legion_hid2_iap_device_class_init
  source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LEGION_HID2_IAP_DEVICE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
      type_or_value: '200 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLegionHid2IapDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    typedefs: []
    union: []
- function_names:
  - fu_asus_hid_firmware_export
  - fu_asus_hid_firmware_parse
  - fu_asus_hid_firmware_init
  - fu_asus_hid_firmware_finalize
  - fu_asus_hid_firmware_class_init
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FGA_OFFSET
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
      type_or_value: '0x2010'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*fga'
        type: gchar
      - name: '*product'
        type: gchar
      - name: '*version'
        type: gchar
      item_type: struct
      name: _FuAsusHidFirmware
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_asus_hid_child_device_to_string
  - fu_asus_hid_child_device_transfer_feature
  - fu_asus_hid_child_device_ensure_manufacturer
  - fu_asus_hid_child_device_ensure_version
  - fu_asus_hid_child_device_setup
  - fu_asus_hid_child_device_reload
  - fu_asus_hid_child_device_attach
  - fu_asus_hid_child_device_detach
  - fu_asus_hid_child_device_init
  - fu_asus_hid_child_device_class_init
  - fu_asus_hid_child_device_new
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ASUS_HID_CHILD_DEVICE_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
      type_or_value: '200 '
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: idx
        type: guint8
      item_type: struct
      name: _FuAsusHidChildDevice
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    typedefs: []
    union: []
- function_names:
  - fu_asus_hid_plugin_init
  - fu_asus_hid_plugin_constructed
  - fu_asus_hid_plugin_class_init
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAsusHidPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ASUS_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.h
      type_or_value: (fu_asus_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_asus_hid_device_transfer_feature
  - fu_asus_hid_device_init_seq
  - fu_asus_hid_device_child_added_cb
  - fu_asus_hid_device_validate_descriptor
  - fu_asus_hid_device_probe
  - fu_asus_hid_device_setup
  - fu_asus_hid_device_attach
  - fu_asus_hid_device_detach
  - fu_asus_hid_device_dump_firmware
  - fu_asus_hid_device_set_quirk_kv
  - fu_asus_hid_device_dispose
  - fu_asus_hid_device_init
  - fu_asus_hid_device_class_init
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ASUS_HID_DEVICE_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
      type_or_value: '200 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: num_mcu
        type: guint8
      - name: child_added_id
        type: gulong
      item_type: struct
      name: _FuAsusHidDevice
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ASUS_HID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.h
      type_or_value: (fu_asus_hid_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ASUS_HID_CHILD_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.h
      type_or_value: (fu_asus_hid_child_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_linux_display_plugin_get_display_state
  - fu_linux_display_plugin_ensure_display_state
  - fu_linux_display_plugin_plugin_backend_device_added
  - fu_linux_display_plugin_plugin_ready
  - fu_linux_display_plugin_plugin_backend_device_removed
  - fu_linux_display_plugin_plugin_backend_device_changed
  - fu_linux_display_plugin_init
  - fu_linux_display_plugin_constructed
  - fu_linux_display_plugin_class_init
  source_file: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLinuxDisplayPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_upower_plugin_rescan_devices
  - fu_upower_plugin_update_lid
  - fu_upower_plugin_update_battery
  - fu_upower_plugin_rescan_manager
  - fu_upower_plugin_proxy_changed_cb
  - fu_upower_plugin_startup
  - fu_upower_plugin_init
  - fu_upower_plugin_finalize
  - fu_upower_plugin_class_init
  source_file: /src/fwupd/plugins/upower/fu-upower-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*proxy'
        type: GDBusProxy
      - name: '*proxy_manager'
        type: GDBusProxy
      item_type: struct
      name: _FuUpowerPlugin
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/fwupd/plugins/upower/fu-upower-plugin.c
    typedefs:
    - item_type: typedef
      name: UpDeviceState
      pos:
        line_end: 25
        line_start: 16
        source_file: /src/fwupd/plugins/upower/fu-upower-plugin.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/upower/fu-upower-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MAKE_CMD_EX
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GX_CMD_ACK
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0xAA'
    - item_type: preproc_def
      name: GX_CMD_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0xD0'
    - item_type: preproc_def
      name: GX_CMD_RESET
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0xB4'
    - item_type: preproc_def
      name: GX_CMD_UPGRADE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: GX_CMD_UPGRADE_INIT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: GX_CMD_UPGRADE_DATA
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: GX_CMD1_DEFAULT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: GX_SIZE_CRC32
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
      type_or_value: '4'
    structs:
    - fields:
      - name: format[2]
        type: guint8
      - name: fwtype[8]
        type: guint8
      - name: fwversion[8]
        type: guint8
      - name: customer[8]
        type: guint8
      - name: mcu[8]
        type: guint8
      - name: sensor[8]
        type: guint8
      - name: algversion[8]
        type: guint8
      - name: interface[8]
        type: guint8
      - name: protocol[8]
        type: guint8
      - name: flashVersion[8]
        type: guint8
      - name: reserved[62]
        type: guint8
      item_type: struct
      name: GxfpVersionInfo
      pos:
        line_end: 37
        line_start: 25
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    - fields:
      - name: cmd
        type: guint8
      - name: configured
        type: gboolean
      item_type: struct
      name: GxfpAckMsg
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    - fields:
      - name: result
        type: guint8
      item_type: struct
      name: GxfpCmdResp
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    - fields:
      - name: cmd0
        type: guint8
      - name: cmd1
        type: guint8
      - name: pkg_flag
        type: guint8
      - name: reserved
        type: guint8
      - name: len
        type: guint16
      - name: crc8
        type: guint8
      - name: rev_crc8
        type: guint8
      item_type: struct
      name: GxfpPkgHeader
      pos:
        line_end: 65
        line_start: 57
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    typedefs:
    - item_type: typedef
      name: GxPkgType
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-common.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixmoc_plugin_init
  - fu_goodixmoc_plugin_object_constructed
  - fu_goodixmoc_plugin_constructed
  - fu_goodixmoc_plugin_class_init
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuGoodixMocPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXMOC_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.h
      type_or_value: (fu_goodixmoc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodixmoc_device_cmd_send
  - fu_goodixmoc_device_cmd_recv
  - fu_goodixmoc_device_cmd_xfer
  - fu_goodixmoc_device_setup_version
  - fu_goodixmoc_device_update_init
  - fu_goodixmoc_device_attach
  - fu_goodixmoc_device_setup
  - fu_goodixmoc_device_write_firmware
  - fu_goodixmoc_device_set_progress
  - fu_goodixmoc_device_init
  - fu_goodixmoc_device_class_init
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GX_USB_BULK_EP_IN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: (3 | 0x80)
    - item_type: preproc_def
      name: GX_USB_BULK_EP_OUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: (1 | 0x00)
    - item_type: preproc_def
      name: GX_USB_INTERFACE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GX_USB_DATAIN_TIMEOUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: '2000 '
    - item_type: preproc_def
      name: GX_USB_DATAOUT_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: '200  '
    - item_type: preproc_def
      name: GX_FLASH_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
      type_or_value: '1000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: dummy_seq
        type: guint8
      item_type: struct
      name: _FuGoodixMocDevice
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodixmoc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_RTSHUB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.h
      type_or_value: (fu_dell_kestrel_rtshub_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_rtshub_firmware_convert_version
  - fu_dell_kestrel_rtshub_firmware_export
  - fu_dell_kestrel_rtshub_firmware_set_offset
  - fu_dell_kestrel_rtshub_firmware_parse
  - fu_dell_kestrel_rtshub_firmware_init
  - fu_dell_kestrel_rtshub_firmware_class_init
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOCK_RTSHUB_GEN2_VERSION_OFFSET
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
      type_or_value: '0x7F52'
    - item_type: preproc_def
      name: DOCK_RTSHUB_GEN1_VERSION_OFFSET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
      type_or_value: '0x7FA6'
    - item_type: preproc_def
      name: DOCK_RTSHUB_GEN1_VID_OFFSET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
      type_or_value: '0x7FA8'
    - item_type: preproc_def
      name: DOCK_RTSHUB_GEN1_PID_OFFSET
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
      type_or_value: '0x7FAA'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: pid
        type: guint16
      item_type: struct
      name: _FuDellKestrelRtshubFirmware
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_EC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.h
      type_or_value: (fu_dell_kestrel_ec_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_ilan_convert_version
  - fu_dell_kestrel_ilan_setup
  - fu_dell_kestrel_ilan_write
  - fu_dell_kestrel_ilan_set_progress
  - fu_dell_kestrel_ilan_init
  - fu_dell_kestrel_ilan_class_init
  - fu_dell_kestrel_ilan_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuDellKestrelIlan
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_HID_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.h
      type_or_value: (fu_dell_kestrel_hid_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuHidDeviceClass
      item_type: struct
      name: _FuDellKestrelHidDeviceClass
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.h
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_plugin_create_node
  - fu_dell_kestrel_plugin_device_add
  - fu_dell_kestrel_plugin_ec_add_cached_devices
  - fu_dell_kestrel_plugin_backend_device_added
  - fu_dell_kestrel_plugin_config_mst_dev
  - fu_dell_kestrel_plugin_config_parentship
  - fu_dell_kestrel_plugin_device_registered
  - fu_dell_kestrel_plugin_get_ec_from_devices
  - fu_dell_kestrel_plugin_composite_cleanup
  - fu_dell_kestrel_plugin_composite_prepare
  - fu_dell_kestrel_plugin_modify_config
  - fu_dell_kestrel_plugin_backend_device_removed
  - fu_dell_kestrel_plugin_init
  - fu_dell_kestrel_plugin_constructed
  - fu_dell_kestrel_plugin_class_init
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_DELL_KESTREL_PLUGIN_CONFIG_UOD
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
      type_or_value: '"UpdateOnDisconnect"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuDellKestrelPlugin
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    - fields:
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      item_type: struct
      name: "hw_dev_ids[] = {\n\t    {DELL_VID, DELL_KESTREL_USB_RTS0_G1_PID},\n\t
        \   {DELL_VID, DELL_KESTREL_USB_RTS0_G2_PID},\n\t    {DELL_VID, DELL_KESTREL_USB_RTS5_G2_PID},\n\t
        \   {DELL_VID, DELL_KESTREL_USB_RMM_PID},\n\t    {0},\n\t}"
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_pd_convert_version
  - fu_dell_kestrel_pd_setup
  - fu_dell_kestrel_pd_write
  - fu_dell_kestrel_pd_set_progress
  - fu_dell_kestrel_pd_init
  - fu_dell_kestrel_pd_class_init
  - fu_dell_kestrel_pd_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: pd_subtype
        type: FuDellKestrelEcDevSubtype
      - name: pd_instance
        type: FuDellKestrelEcDevInstance
      - name: pd_identifier
        type: guint8
      item_type: struct
      name: _FuDellKestrelPd
      pos:
        line_end: 16
        line_start: 11
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_rtshub_to_string
  - fu_dell_kestrel_rtshub_set_clock_mode
  - fu_dell_kestrel_rtshub_erase_spare_bank
  - fu_dell_kestrel_rtshub_verify_update_fw
  - fu_dell_kestrel_rtshub_reset_device
  - fu_dell_kestrel_rtshub_write_flash
  - fu_dell_kestrel_rtshub_write_firmware
  - fu_dell_kestrel_rtshub_get_status
  - fu_dell_kestrel_rtshub_setup
  - fu_dell_kestrel_rtshub_probe
  - fu_dell_kestrel_rtshub_open
  - fu_dell_kestrel_rtshub_set_progress
  - fu_dell_kestrel_rtshub_init
  - fu_dell_kestrel_rtshub_class_init
  - fu_dell_kestrel_rtshub_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: dock_type
        type: FuDellDockBaseType
      - name: fw_auth
        type: gboolean
      - name: dual_bank
        type: gboolean
      item_type: struct
      name: _FuDellKestrelRtsHub
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_RTSHUB
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: (fu_dell_kestrel_rtshub_get_type())
    - item_type: preproc_def
      name: DELL_KESTREL_USB_RTS0_G1_PID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xB0A1'
    - item_type: preproc_def
      name: DELL_KESTREL_USB_RTS0_G2_PID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xB0A2'
    - item_type: preproc_def
      name: DELL_KESTREL_USB_RTS5_G2_PID
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xB0A3'
    - item_type: preproc_def
      name: RTSHUB_CMD_READ_DATA
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: RTSHUB_CMD_WRITE_DATA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: RTSHUB_EXT_READ_STATUS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: RTSHUB_EXT_MCUMODIFYCLOCK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: RTSHUB_EXT_WRITEFLASH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xC8'
    - item_type: preproc_def
      name: RTSHUB_EXT_VERIFYUPDATE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xD9'
    - item_type: preproc_def
      name: RTSHUB_EXT_ERASEBANK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xE8'
    - item_type: preproc_def
      name: RTSHUB_EXT_RESET_TO_FLASH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '0xE9'
    - item_type: preproc_def
      name: DELL_KESTREL_RTSHUB_TIMEOUT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: DELL_KESTREL_RTSHUB_BUFFER_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '192'
    - item_type: preproc_def
      name: DELL_KESTREL_RTSHUB_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_DPMUX
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.h
      type_or_value: (fu_dell_kestrel_dpmux_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_wtpd_convert_version
  - fu_dell_kestrel_wtpd_setup
  - fu_dell_kestrel_wtpd_write
  - fu_dell_kestrel_wtpd_set_progress
  - fu_dell_kestrel_wtpd_init
  - fu_dell_kestrel_wtpd_class_init
  - fu_dell_kestrel_wtpd_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuDellKestrelWtpd
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELL_KESTREL_USB_RMM_PID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.h
      type_or_value: '0xB0A4'
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_RMM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.h
      type_or_value: (fu_dell_kestrel_rmm_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_hid_device_write
  - fu_dell_kestrel_hid_device_fwup_pkg_new
  - fu_dell_kestrel_hid_device_hid_set_report_cb
  - fu_dell_kestrel_hid_device_hid_set_report
  - fu_dell_kestrel_hid_device_get_report_cb
  - fu_dell_kestrel_hid_device_get_report
  - fu_dell_kestrel_hid_device_i2c_write
  - fu_dell_kestrel_hid_device_i2c_read
  - fu_dell_kestrel_hid_device_get_chunk_delaytime
  - fu_dell_kestrel_hid_device_get_chunk_size
  - fu_dell_kestrel_hid_device_write_firmware_pages
  - fu_dell_kestrel_hid_device_verify_chunk_result
  - fu_dell_kestrel_hid_device_write_firmware
  - fu_dell_kestrel_hid_device_init
  - fu_dell_kestrel_hid_device_class_init
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '3000'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_CMD_FWUPDATE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '0xAB'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_EXT_FWUPDATE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_SUBCMD_FWUPDATE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_DEV_ANY_CHUNK_SZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '120000'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_DEV_NO_CHUNK_SZ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: G_MAXSIZE
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_DATA_PAGE_SZ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '192'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_RESPONSE_LENGTH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_I2C_ADDRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '0xec'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_I2C_MAX_READ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '192'
    - item_type: preproc_def
      name: FU_DELL_KESTREL_HID_I2C_MAX_WRITE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_ec_dev_entry
  - fu_dell_kestrel_ec_is_dev_present
  - fu_dell_kestrel_ec_is_chunk_supported
  - fu_dell_kestrel_ec_devicetype_to_str
  - fu_dell_kestrel_ec_get_dock_type
  - fu_dell_kestrel_ec_get_dock_sku
  - fu_dell_kestrel_ec_read
  - fu_dell_kestrel_ec_write
  - fu_dell_kestrel_ec_create_node
  - fu_dell_kestrel_ec_probe_package
  - fu_dell_kestrel_ec_probe_pd
  - fu_dell_kestrel_ec_probe_subcomponents
  - fu_dell_kestrel_ec_dock_type_extract
  - fu_dell_kestrel_ec_dock_type_cmd
  - fu_dell_kestrel_ec_dock_info_cmd
  - fu_dell_kestrel_ec_dock_data_extract
  - fu_dell_kestrel_ec_dock_data_cmd
  - fu_dell_kestrel_ec_is_dock_ready4update
  - fu_dell_kestrel_ec_is_new_ownership_cmd
  - fu_dell_kestrel_ec_own_dock
  - fu_dell_kestrel_ec_run_passive_update
  - fu_dell_kestrel_ec_set_dock_sku
  - fu_dell_kestrel_ec_get_pd_version
  - fu_dell_kestrel_ec_get_ilan_version
  - fu_dell_kestrel_ec_get_wtpd_version
  - fu_dell_kestrel_ec_get_dpmux_version
  - fu_dell_kestrel_ec_get_rmm_version
  - fu_dell_kestrel_ec_get_ec_version
  - fu_dell_kestrel_ec_get_package_version
  - fu_dell_kestrel_ec_commit_package
  - fu_dell_kestrel_ec_write_firmware
  - fu_dell_kestrel_ec_query_cb
  - fu_dell_kestrel_ec_reload
  - fu_dell_kestrel_ec_setup
  - fu_dell_kestrel_ec_convert_version
  - fu_dell_kestrel_ec_open
  - fu_dell_kestrel_ec_finalize
  - fu_dell_kestrel_ec_set_progress
  - fu_dell_kestrel_ec_init
  - fu_dell_kestrel_ec_class_init
  - fu_dell_kestrel_ec_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDellKestrelHidDevice
      - name: '*dock_data'
        type: FuStructDellKestrelDockData
      - name: '*dock_info'
        type: FuStructDellKestrelDockInfo
      - name: base_type
        type: FuDellDockBaseType
      - name: base_sku
        type: FuDellKestrelDockSku
      item_type: struct
      name: _FuDellKestrelEc
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_PACKAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.h
      type_or_value: (fu_dell_kestrel_package_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_package_convert_version
  - fu_dell_kestrel_package_setup
  - fu_dell_kestrel_package_write
  - fu_dell_kestrel_package_attach
  - fu_dell_kestrel_package_set_progress
  - fu_dell_kestrel_package_init
  - fu_dell_kestrel_package_class_init
  - fu_dell_kestrel_package_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuDellKestrelPackage
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_dpmux_convert_version
  - fu_dell_kestrel_dpmux_setup
  - fu_dell_kestrel_dpmux_write
  - fu_dell_kestrel_dpmux_set_progress
  - fu_dell_kestrel_dpmux_init
  - fu_dell_kestrel_dpmux_class_init
  - fu_dell_kestrel_dpmux_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuDellKestrelDpmux
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    typedefs: []
    union: []
- function_names:
  - fu_dell_kestrel_rmm_convert_version
  - fu_dell_kestrel_rmm_fix_version
  - fu_dell_kestrel_rmm_setup
  - fu_dell_kestrel_rmm_write
  - fu_dell_kestrel_rmm_set_progress
  - fu_dell_kestrel_rmm_init
  - fu_dell_kestrel_rmm_class_init
  - fu_dell_kestrel_rmm_new
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDellKestrelHidDevice
      item_type: struct
      name: _FuDellKestrelRmm
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_PD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.h
      type_or_value: (fu_dell_kestrel_pd_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELL_VID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '0x413C'
    - item_type: preproc_def
      name: DELL_KESTREL_HID_PID
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '0xB06E'
    - item_type: preproc_def
      name: MST_VMM89_USB_VID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '0x413C'
    - item_type: preproc_def
      name: MST_VMM89_USB_PID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '0xB0A5'
    - item_type: preproc_def
      name: DELL_KESTREL_T5_DEVID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '"TBT-00d4b0a2"'
    - item_type: preproc_def
      name: DELL_KESTREL_T4_DEVID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '"TBT-00d4b0a1"'
    - item_type: preproc_def
      name: DELL_KESTREL_MAX_RETRIES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-common.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_WTPD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.h
      type_or_value: (fu_dell_kestrel_wtpd_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DELL_KESTREL_ILAN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.h
      type_or_value: (fu_dell_kestrel_ilan_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_facp_plugin_add_security_attrs
  - fu_acpi_facp_plugin_init
  - fu_acpi_facp_plugin_class_init
  source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAcpiFacpPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_facp_new
  - fu_acpi_facp_get_s2i
  - fu_acpi_facp_class_init
  - fu_acpi_facp_init
  source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOW_POWER_S0_IDLE_CAPABLE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
      type_or_value: (1 << 21)
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: get_s2i
        type: gboolean
      item_type: struct
      name: _FuAcpiFacp
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_FACP
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.h
      type_or_value: (fu_acpi_facp_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_facp_s2i_disabled_func
  - fu_acpi_facp_s2i_enabled_func
  - main
  source_file: /src/fwupd/plugins/acpi-facp/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AVER_HID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.h
      type_or_value: (fu_aver_hid_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_aver_hid_firmware_parse_archive_cb
  - fu_aver_hid_firmware_parse
  - fu_aver_hid_firmware_init
  - fu_aver_hid_firmware_class_init
  - fu_aver_hid_firmware_new
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuAverHidFirmware
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AVER_SAFEISP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.h
      type_or_value: (fu_aver_safeisp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_aver_hid_device_transfer
  - fu_aver_hid_device_ensure_status
  - fu_aver_hid_device_ensure_version
  - fu_aver_hid_device_setup
  - fu_aver_hid_device_prepare_firmware
  - fu_aver_hid_device_isp_file_dnload
  - fu_aver_hid_device_wait_for_ready_cb
  - fu_aver_hid_device_isp_file_start
  - fu_aver_hid_device_isp_file_end
  - fu_aver_hid_device_wait_for_untar_cb
  - fu_aver_hid_device_isp_start
  - fu_aver_hid_device_isp_reboot
  - fu_aver_hid_device_wait_for_reboot_cb
  - fu_aver_hid_device_write_firmware
  - fu_aver_hid_device_set_progress
  - fu_aver_hid_device_init
  - fu_aver_hid_device_class_init
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_GET_STATUS_POLL_INTERVAL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '1000 '
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_POLL_INTERVAL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_ISP_RETRY_COUNT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '300'
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_ISP_UNTAR_WAIT_COUNT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '600'
    - item_type: preproc_def
      name: FU_AVER_HID_FLAG_DUAL_ISP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: '"dual-isp"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuAverHidDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AVER_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.h
      type_or_value: (fu_aver_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_aver_hid_plugin_init
  - fu_aver_hid_plugin_constructed
  - fu_aver_hid_plugin_class_init
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAverHidPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_aver_safeisp_device_transfer
  - fu_aver_safeisp_device_ensure_version
  - fu_aver_safeisp_device_setup
  - fu_aver_safeisp_device_support
  - fu_aver_safeisp_device_upload_prepare
  - fu_aver_safeisp_device_erase_flash
  - fu_aver_safeisp_device_upload
  - fu_aver_safeisp_device_upload_checksum
  - fu_aver_safeisp_device_update
  - fu_aver_safeisp_device_write_firmware
  - fu_aver_safeisp_device_set_progress
  - fu_aver_safeisp_device_init
  - fu_aver_safeisp_device_class_init
  source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_AVER_SAFEISP_DEVICE_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: FU_AVER_SAFEISP_DEVICE_POLL_INTERVAL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
      type_or_value: '5000   '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuAverSafeispDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    typedefs:
    - item_type: typedef
      name: FuAverSafeIspPartition
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_MKHI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.h
      type_or_value: (fu_intel_mkhi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_mkhi_device_add_checksum_for_filename
  - fu_intel_mkhi_device_setup
  - fu_intel_mkhi_device_version_notify_cb
  - fu_intel_mkhi_device_init
  - fu_intel_mkhi_device_class_init
  source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_INTEL_MKHI_DEVICE_FLAG_LEAKED_KM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
      type_or_value: '"leaked-km"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHeciDevice
      item_type: struct
      name: _FuIntelMkhiDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_mkhi_plugin_init
  - fu_intel_mkhi_plugin_constructed
  - fu_intel_mkhi_plugin_class_init
  source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelMkhiPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PCI_PSP_DEVICE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.h
      type_or_value: (fu_pci_psp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pci_psp_plugin_init
  - fu_pci_psp_plugin_constructed
  - fu_pci_psp_plugin_class_init
  source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuPciPspPlugin
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_pci_psp_device_ensure_agesa_version
  - fu_pci_psp_device_probe
  - fu_pci_psp_device_get_attr
  - fu_pci_psp_device_set_valid_data
  - fu_pci_psp_device_get_security_attr
  - fu_pci_psp_device_add_security_attrs_tsme
  - fu_pci_psp_device_add_security_attrs_fused_part
  - fu_pci_psp_device_add_security_attrs_debug_locked_part
  - fu_pci_psp_device_add_security_attrs_rollback_protection
  - fu_pci_psp_device_add_security_attrs_rom_armor
  - fu_pci_psp_device_add_security_attrs_rpmc
  - fu_pci_psp_device_add_security_attrs
  - fu_pci_psp_device_init
  - fu_pci_psp_device_class_init
  source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CPU_AGESA_SMBIOS_TYPE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
      type_or_value: '40'
    - item_type: preproc_def
      name: FU_CPU_AGESA_SMBIOS_LENGTH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: FU_CPU_AGESA_SMBIOS_OFFSET
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
      type_or_value: '4'
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: supported
        type: gboolean
      item_type: struct
      name: _FuPciPspDevice
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_BULKCONTROLLER_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.h
      type_or_value: (fu_logitech_bulkcontroller_device_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_CHECK_BUFFER_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.h
      type_or_value: '"check-buffer-size"'
    - item_type: preproc_def
      name: FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_POST_INSTALL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.h
      type_or_value: '"post-install"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SET_TIME_DELAY_MS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.h
      type_or_value: '500 '
    structs: []
    typedefs:
    - item_type: typedef
      name: FuLogitechBulkcontrollerProtoId
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.h
    union: []
- function_names:
  - fu_logitech_bulkcontroller_device_to_string
  - fu_logitech_bulkcontroller_device_probe
  - fu_logitech_bulkcontroller_device_response_new
  - fu_logitech_bulkcontroller_device_response_free
  - fu_logitech_bulkcontroller_device_sync_send_cmd
  - fu_logitech_bulkcontroller_device_sync_send_ack
  - fu_logitech_bulkcontroller_device_sync_wait_any
  - fu_logitech_bulkcontroller_device_sync_wait_cmd
  - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry_cb
  - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
  - fu_logitech_bulkcontroller_device_sync_check_ack_cmd
  - fu_logitech_bulkcontroller_device_sync_wait_ack_cb
  - fu_logitech_bulkcontroller_device_sync_wait_ack
  - fu_logitech_bulkcontroller_device_sync_check_ack
  - fu_logitech_bulkcontroller_device_sync_write
  - fu_logitech_bulkcontroller_device_upd_send_cmd
  - fu_logitech_bulkcontroller_device_update_state_to_status
  - fu_logitech_bulkcontroller_device_ensure_child
  - fu_logitech_bulkcontroller_device_json_parser
  - fu_logitech_bulkcontroller_device_parse_info
  - fu_logitech_bulkcontroller_device_ensure_info_cb
  - fu_logitech_bulkcontroller_device_ensure_info
  - fu_logitech_bulkcontroller_device_upd_send_init_cmd_cb
  - fu_logitech_bulkcontroller_device_write_fw
  - fu_logitech_bulkcontroller_device_verify_cb
  - fu_logitech_bulkcontroller_device_write_firmware
  - fu_logitech_bulkcontroller_device_set_time_cb
  - fu_logitech_bulkcontroller_device_set_time
  - fu_logitech_bulkcontroller_device_transition_to_device_mode_cb
  - fu_logitech_bulkcontroller_device_transition_to_device_mode
  - fu_logitech_bulkcontroller_device_clear_queue_cb
  - fu_logitech_bulkcontroller_device_clear_queue
  - fu_logitech_bulkcontroller_device_check_buffer_size
  - fu_logitech_bulkcontroller_device_setup
  - fu_logitech_bulkcontroller_device_set_progress
  - fu_logitech_bulkcontroller_device_init
  - fu_logitech_bulkcontroller_device_finalize
  - fu_logitech_bulkcontroller_device_class_init
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: UPD_INTERFACE_SUBPROTOCOL_ID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '117'
    - item_type: preproc_def
      name: SYNC_INTERFACE_SUBPROTOCOL_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '118'
    - item_type: preproc_def
      name: BULK_TRANSFER_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '2500'
    - item_type: preproc_def
      name: HASH_VALUE_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_RETRIES
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_SETUP_RETRIES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: MAX_WAIT_COUNT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '150'
    - item_type: preproc_def
      name: POST_INSTALL_SLEEP_DURATION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '80 * 1000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: sync_ep[EP_LAST]
        type: guint
      - name: update_ep[EP_LAST]
        type: guint
      - name: sync_iface
        type: guint
      - name: update_iface
        type: guint
      - name: status
        type: FuLogitechBulkcontrollerDeviceState
      - name: update_status
        type: FuLogitechBulkcontrollerUpdateState
      - name: update_progress
        type: guint
      - name: is_sync_transfer_in_progress
        type: gboolean
      - name: '*device_info_response_json'
        type: GString
      - name: transfer_bufsz
        type: gsize
      - name: sequence_id
        type: guint32
      item_type: struct
      name: _FuLogitechBulkcontrollerDevice
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    - fields:
      - name: cmd
        type: FuLogitechBulkcontrollerCmd
      - name: sequence_id
        type: guint32
      - name: '*data'
        type: GByteArray
      item_type: struct
      name: FuLogitechBulkcontrollerResponse
      pos:
        line_end: 127
        line_start: 123
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_bulkcontroller_plugin_to_string
  - fu_logitech_bulkcontroller_plugin_init
  - fu_logitech_bulkcontroller_plugin_write_firmware
  - fu_logitech_bulkcontroller_plugin_device_created
  - fu_logitech_bulkcontroller_plugin_constructed
  - fu_logitech_bulkcontroller_plugin_class_init
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: post_install
        type: gboolean
      item_type: struct
      name: _FuLogitechBulkcontrollerPlugin
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_bulkcontroller_child_write_firmware
  - fu_logitech_bulkcontroller_child_set_progress
  - fu_logitech_bulkcontroller_child_init
  - fu_logitech_bulkcontroller_child_class_init
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuLogitechBulkcontrollerChild
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_BULKCONTROLLER_CHILD
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.h
      type_or_value: (fu_logitech_bulkcontroller_child_get_type())
    - item_type: preproc_def
      name: FU_LOGITECH_BULKCONTROLLER_DEVICE_FLAG_PHERIPHERAL_UPDATE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.h
      type_or_value: '"pheripheral-update"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_logitech_bulkcontroller_proto_manager_set_header
  - fu_logitech_bulkcontroller_proto_manager_generate_get_device_info_request
  - fu_logitech_bulkcontroller_proto_manager_generate_transition_to_device_mode_request
  - fu_logitech_bulkcontroller_proto_manager_generate_set_device_time_request
  - fu_logitech_bulkcontroller_usb_msg_parse_msg_response
  - fu_logitech_bulkcontroller_usb_msg_parse_msg_event
  - fu_logitech_bulkcontroller_proto_manager_decode_message
  source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_esrt_plugin_check_esrt
  - fu_uefi_esrt_plugin_add_security_attrs
  - fu_uefi_esrt_plugin_init
  - fu_uefi_esrt_plugin_class_init
  source_file: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LENOVO_CAPSULE_SETTING
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
      type_or_value: '"com.thinklmi.WindowsUEFIFirmwareUpdate"'
    - item_type: preproc_def
      name: DELL_CAPSULE_SETTING
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
      type_or_value: '"com.dell.CapsuleFirmwareUpdate"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuUefiEsrtPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_i2c_check_status
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_USBHUB_RTD21XX_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.h
      type_or_value: (fu_vli_usbhub_rtd21xx_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_common_device_kind_get_size
  - fu_vli_common_device_kind_get_offset
  source_file: /src/fwupd/plugins/vli/fu-vli-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_PD_PARADE_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.h
      type_or_value: (fu_vli_pd_parade_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_device_to_string
  - fu_vli_usbhub_device_header_crc8
  - fu_vli_usbhub_device_vdr_unlock_813
  - fu_vli_usbhub_device_read_reg
  - fu_vli_usbhub_device_write_reg
  - fu_vli_usbhub_device_spi_read_status
  - fu_vli_usbhub_device_spi_read_data
  - fu_vli_usbhub_device_spi_write_status
  - fu_vli_usbhub_device_spi_write_enable
  - fu_vli_usbhub_device_spi_chip_erase
  - fu_vli_usbhub_device_spi_sector_erase
  - fu_vli_usbhub_device_spi_write_data
  - fu_vli_usbhub_device_attach
  - fu_vli_usbhub_device_disable_u1u2
  - fu_vli_usbhub_device_guess_kind
  - fu_vli_usbhub_device_probe
  - fu_vli_usbhub_device_pd_setup
  - fu_vli_usbhub_device_msp430_setup
  - fu_vli_usbhub_device_rtd21xx_setup
  - fu_vli_usbhub_device_ready
  - fu_vli_usbhub_device_prepare_firmware
  - fu_vli_usbhub_device_update_v1
  - fu_vli_usbhub_device_update_v2_recovery
  - fu_vli_usbhub_device_hd1_is_valid
  - fu_vli_usbhub_device_hd1_recover
  - fu_vli_usbhub_device_update_v2
  - fu_vli_usbhub_device_update_v3
  - fu_vli_usbhub_device_dump_firmware
  - fu_vli_usbhub_device_write_firmware
  - fu_vli_usbhub_device_set_progress
  - fu_vli_usbhub_device_init
  - fu_vli_usbhub_device_finalize
  - fu_vli_usbhub_device_class_init
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_ATTACH_WITH_GPIOB
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"attach-with-gpiob"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_USB2
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"usb2"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_USB3
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"usb3"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_UNLOCK_LEGACY813
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"unlock-legacy813"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_HAS_SHARED_SPI_PD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"has-shared-spi-pd"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_HAS_MSP430
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"has-msp430"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_HAS_RTD21XX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"has-rtd21xx"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_ATTACH_WITH_USB_CABLE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"attach-with-usb"'
    - item_type: preproc_def
      name: FU_VLI_USBHUB_DEVICE_FLAG_ATTACH_WITH_POWER_CORD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '"attach-with-power"'
    - item_type: preproc_def
      name: VL817_ADDR_GPIO_OUTPUT_ENABLE
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '0xF6A0 '
    - item_type: preproc_def
      name: VL817_ADDR_GPIO_SET_OUTPUT_DATA
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '0xF6A1 '
    - item_type: preproc_def
      name: VL817_ADDR_GPIO_GET_INPUT_DATA
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
      type_or_value: '0xF6A2 '
    structs:
    - fields:
      - name: parent_instance
        type: FuVliDevice
      - name: disable_powersave
        type: gboolean
      - name: update_protocol
        type: guint8
      - name: '*st_hd1'
        type: GByteArray
      - name: '*st_hd2'
        type: GByteArray
      item_type: struct
      name: _FuVliUsbhubDevice
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_PD_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-firmware.h
      type_or_value: (fu_vli_pd_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_vli_pd_common_func
  - main
  source_file: /src/fwupd/plugins/vli/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fwver
        type: guint32
      - name: device_kind
        type: FuVliDeviceKind
      item_type: struct
      name: "map[] = {{0x00, FU_VLI_DEVICE_KIND_UNKNOWN}, {0x01, FU_VLI_DEVICE_KIND_VL100},\n\t\t
        \  {0x02, FU_VLI_DEVICE_KIND_VL100},   {0x03, FU_VLI_DEVICE_KIND_VL100},\n\t\t
        \  {0x04, FU_VLI_DEVICE_KIND_VL101},   {0x05, FU_VLI_DEVICE_KIND_VL101},\n\t\t
        \  {0x06, FU_VLI_DEVICE_KIND_VL101},   {0x07, FU_VLI_DEVICE_KIND_VL102},\n\t\t
        \  {0x08, FU_VLI_DEVICE_KIND_VL102},   {0x09, FU_VLI_DEVICE_KIND_VL103},\n\t\t
        \  {0x0A, FU_VLI_DEVICE_KIND_VL103},   {0x0B, FU_VLI_DEVICE_KIND_VL104},\n\t\t
        \  {0x0C, FU_VLI_DEVICE_KIND_VL105},   {0x0D, FU_VLI_DEVICE_KIND_VL106},\n\t\t
        \  {0x0E, FU_VLI_DEVICE_KIND_VL107},   {0x0F, FU_VLI_DEVICE_KIND_UNKNOWN},\n\t\t
        \  {0xA0, FU_VLI_DEVICE_KIND_UNKNOWN}, {0xA1, FU_VLI_DEVICE_KIND_VL108},\n\t\t
        \  {0xA2, FU_VLI_DEVICE_KIND_VL109},   {0xA3, FU_VLI_DEVICE_KIND_UNKNOWN},\n\t\t
        \  {0xA4, FU_VLI_DEVICE_KIND_UNKNOWN}, {0xB1, FU_VLI_DEVICE_KIND_VL108},\n\t\t
        \  {0xB2, FU_VLI_DEVICE_KIND_VL109},   {0xB3, FU_VLI_DEVICE_KIND_UNKNOWN},\n\t\t
        \  {0xB4, FU_VLI_DEVICE_KIND_UNKNOWN}, {0xFF, FU_VLI_DEVICE_KIND_UNKNOWN}}"
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-self-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_USBHUB_PD_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.h
      type_or_value: (fu_vli_usbhub_pd_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_firmware_get_device_kind
  - fu_vli_usbhub_firmware_get_device_id
  - fu_vli_usbhub_firmware_export
  - fu_vli_usbhub_firmware_parse_version
  - fu_vli_usbhub_firmware_parse
  - fu_vli_usbhub_firmware_convert_version
  - fu_vli_usbhub_firmware_init
  - fu_vli_usbhub_firmware_class_init
  - fu_vli_usbhub_firmware_new
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: device_kind
        type: FuVliDeviceKind
      - name: dev_id
        type: guint16
      item_type: struct
      name: _FuVliUsbhubFirmware
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_PD_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
      type_or_value: (fu_vli_pd_device_get_type())
    - item_type: preproc_def
      name: FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_HIGH
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
      type_or_value: 0X009C
    - item_type: preproc_def
      name: FU_VLI_PD_REGISTER_ADDRESS_PROJ_ID_LOW
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
      type_or_value: 0X009D
    - item_type: preproc_def
      name: FU_VLI_PD_REGISTER_ADDRESS_PROJ_LEGACY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
      type_or_value: 0X0018
    - item_type: preproc_def
      name: FU_VLI_PD_REGISTER_ADDRESS_GPIO_CONTROL_A
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.h
      type_or_value: 0X0003
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_USBHUB_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-device.h
      type_or_value: (fu_vli_usbhub_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_pd_common_guess_device_kind
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_plugin_init
  - fu_vli_plugin_constructed
  - fu_vli_plugin_class_init
  source_file: /src/fwupd/plugins/vli/fu-vli-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuVliPlugin
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_USBHUB_FIRMWARE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.h
      type_or_value: (fu_vli_usbhub_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_rtd21xx_device_i2c_write
  - fu_vli_usbhub_rtd21xx_device_i2c_read
  - fu_vli_usbhub_rtd21xx_device_read_status_raw
  - fu_vli_usbhub_rtd21xx_device_read_status_cb
  - fu_vli_usbhub_rtd21xx_device_read_status
  - fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked
  - fu_vli_usbhub_rtd21xx_device_setup
  - fu_vli_usbhub_rtd21xx_device_detach_raw
  - fu_vli_usbhub_rtd21xx_device_detach_cb
  - fu_vli_usbhub_rtd21xx_device_detach
  - fu_vli_usbhub_rtd21xx_device_attach
  - fu_vli_usbhub_rtd21xx_device_write_firmware
  - fu_vli_usbhub_rtd21xx_device_reload
  - fu_vli_usbhub_rtd21xx_device_probe
  - fu_vli_usbhub_rtd21xx_device_set_progress
  - fu_vli_usbhub_rtd21xx_device_init
  - fu_vli_usbhub_rtd21xx_device_class_init
  - fu_vli_usbhub_rtd21xx_device_new
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_WRITE_REQUEST
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0xB2'
    - item_type: preproc_def
      name: I2C_READ_REQUEST
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0xA5'
    - item_type: preproc_def
      name: I2C_DELAY_AFTER_SEND
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: UC_FOREGROUND_TARGET_ADDR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0x3A'
    - item_type: preproc_def
      name: UC_FOREGROUND_STATUS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0x31'
    - item_type: preproc_def
      name: UC_FOREGROUND_OPCODE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0x33'
    - item_type: preproc_def
      name: UC_FOREGROUND_ISP_DATA_OPCODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '0x34'
    - item_type: preproc_def
      name: ISP_DATA_BLOCKSIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: ISP_PACKET_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
      type_or_value: '32'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuVliUsbhubRtd21xxDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    typedefs:
    - item_type: typedef
      name: IspStatus
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    - item_type: typedef
      name: IspCmd
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    union: []
- function_names:
  - VLI_USBHUB_FLASHMAP_ADDR_TO_IDX
  - VLI_USBHUB_FLASHMAP_IDX_TO_ADDR
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_SELFW1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_76PIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_B3UP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_LPC
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_U1U2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_BC
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING1_Q4S
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING2_IDXEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING2_FWRTY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: FU_VLI_USBHUB_HEADER_STRAPPING2_SELFW2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_IDX_HD1
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_IDX_HD2
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x80 '
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_IDX_INVALID
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_HD1
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_HD1_BACKUP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x1800'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_HD2
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_FW
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_PD_LEGACY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_PD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: VLI_USBHUB_FLASHMAP_ADDR_PD_BACKUP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0x30000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuVliUsbhubI2cStatus
      pos:
        line_end: 18
        line_start: 11
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.h
    union: []
- function_names:
  - fu_vli_pd_firmware_get_kind
  - fu_vli_pd_firmware_export
  - fu_vli_pd_firmware_parse
  - fu_vli_pd_firmware_convert_version
  - fu_vli_pd_firmware_init
  - fu_vli_pd_firmware_class_init
  - fu_vli_pd_firmware_new
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: device_kind
        type: FuVliDeviceKind
      item_type: struct
      name: _FuVliPdFirmware
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_USBHUB_MSP430_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.h
      type_or_value: (fu_vli_usbhub_msp430_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_msp430_device_i2c_read
  - fu_vli_usbhub_msp430_device_i2c_read_status
  - fu_vli_usbhub_msp430_device_i2c_write_data
  - fu_vli_usbhub_msp430_device_setup
  - fu_vli_usbhub_msp430_device_detach
  - fu_vli_usbhub_msp430_device_write_firmware_cb
  - fu_vli_usbhub_msp430_device_write_firmware
  - fu_vli_usbhub_msp430_device_probe
  - fu_vli_usbhub_msp430_device_set_progress
  - fu_vli_usbhub_msp430_device_init
  - fu_vli_usbhub_msp430_device_class_init
  - fu_vli_usbhub_msp430_device_new
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I2C_ADDR_WRITE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: I2C_ADDR_READ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x19'
    - item_type: preproc_def
      name: I2C_CMD_WRITE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x32'
    - item_type: preproc_def
      name: I2C_CMD_READ_STATUS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x33'
    - item_type: preproc_def
      name: I2C_CMD_UPGRADE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x34'
    - item_type: preproc_def
      name: I2C_CMD_READ_VERSIONS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: I2C_R_VDR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0xa0 '
    - item_type: preproc_def
      name: I2C_W_VDR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
      type_or_value: '0xb0 '
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuVliUsbhubMsp430Device
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    - fields:
      - name: command
        type: guint8
      - name: buf[0x40]
        type: guint8
      - name: bufsz
        type: gsize
      - name: len
        type: guint8
      item_type: struct
      name: FuVliUsbhubDeviceRequest
      pos:
        line_end: 177
        line_start: 172
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_vli_device_get_cfi_device
  - fu_vli_device_spi_write_enable
  - fu_vli_device_spi_chip_erase
  - fu_vli_device_spi_write_status
  - fu_vli_device_spi_read_status
  - fu_vli_device_spi_sector_erase
  - fu_vli_device_spi_read_block
  - fu_vli_device_spi_write_data
  - fu_vli_device_spi_wait_finish
  - fu_vli_device_spi_erase_sector
  - fu_vli_device_spi_read
  - fu_vli_device_spi_write_block
  - fu_vli_device_spi_write
  - fu_vli_device_spi_erase_all
  - fu_vli_device_spi_erase
  - fu_vli_device_get_flash_id_str
  - fu_vli_device_set_kind
  - fu_vli_device_set_spi_auto_detect
  - fu_vli_device_get_kind
  - fu_vli_device_get_offset
  - fu_vli_device_to_string
  - fu_vli_device_spi_read_flash_id
  - fu_vli_device_setup
  - fu_vli_device_set_quirk_kv
  - fu_vli_device_report_metadata_pre
  - fu_vli_device_get_property
  - fu_vli_device_set_property
  - fu_vli_device_constructed
  - fu_vli_device_init
  - fu_vli_device_finalize
  - fu_vli_device_class_init
  source_file: /src/fwupd/plugins/vli/fu-vli-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: FuVliDeviceKind
      - name: '*cfi_device'
        type: FuCfiDevice
      - name: spi_auto_detect
        type: gboolean
      - name: spi_cmd_read_id_sz
        type: guint8
      - name: flash_id
        type: guint32
      item_type: struct
      name: FuVliDevicePrivate
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VLI_USBHUB_PD_FLASHMAP_ADDR_LEGACY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: VLI_USBHUB_PD_FLASHMAP_ADDR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x1003'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL100A
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL100B
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL100C
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL101A
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL101B
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL101C
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL102A
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL102B
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL103A
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL103B
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x0A'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL104
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x0B'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL105
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL106
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x0D'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL107
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL108A
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0xA1'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL108B
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0xB1'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL109A
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0xA2'
    - item_type: preproc_def
      name: FU_VLI_DEVICE_FW_TAG_VL109B
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0xB2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VLI_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-device.h
      type_or_value: (fu_vli_device_get_type())
    - item_type: preproc_def
      name: FU_VLI_DEVICE_TIMEOUT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/vli/fu-vli-device.h
      type_or_value: '3000 '
    - item_type: preproc_def
      name: FU_VLI_DEVICE_TXSIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/vli/fu-vli-device.h
      type_or_value: '0x20 '
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      - name: (*spi_chip_erase)(FuVliDevice *self, GError **error)
        type: gboolean
      - name: (*spi_sector_erase)(FuVliDevice *self, guint32 addr, GError **error)
        type: gboolean
      - name: "(*spi_read_data)(FuVliDevice *self,\n\t\t\t\t  guint32 addr,\n\t\t\t\t
          \ guint8 *buf,\n\t\t\t\t  gsize bufsz,\n\t\t\t\t  GError **error)"
        type: gboolean
      - name: (*spi_read_status)(FuVliDevice *self, guint8 *status, GError **error)
        type: gboolean
      - name: (*spi_write_enable)(FuVliDevice *self, GError **error)
        type: gboolean
      - name: "(*spi_write_data)(FuVliDevice *self,\n\t\t\t\t   guint32 addr,\n\t\t\t\t
          \  const guint8 *buf,\n\t\t\t\t   gsize bufsz,\n\t\t\t\t   GError **error)"
        type: gboolean
      - name: (*spi_write_status)(FuVliDevice *self, guint8 status, GError **error)
        type: gboolean
      item_type: struct
      name: _FuVliDeviceClass
      pos:
        line_end: 32
        line_start: 15
        source_file: /src/fwupd/plugins/vli/fu-vli-device.h
    typedefs: []
    union: []
- function_names:
  - fu_vli_usbhub_pd_device_to_string
  - fu_vli_usbhub_pd_device_setup
  - fu_vli_usbhub_pd_device_reload
  - fu_vli_usbhub_pd_device_prepare_firmware
  - fu_vli_usbhub_pd_device_dump_firmware
  - fu_vli_usbhub_pd_device_write_firmware
  - fu_vli_usbhub_pd_device_attach
  - fu_vli_usbhub_pd_device_probe
  - fu_vli_usbhub_pd_device_set_progress
  - fu_vli_usbhub_pd_device_convert_version
  - fu_vli_usbhub_pd_device_init
  - fu_vli_usbhub_pd_device_class_init
  - fu_vli_usbhub_pd_device_new
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: device_kind
        type: FuVliDeviceKind
      item_type: struct
      name: _FuVliUsbhubPdDevice
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_vli_pd_parade_device_to_string
  - fu_vli_pd_parade_device_i2c_read
  - fu_vli_pd_parade_device_i2c_write
  - fu_vli_pd_parade_device_start_mcu
  - fu_vli_pd_parade_device_stop_mcu
  - fu_vli_pd_parade_device_set_offset
  - fu_vli_pd_parade_device_read_fw_ver
  - fu_vli_pd_parade_device_set_wp
  - fu_vli_pd_parade_device_write_enable
  - fu_vli_pd_parade_device_write_disable
  - fu_vli_pd_parade_device_write_status
  - fu_vli_pd_parade_device_wait_ready
  - fu_vli_pd_parade_device_sector_erase
  - fu_vli_pd_parade_device_enable_mapping
  - fu_vli_pd_parade_device_block_erase
  - fu_vli_pd_parade_device_block_write
  - fu_vli_pd_parade_device_block_read
  - fu_vli_pd_parade_device_write_firmware
  - fu_vli_pd_parade_device_dump_firmware
  - fu_vli_pd_parade_device_probe
  - fu_vli_pd_parade_device_set_progress
  - fu_vli_pd_parade_device_init
  - fu_vli_pd_parade_device_class_init
  - fu_vli_pd_parade_device_new
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_VLI_PD_PARADE_I2C_CMD_WRITE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
      type_or_value: '0xa6'
    - item_type: preproc_def
      name: FU_VLI_PD_PARADE_I2C_CMD_READ
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
      type_or_value: '0xa5'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: device_kind
        type: FuVliDeviceKind
      - name: page2
        type: guint8
      - name: page7
        type: guint8
      item_type: struct
      name: _FuVliPdParadeDevice
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    typedefs: []
    union: []
- function_names:
  - fu_vli_pd_device_read_regs
  - fu_vli_pd_device_read_reg
  - fu_vli_pd_device_write_reg
  - fu_vli_pd_device_spi_read_status
  - fu_vli_pd_device_spi_read_data
  - fu_vli_pd_device_spi_write_status
  - fu_vli_pd_device_spi_write_enable
  - fu_vli_pd_device_spi_chip_erase
  - fu_vli_pd_device_spi_sector_erase
  - fu_vli_pd_device_spi_write_data
  - fu_vli_pd_device_parade_setup
  - fu_vli_pd_device_setup
  - fu_vli_pd_device_prepare_firmware
  - fu_vli_pd_device_dump_firmware
  - fu_vli_pd_device_write_gpios
  - fu_vli_pd_device_write_dual_firmware
  - fu_vli_pd_device_write_firmware
  - fu_vli_pd_device_detach
  - fu_vli_pd_device_attach
  - fu_vli_pd_device_kind_changed_cb
  - fu_vli_pd_device_set_progress
  - fu_vli_pd_device_convert_version
  - fu_vli_pd_device_init
  - fu_vli_pd_device_class_init
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_VLI_PD_DEVICE_FLAG_HAS_I2C_PS186
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.c
      type_or_value: '"has-i2c-ps186"'
    - item_type: preproc_def
      name: FU_VLI_PD_DEVICE_FLAG_SKIPS_ROM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.c
      type_or_value: '"skips-rom"'
    structs:
    - fields:
      - name: parent_instance
        type: FuVliDevice
      item_type: struct
      name: _FuVliPdDevice
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    typedefs: []
    union: []
- function_names:
  - fu_acpi_ivrs_dma_remap_func
  - fu_acpi_ivrs_no_dma_remap_func
  - main
  source_file: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_ivrs_plugin_add_security_attrs
  - fu_acpi_ivrs_plugin_init
  - fu_acpi_ivrs_plugin_class_init
  source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuAcpiIvrsPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ACPI_IVRS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.h
      type_or_value: (fu_acpi_ivrs_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_acpi_ivrs_parse
  - fu_acpi_ivrs_new
  - fu_acpi_ivrs_get_dma_remap
  - fu_acpi_ivrs_class_init
  - fu_acpi_ivrs_init
  source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IVRS_DMA_REMAP_SUPPORT_FLAG
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
      type_or_value: '0x2'
    structs:
    - fields:
      - name: parent_instance
        type: FuAcpiTable
      - name: remap_support
        type: gboolean
      item_type: struct
      name: _FuAcpiIvrs
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    typedefs: []
    union: []
- function_names:
  - fu_jabra_gnp_firmware_export
  - fu_jabra_gnp_firmware_parse_version
  - fu_jabra_gnp_firmware_parse_info
  - fu_jabra_gnp_firmware_parse
  - fu_jabra_gnp_firmware_get_dfu_pid
  - fu_jabra_gnp_firmware_get_version_data
  - fu_jabra_gnp_firmware_init
  - fu_jabra_gnp_firmware_class_init
  - fu_jabra_gnp_firmware_new
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuArchiveFirmware
      - name: dfu_pid
        type: guint16
      - name: version_data
        type: FuJabraGnpVersionData
      item_type: struct
      name: _FuJabraGnpFirmware
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_GNP_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.h
      type_or_value: (fu_jabra_gnp_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_gnp_update_crc
  - fu_jabra_gnp_calculate_crc
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_gnp_image_export
  - fu_jabra_gnp_image_parse
  - fu_jabra_gnp_image_get_crc32
  - fu_jabra_gnp_image_init
  - fu_jabra_gnp_image_class_init
  - fu_jabra_gnp_image_new
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuArchiveFirmware
      - name: crc32
        type: guint32
      item_type: struct
      name: _FuJabraGnpImage
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_GNP_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.h
      type_or_value: (fu_jabra_gnp_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_gnp_plugin_init
  - fu_jabra_gnp_plugin_constructed
  - fu_jabra_gnp_plugin_class_init
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuJabraGnpPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jabra_gnp_device_to_string
  - _fu_usb_device_get_interface_for_class
  - fu_jabra_gnp_device_tx_cb
  - fu_jabra_gnp_device_rx_cb
  - fu_jabra_gnp_device_rx_with_sequence_cb
  - fu_jabra_gnp_device_read_name
  - fu_jabra_gnp_device_read_child_dfu_pid
  - fu_jabra_gnp_device_read_child_battery_level
  - fu_jabra_gnp_device_read_dfu_pid
  - fu_jabra_gnp_device_read_version
  - fu_jabra_gnp_device_write_partition
  - fu_jabra_gnp_device_start
  - fu_jabra_gnp_device_flash_erase_done
  - fu_jabra_gnp_device_write_crc
  - fu_jabra_gnp_device_write_chunk
  - fu_jabra_gnp_device_write_chunks
  - fu_jabra_gnp_device_read_verify_status
  - fu_jabra_gnp_device_write_version
  - fu_jabra_gnp_device_write_dfu_from_squif
  - fu_jabra_gnp_device_prepare_firmware
  - fu_jabra_gnp_device_probe
  - fu_jabra_gnp_device_add_child
  - fu_jabra_gnp_device_setup
  - fu_jabra_gnp_device_write_image
  - fu_jabra_gnp_device_write_firmware
  - fu_jabra_gnp_device_attach
  - fu_jabra_gnp_device_set_quirk_kv
  - fu_jabra_gnp_device_set_progress
  - fu_jabra_gnp_device_init
  - fu_jabra_gnp_device_class_init
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_JABRA_GNP_BUF_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_JABRA_GNP_MAX_RETRIES
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_JABRA_GNP_PRELOAD_COUNT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_JABRA_GNP_RETRY_DELAY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '100   '
    - item_type: preproc_def
      name: FU_JABRA_GNP_STANDARD_SEND_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '3000  '
    - item_type: preproc_def
      name: FU_JABRA_GNP_STANDARD_RECEIVE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '1000  '
    - item_type: preproc_def
      name: FU_JABRA_GNP_LONG_RECEIVE_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '30000 '
    - item_type: preproc_def
      name: FU_JABRA_GNP_EXTRA_LONG_RECEIVE_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '60000 '
    - item_type: preproc_def
      name: FU_JABRA_GNP_IFACE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_JABRA_GNP_ADDRESS_PARENT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_JABRA_GNP_ADDRESS_OTA_CHILD
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
      type_or_value: '0x04'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: iface_hid
        type: guint8
      - name: sequence_number
        type: guint8
      - name: address
        type: guint8
      - name: dfu_pid
        type: guint
      item_type: struct
      name: _FuJabraGnpDevice
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    - fields:
      - name: txbuf[FU_JABRA_GNP_BUF_SIZE]
        type: guint8
      - name: timeout
        type: guint
      item_type: struct
      name: FuJabraGnpTxData
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    - fields:
      - name: rxbuf[FU_JABRA_GNP_BUF_SIZE]
        type: guint8
      - name: timeout
        type: guint
      item_type: struct
      name: FuJabraGnpRxData
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_GNP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.h
      type_or_value: (fu_jabra_gnp_firmware_get_type())
    structs:
    - fields:
      - name: major
        type: guint8
      - name: minor
        type: guint8
      - name: micro
        type: guint8
      item_type: struct
      name: FuJabraGnpVersionData
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_EMR_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.h
      type_or_value: (fu_wacom_emr_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.h
      type_or_value: (fu_wacom_device_get_type())
    - item_type: preproc_def
      name: FU_WACOM_RAW_DEVICE_FLAG_REQUIRES_WAIT_FOR_REPLUG
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.h
      type_or_value: '"requires-wait-for-replug"'
    structs:
    - fields:
      - name: parent_class
        type: FuHidrawDeviceClass
      - name: "(*write_firmware)(FuDevice *self,\n\t\t\t\t   FuChunkArray *chunks,\n\t\t\t\t
          \  FuProgress *progress,\n\t\t\t\t   GError **error)"
        type: gboolean
      item_type: struct
      name: _FuWacomDeviceClass
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.h
    typedefs:
    - item_type: typedef
      name: FuWacomDeviceCmdFlags
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.h
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_RAW_CMD_RETRIES
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_START_ADDR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.h
      type_or_value: (0x11FF8)
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_BYTES_CHECK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_TYPE_FINALIZER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.h
      type_or_value: '0x00'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_common_check_reply
  - fu_wacom_common_rc_set_error
  - fu_wacom_common_block_is_empty
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_AES_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.h
      type_or_value: (fu_wacom_aes_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_emr_device_setup
  - fu_wacom_emr_device_calc_checksum
  - fu_wacom_emr_device_w9013_erase_data
  - fu_wacom_emr_device_w9013_erase_code
  - fu_wacom_emr_device_w9021_erase_all
  - fu_wacom_emr_device_attach
  - fu_wacom_emr_device_write_block
  - fu_wacom_emr_device_write_firmware
  - fu_wacom_emr_device_convert_version
  - fu_wacom_emr_device_init
  - fu_wacom_emr_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomDevice
      item_type: struct
      name: _FuWacomEmrDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-emr-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_wacom_device_to_string
  - fu_wacom_device_get_echo_next
  - fu_wacom_device_get_block_sz
  - fu_wacom_device_check_mpu
  - fu_wacom_device_detach
  - fu_wacom_device_check_mode
  - fu_wacom_device_set_version_bootloader
  - fu_wacom_device_write_firmware
  - fu_wacom_device_get_feature
  - fu_wacom_device_set_feature
  - fu_wacom_device_cmd_response
  - fu_wacom_device_cmd_response_cb
  - fu_wacom_device_cmd
  - fu_wacom_device_set_quirk_kv
  - fu_wacom_device_replace
  - fu_wacom_device_set_progress
  - fu_wacom_device_init
  - fu_wacom_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_RAW_ECHO_MIN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: FU_WACOM_RAW_ECHO_MAX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
      type_or_value: '0xFE'
    structs:
    - fields:
      - name: flash_block_size
        type: guint
      - name: flash_base_addr
        type: guint32
      - name: echo_next
        type: guint8
      item_type: struct
      name: FuWacomDevicePrivate
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    - fields:
      - name: '*st_req'
        type: FuStructWacomRawRequest
      - name: '*rsp_value'
        type: guint8
      - name: flags
        type: FuWacomDeviceCmdFlags
      item_type: struct
      name: FuWacomRawResponseHelper
      pos:
        line_end: 279
        line_start: 275
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-device.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_aes_device_add_recovery_hwid
  - fu_wacom_aes_device_query_operation_mode
  - fu_wacom_aes_device_setup
  - fu_wacom_aes_device_attach
  - fu_wacom_aes_device_erase_all
  - fu_wacom_aes_device_write_block
  - fu_wacom_aes_device_write_firmware
  - fu_wacom_aes_device_init
  - fu_wacom_aes_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomDevice
      item_type: struct
      name: _FuWacomAesDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-aes-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_raw_plugin_device_registered
  - fu_wacom_raw_plugin_device_created
  - fu_wacom_raw_plugin_init
  - fu_wacom_raw_plugin_constructed
  - fu_wacom_raw_plugin_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWacomRawPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_thelio_io_device_probe
  - fu_thelio_io_device_detach
  - fu_thelio_io_device_set_progress
  - fu_thelio_io_device_init
  - fu_thelio_io_device_class_init
  source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuThelioIoDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_THELIO_IO_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.h
      type_or_value: (fu_thelio_io_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_thelio_io_plugin_init
  - fu_thelio_io_plugin_constructed
  - fu_thelio_io_plugin_class_init
  source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuThelioIoPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_hpi_cfu_device_start_entire_transaction
  - fu_hpi_cfu_device_start_entire_transaction_accepted
  - fu_hpi_cfu_device_send_start_offer_list
  - fu_hpi_cfu_device_send_offer_list_accepted
  - fu_hpi_cfu_device_send_offer_update_command
  - fu_hpi_cfu_device_firmware_update_offer_accepted
  - fu_hpi_cfu_device_read_content_ack
  - fu_hpi_cfu_device_firmware_update_offer_rejected
  - fu_hpi_cfu_device_send_end_offer_list
  - fu_hpi_cfu_device_end_offer_list_accepted
  - fu_hpi_cfu_device_handler_start_entire_transaction
  - fu_hpi_cfu_device_handler_start_entire_transaction_accepted
  - fu_hpi_cfu_device_handler_send_start_offer_list
  - fu_hpi_cfu_device_handler_send_start_offer_list_accepted
  - fu_hpi_cfu_device_handler_send_offer_update_command
  - fu_hpi_cfu_device_handler_send_offer_accepted
  - fu_hpi_cfu_device_send_payload
  - fu_hpi_cfu_device_untransmitted_data
  - fu_hpi_cfu_device_get_payload_header
  - fu_hpi_cfu_device_get_payload_data
  - fu_hpi_cfu_device_send_append_untransmitted
  - fu_hpi_cfu_device_handler_set_status_report_25
  - fu_hpi_cfu_device_handler_set_status_report_22
  - fu_hpi_cfu_device_handler_check_update_content
  - fu_hpi_cfu_device_handler_send_payload_chunk
  - fu_hpi_cfu_device_handler_send_payload
  - fu_hpi_cfu_device_handler_update_success
  - fu_hpi_cfu_device_handler_update_offer_rejected
  - fu_hpi_cfu_device_handler_update_more_offers
  - fu_hpi_cfu_device_handler_send_end_offer_list
  - fu_hpi_cfu_device_handler_end_offer_list_accepted
  - fu_hpi_cfu_device_handler_update_stop
  - fu_hpi_cfu_device_handler_error
  - fu_hpi_cfu_device_handler_notify_on_ready
  - fu_hpi_cfu_device_handler_wait_for_ready_notification
  - fu_hpi_cfu_device_handler_swap_pending_send_offer_list_again
  - fu_hpi_cfu_device_handler_swap_pending_offer_list_accepted
  - fu_hpi_cfu_device_handler_swap_pending_send_offer_again
  - fu_hpi_cfu_device_handler_swap_pending_send_offer_list_accepted
  - fu_hpi_cfu_device_handler_swap_pending_send_end_offer_list
  - fu_hpi_cfu_device_handler_swap_pending_end_offer_list_accepted
  - fu_hpi_cfu_device_handler_verify_error
  - fu_hpi_cfu_device_setup
  - fu_hpi_cfu_device_set_progress
  - fu_hpi_cfu_device_write_firmware
  - fu_hpi_cfu_device_convert_version
  - fu_hpi_cfu_device_init
  - fu_hpi_cfu_device_class_init
  source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GET_REPORT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SET_REPORT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: FIRMWARE_REPORT_ID
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: OFFER_REPORT_ID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: END_POINT_ADDRESS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_HPI_CFU_INTERFACE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: IN_REPORT_TYPE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: OUT_REPORT_TYPE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: FEATURE_REPORT_TYPE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0x0300'
    - item_type: preproc_def
      name: FU_HPI_CFU_PAYLOAD_LENGTH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '52'
    - item_type: preproc_def
      name: FU_HPI_CFU_DEVICE_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '0 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: state
        type: FuHpiCfuState
      - name: force_version
        type: guint8
      - name: force_reset
        type: guint8
      - name: sequence_number
        type: gint
      - name: currentaddress
        type: gint32
      - name: retry_attempts
        type: gint8
      - name: payload_file_size
        type: gsize
      - name: last_packet_sent
        type: gboolean
      - name: bulk_opt
        type: guint8
      - name: firmware_status
        type: gboolean
      - name: exit_state_machine_framework
        type: gboolean
      item_type: struct
      name: _FuHpiCfuDevice
      pos:
        line_end: 45
        line_start: 32
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    - fields:
      - name: '*fw_offer'
        type: FuFirmware
      - name: '*fw_payload'
        type: FuFirmware
      item_type: struct
      name: FuHpiCfuHandlerOptions
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    - fields:
      - name: state_no
        type: FuHpiCfuState
      - name: handler
        type: FuHpiCfuStateHandler
      - name: '*options'
        type: FuHpiCfuHandlerOptions
      item_type: struct
      name: FuHpiCfuStateMachineFramework
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    typedefs:
    - item_type: typedef
      name: "(*FuHpiCfuStateHandler)(FuHpiCfuDevice *self,\n\t\t\t\t       FuProgress
        *progress,\n\t\t\t\t       FuHpiCfuHandlerOptions *options,\n\t\t\t\t       GError
        **error)"
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HPI_CFU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.h
      type_or_value: (fu_hpi_cfu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hpi_cfu_plugin_init
  - fu_hpi_cfu_plugin_constructed
  - fu_hpi_cfu_plugin_class_init
  source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHpiCfuPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CH341A_CFI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.h
      type_or_value: (fu_ch341a_cfi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ch341a_plugin_init
  - fu_ch341a_plugin_object_constructed
  - fu_ch341a_plugin_constructed
  - fu_ch341a_plugin_class_init
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCh341APlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CH341A_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.h
      type_or_value: (fu_ch341a_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ch341a_cfi_device_chip_select
  - fu_ch341a_cfi_device_wait_for_status_cb
  - fu_ch341a_cfi_device_wait_for_status
  - fu_ch341a_cfi_device_read_jedec
  - fu_ch341a_cfi_device_write_enable
  - fu_ch341a_cfi_device_chip_erase
  - fu_ch341a_cfi_device_write_page
  - fu_ch341a_cfi_device_write_pages
  - fu_ch341a_cfi_device_read_firmware
  - fu_ch341a_cfi_device_write_firmware
  - fu_ch341a_cfi_device_dump_firmware
  - fu_ch341a_cfi_device_set_progress
  - fu_ch341a_cfi_device_init
  - fu_ch341a_cfi_device_class_init
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CH341A_PAYLOAD_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
      type_or_value: '0x1A'
    structs:
    - fields:
      - name: parent_instance
        type: FuCfiDevice
      item_type: struct
      name: _FuCh341aCfiDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    - fields:
      - name: mask
        type: guint8
      - name: value
        type: guint8
      item_type: struct
      name: FuCh341aCfiDeviceHelper
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-cfi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ch341a_device_speed_to_string
  - fu_ch341a_device_to_string
  - fu_ch341a_device_write
  - fu_ch341a_device_read
  - fu_ch341a_device_reverse_uint8
  - fu_ch341a_device_spi_transfer
  - fu_ch341a_device_configure_stream
  - fu_ch341a_device_chip_select
  - fu_ch341a_device_probe
  - fu_ch341a_device_setup
  - fu_ch341a_device_init
  - fu_ch341a_device_class_init
  source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CH341A_USB_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: CH341A_EP_OUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: CH341A_EP_IN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x82 '
    - item_type: preproc_def
      name: CH341A_EP_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CH341A_CMD_SET_OUTPUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xA1'
    - item_type: preproc_def
      name: CH341A_CMD_IO_ADDR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xA2'
    - item_type: preproc_def
      name: CH341A_CMD_PRINT_OUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xA3'
    - item_type: preproc_def
      name: CH341A_CMD_SPI_STREAM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xA8'
    - item_type: preproc_def
      name: CH341A_CMD_SIO_STREAM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xA9'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STREAM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xAA'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STREAM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xAB'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_START
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x74'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_STOP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x75'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_OUT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_IN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_SET
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x60'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_US
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_MS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_DLY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: CH341A_CMD_I2C_STM_END
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STM_IN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STM_DIR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STM_OUT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STM_US
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: CH341A_CMD_UIO_STM_END
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CH341A_STM_I2C_SPEED_LOW
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CH341A_STM_I2C_SPEED_STANDARD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CH341A_STM_I2C_SPEED_FAST
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CH341A_STM_I2C_SPEED_HIGH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CH341A_STM_SPI_MODUS_STANDARD
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CH341A_STM_SPI_MODUS_DOUBLE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: CH341A_STM_SPI_ENDIAN_BIG
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: CH341A_STM_SPI_ENDIAN_LITTLE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
      type_or_value: '0x80'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: speed
        type: guint8
      item_type: struct
      name: _FuCh341aDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/ch341a/fu-ch341a-device.c
    typedefs: []
    union: []
- function_names:
  - fu_emmc_plugin_init
  - fu_emmc_plugin_constructed
  - fu_emmc_plugin_class_init
  source_file: /src/fwupd/plugins/emmc/fu-emmc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuEmmcPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/emmc/fu-emmc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/emmc/fu-emmc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/emmc/fu-emmc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EMMC_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.h
      type_or_value: (fu_emmc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_emmc_device_to_string
  - fu_emmc_device_get_sysattr_guint64
  - fu_emmc_device_probe
  - fu_emmc_device_ioctl_buffer_cb
  - fu_emmc_device_read_extcsd
  - fu_emmc_device_validate_extcsd
  - fu_emmc_device_setup
  - fu_emmc_device_prepare_firmware
  - fu_emmc_device_write_firmware
  - fu_emmc_device_set_quirk_kv
  - fu_emmc_device_set_progress
  - fu_emmc_device_init
  - fu_emmc_device_class_init
  source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MMC_BLOCK_MAJOR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '179'
    - item_type: preproc_def
      name: MMC_SWITCH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "6\t"
    - item_type: preproc_def
      name: MMC_SEND_EXT_CSD
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "8\t"
    - item_type: preproc_def
      name: MMC_SWITCH_MODE_WRITE_BYTE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: MMC_WRITE_BLOCK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "24\t"
    - item_type: preproc_def
      name: MMC_SET_BLOCK_COUNT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "23\t"
    - item_type: preproc_def
      name: MMC_WRITE_MULTIPLE_BLOCK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "25\t"
    - item_type: preproc_def
      name: MMC_RSP_PRESENT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: MMC_RSP_CRC
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: MMC_RSP_BUSY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: MMC_RSP_OPCODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: MMC_RSP_SPI_S1
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: MMC_CMD_AC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (0 << 5)
    - item_type: preproc_def
      name: MMC_CMD_ADTC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: MMC_RSP_SPI_BUSY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '(1 << 10) '
    - item_type: preproc_def
      name: MMC_RSP_SPI_R1
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (MMC_RSP_SPI_S1)
    - item_type: preproc_def
      name: MMC_RSP_SPI_R1B
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (MMC_RSP_SPI_S1 | MMC_RSP_SPI_BUSY)
    - item_type: preproc_def
      name: MMC_RSP_R1
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (MMC_RSP_PRESENT | MMC_RSP_CRC | MMC_RSP_OPCODE)
    - item_type: preproc_def
      name: MMC_RSP_R1B
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (MMC_RSP_PRESENT | MMC_RSP_CRC | MMC_RSP_OPCODE | MMC_RSP_BUSY)
    - item_type: preproc_def
      name: EXT_CSD_SUPPORTED_MODES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '493 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_FEATURES
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '492 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_ARG_3
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '490 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_ARG_2
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '489 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_ARG_1
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '488 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_ARG_0
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '487 '
    - item_type: preproc_def
      name: EXT_CSD_NUM_OF_FW_SEC_PROG_3
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '305 '
    - item_type: preproc_def
      name: EXT_CSD_NUM_OF_FW_SEC_PROG_2
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '304 '
    - item_type: preproc_def
      name: EXT_CSD_NUM_OF_FW_SEC_PROG_1
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '303 '
    - item_type: preproc_def
      name: EXT_CSD_NUM_OF_FW_SEC_PROG_0
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '302 '
    - item_type: preproc_def
      name: EXT_CSD_REV
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '192'
    - item_type: preproc_def
      name: EXT_CSD_FW_CONFIG
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '169 '
    - item_type: preproc_def
      name: EXT_CSD_DATA_SECTOR_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: "61\t "
    - item_type: preproc_def
      name: EXT_CSD_MODE_CONFIG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: EXT_CSD_MODE_OPERATION_CODES
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '29 '
    - item_type: preproc_def
      name: EXT_CSD_FFU_STATUS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '26 '
    - item_type: preproc_def
      name: EXT_CSD_REV_V5_1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: EXT_CSD_REV_V5_0
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '7'
    - item_type: preproc_def
      name: EXT_CSD_NORMAL_MODE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (0x00)
    - item_type: preproc_def
      name: EXT_CSD_FFU_MODE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (0x01)
    - item_type: preproc_def
      name: EXT_CSD_FFU_INSTALL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (0x01)
    - item_type: preproc_def
      name: EXT_CSD_FFU
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: EXT_CSD_UPDATE_DISABLE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: EXT_CSD_CMD_SET_NORMAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: FU_EMMC_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: sect_size
        type: guint32
      - name: write_block_size
        type: guint32
      item_type: struct
      name: _FuEmmcDevice
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/fwupd/plugins/emmc/fu-emmc-device.c
    typedefs: []
    union: []
- function_names:
  - fu_ch347_cfi_device_chip_select
  - fu_ch347_cfi_device_send_command
  - fu_ch347_cfi_device_init
  - fu_ch347_cfi_device_class_init
  source_file: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuCfiDevice
      item_type: struct
      name: _FuCh347CfiDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CH347_CFI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ch347/fu-ch347-cfi-device.h
      type_or_value: (fu_ch347_cfi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ch347_plugin_init
  - fu_ch347_plugin_constructed
  - fu_ch347_plugin_class_init
  source_file: /src/fwupd/plugins/ch347/fu-ch347-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCh347Plugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/ch347/fu-ch347-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch347/fu-ch347-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ch347_device_to_string
  - fu_ch347_device_write
  - fu_ch347_device_read
  - fu_ch347_device_send_command
  - fu_ch347_device_configure_stream
  - fu_ch347_device_chip_select
  - fu_ch347_device_probe
  - fu_ch347_device_setup
  - fu_ch347_device_init
  - fu_ch347_device_class_init
  source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CH347_USB_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_CH347_CS_ASSERT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_CH347_CS_DEASSERT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FU_CH347_CS_CHANGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FU_CH347_CS_IGNORE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_CH347_EP_OUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: FU_CH347_EP_IN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: FU_CH347_MODE1_IFACE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FU_CH347_MODE2_IFACE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_CH347_PACKET_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: '510'
    - item_type: preproc_def
      name: FU_CH347_PAYLOAD_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
      type_or_value: (FU_CH347_PACKET_SIZE - 3)
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: divisor
        type: guint8
      item_type: struct
      name: _FuCh347Device
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ch347/fu-ch347-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CH347_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ch347/fu-ch347-device.h
      type_or_value: (fu_ch347_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cfu_plugin_init
  - fu_cfu_plugin_constructed
  - fu_cfu_plugin_class_init
  source_file: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuCfuPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cfu/fu-cfu-module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CFU_MODULE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cfu/fu-cfu-module.h
      type_or_value: (fu_cfu_module_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cfu/fu-cfu-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cfu_module_to_string
  - fu_cfu_module_get_component_id
  - fu_cfu_module_setup
  - fu_cfu_module_prepare_firmware
  - fu_cfu_module_write_firmware
  - fu_cfu_module_set_progress
  - fu_cfu_module_convert_version
  - fu_cfu_module_init
  - fu_cfu_module_class_init
  - fu_cfu_module_new
  source_file: /src/fwupd/plugins/cfu/fu-cfu-module.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: component_id
        type: guint8
      - name: bank
        type: guint8
      item_type: struct
      name: _FuCfuModule
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/cfu/fu-cfu-module.c
    typedefs: []
    union: []
- function_names:
  - fu_cfu_device_map_to_string
  - fu_cfu_device_to_string
  - fu_cfu_device_send_offer_info
  - fu_cfu_device_send_offer
  - fu_cfu_device_send_payload
  - fu_cfu_device_write_firmware
  - fu_cfu_device_ensure_map_item
  - fu_cfu_device_verify_descriptor
  - fu_cfu_device_setup
  - fu_cfu_device_set_quirk_kv
  - fu_cfu_device_init
  - fu_cfu_device_class_init
  source_file: /src/fwupd/plugins/cfu/fu-cfu-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CFU_DEVICE_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/cfu/fu-cfu-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_CFU_DEVICE_FLAG_SEND_OFFER_INFO
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/cfu/fu-cfu-device.c
      type_or_value: '"send-offer-info"'
    structs:
    - fields:
      - name: op
        type: guint8
      - name: id
        type: guint8
      - name: ct
        type: guint8
      item_type: struct
      name: FuCfuDeviceMap
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/cfu/fu-cfu-device.c
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: protocol_version
        type: guint8
      - name: version_get_report
        type: FuCfuDeviceMap
      - name: offer_set_report
        type: FuCfuDeviceMap
      - name: offer_get_report
        type: FuCfuDeviceMap
      - name: content_set_report
        type: FuCfuDeviceMap
      - name: content_get_report
        type: FuCfuDeviceMap
      item_type: struct
      name: _FuCfuDevice
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/fwupd/plugins/cfu/fu-cfu-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/cfu/fu-cfu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CFU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cfu/fu-cfu-device.h
      type_or_value: (fu_cfu_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-network-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_NETWORK_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network-device.h
      type_or_value: (fu_redfish_network_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-smbios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_SMBIOS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-smbios.h
      type_or_value: (fu_redfish_smbios_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_HPE_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.h
      type_or_value: (fu_redfish_hpe_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_backend_get_vendor
  - fu_redfish_backend_get_version
  - fu_redfish_backend_get_uuid
  - fu_redfish_backend_request_new
  - fu_redfish_backend_coldplug_member
  - fu_redfish_backend_coldplug_collection
  - fu_redfish_backend_coldplug_inventory
  - fu_redfish_backend_check_wildcard_targets
  - fu_redfish_backend_set_session_key
  - fu_redfish_backend_session_headers_callback
  - fu_redfish_backend_create_session
  - fu_redfish_backend_set_push_uri_path
  - fu_redfish_backend_has_smc_update_path
  - fu_redfish_backend_coldplug
  - fu_redfish_backend_set_update_uri_path
  - fu_redfish_backend_setup_dell_member
  - fu_redfish_backend_setup_dell
  - fu_redfish_backend_setup
  - fu_redfish_backend_invalidate
  - fu_redfish_backend_set_hostname
  - fu_redfish_backend_set_port
  - fu_redfish_backend_set_https
  - fu_redfish_backend_set_cacheck
  - fu_redfish_backend_set_wildcard_targets
  - fu_redfish_backend_set_username
  - fu_redfish_backend_get_username
  - fu_redfish_backend_set_password
  - fu_redfish_backend_get_push_uri_path
  - fu_redfish_backend_get_session_key
  - fu_redfish_backend_to_string
  - fu_redfish_backend_finalize
  - fu_redfish_backend_class_init
  - fu_redfish_backend_init
  - fu_redfish_backend_new
  source_file: /src/fwupd/plugins/redfish/fu-redfish-backend.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      - name: '*hostname'
        type: gchar
      - name: '*username'
        type: gchar
      - name: '*password'
        type: gchar
      - name: '*session_key'
        type: gchar
      - name: port
        type: guint
      - name: '*vendor'
        type: gchar
      - name: '*version'
        type: gchar
      - name: '*uuid'
        type: gchar
      - name: '*update_uri_path'
        type: gchar
      - name: '*push_uri_path'
        type: gchar
      - name: use_https
        type: gboolean
      - name: cacheck
        type: gboolean
      - name: wildcard_targets
        type: gboolean
      - name: max_image_size
        type: gint64
      - name: '*system_id'
        type: gchar
      - name: device_gtype
        type: GType
      - name: '*request_cache'
        type: GHashTable
      - name: '*curlsh'
        type: CURLSH
      item_type: struct
      name: _FuRedfishBackend
      pos:
        line_end: 39
        line_start: 19
        source_file: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_redfish_common_buffer_to_ipv4
  - fu_redfish_common_buffer_to_ipv6
  - fu_redfish_common_buffer_to_mac
  - fu_redfish_common_fix_version
  - fu_redfish_common_parse_version_lenovo
  source_file: /src/fwupd/plugins/redfish/fu-redfish-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_MULTIPART_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.h
      type_or_value: (fu_redfish_multipart_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_multipart_device_to_string
  - fu_redfish_multipart_device_set_apply_time
  - fu_redfish_multipart_device_get_parameters
  - fu_redfish_multipart_device_location_headers_callback
  - fu_redfish_multipart_device_write_firmware
  - fu_redfish_multipart_device_set_progress
  - fu_redfish_multipart_device_init
  - fu_redfish_multipart_device_finalize
  - fu_redfish_multipart_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuRedfishDevice
      - name: '*apply_time'
        type: gchar
      item_type: struct
      name: _FuRedfishMultipartDevice
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NETWORK_MANAGER_SERVICE_NAME
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
      type_or_value: '"org.freedesktop.NetworkManager"'
    - item_type: preproc_def
      name: NETWORK_MANAGER_INTERFACE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
      type_or_value: '"org.freedesktop.NetworkManager"'
    - item_type: preproc_def
      name: NETWORK_MANAGER_INTERFACE_IP4_CONFIG
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
      type_or_value: '"org.freedesktop.NetworkManager.IP4Config"'
    - item_type: preproc_def
      name: NETWORK_MANAGER_INTERFACE_DEVICE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
      type_or_value: '"org.freedesktop.NetworkManager.Device"'
    - item_type: preproc_def
      name: NETWORK_MANAGER_PATH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.h
      type_or_value: '"/org/freedesktop/NetworkManager"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_plugin_to_string
  - fu_redfish_plugin_generate_password
  - fu_redfish_plugin_change_expired
  - fu_redfish_plugin_coldplug
  - fu_redfish_plugin_set_credentials
  - fu_redfish_plugin_reload
  - fu_redfish_plugin_discover_uefi_credentials
  - fu_redfish_plugin_discover_smbios_table
  - fu_redfish_plugin_autoconnect_network_device
  - fu_redfish_plugin_ipmi_create_user
  - fu_redfish_plugin_startup
  - fu_redfish_plugin_cleanup_setup_cb
  - fu_redfish_plugin_cleanup_coldplug_cb
  - fu_redfish_plugin_cleanup
  - fu_redfish_plugin_modify_config
  - fu_redfish_plugin_init
  - fu_redfish_plugin_constructed
  - fu_redfish_plugin_finalize
  - fu_redfish_plugin_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_REDFISH_PLUGIN_CLEANUP_RETRIES_DELAY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*backend'
        type: FuRedfishBackend
      - name: '*smbios'
        type: FuRedfishSmbios
      item_type: struct
      name: _FuRedfishPlugin
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_redfish_hpe_device_attach
  - fu_redfish_hpe_device_poll_ctx_new
  - fu_redfish_hpe_device_poll_ctx_free
  - fu_redfish_hpe_device_poll_task_once
  - fu_redfish_hpe_device_poll_task
  - fu_redfish_hpe_device_write_firmware
  - fu_redfish_hpe_device_set_progress
  - fu_redfish_hpe_device_init
  - fu_redfish_hpe_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuRedfishDevice
      item_type: struct
      name: _FuRedfishHpeDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    - fields:
      - name: completed
        type: gboolean
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuRedfishHpeDevicePollCtx
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_LEGACY_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.h
      type_or_value: (fu_redfish_legacy_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_smc_device_get_task
  - fu_redfish_smc_device_get_parameters
  - fu_redfish_smc_device_start_update
  - fu_redfish_smc_device_write_firmware
  - fu_redfish_smc_device_set_progress
  - fu_redfish_smc_device_init
  - fu_redfish_smc_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuRedfishDevice
      item_type: struct
      name: _FuRedfishSmcDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_REDFISH_TYPE_BACKEND
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-backend.h
      type_or_value: (fu_redfish_backend_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_self_init
  - fu_test_redfish_ipmi_func
  - fu_test_redfish_common_func
  - fu_test_redfish_common_version_func
  - fu_test_redfish_common_lenovo_func
  - fu_test_redfish_network_mac_addr_func
  - fu_test_redfish_network_vid_pid_func
  - fu_test_redfish_devices_func
  - fu_test_redfish_unlicensed_devices_func
  - fu_test_redfish_smc_devices_func
  - fu_test_redfish_dell_devices_func
  - fu_test_redfish_hpe_update_func
  - fu_test_redfish_update_func
  - fu_test_redfish_smc_update_func
  - fu_test_self_free
  - main
  source_file: /src/fwupd/plugins/redfish/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*plugin'
        type: FuPlugin
      - name: '*smc_plugin'
        type: FuPlugin
      - name: '*unlicensed_plugin'
        type: FuPlugin
      - name: '*hpe_plugin'
        type: FuPlugin
      - name: '*dell_plugin'
        type: FuPlugin
      item_type: struct
      name: FuTest
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/redfish/fu-self-test.c
    - fields:
      - name: '*in'
        type: gchar
      - name: '*op'
        type: gchar
      item_type: struct
      name: "strs[] = {{\"1.2.3\", \"1.2.3\"},\n\t\t    {\"P50 v1.2.3 PROD\", \"1.2.3\"},\n\t\t
        \   {\"P50 1.2.3 DEV\", \"1.2.3\"},\n\t\t    {NULL, NULL}}"
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/fwupd/plugins/redfish/fu-self-test.c
    - fields:
      - name: '*in'
        type: gchar
      - name: ret
        type: gboolean
      - name: '*build'
        type: gchar
      - name: '*version'
        type: gchar
      item_type: struct
      name: "values[] = {{\"11A-1.02\", TRUE, \"11A\", \"1.02\"},\n\t\t      {\"11A-0.00\",
        TRUE, \"11A\", \"0.00\"},\n\t\t      {\"99Z-9.99\", TRUE, \"99Z\", \"9.99\"},\n\t\t
        \     {\"9-9-9.99\", FALSE, NULL, NULL},\n\t\t      {\"999-9.99\", FALSE,
        NULL, NULL},\n\t\t      {\"ACB-9.99\", FALSE, NULL, NULL},\n\t\t      {NULL,
        FALSE, NULL, NULL}}"
      pos:
        line_end: 252
        line_start: 247
        source_file: /src/fwupd/plugins/redfish/fu-self-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDFISH_SMBIOS_TABLE_TYPE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '0x2a '
    - item_type: preproc_def
      name: REDFISH_PROTOCOL_REDFISH_OVER_IP
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: REDFISH_EFI_INFORMATION_GUID
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '"16faa37e-4b6a-4891-9028-242de65a3b70"'
    - item_type: preproc_def
      name: REDFISH_EFI_INFORMATION_INDICATIONS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '"RedfishIndications"'
    - item_type: preproc_def
      name: REDFISH_EFI_INFORMATION_FW_CREDENTIALS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '"RedfishFWCredentials"'
    - item_type: preproc_def
      name: REDFISH_EFI_INFORMATION_OS_CREDENTIALS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '"RedfishOSCredentials"'
    - item_type: preproc_def
      name: REDFISH_EFI_INDICATIONS_FW_CREDENTIALS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: REDFISH_EFI_INDICATIONS_OS_CREDENTIALS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/redfish/fu-redfish-common.h
      type_or_value: '0x00000002'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_smbios_get_interface_type
  - fu_redfish_smbios_get_port
  - fu_redfish_smbios_get_vid
  - fu_redfish_smbios_get_pid
  - fu_redfish_smbios_get_hostname
  - fu_redfish_smbios_get_mac_addr
  - fu_redfish_smbios_get_ip_addr
  - fu_redfish_smbios_set_hostname
  - fu_redfish_smbios_set_mac_addr
  - fu_redfish_smbios_set_ip_addr
  - fu_redfish_smbios_set_port
  - fu_redfish_smbios_export
  - fu_redfish_smbios_build
  - fu_redfish_smbios_parse_interface_data
  - fu_redfish_smbios_parse_over_ip
  - fu_redfish_smbios_parse
  - fu_redfish_smbios_write
  - fu_redfish_smbios_finalize
  - fu_redfish_smbios_init
  - fu_redfish_smbios_class_init
  - fu_redfish_smbios_new
  source_file: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmwareClass
      - name: interface_type
        type: FuRedfishSmbiosInterfaceType
      - name: port
        type: guint16
      - name: '*hostname'
        type: gchar
      - name: '*mac_addr'
        type: gchar
      - name: '*ip_addr'
        type: gchar
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      item_type: struct
      name: _FuRedfishSmbios
      pos:
        line_end: 21
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_redfish_device_to_string
  - fu_redfish_device_set_device_class
  - fu_redfish_device_probe_related_pcie_item
  - fu_redfish_device_probe_related_pcie_functions
  - fu_redfish_device_probe_related_item
  - fu_redfish_device_set_version_lenovo
  - fu_redfish_device_set_version
  - fu_redfish_device_set_version_lowest
  - fu_redfish_device_set_name
  - fu_redfish_device_set_vendor
  - fu_redfish_device_smc_license_check
  - fu_redfish_device_probe_oem_hpe
  - fu_redfish_device_probe_oem_dell
  - fu_redfish_device_probe
  - fu_redfish_device_get_backend
  - fu_redfish_device_parse_message_id
  - fu_redfish_device_poll_task_once
  - fu_redfish_device_poll_ctx_new
  - fu_redfish_device_poll_ctx_free
  - fu_redfish_device_poll_task
  - fu_redfish_device_get_reset_pre_delay
  - fu_redfish_device_get_reset_post_delay
  - fu_redfish_device_set_quirk_kv
  - fu_redfish_device_get_property
  - fu_redfish_device_set_member
  - fu_redfish_device_set_property
  - fu_redfish_device_init
  - fu_redfish_device_finalize
  - fu_redfish_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*backend'
        type: FuRedfishBackend
      - name: '*member'
        type: JsonObject
      - name: milestone
        type: guint64
      - name: '*build'
        type: gchar
      - name: reset_pre_delay
        type: guint
      - name: reset_post_delay
        type: guint
      item_type: struct
      name: FuRedfishDevicePrivate
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.c
    - fields:
      - name: '*location'
        type: gchar
      - name: completed
        type: gboolean
      - name: '*messages_seen'
        type: GHashTable
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuRedfishDevicePollCtx
      pos:
        line_end: 632
        line_start: 627
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-smc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_SMC_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/redfish/fu-redfish-smc-device.h
      type_or_value: (fu_redfish_smc_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuRedfishDeviceClass
      item_type: struct
      name: _FuRedfishSmcDeviceClass
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/redfish/fu-redfish-smc-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_network_device_match_device
  - fu_redfish_network_device_match
  - fu_redfish_network_device_for_mac_addr
  - fu_redfish_network_device_for_vid_pid
  source_file: /src/fwupd/plugins/redfish/fu-redfish-network.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: '*device'
        type: FuRedfishNetworkDevice
      - name: '*mac_addr'
        type: gchar
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      item_type: struct
      name: FuRedfishNetworkMatchHelper
      pos:
        line_end: 16
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network.c
    typedefs: []
    union: []
- function_names:
  - fu_ipmi_device_to_string
  - fu_ipmi_device_ioctl_buffer_cb
  - fu_ipmi_device_ioctl_addr_cb
  - fu_ipmi_device_send
  - fu_ipmi_device_recv
  - fu_ipmi_device_lock
  - fu_ipmi_device_unlock
  - fu_ipmi_device_errcode_to_string
  - fu_ipmi_device_errcode_to_error
  - fu_ipmi_device_transaction_cb
  - fu_ipmi_device_transaction
  - fu_ipmi_device_probe
  - fu_ipmi_device_setup
  - fu_ipmi_device_get_user_password
  - fu_ipmi_device_set_user_name
  - fu_ipmi_device_set_user_enable
  - fu_ipmi_device_set_user_password
  - fu_ipmi_device_set_user_priv
  - fu_ipmi_device_set_user_group_redfish_enable_advantech
  - fu_ipmi_device_init
  - fu_ipmi_device_class_init
  - fu_ipmi_device_new
  source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_IPMI_DEVICE_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '1500 '
    - item_type: preproc_def
      name: FU_IPMI_TRANSACTION_RETRY_COUNT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_IPMI_TRANSACTION_RETRY_DELAY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: IPMI_SET_USER_ACCESS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x43'
    - item_type: preproc_def
      name: IPMI_SET_USER_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x45'
    - item_type: preproc_def
      name: IPMI_GET_USER_NAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x46'
    - item_type: preproc_def
      name: IPMI_SET_USER_PASSWORD
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x47'
    - item_type: preproc_def
      name: IPMI_PASSWORD_DISABLE_USER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: IPMI_PASSWORD_ENABLE_USER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: IPMI_PASSWORD_SET_PASSWORD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: IPMI_PASSWORD_TEST_PASSWORD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: IPMI_INVALID_COMMAND_ON_LUN_ERR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xC2'
    - item_type: preproc_def
      name: IPMI_OUT_OF_SPACE_ERR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xC4'
    - item_type: preproc_def
      name: IPMI_CANCELLED_OR_INVALID_ERR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xC5'
    - item_type: preproc_def
      name: IPMI_OUT_OF_RANGE_ERR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xC9'
    - item_type: preproc_def
      name: IPMI_CANNOT_RETURN_DATA_ERR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCA'
    - item_type: preproc_def
      name: IPMI_NOT_FOUND_ERR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCB'
    - item_type: preproc_def
      name: IPMI_INVALID_DATA_FIELD_ERR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCC'
    - item_type: preproc_def
      name: IPMI_COMMAND_ILLEGAL_ERR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCD'
    - item_type: preproc_def
      name: IPMI_RESPONSE_NOT_PROVIDED_ERR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCE'
    - item_type: preproc_def
      name: IPMI_DUPLICATED_REQUEST_ERR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xCF'
    - item_type: preproc_def
      name: IPMI_SDR_IN_UPDATE_MODE_ERR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD0'
    - item_type: preproc_def
      name: IPMI_DESTINATION_UNAVAILABLE_ERR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD3'
    - item_type: preproc_def
      name: IPMI_INSUFFICIENT_PRIVILEGE_ERR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD4'
    - item_type: preproc_def
      name: IPMI_COMMAND_DISABLED_ERR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD6'
    - item_type: preproc_def
      name: IPMI_DEVICE_IN_UPDATE_MODE_ERR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD1'
    - item_type: preproc_def
      name: IPMI_DEVICE_IN_INIT_ERR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '0xD2'
    - item_type: preproc_def
      name: FU_IPMI_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: seq
        type: glong
      - name: device_id
        type: guint8
      - name: device_rev
        type: guint8
      - name: version_ipmi
        type: guint8
      item_type: struct
      name: _FuIpmiDevice
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    - fields:
      - name: netfn
        type: guint8
      - name: cmd
        type: guint8
      - name: '*req_buf'
        type: guint8
      - name: req_bufsz
        type: gsize
      - name: '*resp_buf'
        type: guint8
      - name: resp_bufsz
        type: gsize
      - name: '*resp_len'
        type: gsize
      - name: timeout_ms
        type: gint
      item_type: struct
      name: FuIpmiDeviceTransactionHelper
      pos:
        line_end: 323
        line_start: 314
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_redfish_request_get_json_object
  - fu_redfish_request_get_curl
  - fu_redfish_request_get_uri
  - fu_redfish_request_get_status_code
  - fu_redfish_request_load_json
  - fu_redfish_request_perform
  - fu_redfish_request_reset
  - fu_redfish_request_perform_full
  - fu_redfish_request_write_cb
  - fu_redfish_request_set_cache
  - fu_redfish_request_set_curlsh
  - fu_redfish_request_init
  - fu_redfish_request_finalize
  - fu_redfish_request_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*curl'
        type: CURL
      - name: '*uri'
        type: CURLU
      - name: '*buf'
        type: GByteArray
      - name: status_code
        type: glong
      - name: '*json_parser'
        type: JsonParser
      - name: '*json_obj'
        type: JsonObject
      - name: '*cache'
        type: GHashTable
      item_type: struct
      name: _FuRedfishRequest
      pos:
        line_end: 19
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
    typedefs:
    - item_type: typedef
      name: curlptr
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_IPMI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-ipmi-device.h
      type_or_value: (fu_ipmi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_redfish_legacy_device_detach
  - fu_redfish_legacy_device_attach
  - fu_redfish_legacy_device_write_firmware
  - fu_redfish_legacy_device_set_progress
  - fu_redfish_legacy_device_init
  - fu_redfish_legacy_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuRedfishDevice
      item_type: struct
      name: _FuRedfishLegacyDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-request.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_REQUEST
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.h
      type_or_value: (fu_redfish_request_get_type())
    structs: []
    typedefs:
    - item_type: typedef
      name: FuRedfishRequestPerformFlags
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.h
    union: []
- function_names:
  - fu_redfish_network_device_get_state
  - fu_redfish_network_device_connect
  - fu_redfish_network_device_get_address
  - fu_redfish_network_device_new
  - fu_redfish_network_device_init
  - fu_redfish_network_device_finalize
  - fu_redfish_network_device_class_init
  source_file: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*object_path'
        type: gchar
      item_type: struct
      name: _FuRedfishNetworkDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_REDFISH_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: (fu_redfish_device_get_type())
    - item_type: preproc_def
      name: FU_REDFISH_DEVICE_FLAG_IS_BACKUP
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: '"is-backup"'
    - item_type: preproc_def
      name: FU_REDFISH_DEVICE_FLAG_UNSIGNED_BUILD
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: '"unsigned-build"'
    - item_type: preproc_def
      name: FU_REDFISH_DEVICE_FLAG_MANAGER_RESET
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: '"manager-reset"'
    - item_type: preproc_def
      name: FU_REDFISH_DEVICE_FLAG_WILDCARD_TARGETS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: '"wildcard-targets"'
    - item_type: preproc_def
      name: FU_REDFISH_DEVICE_FLAG_NO_MANAGER_RESET_REQUEST
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
      type_or_value: '"no-manager-reset-request"'
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuRedfishDeviceClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/redfish/fu-redfish-device.h
    typedefs: []
    union: []
- function_names:
  - fu_flashrom_device_set_quirk_kv
  - fu_flashrom_device_probe
  - fu_flashrom_device_open
  - fu_flashrom_device_close
  - fu_flashrom_device_progress_cb
  - fu_flashrom_device_dump_firmware
  - fu_flashrom_device_prepare
  - fu_flashrom_device_write_firmware
  - fu_flashrom_device_set_progress
  - fu_flashrom_device_init
  - fu_flashrom_device_get_property
  - fu_flashrom_device_set_property
  - fu_flashrom_device_finalize
  - fu_flashrom_device_class_init
  - fu_flashrom_device_new
  - fu_flashrom_device_unlock
  source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_FLASHROM_DEVICE_FLAG_RESET_CMOS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
      type_or_value: '"reset-cmos"'
    - item_type: preproc_def
      name: FU_FLASHROM_DEVICE_FLAG_FN_M_ME_UNLOCK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
      type_or_value: '"fn-m-me-unlock"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUdevDevice
      - name: region
        type: FuIfdRegion
      - name: '*flashctx'
        type: struct flashrom_flashctx
      - name: '*layout'
        type: struct flashrom_layout
      item_type: struct
      name: _FuFlashromDevice
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.c
    typedefs: []
    union: []
- function_names:
  - fu_flashrom_cmos_write
  - fu_flashrom_cmos_reset
  source_file: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FLASHROM_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-device.h
      type_or_value: (fu_flashrom_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTC_BASE_PORT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: CMOS_CHECKSUM_OFFSET
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-cmos.h
      type_or_value: '123'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FU_FLASHROM_PLUGIN
  - fu_flashrom_plugin_to_string
  - fu_flashrom_plugin_debug_cb
  - fu_flashrom_plugin_device_set_version
  - fu_flashrom_plugin_device_set_bios_info
  - fu_flashrom_plugin_device_set_hwids
  - fu_flashrom_plugin_add_device
  - fu_flashrom_plugin_device_registered
  - fu_flashrom_plugin_coldplug
  - fu_flashrom_plugin_find_guid
  - fu_flashrom_plugin_startup
  - fu_flashrom_plugin_unlock
  - fu_flashrom_plugin_constructed
  - fu_flashrom_plugin_finalize
  - fu_plugin_init_vfuncs
  source_file: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELFCHECK_TRUE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*flashctx'
        type: struct flashrom_flashctx
      - name: '*flashprog'
        type: struct flashrom_programmer
      - name: '*guid'
        type: gchar
      item_type: struct
      name: FuPluginData
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    typedefs:
    - item_type: typedef
      name: FuFlashromPlugin
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/fwupd/plugins/flashrom/fu-flashrom-plugin.c
    union: []
- function_names:
  - fu_qc_s5gen2_firmware_get_protocol_version
  - fu_qc_s5gen2_firmware_get_id
  - fu_qc_s5gen2_firmware_export
  - fu_qc_s5gen2_firmware_validate
  - fu_qc_s5gen2_firmware_parse
  - fu_qc_s5gen2_firmware_write
  - fu_qc_s5gen2_firmware_init
  - fu_qc_s5gen2_firmware_finalize
  - fu_qc_s5gen2_firmware_class_init
  - fu_qc_s5gen2_firmware_new
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: file_id
        type: guint32
      - name: protocol_ver
        type: guint8
      - name: '*device_variant'
        type: gchar
      item_type: struct
      name: _FuQcS5gen2Firmware
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_qc_s5gen2_device_to_string
  - fu_qc_s5gen2_device_msg_out
  - fu_qc_s5gen2_device_msg_in
  - fu_qc_s5gen2_device_cmd_req_disconnect
  - fu_qc_s5gen2_device_cmd_req_connect
  - fu_qc_s5gen2_device_data_size
  - fu_qc_s5gen2_device_cmd_abort
  - fu_qc_s5gen2_device_cmd_sync
  - fu_qc_s5gen2_device_cmd_start
  - fu_qc_s5gen2_device_cmd_start_data
  - fu_qc_s5gen2_device_cmd_validation
  - fu_qc_s5gen2_device_validation_cb
  - fu_qc_s5gen2_device_cmd_transfer_complete
  - fu_qc_s5gen2_device_cmd_proceed_to_commit
  - fu_qc_s5gen2_device_cmd_commit_cfm
  - fu_qc_s5gen2_device_ensure_version
  - fu_qc_s5gen2_device_attach
  - fu_qc_s5gen2_device_reload
  - fu_qc_s5gen2_device_setup
  - fu_qc_s5gen2_device_write_bucket
  - fu_qc_s5gen2_device_write_blocks
  - fu_qc_s5gen2_device_prepare_firmware
  - fu_qc_s5gen2_device_write_firmware
  - fu_qc_s5gen2_device_set_progress
  - fu_qc_s5gen2_device_replace
  - fu_qc_s5gen2_device_init
  - fu_qc_s5gen2_device_class_init
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_DATA_REQ_SLEEP
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
      type_or_value: '1000 '
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_SEND_DELAY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
      type_or_value: "2\t"
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_VALIDATION_RETRIES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
      type_or_value: (60000 / 100)
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: file_id
        type: guint32
      - name: file_version
        type: guint8
      - name: battery_raw
        type: guint16
      - name: resume_point
        type: FuQcResumePoint
      item_type: struct
      name: _FuQcS5gen2Device
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    typedefs: []
    union: []
- function_names:
  - fu_qc_s5gen2_plugin_init
  - fu_qc_s5gen2_plugin_constructed
  - fu_qc_s5gen2_plugin_class_init
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuQcS5gen2Plugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_S5GEN2_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.h
      type_or_value: (fu_qc_s5gen2_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_qc_s5gen2_hid_device_msg_out
  - fu_qc_s5gen2_hid_device_msg_in
  - fu_qc_s5gen2_hid_device_msg_cmd
  - fu_qc_s5gen2_hid_device_cmd_req_disconnect
  - fu_qc_s5gen2_hid_device_cmd_req_connect
  - fu_qc_s5gen2_hid_device_data_size
  - fu_qc_s5gen2_hid_device_probe
  - fu_qc_s5gen2_hid_device_setup
  - fu_qc_s5gen2_hid_device_init
  - fu_qc_s5gen2_hid_device_impl_iface_init
  - fu_qc_s5gen2_hid_device_class_init
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HID_IFACE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HID_EP_IN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: HID_EP_OUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_HID_DEVICE_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: FU_QC_S5GEN2_HID_DEVICE_MAX_TRANSFER_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
      type_or_value: '255'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuQcS5gen2HidDevice
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_S5GEN2_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.h
      type_or_value: (fu_qc_s5gen2_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_REMOVE_DELAY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.h
      type_or_value: '90000 '
    - item_type: preproc_def
      name: FU_TYPE_QC_S5GEN2_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.h
      type_or_value: (fu_qc_s5gen2_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_qc_s5gen2_ble_device_notify_release
  - fu_qc_s5gen2_ble_device_notify_acquire
  - fu_qc_s5gen2_ble_device_send
  - fu_qc_s5gen2_ble_device_recv
  - fu_qc_s5gen2_ble_device_msg_out
  - fu_qc_s5gen2_ble_device_msg_in
  - fu_qc_s5gen2_ble_device_req_connect
  - fu_qc_s5gen2_ble_device_req_disconnect
  - fu_qc_s5gen2_ble_device_data_size
  - fu_qc_s5gen2_ble_device_get_api
  - fu_qc_s5gen2_ble_device_get_features
  - fu_qc_s5gen2_ble_device_get_serial
  - fu_qc_s5gen2_ble_device_get_variant
  - fu_qc_s5gen2_ble_device_register_notification
  - fu_qc_s5gen2_ble_device_set_transport_protocol
  - fu_qc_s5gen2_ble_device_to_string
  - fu_qc_s5gen2_ble_device_notify_acquire_cb
  - fu_qc_s5gen2_ble_device_probe
  - fu_qc_s5gen2_ble_device_set_quirk_kv
  - fu_qc_s5gen2_ble_device_init
  - fu_qc_s5gen2_ble_device_finalize
  - fu_qc_s5gen2_ble_device_impl_iface_init
  - fu_qc_s5gen2_ble_device_class_init
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_QC_S5GEN2_GAIA_V3_SUPPORTED_VERSION_MAJOR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_GAIA_V3_DEFAULT_VENDOR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '0x001d'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_GAIA_V3_HDR_SZ
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_SEND
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '"00001101-d102-11e1-9b23-00025b00a5a5"'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_RECV
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '"00001102-d102-11e1-9b23-00025b00a5a5"'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_DATA
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '"00001103-d102-11e1-9b23-00025b00a5a5"'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_TIMEOUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '15000 '
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_BUFFER_SZ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_GAIA_PROTOCOL_VERSION
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_AQUIRE_RETRIES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '25'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_BLE_DEVICE_AQUIRE_DELAY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
      type_or_value: '200'
    structs:
    - fields:
      - name: core
        type: guint8
      - name: dfu
        type: guint8
      item_type: struct
      name: gaia_features_version_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    - fields:
      - name: parent_instance
        type: FuBluezDevice
      - name: vid_v3
        type: guint16
      - name: '*io_cmd'
        type: FuIOChannel
      - name: mtu
        type: gint32
      - name: feature
        type: gaia_features_version_t
      item_type: struct
      name: _FuQcS5gen2BleDevice
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_S5GEN2_IMPL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.h
      type_or_value: (fu_qc_s5gen2_impl_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: "(*msg_in)(FuQcS5gen2Impl *self,\n\t\t\t   guint8 *data,\n\t\t\t   gsize
          data_len,\n\t\t\t   gsize *read_len,\n\t\t\t   GError **error)"
        type: gboolean
      - name: (*msg_out)(FuQcS5gen2Impl *self, guint8 *data, gsize data_len, GError
          **error)
        type: gboolean
      - name: '*(*get_version)(FuQcS5gen2Impl *self, GError **error)'
        type: gchar
      - name: (*req_connect)(FuQcS5gen2Impl *self, GError **error)
        type: gboolean
      - name: (*req_disconnect)(FuQcS5gen2Impl *self, GError **error)
        type: gboolean
      - name: (*data_size)(FuQcS5gen2Impl *self, gsize *datasz, GError **error)
        type: gboolean
      item_type: struct
      name: _FuQcS5gen2ImplInterface
      pos:
        line_end: 25
        line_start: 13
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.h
    typedefs: []
    union: []
- function_names:
  - fu_qc_s5gen2_impl_default_init
  - fu_qc_s5gen2_impl_msg_in
  - fu_qc_s5gen2_impl_msg_out
  - fu_qc_s5gen2_impl_req_connect
  - fu_qc_s5gen2_impl_req_disconnect
  - fu_qc_s5gen2_impl_data_size
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-impl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_QC_S5GEN2_BLE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.h
      type_or_value: (fu_qc_s5gen2_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_device_flash_descriptor_is_wp
  - fu_wac_device_flash_descriptor_to_string
  - fu_wac_device_to_string
  - fu_wac_device_get_feature_report
  - fu_wac_device_set_feature_report
  - fu_wac_device_ensure_flash_descriptors
  - fu_wac_device_ensure_status
  - fu_wac_device_ensure_checksums
  - fu_wac_device_ensure_firmware_index
  - fu_wac_device_ensure_parameters
  - fu_wac_device_write_block
  - fu_wac_device_erase_block
  - fu_wac_device_update_reset
  - fu_wac_device_set_checksum_of_block
  - fu_wac_device_calculate_checksum_of_block
  - fu_wac_device_write_checksum_table
  - fu_wac_device_switch_to_flash_loader
  - fu_wac_device_write_firmware
  - fu_wac_device_add_modules_bluetooth
  - fu_wac_device_add_modules_legacy
  - fu_wac_device_add_modules_cb
  - fu_wac_device_add_modules
  - fu_wac_device_setup
  - fu_wac_device_close
  - fu_wac_device_set_progress
  - fu_wac_device_convert_version
  - fu_wac_device_init
  - fu_wac_device_finalize
  - fu_wac_device_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_DEVICE_TIMEOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_WAC_DEVICE_MODULE_RETRY_DELAY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
      type_or_value: '100  '
    structs:
    - fields:
      - name: start_addr
        type: guint32
      - name: block_sz
        type: guint32
      - name: write_sz
        type: guint16
      item_type: struct
      name: FuWacFlashDescriptor
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: '*flash_descriptors'
        type: GPtrArray
      - name: '*checksums'
        type: GArray
      - name: status_word
        type: guint32
      - name: firmware_index
        type: guint16
      - name: loader_ver
        type: guint16
      - name: read_data_sz
        type: guint16
      - name: write_word_sz
        type: guint16
      - name: write_block_sz
        type: guint16
      - name: nr_flash_blocks
        type: guint16
      - name: configuration
        type: guint16
      item_type: struct
      name: _FuWacDevice
      pos:
        line_end: 43
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-device.h
      type_or_value: (fu_wac_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.h
      type_or_value: (fu_wac_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_sub_cpu_create_chunk
  - fu_wac_module_sub_cpu_parse_chunks
  - fu_wac_module_sub_cpu_build_packet
  - fu_wac_module_sub_cpu_write_firmware
  - fu_wac_module_sub_cpu_prepare_firmware
  - fu_wac_module_sub_cpu_init
  - fu_wac_module_sub_cpu_class_init
  - fu_wac_module_sub_cpu_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_MODULE_SUB_CPU_PAYLOAD_SZ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WAC_MODULE_SUB_CPU_START_NORMAL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
      type_or_value: '0x00'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleSubCpu
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_ANDROID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.h
      type_or_value: (fu_wac_android_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_android_device_init
  - fu_wac_android_device_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuWacAndroidDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-android-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_BLUETOOTH_ID9
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.h
      type_or_value: (fu_wac_module_bluetooth_id9_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_buffer_dump
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_SUB_CPU
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-sub-cpu.h
      type_or_value: (fu_wac_module_sub_cpu_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_bluetooth_id6_reverse_bits
  - fu_wac_module_bluetooth_id6_calculate_crc
  - fu_wac_module_bluetooth_id6_write_blob
  - fu_wac_module_bluetooth_id6_write_firmware
  - fu_wac_module_bluetooth_id6_init
  - fu_wac_module_bluetooth_id6_class_init
  - fu_wac_module_bluetooth_id6_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_CRC8_POLYNOMIAL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '0x31'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_PAYLOAD_SZ
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_START_NORMAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_START_FULLERASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_START_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '60000 '
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID6_END_TIMEOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
      type_or_value: '60000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleBluetoothId6
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.c
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_bluetooth_id9_calculate_crc32
  - fu_wac_module_bluetooth_id9_get_startcmd
  - fu_wac_module_bluetooth_id9_write_block
  - fu_wac_module_bluetooth_id9_write_blocks
  - fu_wac_module_bluetooth_id9_prepare_firmware
  - fu_wac_module_bluetooth_id9_write_firmware
  - fu_wac_module_bluetooth_id9_init
  - fu_wac_module_bluetooth_id9_class_init
  - fu_wac_module_bluetooth_id9_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_PAYLOAD_SZ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_START_NORMAL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_CMD_NORMAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_CMD_FULLERASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_LOADER_RAM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_LOADER_BEGIN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_LOADER_DATA
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_POLL_INTERVAL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: "5\t"
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_START_TIMEOUT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '75000 '
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_DATA_TIMEOUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ID9_END_TIMEOUT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
      type_or_value: '10000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleBluetoothId9
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id9.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_firmware_parse_func
  - fu_wac_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/wacom-usb/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_SCALER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.h
      type_or_value: (fu_wac_module_scaler_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_TOUCH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.h
      type_or_value: (fu_wac_module_touch_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_scaler_parse_blocks
  - fu_wac_module_scaler_write_firmware
  - fu_wac_module_scaler_init
  - fu_wac_module_scaler_class_init
  - fu_wac_module_scaler_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_MODULE_SCALER_CRC8_POLYNOMIAL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WAC_MODULE_SCALER_PAYLOAD_SZ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
      type_or_value: '256'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleScaler
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    - fields:
      - name: addr[3]
        type: guint8
      - name: crc
        type: guint8
      - name: cdata[FU_WAC_MODULE_SCALER_PAYLOAD_SZ]
        type: guint8
      item_type: struct
      name: FuWacModuleScalerBlockData
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-scaler.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_TOUCH_ID7
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.h
      type_or_value: (fu_wac_module_touch_id7_get_type())
    - item_type: preproc_def
      name: FU_WAC_MODULE_CHUNK_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_firmware_tokenize_cb
  - fu_wac_firmware_validate
  - fu_wac_firmware_parse
  - fu_wac_firmware_calc_checksum
  - fu_wac_firmware_write
  - fu_wac_firmware_init
  - fu_wac_firmware_class_init
  - fu_wac_firmware_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_FIRMWARE_TOKENS_MAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: FU_WAC_FIRMWARE_SECTIONS_MAX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
      type_or_value: '10'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuWacFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    - fields:
      - name: addr
        type: guint32
      - name: sz
        type: guint32
      - name: prog_start_addr
        type: guint32
      item_type: struct
      name: FuFirmwareWacHeaderRecord
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    - fields:
      - name: '*firmware'
        type: FuFirmware
      - name: flags
        type: FuFirmwareParseFlags
      - name: '*header_infos'
        type: GPtrArray
      - name: '*image_buffer'
        type: GString
      - name: images_cnt
        type: guint8
      item_type: struct
      name: FuWacFirmwareTokenHelper
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-firmware.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_wac_module_to_string
  - fu_wac_module_refresh
  - fu_wac_module_refresh_cb
  - fu_wac_module_set_feature
  - fu_wac_module_cleanup
  - fu_wac_module_convert_version
  - fu_wac_module_get_property
  - fu_wac_module_set_property
  - fu_wac_module_init
  - fu_wac_module_constructed
  - fu_wac_module_set_progress
  - fu_wac_module_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fw_type
        type: guint8
      - name: command
        type: guint8
      - name: status
        type: guint8
      item_type: struct
      name: FuWacModulePrivate
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.c
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_bluetooth_calculate_crc_byte
  - fu_wac_module_bluetooth_calculate_crc
  - fu_wac_module_bluetooth_parse_blocks
  - fu_wac_module_bluetooth_write_firmware
  - fu_wac_module_bluetooth_init
  - fu_wac_module_bluetooth_class_init
  - fu_wac_module_bluetooth_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_PAYLOAD_SZ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ADDR_USERDATA_START
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: FU_WAC_MODULE_BLUETOOTH_ADDR_USERDATA_STOP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
      type_or_value: '0x8000'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleBluetooth
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    - fields:
      - name: preamble[7]
        type: guint8
      - name: addr
        type: guint32
      - name: crc
        type: guint8
      - name: cdata[FU_WAC_MODULE_BLUETOOTH_PAYLOAD_SZ]
        type: guint8
      item_type: struct
      name: FuWacModuleBluetoothBlockData
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_BLUETOOTH_ID6
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth-id6.h
      type_or_value: (fu_wac_module_bluetooth_id6_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE_BLUETOOTH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-bluetooth.h
      type_or_value: (fu_wac_module_bluetooth_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_touch_id7_read_file_header
  - fu_wac_module_touch_id7_read_record_header
  - fu_wac_module_touch_id7_generate_command
  - fu_wac_module_touch_id7_write_block
  - fu_wac_module_touch_id7_write_record
  - fu_wac_module_touch_id7_write_firmware
  - fu_wac_module_touch_id7_init
  - fu_wac_module_touch_id7_class_init
  - fu_wac_module_touch_id7_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleTouchId7
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    - fields:
      - name: op_id
        type: guint32
      - name: '*buf'
        type: guint8
      - name: bufsz
        type: gsize
      - name: offset
        type: gsize
      item_type: struct
      name: WtaInfo
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    - fields:
      - name: header_size
        type: guint32
      - name: firmware_number
        type: guint16
      item_type: struct
      name: WtaFileHeader
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    - fields:
      - name: file_name_length
        type: guint32
      - name: start_address
        type: guint32
      - name: ic_id
        type: guint8
      - name: ma_id
        type: guint8
      - name: block_count
        type: guint32
      item_type: struct
      name: WtaRecordHeader
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch-id7.c
    typedefs: []
    union: []
- function_names:
  - fu_wac_module_touch_write_firmware
  - fu_wac_module_touch_init
  - fu_wac_module_touch_class_init
  - fu_wac_module_touch_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacModule
      item_type: struct
      name: _FuWacModuleTouch
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module-touch.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WAC_PACKET_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '512'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_COMMAND
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_STATUS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_CONTROL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_GET_FIRMWARE_VERSION_MAIN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_GET_FIRMWARE_VERSION_TOUCH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WAC_REPORT_ID_GET_FIRMWARE_VERSION_BLUETOOTH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-common.h
      type_or_value: '0x16'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WAC_MODULE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
      type_or_value: (fu_wac_module_get_type())
    - item_type: preproc_def
      name: FU_WAC_MODULE_POLL_INTERVAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
      type_or_value: "100\t  "
    - item_type: preproc_def
      name: FU_WAC_MODULE_START_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
      type_or_value: '15000 '
    - item_type: preproc_def
      name: FU_WAC_MODULE_DATA_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_WAC_MODULE_END_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
      type_or_value: '10000 '
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuWacModuleClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-module.h
    typedefs: []
    union: []
- function_names:
  - fu_wac_plugin_write_firmware
  - fu_wac_plugin_composite_prepare
  - fu_wac_plugin_composite_cleanup
  - fu_wac_plugin_init
  - fu_wac_plugin_object_constructed
  - fu_wac_plugin_constructed
  - fu_wac_plugin_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWacPlugin
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wac-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_fpc_device_prepare_firmware
  - fu_fpc_device_dfu_cmd
  - fu_fpc_device_fw_cmd
  - fu_fpc_device_setup_mode
  - fu_fpc_device_setup_version
  - fu_fpc_device_check_dfu_status_cb
  - fu_fpc_device_update_init
  - fu_fpc_device_to_string
  - fu_fpc_device_attach
  - fu_fpc_device_detach
  - fu_fpc_device_setup
  - fu_fpc_device_write_ff2_blocks
  - fu_fpc_device_write_ff2_firmware
  - fu_fpc_device_write_firmware
  - fu_fpc_device_set_progress
  - fu_fpc_device_convert_version
  - fu_fpc_device_init
  - fu_fpc_device_class_init
  source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FPC_USB_INTERFACE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FPC_USB_TRANSFER_TIMEOUT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '1500 '
    - item_type: preproc_def
      name: FPC_FLASH_BLOCK_SIZE_DEFAULT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '2048 '
    - item_type: preproc_def
      name: FPC_FLASH_BLOCK_SIZE_4096
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FPC_CMD_DFU_DETACH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FPC_CMD_DFU_DNLOAD
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FPC_CMD_DFU_GETSTATUS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FPC_CMD_DFU_CLRSTATUS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FPC_CMD_DFU_GET_FW_STATUS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: FPC_CMD_DFU_DNLOAD_FF2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FPC_CMD_BOOT0
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FPC_CMD_GET_STATE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x0B'
    - item_type: preproc_def
      name: FPC_CMD_GET_STATE_LENFY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: FPC_DEVICE_MOC_STATE_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '68'
    - item_type: preproc_def
      name: FPC_DEVICE_MOH_STATE_LEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '72'
    - item_type: preproc_def
      name: FPC_DEVICE_DFU_FW_STATUS_LEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: FPC_DFU_MAX_ATTEMPTS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FPC_DEVICE_DFU_MODE_CLASS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: FPC_DEVICE_DFU_MODE_PORT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FPC_DEVICE_NORMAL_MODE_CLASS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: FPC_DEVICE_NORMAL_MODE_PORT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: FPC_FF2_BLK_SEC_LINK_LEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_FPC_DEVICE_FLAG_MOH_DEVICE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '"moh-device"'
    - item_type: preproc_def
      name: FU_FPC_DEVICE_FLAG_LEGACY_DFU
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '"legacy-dfu"'
    - item_type: preproc_def
      name: FU_FPC_DEVICE_FLAG_RTS_DEVICE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '"rts"'
    - item_type: preproc_def
      name: FU_FPC_DEVICE_FLAG_LENFY_DEVICE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
      type_or_value: '"lenfy"'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: max_block_size
        type: guint32
      item_type: struct
      name: _FuFpcDevice
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fpc/fu-fpc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FPC_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/fpc/fu-fpc-device.h
      type_or_value: (fu_fpc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fpc_ff2_firmware_export
  - fu_fpc_ff2_firmware_validate
  - fu_fpc_ff2_firmware_parse
  - fu_fpc_ff2_firmware_get_blocks_num
  - fu_fpc_ff2_firmware_init
  - fu_fpc_ff2_firmware_class_init
  source_file: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: blocks_num
        type: guint32
      item_type: struct
      name: _FuFpcFf2Firmware
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_fpc_plugin_init
  - fu_fpc_plugin_constructed
  - fu_fpc_plugin_class_init
  source_file: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFpcPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FPC_FF2_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.h
      type_or_value: (fu_fpc_ff2_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/fpc/fu-fpc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/fwupd/contrib/ci/qt5-thread-test/qt-thread-test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
